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

Profile Tooling

From HL7Wiki
Revision as of 22:03, 14 September 2014 by GrahameGrieve (talk | contribs)
Jump to navigation Jump to search

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
    • find the profile on 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, 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
    • 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 [] -profile [url]
      • [source] is a file name of the resource to validate, or a URL at which to find it
      • [] is the file name of the file 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 source is available at [[1]]
    • this can used if desired

other tools to add: DotNet validator

Publishing Profiles

Implementation Guides

Public Registries

Data Entry Tools

Resources are able to 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="" label="Message" scheme=""/> 

And in the HTTP Headers:

  Category:; scheme=""; label="Message"

Note that just because a resource conforms to the rules of a profile, it is not guaranteed to actually conforms to it.

In order to be confident that the resource does conform, a user or application can ask a validation service to check that it does conform by:

Other validation libraries are planned, but not yet implemented