CodeX Radiation Therapy
1.0.0 - STU 1 United States of America flag

This page is part of the CodeX™ Radiation Therapy (v1.0.0: STU 1) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Building the Implementation Guide

“Building” the IG means generating a web-based, human-readable representation of the structured information and accompanying documentation defined within this repository. This is done via the FHIR Implementation Guide Publisher (“IG Publisher”), a Java program provided by the FHIR team for building IGs into a standardized presentation.

If you would like to generate this locally, open command prompt window and navigate to the directory where this repository has been cloned.

If this is your first time building the IG, you will need to install these dependencies:

  1. Download the latest IG Publisher .jar file with this command:
    • Linux/macOS: ./_updatePublisher.sh
    • Windows: _updatePublisher
  2. Install SUSHI

With those dependencies in place, then run this command:

  • Linux/macOS: ./_genonce.sh
  • Windows: _genonce

This script will do two things automatically for you:

  1. Run SUSHI. This IG is developed developed in FHIR Shorthand (FSH), a domain-specific language (DSL) for defining the content of FHIR IGs. SUSHI complies FSH files into the JSON files expected by the IG Publisher.

  2. Run the IG Publisher.

You will need an active internet connection to build the IG. It make take up to 30 minutes to build for the first time; subsequent builds should be faster (5-7 minutes) on a modern laptop.

When the build finishes, you can open output/index.html in your browser to see the locally built IG.

Dependencies for building the IG

  1. You will need to install SUSHI before building the IG.
  2. You will also need to run ./_updatePublisher.sh (Linux/macOS) or _updatePublisher.bat (Windows) to download the IG Publisher.

Running SUSHI independently of the IG Publisher

If you want to run SUSHI without building the entire IG, you can run sushi . in a command prompt window after navigating to the directory where this repository has been cloned.

You can also run the IG Publisher without running SUSHI with ./_genonce.sh -no-sushi or _genonce -no-sushi.

Getting a clean build

While not normally necessary, you can delete the following folders to get a clean build:

  • fsh-generated/ (SUSHI output)
  • output/ (IG Publisher output)
  • input-cache/ (IG Publisher local cache; note that deleting this will dramatically increase the length of the next build)

Key folders & files in the IG

  • The FHIR Shorthand (.fsh) files defining the resources in this IG are found in input/fsh/.
    • There is a FSH syntax highlighting extension for VSCode. The CodeX RT team generally uses this set of tools for working on FSH files.
    • The FSH files are prefixed based on what is contained inside.

      Prefix Description
      AL Aliases
      DEF Other Definitions
      EX Examples
      SD StructureDefinitions
      VS ValueSets
  • The main pages in the built IG are generated from Markdown found in input/pagecontent/. These pages must also be included in sushi-config.yaml to be compiled to HTML by the IG Publisher.
  • There are a number of other important configuration options in sushi-config.yaml including the menu contents of the built IG and the groupings on the Artifacts Summary page.

Capability Statement Rendering

The capability statements were rendered using a script originally developed by Eric Haas that has been extended and maintained by Corey Spears. The generated html is integrated into the FSH source using the transferdiv.rb script.