Aligning the FAIR data principles and HL7 FHIR profiling

Tutorial for SWAT4HCLS 2024 conference in Leiden.

View the Project on GitHub IMISE/fhir4fair-swat4hcls2024

Working with FHIR Shorthand

FSH is usually used for “profiling”, which basically means restricting cardinalities, limiting codes to a certain set and adding more use case semantics to the very generic FHIR resources. It can also be used to creates instance that conform to a given specification and that is what we want to do in our limited setting.

Creating FHIR instances with FSH

For the practical work in the tutorial, we recommend working with FHIR Short Hand (FSH), a DSL that can be translated into FHIR and, unlike JSON or XML, has the advantage that there is a clearly legible instruction in every line. Some help will be found there.

FSH is stored in text files in real projects and translated into FHIR using a compiler (SUSHI). It is also possible to return FHIR to FSH (GoFSH). Due to the more complex configuration of SUSHI, we use a web tool that provides the most important functions in a small GUI. FSH Online contains a range of FSH templates in the FSH Examples menu item that you can use to get started.

Alternatively, FSH can also be written in the tool Simplifier. Here there are more options for translation, e.g. in FHIR-XML or as an HTML view, but no return path.

Validating FHIR

Even if a resource can be translated from FSH to JSON without errors, problems are still possible that the compiler does not recognize. To ensure the conformity of a structure, it must be validated against the generic FHIR resource. There are various validators with different quality levels depending on the principle. Two of them can be called up as a web tool:

Simplifier can also validate against a profile deposited in the Simplifier registry:

Advanced Tooling

There is a whole ecosystem of useful tools that make working with FSH and FHIR easier. However, these will not be used in this tutorial.

Visual Studio Code extensions

Extensions extend the functionality of VS Code, a popular programming IDE.

FHIR Servers (public)

FHIR Servers (local deployment)

Postman

Postman is a well-known API client that allows the create and send complex HTTP REST queries.

ClinFHIR

ClinFHIR is a portal of different tools for playing with FHIR or demonstration purposes. It includes a Patient Viewer, Scenario Builder, Logical Modeller, CodeSystem builder, Extension Definition builder and a Query Tool.

FEvIR PlatMit freundlichen Grüßen

The FEvIR Platform includes many Builder Tools to create FHIR® Resources without requiring expertise in FHIR® or JSON, and Converter Tools to convert structured data to FHIR® Resources.