0.27
No release in over 3 years
A Gem for handling FHIR test executions
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies
 Project Readme

The FHIR Specification

This repository holds the source for the FHIR specification: resource and datatype definitions, value sets, examples and the narrative pages. The specification is built from this source by kindling, the FHIR specification publisher.

CI Status (master)
Build Status

Important Links

Only the editors of the specification need to build it. If that's not you, one of these links will probably be more useful:

Building Locally

You need:

  • Java 17 or later
  • at least 16 GB of RAM (the build runs with a 12.5 GB heap; see gradle.properties)

Then run:

./gradlew publish

or use publish.sh (bash) or publish.bat (Windows), which do the same thing. The output goes in publish/. A full build takes around 10 minutes, but this depends a lot on the hardware. See also the FHIR Build Process on Confluence.

Partial builds

The build keeps track of what changed since the last build (in temp/build.cache), and only rebuilds the affected resources and pages. It does a full build when nothing has changed, when there is no previous output, or when you ask for one:

./gradlew publishFull

Command line parameters

Pass parameters through gradle with --args, for example:

./gradlew publish --args="-resource patient -nosound"
Parameter Meaning
-nopartial Always do a full build (same as publishFull)
-resource [name] Only rebuild the named resource
-page [file] Only rebuild the named page (e.g. fhirpatch.html)
-nogen Don't generate the specification; just run the validation
-validation-mode [mode] normal (default), none or extended
-validate [id] Only validate the named example
-nosound Don't play the tones at the start and end of the build
-output [folder] Put the output somewhere other than publish/
-folder [folder] Build from a folder other than the current directory
-fhir-settings [file] Location of the fhir-settings.json file (API keys etc.)
-diff [program] Program used to show differences when a reference implementation doesn't round-trip an example
-name [text] Name of the build, shown on each page (default: "Local Build (machine name)")
-web Produce the final form for publication on hl7.org (core editors only)

Verbose or custom logging can be set up with a logback configuration file:

./gradlew publish -Plogback.configurationFile=~/my-logback-config.xml

CI Builds

Each pull request is built by the pull request pipeline. If the build succeeds, it is uploaded to build.fhir.org/branches under the name of the branch, where the changes can be reviewed.

Once a PR is merged to master, the master branch pipeline builds it and uploads it to build.fhir.org.

Build results are posted to the committers/notification stream on chat.fhir.org.

Maintenance

This project is maintained by Grahame Grieve and David Otasek on behalf of the FHIR community. Changes to normative content require review by the FHIR normative review team (see CODEOWNERS).