This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Proposed new FHIR IG build Process

From HL7Wiki
Revision as of 20:43, 11 May 2016 by GrahameGrieve (talk | contribs) (Created page with " This is some notes about of the proposed new FHIR build process for publishing implementation guides = Summary = The publishing process is a 2 step process: # run the FHIR ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This is some notes about of the proposed new FHIR build process for publishing implementation guides

Summary

The publishing process is a 2 step process:

  1. run the FHIR IG Publisher to validate all the resources & generate fragments
  2. run a web site build tool to generate the final IG

FHIR IG Publisher

This is a java jar that can be run from the command line, or hosted in a process. Whether hosted in a process, or run from the command line, it works the following way:

  • it takes 5 parameters:
    • the name of the validation.zip file to load
    • folders for dependent implementation guides
    • URL of terminology server to use
    • identity of IG to generate for
    • path to the specification

once running and having loaded dependent definitions, it:

  • reads the IG, and loads all the resources in the IG
  • processes code systems, value sets, structure definitions, structure maps
  • validates the all resources in the IG
    • produce an HTML file with any errors encountered
  • for each resource in the IG, generates a set of files - renderings of the file to include in the published IG

On the command line, there is a 6th parameter, instructing the validator to stay loaded, and rerun the process anytime any of the source files are changed When run in process, the IG Publisher can be passed a resolver that is used to find content that is required when encountered (this is an alternative to specifying folders for the dependent implemnetation guides)

Output

The output consists of a set of files in /output:

  • validation.html - the result of validating the resources
  • fhir.css - the css file to use for all the generated content
  • header.fragment - what must be placed in header of the html files that use the generated fragments (.js and .css includes)
  • a set of files, different generated views of the resources
    • each file has name [id]-[type].html where [id] is the id of the resource, and [type] is the type of generated html fragment. Todo: enumerate the types
  • variables.json : an array of "name" : "value" pairs that provide useful information about fhir (e.g. version) so they can be built into the generated pages

Special file

There's a special file, page-map.json, which has an array of "[id]-[type]" : "[filename]" which tells the IG publisher where to direct links in the generated content. This should be in the same folder as the implementation guide resource.

Build

The build program (todo: investigate and choose the appropriate tool) builds from a series of html or markdown pages, and may be integrated as part of a server (e.g. GitHub). The html source files and build tool injects the files that the IG publisher generated into the final output.

todo: fill out the details of this