A docker image to help with FHIR Implementation Guide authoring using FHIR Shorthand (FSH).
It contains:
- SUSHI, a FSH compiler. SUSHI converts FSH language to FHIR artifacts
- GoFSH, a converter that takes FHIR artifacts (e.g., profiles, extensions, value sets, instances) and produces equivalent FSH
- FHIR IG Publisher prerequisites: Java, Git, Ruby, Jekyll
- Some terminal utilities:
- And Oh My Bash for a better shell experience
To learn how to get started, head over to our tutorial at https://bonfhir.dev/docs/guides/ig-toolbox
docker run -it --rm -v .:/workspaces ghcr.io/bonfhir/ig-toolbox
This will get you a shell where all the tools are available, and the current directory is volume-mounted.
To get started with a new sushi project, you can use sushi init
; to use it directly from the docker image simply start with:
docker run -it --rm -v .:/workspaces ghcr.io/bonfhir/ig-toolbox sushi init
To use the IG Puslisher, you'll need to execute the ./_updatePublisher.sh
script once after the project is generated.
You can simply setup a VS Code dev container setup in the current directory by running:
docker run -it --rm -v .:/workspaces ghcr.io/bonfhir/ig-toolbox add-vscode-files
(Or simply run add-vscode-files
if you are already in the container).
This will create 2 files:
.devcontainer/devcontainer.json
:
{
"name": "FSH in VS Code",
"image": "ghcr.io/bonfhir/ig-toolbox",
"remoteUser": "root",
"customizations": {
"vscode": {
"extensions": [
"MITRE-Health.vscode-language-fsh",
"jebbs.plantuml"
]
}
}
}
.vscode/tasks.json
to define tasks tp launch SUSHI and the IG Publisher:
{
"version": "2.0.0",
"tasks": [
{
"label": "Run SUSHI",
"type": "shell",
"command": "sushi .",
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "always",
"focus": false,
"panel": "shared",
"clear": false
},
"problemMatcher": []
},
{
"label": "Run IG Publisher",
"type": "shell",
"command": "./_genonce.sh",
"group": {
"kind": "build"
},
"presentation": {
"reveal": "always",
"focus": false,
"panel": "shared",
"clear": false
},
"problemMatcher": []
}
]
}
Use the add-profile <profile-name>
script to create a new Profile FSH file, and its companion Markdown file in the pagecontent
folder.
Use the add-fhir-resource-diagram <diagram-name>
to create a PlantUML class diagram that can be used to represent FHIR resources relationships.