Incoming links from the FHIR specification

This page gathers links for tools that help with development of FHIR resource, including Profiles/StructureDefinitions. These tools are categorized into several functional categories:

Validating Resources against the specification and Profiles

You can validate a resource against a profile in several different ways.

  • On the web
  • Via API
    • You can use the [validation] interaction on any of the Public Test Servers or your own FHIR server instance.
      • 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
  • On the command line
  • In code

Validator Status

All the options above package one of three different validation engines:

EngineSourceStatusPasses Tests
Javahttps://github.com/hapifhir/org.hl7.fhir.coreFully maintainedYes
C#/DotNethttps://github.com/FirelyTeam/firely-net-sdkFully maintainedNo
Pascalhttps://github.com/HealthIntersections/fhirserverNot current; future undecidedNo

HL7 regards any validator that passes the validator test cases as an HL7 approved validator

Marking that a resource conforms to a profile

See the explanation of meta.profile in the section on resource metadata. Note that this is only a conformance claim and no guarantee that the resource actually conforms. Every server can test these claims, test resources against any other profile and can update the values in meta.profile accordingly.

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 can do this but it's not the intention
    • Generic XML tools

Use of spreadsheets is no longer recommended (except for certain HL7-internal profiles) and hand editing is tedious and error prone. Generally, choose one of the other approaches.

Editing/testing profile invariants can be done with the "fhirpath-lab" it provides syntax highlighting and advanced testing capabilities

Publishing Profiles

FHIR resources can be published as a stable, coherent set called a FHIR Package (see the NPM Package Specification).

This should generally be accompanied by documentation, called an Implementation Guide.

Finding Packages and Implementation Guides

Creating and publishing Packages and Implementation Guides

Also see Authoring FHIR Implementation Guides - Introduction.



  • No labels