/fhir

Official source for the HL7 FHIR Specification

Primary LanguageHTMLOtherNOASSERTION

The FHIR Specification Publisher

This library builds and publishes the FHIR specification, based on the contained spreadsheet data in the project.

CI Status (master) CI Status (R4B)
Build Status Build Status

Important Links

This is the source for the FHIR specification itself. Only the editors of the specification (a small group) need to build this. If that's not you, one of these links should get you going:

Publishing Locally

  1. Be sure you have at least 16 GB of RAM
  2. Run ./gradlew publish from the command line
  3. Wait for it to finish (~20 minutes)

See also: Getting Started and FHIR Build Process

If running commands on the terminal is a frightening prospect for you...

We provide executable script files for Windows (publish.bat) and for a Bash shell for mac/linux/windows (publish.sh).

Command line parameters

There are multiple options available for publishing:

  • --offline: use this arg if you are offline and cannot fetch dependencies (doesn't work at the moment, and may never)

  • -nogen: don't generate the spec, just run the validation. (to use this, manually fix things in the publication directory, and then migrate the changes back to source when done. this is a hack)

  • -noarchive: don't generate the archive. Don't use this if you're a core editor

  • -web: produce the HL7 ready publication form for final upload (only core editors)

  • -diff: the executable program to use if platform round-tripping doesn't produce identical content (default: c:\program files (x86)\WinMerge\WinMergeU.exe)

  • -name: the "name" to go in the title bar of each of the specification

To add any of these options to the publish task, run the command as ./gradlew publish --args"<YOUR ARGS HERE>"

For example, if you wanted to publish without generating the spec, just running the validation, you would run the command ./gradlew publish --args="-nogen"

Publishing Globally

Each time a pull request is opened, the pull request pipeline runs. If the pipeline successfully publishes, it uploads the build as a separate branch on build.fhir.org/branches, where it can be reviewed to ensure accuracy.

Once merged to master, the master branch pipeline runs. If successful, the published specification is uploaded to the main build.fhir.org webpage.

The only exception to the above is the build for R4B. The R4B pipline detects changes to the R4B branch in github, and publishes any changes from that branch to build.fhir.org/R4B.

Maintenance

This project is maintained by Grahame Grieve and Mark Iantorno on behalf of the FHIR community.