FHIR Shorthand (FSH) is a domain-specific language (DSL) for defining the contents of FHIR Implementation Guides (IG). The language is specifically designed for this purpose, simple and compact, and allows the author to express their intent with fewer concerns about underlying FHIR mechanics. FSH can be created and updated using any text editor, and because it is text, it enables distributed, team-based development using source code control tools such as Github.
These are categories of potential users, implementers, or other interested parties such as those that are indicated on the Project Scope Statement under “Stakeholders/Vendors/Providers”. Select those that are applicable, or suggest others:
Standards Development Organizations (SDOs)
FHIR Shorthand (FSH) simplifies the task of creating FHIR profiles, extensions, value sets, extensions and other artifacts needed for a FHIR IG. FSH provides a grammar is designed to express exactly what you want to do when profiling. It is a declarative language in which you specify what is to be done rather than how to do it. FSH language is readable and easily understandable. FSH is designed to be used with source code control-systems that support distributed development and meaningful version-to-version change tracking. FSH substantially speeds up IG projects.
54. Implementations/Case Studies
There are currently over 40 profiling projects using FHIR Shorthand. Examples include Logica COVID-19 FHIR Profile Library IG and the SANER (Situational Awareness for Novel Epidemic Response) IG.
55. Development Background
There are already several existing methods for IG creation: hand editing definitions, using Excel spreadsheets, Simplifier/Forge, and Trifolia-on-FHIR. Each of these methods have certain advantages as well as drawbacks:
* Hand-editing StructureDefinitions (SDs) is unwieldy, but authors get full control over every aspect of the resulting profiles and extensions.
* The spreadsheet method has existed since before FHIR 1.0 and has been used to produce sophisticated IGs such as US Core. A downside is that version management is difficult; either the files are saved in binary form (.xslx) or as XML files, with the content mixed with formatting directives.
* Simplifier/Forge and Trifolia-on-FHIR provide graphical interfaces that help guide users through common tasks. The potential downside is the need to navigate multiple screens visit different items and make cross-cutting changes.
Experience across many domains has shown that complex software projects are best approached with textual languages. As a language designed for the job of profiling and IG creation, FSH is concise, understandable, and aligned to user intentions. Users may find that the FSH language representation is the best way to understand a set of profiles. Because it is text-based, FSH brings a degree of editing agility not found in graphical tools (cutting and pasting, global search and replace, spell checking, etc.) FSH is ideal for distributed development under source code control, providing meaningful version-to-version differentials, support for merging and conflict resolution, and nimble refactoring. These features allow FSH to scale in ways that other approaches cannot. Any text editor can be used to create or modify FSH, but advanced text editor plugins may also be used to further aid authoring.
A reference implementation, SUSHI, has been created that compiles FSH into FHIR artifacts, ready for the HL7 FHIR IG Publisher.