Vanna Health IG
0.0.2 - ci-build
Vanna Health IG - Local Development build (v0.0.2) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Developer reference for working with this IG.
fhir/README.md
for instructions for using this repoThe intention is to document every piece of FHIR that is used at Vanna. For new fields, add the necessary FSH information and the publishing process will add the fields to the documentation. For existing fields, please mark them as “must support” (MS
) and add a short description (^short
) of where they are used.
Example:
* name MS
* name ^short = "Both official name and nicknames"
Writing FSH can be tedious as the language is terse and esoteric. So far, the most successful approach has been to utilize the Language Reference in combination with the reverse engineering the SDOH CC IG source code.
The best training resource found to date is Deep Dive with FSH.
Other helpful links:
Sometimes the easiest path is to start with a json resource and convert it to FSH before editing it. To do so:
npx gofsh <fhir-example.json>
Creating an Implementation Guide is frustrating due to how poorly documented the process and technology are. Writing an IG uses a combination of tools that you may need to familiarize yourself with if you plan on altering the IG, as opposed to simply editing content (.md
, .fsh
). Understanding the IG publisher, SUSHI, and Jekyll is recommended.
The “official docs” are bad. The only half decent resources found so far:
There are a few options for adding content to the IG:
pagecontent
and link to them in the menu bar or include them with jekyll[ArtifactType]-[id]-[suffix].md
where:
ArtifactType
is the artifact type such as StructureDefinition
, ValueSet
, etc.id
is the resource name from the FSH declaration like Profile: name
suffix
is either intro
for introduction before the table or notes
for notes for afterStructureDefinition-VannaPatient-notes.md
will appear after the table on the Patient resourceDescription:
to the top-level of the FSH resource which will appear above the Formal Views tableTo add to the menu bar, edit the menu
entry in sushi-config.yaml
.
Specifics on the IG directory structure:
A custom Jekyll template (ig/local-template
) is used to customize the appearance of the IG. The ig.ini
file is points the IG Publisher at the custom template, which is merged with the base template fhir.base.template#current
. Instructions to set this up and to edit the colors are at Guidance for FHIR IG Creation > Customization.
Honestly, this is a time sink. Just don't if you don't have too. There's some evil dark magic deep in the IG Publisher jar that's doing god knows what. Take this dragon here - sure it's just a css class - but it's just tip of the magic, undocumented iceberg. The styling is good enough.
Often the only method of implementing a given pattern is to find an example in the wild and to copy the pattern from the source repo. Below are a few IGs that have been referenced to construct this one.
Sample IGs: