Difference between revisions of "Profile Tooling"
Mark Kramer (talk | contribs) m |
(Migrate Content to Confluence/Added Forward Link) |
||
Line 1: | Line 1: | ||
+ | Content on this page has been migrated to Confluence here: https://confluence.hl7.org/display/FHIR/Profile+Tooling | ||
+ | |||
+ | |||
This page gathers together links for tools that work with or on profiles for FHIR. Tools are categorised into several functional categories: | 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 = | + | =Editing / Authoring Profiles= |
The following choices exist for editing profiles | The following choices exist for editing profiles | ||
− | * By Hand | + | *By Hand |
− | ** Use a schema drive editor against Profile.xsd in the FHIR schemas | + | **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) | + | **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 | + | **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 | + | **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 | + | *From Spreadsheets |
− | ** this is how some of the profiles in the specification are produced | + | **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]] | + | **use the [[FHIR Build Process]] following the method used here: [[FHIR Profile authoring]] |
− | ** this is the preferred platform for pre-DSTU internal HL7 development | + | **this is the preferred platform for pre-DSTU internal HL7 development |
− | * Using Forge | + | *Using Forge |
− | ** see [http://fire.ly/forge/ The Firely Website] | + | **see [http://fire.ly/forge/ The Firely Website] |
− | * Using Trifolia | + | *Using Trifolia |
− | ** see [https://trifolia.lantanagroup.com] | + | **see [https://trifolia.lantanagroup.com] |
− | * Using Clinical Information Modeling and Profiling Language (CIMPL) | + | *Using Clinical Information Modeling and Profiling Language (CIMPL) |
− | ** see [https://github.com/standardhealth] | + | **see [https://github.com/standardhealth] |
Note: Using an externally-maintained tool such as Forge or Trifolia is the preferred long-term platform and should be used by non-HL7-internal stakeholders | Note: Using an externally-maintained tool such as Forge or Trifolia is the preferred long-term platform and should be used by non-HL7-internal stakeholders | ||
− | = Validating Resources against Profiles = | + | =Validating Resources against Profiles= |
You can validate a resource against a profile in several different ways. | You can validate a resource against a profile in several different ways. | ||
− | * use the web interface at http://fhir3.healthintersections.com.au/open | + | *use the web interface at http://fhir3.healthintersections.com.au/open |
− | ** find the profile on fhir3.healthintersections.com.au server by searching through the profiles | + | **find the profile on fhir3.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 | + | **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 fhir3.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 | + | **now, go back to fhir3.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 | + | **get a list of errors |
− | * 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 (see below) | + | **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 |
− | ** This is a java jar that you can use to validate a resource | + | **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 | + | **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] | + | **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 | + | ***[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 | + | ***[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 | + | ***[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 | + | *You can use the java classes directly |
− | ** see the java package org.hl7.fhir.instance.validation in the [[http://gforge.hl7.org/svn/fhir/trunk FHIR svn]] | + | **see the java package org.hl7.fhir.instance.validation in the [[http://gforge.hl7.org/svn/fhir/trunk FHIR svn]] |
− | * The fhir2.healthintersections.com.au source is available at [[https://github.com/grahamegrieve/fhirserver]] | + | *The fhir2.healthintersections.com.au source is available at [[https://github.com/grahamegrieve/fhirserver]] |
− | ** this can used if desired | + | **this can used if desired |
− | == Marking that a resource conforms to a profile == | + | ==Marking that a resource conforms to a profile== |
Resources can declare that they conform to a profile by being "tagged" | Resources can declare that they conform to a profile by being "tagged" | ||
Line 70: | Line 73: | ||
conforms to it. The server can choose to test this or not. | conforms to it. The server can choose to test this or not. | ||
− | = Publishing Profiles = | + | =Publishing Profiles= |
− | == Implementation Guides == | + | ==Implementation Guides== |
− | == Public Registries == | + | ==Public Registries== |
− | = Data Entry Tools = | + | =Data Entry Tools= |
Latest revision as of 15:31, 30 October 2019
Content on this page has been migrated to Confluence here: https://confluence.hl7.org/display/FHIR/Profile+Tooling
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
- this is the preferred platform for pre-DSTU internal HL7 development
- Using Forge
- Using Trifolia
- see [1]
- Using Clinical Information Modeling and Profiling Language (CIMPL)
- see [2]
Note: Using an externally-maintained tool such as Forge or Trifolia is the preferred long-term platform and should be used by non-HL7-internal stakeholders
Validating Resources against Profiles
You can validate a resource against a profile in several different ways.
- use the web interface at http://fhir3.healthintersections.com.au/open
- find the profile on fhir3.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 fhir3.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 fhir2.healthintersections.com.au source is available at [[3]]
- this can used if desired
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.