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
(Created page with "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 = ...")
 
(Migrate Content to Confluence/Added Forward Link)
 
(11 intermediate revisions by 6 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]]
 
  
* Using Forge
+
*From Spreadsheets
** see .. link to be provided...
+
**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
  
= Validating Resources against Profiles =
+
*Using Forge
 +
**see [http://fire.ly/forge/ The Firely Website]
  
 +
*Using Trifolia
 +
**see [https://trifolia.lantanagroup.com]
  
= Publishing Profiles =
+
*Using Clinical Information Modeling and Profiling Language (CIMPL)
 +
**see [https://github.com/standardhealth]
  
== Implementation Guides ==
+
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
  
== Public Registries ==
+
=Validating Resources against Profiles=
  
= Data Entry Tools =
+
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 [[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
 +
**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 [[http://gforge.hl7.org/svn/fhir/trunk FHIR svn]]
 +
*The fhir2.healthintersections.com.au source is available at [[https://github.com/grahamegrieve/fhirserver]]
 +
**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  
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 48: Line 71:
 
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==
  
In order to be confident that the resource
+
==Public Registries==
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
+
=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