Difference between revisions of "Profile Tooling"
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: | ||
− | = | + | == 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 | |
− | Resources | + | [[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. |
− | + | = Publishing Profiles = | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | == 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:
Contents
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
- From Spreadsheets
- this is how some of the profiles in the specification are produced
- use the FHIR Build Process following the method used here: FHIR Profile authoring
- 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.