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
(Migrate Content to Confluence/Added Forward Link)
 
(5 intermediate revisions by 4 users not shown)
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
 +
**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
 +
**see [http://fire.ly/forge/ The Firely Website]
 +
 
 +
*Using Trifolia
 +
**see [https://trifolia.lantanagroup.com]
  
* From Spreadsheets
+
*Using Clinical Information Modeling and Profiling Language (CIMPL)
** this is how some of the profiles in the specification are produced
+
**see [https://github.com/standardhealth]
** 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  
+
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
** see [http://fhir.furore.com/forge]
 
** this 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. (note that the DSTU2 validation server can be found at fhir
+
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 63: 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:

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 Trifolia
  • Using Clinical Information Modeling and Profiling Language (CIMPL)

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.

Publishing Profiles

Implementation Guides

Public Registries

Data Entry Tools