Skip to content

Latest commit

 

History

30,297 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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).


About

Official source for the HL7 FHIR Specification

Topics

Resources

Security policy

Stars

748 stars

Watchers

63 watching

Forks

Releases

Packages

Used by

Contributors

Languages