Release 4B

This page is part of the FHIR Specification (v4.3.0: R4B - STU). This is the current published version. For a full list of available versions, see the Directory of published versions


FHIR Infrastructure Work GroupMaturity Level: N/AStandards Status: Informative
Specification Downloads
FHIR Definitions All the value sets, profiles, etc. defined as part of the FHIR specification, and the included implementation guides: This is the master set of definitions that should be the first choice whenever generating any implementation artifacts. All the other forms below include only subsets of the information available in these definition files, and do not contain all of the rules about what makes resources valid. Implementers will still need to be familiar with the content of the specification and with any profiles that apply to the resources in order to make a conformant implementation.

  • Examples - all the example resources in XML format
  • Validation Schemas (includes support schemas, resource schemas, modular & combined schemas, and Schematrons)
  • Code Generation Schemas (see notes about code-generation schemas)
    Note that names relevant for code generation, including resource names, element & slice names, codes, etc. may collide with reserved words in the relevant target language, and code generators will need to handle this


  • Turtle Examples - all the example resources in Turtle format
  • ShEx Schemas - ShEx definitions for validating RDF resources
  • Definitions - the formal definitions that define the predicates and classes used in the RDF format (not up to date)

FHIR Specification The whole specification so that you can host your own local copy (does not include the downloads)
Implementation Tools
Validator The official FHIR validator - a Java jar file that can be used to validate resources. See Validation Tools for further information, or Using the FHIR Validator for parameter documentation
IG Publisher The Implementation Guide Publishing Tool (see IG Publishing documentation )
NPM Packages There are several packages that support the FHIR specification:
  • hl7.fhir.r4b.core: Contains all the resources needed to test conformance to the FHIR specification, and/or generate code
  • hl7.fhir.r4b.expansions: Contains the expansions of the subset of the value sets the have a required binding (other than those that can't be expanded at all)
  • hl7.fhir.r4b.examples: All the resources that are defined as part of the FHIR specification
  • hl7.fhir.r4b.elements: A set of StructureDefinition resources that represent the resources and data types as a series of independently defined data elements
  • hl7.fhir.r4b.corexml: The same content as hl7.fhir.r4b.core, but with the resources in XML, not JSON
These packages are used by many of the FHIR tools (e.g. the IG publisher and the validator). Note that the tools usually find this package directly through the NPM-based distribution framework, and there's no need to download them
Spreadsheets All the resource structures in a Spreadsheet Format - mostly provided to assist with mapping
Translation File Translations of common FHIR names and messages into multiple languages (see translations stream for guidance on how to add to more)
Icon Pack The FHIR Icon at various resolutions. Any FHIR Implementation created by an organization that has attended a connectathon is allowed to use the FHIR icon in association with the application (this policy will be reviewed in the future).
Test Cases Test cases can mainly be found in the org.hl7.fhir.core repository
Code Generation Support ValueSet expansions for the value sets used in schema generation (XML or JSON) + a list of all choice elements & backbone elements. Note that names relevant for code generation, including resource names, element & slice names, codes, etc. may collide with reserved words in the relevant target language, and code generators will need to handle this
Reference Implementations
There are many open source reference implementations available to help implementers. Here are a list of the more common implementations used by implementers:
Java HAPI-FHIR : Object Models, Parsers, Client + Server Framework, FHIR Validator, & Utilities. The specification is built with this Java code
C# Hl7.Fhir.R4 / Hl7.Fhir.STU3 : Object models, Parsers/Serializers, Utilities, and a Client. Source code on GitHub at
Pascal FhirServer : Object models, Parsers/Serializers, Validator, Utilities, Client, and the FHIR Reference server. Requires Delphi (Unicode versions)
XML XML Tools: Document Rendering Stylesheet, supplementary implementation schemas and transforms
Javascript See the HL7 wiki for Javascript libraries (Clients and Utilities for both servers and clients)
Python Python SMART on FHIR client : Object Model, Client and Utilities
Swift Swift-FHIR : Object Model, Client and Utilities

Implementation Note: These reference implementations are provided for implementer interest and assistance. While they may be used (and are) in production systems, HL7 and their various contributors accept no liability for their use. Note that these reference implementations are provided to assist to implementers to adopt the specification, and some are maintained by the FHIR project team, but are not part of the specification, and implementations are not required to conform to these, nor are they subject to the formal standards process.

Full blown open source implementations for FHIR, some of which use these reference implementations, are listed on HL7 Confluence .

It is not necessary to use these particular implementations in order to be conformant. Any other approach may be used, including code generated from the schemas.