This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Difference between revisions of "Profile Tooling"

From HL7Wiki
Jump to navigation Jump to search
Line 29: Line 29:
 
* You can use the [[http://hl7.org/implement/standards/fhir/http.html#validate validation]] interaction
 
* You can use the [[http://hl7.org/implement/standards/fhir/http.html#validate validation]] interaction
 
** use a RESTful client like [[http://www.getpostman.com/ POSTman]], or write code to do this in the background
 
** use a RESTful client like [[http://www.getpostman.com/ POSTman]], or write code to do this in the background
** post the resource as described by the validation operation, and tag it with the profile you wish it to be tested against
+
** post the resource as described by the validation operation, and tag it with the profile you wish it to be tested against (see below)
 
** most servers require the profile to be hosted on the server itself
 
** most servers require the profile to be hosted on the server itself
 
* You can use the validator package
 
* You can use the validator package
Line 46: Line 46:
  
  
= Publishing Profiles =
+
== Marking that a resource conforms to a profile ==
 
 
== Implementation Guides ==
 
 
 
== Public Registries ==
 
 
 
= Data Entry Tools =
 
 
 
 
 
 
 
  
 
+
Resources can declare that they conform to a profile by being "tagged"  
 
+
with the URI that identifies the profile. The tags are moved as  
Resources are able to declare that they conform to a profile
+
[[Atom category elements]] in a bundle, or in the [[category header]]  
by being "tagged" with the URI that identifies the profile.  
+
in an HTTP call. This is an example profile tag in a bundle (e.g. Atom Feed):
The tags are moved as [[ Atom category elements]] in a bundle,
 
or in the [[ category header]] in an HTTP call. This is an example
 
profile tag in a bundle (e.g. Atom Feed):
 
  
 
   <category term="http://hl7.org/fhir/tag/message" label="Message" scheme="http://hl7.org/fhir/tag"/>  
 
   <category term="http://hl7.org/fhir/tag/message" label="Message" scheme="http://hl7.org/fhir/tag"/>  
Line 73: Line 61:
 
Note that just because a resource conforms to the  
 
Note that just because a resource conforms to the  
 
rules of a profile, it is not guaranteed to actually  
 
rules of a profile, it is not guaranteed to actually  
conforms to it.  
+
conforms to it. The server can choose to test this or not.
  
In order to be confident that the resource
+
= Publishing Profiles =
does conform, a user or application can ask a validation service
 
to check that it does conform by:
 
* Using the validation service via browser at http://fhir.healthintersections.com.au/open#upload. Notes:
 
** Choose Operation "Validation", and the profile you want to use
 
** In order to use this, the profile must first be uploaded onto the server
 
* use the validation service via REST - post XML or JSON to
 
** [base]/[type]/_validate
 
** http://fhir.healthintersections.com.au/open is the base for one server that implements validation
 
* use the validation jar (see the [[http://hl7.org/documentcenter/public/standards/FHIR/validator.zip the download]] for instructions)
 
* use the java classes directly (see the FHIR svn, see http://gforge.hl7.org/gf/project/fhir/)
 
  
Other validation libraries are planned, but not yet implemented
+
== Implementation Guides ==
 +
 
 +
== Public Registries ==
 +
 
 +
= Data Entry Tools =

Revision as of 22:10, 14 September 2014

This page gathers together links for tools that work with or on profiles for FHIR. Tools are categorised into several functional categories:

Editing / Authoring Profiles

The following choices exist for editing profiles

  • By Hand
    • Use a schema drive editor against Profile.xsd in the FHIR schemas
    • start with an existing profile (look for the link under the structure definition on the page for the resource)
    • edit the profile as you see fit
    • Note: profiles are full rich description of the content, and so they're pretty hard to edit by hand. You an do this but it's not the intention
  • Using Forge
    • see .. link to be provided...

Validating Resources against Profiles

You can validate a resource against a profile in several different ways

  • use the web interface at http://fhir.healthintersections.com.au/open
    • find the profile on fhir.healthintersections.com.au server by searching through the profiles
    • if your profile isn't there, you can put it on the server - paste it into the edit box at the bottom of the page, check the operation is "transaction", and choose Upload
    • now, go back to fhir.healthintersections.com.au/open, paste your resource into the edit box at the bottom of the page, choose "validate" for the operation, and pick the relevant profile, and choose upload
    • get a list of errors
  • You can use the [validation] interaction
    • use a RESTful client like [POSTman], or write code to do this in the background
    • post the resource as described by the validation operation, and tag it with the profile you wish it to be tested against (see below)
    • most servers require the profile to be hosted on the server itself
  • You can use the validator package
    • This is a java jar that you can use to validate a resource
    • get the validator from the FHIR downloads page for the version of FHIR you are using- download the validation pack, and unzip it
    • run it like this: java -jar org.hl7.fhir.validator.jar [source] -defn [validation.zip] -profile [url]
      • [source] is a file name of the resource to validate, or a URL at which to find it
      • [validation.zip] is the file name of the file validation.zip included in the tool zip download from above
      • [url] - the file name or url of the profile to use when validating the resource. if this is not provided, the resource is validated against the base
  • You can use the java classes directly
    • see the java package org.hl7.fhir.instance.validation in the [FHIR svn]
  • The fhir.healthintersections.com.au source is available at [[1]]
    • this can used if desired

other tools to add: DotNet validator


Marking that a resource conforms to a profile

Resources can declare that they conform to a profile by being "tagged" with the URI that identifies the profile. The tags are moved as Atom category elements in a bundle, or in the category header in an HTTP call. This is an example profile tag in a bundle (e.g. Atom Feed):

 <category term="http://hl7.org/fhir/tag/message" label="Message" scheme="http://hl7.org/fhir/tag"/> 

And in the HTTP Headers:

  Category: http://hl7.org/fhir/tag/message; scheme="http://hl7.org/fhir/tag"; label="Message"

Note that just because a resource conforms to the rules of a profile, it is not guaranteed to actually conforms to it. The server can choose to test this or not.

Publishing Profiles

Implementation Guides

Public Registries

Data Entry Tools