This is the documentation for SUSHI and GoFSH. (This is not the FSH documentation; see the following section for more details.)

What is FSH?

FSH (FHIR Shorthand) is a specially-designed language for defining the content of HL7 FHIR Implementation Guides (IGs). It is designed to be simple and compact, and along with SUSHI can be used to produce FHIR profiles, extensions, and IGs.

If you are new to FHIR and FSH, or want more information, please see below.

What is SUSHI?

SUSHI (SUSHI Unshortens ShortHand Inputs) is a FSH compiler. SUSHI converts FSH language to FHIR artifacts. SUSHI can run in stand-alone mode or as part of the HL7 IG Publisher.

SUSHI documentation

What is GoFSH?

GoFSH is a converter that takes FHIR artifacts (e.g., profiles, extensions, value sets, instances) and produces equivalent FSH. GoFSH is essentially the opposite of SUSHI. GoFSH helps you transition to FSH if you have an existing Implementation Guide produced by other methods.

GoFSH documentation

FSH School Conventions

The following style conventions are used throughout the FSH School content:

Style Explanation Example
Code Code fragments, such as commands, FSH statements, and syntax expressions * status = #open
{curly braces} An item to be substituted in a syntax expression {display string}
<datatype> An element or path to an element with the given data type, to be substituted in the syntax expression <CodeableConcept>
italics An optional item in a syntax expression ”{string}“
ellipsis (…) Indicates a pattern that can be repeated {flag1} {flag2} {flag3} …
bold A directory path or file name example-1.fsh

In addition, the following symbols are used in documented commands:

Symbol Explanation
Indicates information or command specific to OS X. Commands can be run within the Terminal application.
Indicates information or command specific to Windows. A command window can be launched by typing cmd at the Search Windows tool.
Represents command prompt (may vary depending on platform)

Getting started with FHIR and FSH

FHIR and FHIR Profiling

Most FSH School resources assume a basic understanding of FHIR and FHIR profiling. A good way to get started is to go through our self-service FSH Seminar course: Getting Started with New Tools to Create Swimmingly Slick Implementation Guides. This covers how to read FHIR IGs and how to use FSH for FHIR Profiling.

Readers who are new to FHIR should also view the FHIR Specification (also linked in the right-hand sidebar). You may find the following more specific links helpful as well:

  • Profiling: Provides information and guidance on profiling topics such as constraining and slicing.
  • Extensibility: Provides information about using and defining extensions.
  • Resources: Lists all FHIR resources. Useful for referencing available elements as you write profiles.
  • DataTypes: Lists all FHIR datatypes. Useful for understanding types declared in resource elements.
  • StructureDefinition: Documents StructureDefinition (basis for resources, profiles, and extensions). Useful for authoring top-level caret rules.
  • ElementDefinition: Documents ElementDefinition (basis for elements in resources, profile, and extensions). Useful for authoring path-specific caret rules.

Additionally, these other resources may be of interest:


We recommend new FSH authors start with the overview and review the language reference that are part of official FSH Specification when additional details are needed.

Additionally, all FSH authors are strongly recommended to go on the Deep Dive with FSH (part of our self-service FSH Seminar course).


This section contains the documentation for SUSHI, a tool that converts FSH language to FHIR artifacts


This section contains the documentation for GoFSH, which turns FHIR artifacts into FSH definitions

Visual Studio Code Extension

If you use Visual Studio Code (VS Code) as your editor, you can install this extension to provide FSH syntax highlighting and other producitvity enhancements