-In `input/fsh/profile_practitioner.fsh`, [define a profile](http://hl7.org/fhir/uv/shorthand/reference.html#defining-profiles) based on [US Core's Practitioner profile](http://hl7.org/fhir/us/core/2021Jan/StructureDefinition-us-core-practitioner.html):
+In `input/fsh/profile_practitioner.fsh`, [define a profile](http://hl7.org/fhir/uv/shorthand/reference.html#defining-profiles) based on [US Core's Practitioner profile](https://hl7.org/fhir/us/core/STU6.1/StructureDefinition-us-core-practitioner.html):
```
Profile: OSAPractitioner
@@ -518,7 +530,7 @@ Note that you will need to add the `$USCorePractitioner` alias to `aliases.fsh`.
This is part of the [Part 3] exercise, so the solution is hidden (
show solution).
-In `input/fsh/profile_clinical.fsh`, [define a profile](http://hl7.org/fhir/uv/shorthand/reference.html#defining-profiles) based on [US Core's Condition profile](http://hl7.org/fhir/us/core/2021Jan/StructureDefinition-us-core-condition.html):
+In `input/fsh/profile_clinical.fsh`, [define a profile](http://hl7.org/fhir/uv/shorthand/reference.html#defining-profiles) based on [US Core's Condition profile](https://hl7.org/fhir/us/core/STU6.1/StructureDefinition-us-core-condition.html):
```
Profile: OSACondition
@@ -541,13 +553,14 @@ You should now be familiar with most of the contents of this profile, with a few
- The `Description` declaration includes Markdown syntax, which will be converted to HTML by the IG publisher pipeline.
- The `onset[x] ^short` rule provides a short narrative description of the element. This will be covered more in [Part 4].
+- The `Extension` declaration is used to start an extension definition (which generally follows the same approach as profile definitions).
Note that you will need to add the `$USCoreCondition` alias to `aliases.fsh`.
##### Profile: Observation
-In `input/fsh/profile_clinical.fsh`, [define a profile](http://hl7.org/fhir/uv/shorthand/reference.html#defining-profiles) based on [US Core's BMI profile](http://hl7.org/fhir/us/core/2021Jan/StructureDefinition-us-core-bmi.html):
+In `input/fsh/profile_clinical.fsh`, [define a profile](http://hl7.org/fhir/uv/shorthand/reference.html#defining-profiles) based on [US Core's BMI profile](https://hl7.org/fhir/us/core/STU6.1/StructureDefinition-us-core-bmi.html):
```
Profile: OSABodyMassIndex
@@ -561,9 +574,9 @@ Description: "Body mass index, or BMI, is a measure of body size. It combines a
##### Creating examples
-When creating examples, note that if you are basing your profile on another profile rather than the base FHIR resource, there could be additional required elements and constraints that are inherited from those parent profiles. For example, the [US Core Condition Profile](http://hl7.org/fhir/us/core/2021Jan/StructureDefinition-us-core-Condition.html) requires [Condition.category](http://hl7.org/fhir/us/core/2021Jan/StructureDefinition-us-core-Condition.html).
+When creating examples, note that if you are basing your profile on another profile rather than the base FHIR resource, there could be additional required elements and constraints that are inherited from those parent profiles. For example, the [US Core Condition Profile](https://hl7.org/fhir/us/core/STU6.1/StructureDefinition-us-core-Condition.html) requires [Condition.category](https://hl7.org/fhir/us/core/STU6.1/StructureDefinition-us-core-Condition.html).
-Examples also go in `input/fsh/` just like profile definitions. You can actually put them in the same file as a profile definition, which can get messy for a large IG but is fine for this example.
+Examples also go in `input/fsh/` just like profile definitions. You can actually put them in the same file as a profile definition, but this can get messy in large IGs.
Create a new file called `input/fsh/examples.fsh` and append the following FSH:
@@ -582,7 +595,7 @@ Description: "Example OSA Patient."
* extension[birthPlace].valueAddress.state = "MA"
```
-Run `_genonce` again and you should then see an "Examples" tab appearing on the page for your `OSAPatient` profile. You should also be able to open `output/Patient-osa-patient-jane-doe.html` by following the links in the built IG.
+Run `_build` again and you should then see an "Examples" tab appearing on the page for your `OSAPatient` profile. You should also be able to open `output/Patient-osa-patient-jane-doe.html` by following the links in the built IG.
The human-readable "Narrative Content" view of examples in the IG publisher is often missing a lot of data. Use the JSON view as an alternative to see all the data:
diff --git a/fsh-seminar/input/pagecontent/03-exercise.md b/fsh-seminar/input/pagecontent/03-exercise.md
index 0cdb497..542453f 100644
--- a/fsh-seminar/input/pagecontent/03-exercise.md
+++ b/fsh-seminar/input/pagecontent/03-exercise.md
@@ -4,12 +4,12 @@ The goal of this hands-on exercise is to provide experience working with the con
### Premise
-As a FHIR implementation modeler, author a FHIR Implementation Guide (IG) based on [FHIR 4.0.1](http://hl7.org/fhir) for the fictitious use case scenario [described in Part 2](http://localhost:4321/fshschool-ig-authoring/02-creating-an-ig.html#how-do-you-create-an-ig%E2%8F%AF-video-versionto-view-this-v), and reproduced below for convenience:
+As a FHIR implementation modeler, author a FHIR Implementation Guide (IG) based on [FHIR 4.0.1](https://hl7.org/fhir/R4/index.html) for the fictitious use case scenario [described in Part 2](02-creating-an-ig.html#how-do-you-create-an-ig), and reproduced below for convenience:
**Hypothetical problem:**
-> The Obstructive Sleep Apnea Association (OSAA - a fictitious clinical organization based in the U.S.) is looking to evaluate the impact of obesity as a risk > for Obstructive Sleep Apnea (OSA). OSAA needs a way to ensure the relevant clinical data are collected in a standard, interoperable format from participating member sites.
+> The Obstructive Sleep Apnea Association (OSAA - a fictitious clinical organization based in the U.S.) is looking to evaluate the impact of obesity as a risk for Obstructive Sleep Apnea (OSA). OSAA needs a way to ensure the relevant clinical data are collected in a standard, interoperable format from participating member sites.
**Participants:**
@@ -45,7 +45,7 @@ The use case for this work is as follows:
### Tasks
-1. Add remaining FHIR profiles based on the [Resources Model from Part 2](02-creating-an-ig.html#mapping-high-level-information-model-to-fhir-resources), aligning with with [FHIR U.S. Core 3.2](http://hl7.org/fhir/us/core/2021Jan/) profiles where possible:
+1. Add remaining FHIR profiles based on the [Resources Model from Part 2](02-creating-an-ig.html#mapping-high-level-information-model-to-fhir-resources), aligning with with [FHIR US Core 6.1](https://hl7.org/fhir/us/core/STU6.1/) profiles where possible:
1. Practitioner profile (`OSAPractitioner`) ([solution](02-creating-an-ig.html#profile-practitioner))
2. OSA Condition profile (`OSACondition`) ([solution](02-creating-an-ig.html#profile-condition))
2. Create an example of `OSAPractitioner` (solution at bottom of [this section of Part 2](02-creating-an-ig.html#creating-examples))
@@ -53,7 +53,7 @@ The use case for this work is as follows:
> Were there any FHIR limitations in what is needed to create a representative model that addresses this use case? If yes, what were they and what changes or workarounds would you propose?
-4. Successfully build your IG locally with `_genonce` and attempt to resolve any errors on the `output/qa.html` page.
+4. Successfully build your IG locally with `_build` and attempt to resolve any errors on the `output/qa.html` page. _NOTE: You may also see some warning, but just focus on resolving the errors for now._
### Additional notes
@@ -64,11 +64,12 @@ The use case for this work is as follows:
### Helpful tips, tools, and references
-- Check the QA report (`output/qa.html`) as you build the IG with `_genonce` to identify any FHIR validation issues that aren't caught by SUSHI.
-- If you just want to quickly test how to represent and validate a contained construct in FSH without having to run the IG publisher, try it using [FSHOnline](https://fshschool.org/FSHOnline/#/)
+- Check the QA report (`output/qa.html`) as you build the IG with `_build` to identify any FHIR validation issues that aren't caught by SUSHI.
+- If you just want to quickly test how to represent and validate a contained construct in FSH without having to run the IG publisher, try it using [FSHOnline](https://fshschool.org/FSHOnline/#/).
+ - If your FSH references US Core profiles or extensions, you'll need to add `hl7.fhir.us.core#6.1.0` as a dependency in the FSH Online configuration.
- Want to see more FSH examples? Go to [FSHOnline](https://fshschool.org/FSHOnline/#/) and click on the "FSH Examples".
- Want to see how another IG's StructureDefinitions in JSON could be represented in FSH? Also try it using [FSHOnline](https://fshschool.org/FSHOnline/#/). Cut and paste your JSON into the right column and click on _Convert to FSH_ to see the syntax.
-- Try using some of the nice perks in the [vscode-language-fsh](https://marketplace.visualstudio.com/items?itemName=MITRE-Health.vscode-language-fsh) extension to help navigate references between your authored FHIR constructs (profiles, value sets, extensions, etc.)
+- Try using some of the nice perks in the [vscode-fsh](https://marketplace.visualstudio.com/items?itemName=FHIR-Shorthand.vscode-fsh) extension to help navigate references between your authored FHIR constructs (profiles, value sets, extensions, etc.)
- Other neat VSCode extensions to help create a more authoring-friendly VSCode environment:
- [Markdown Preview Github Styling](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-preview-github-styles) - provides a basic dynamic rendering of your markdown page while you type (but note that embedded images won't be rendered in the preview due to the directory structure).
- [Draw.io integration](https://marketplace.visualstudio.com/items?itemName=hediet.vscode-drawio) - integrates Draw.io/diagrams.net into VSCode so that you can create nice diagrams directly inside your IG authoring environment
@@ -94,7 +95,7 @@ In addition to the elements of the solution embedded in Part 2, the full solutio
| `OSAPractitioner` | `Practitioner.identifier.type` | Practitioner NPI | Fix identifier type = NPI |
| `OSACondition` | `Condition.code` | OSA diagnosis code | Fix to `OSADiagnosisVS` containing provided ICD-10-CM codes |
| `OSACondition` | `Condition.extension[AgeAtOSADiagnosis]` | OSA onset date | |
-| `OSACondition` | `Condition.asserter` | managing provider who diagnosed OSA | |
+| `OSACondition` | `Condition.asserter` | Managing provider who diagnosed OSA | |
| `OSABodyMassIndex` | `Observation.code` | Body Mass Index (BMI) | Fix code to `39156-5 "Body mass index (BMI)"` |
| `OSABodyMassIndex` | `Observation.effectiveDateTime` | Body Mass Index (BMI) | |
| `OSABodyMassIndex` | `Observation.valueQuantity` | BMI measurement | BMI Measurement |
diff --git a/fsh-seminar/input/pagecontent/fhir-resources.md b/fsh-seminar/input/pagecontent/fhir-resources.md
index 31822fb..314983c 100644
--- a/fsh-seminar/input/pagecontent/fhir-resources.md
+++ b/fsh-seminar/input/pagecontent/fhir-resources.md
@@ -5,6 +5,7 @@
- [Architecture overview](http://hl7.org/fhir/overview-arch.html)
- [IG best practices](https://build.fhir.org/ig/FHIR/ig-guidance/branches/master/best-practice.html) (note that this has not officially been published yet, but [the authors are some of the FHIR-I leaders](https://github.com/FHIR/ig-guidance/))
- Intro to FHIR videos
- - [45 minutes, from 2023](https://www.youtube.com/watch?v=6PkDXAEmkbE)
- - [90 minutes, from 2020](https://www.youtube.com/watch?v=YbQcJj1GqH0)
-- The FHIR Confluence site, e.g., [Guide to Designing Resources](https://confluence.hl7.org/display/FHIR/Guide+to+Designing+Resources), but there are many other pages that may be of interest
\ No newline at end of file
+ - [45 minutes, from 2025](https://youtu.be/Dz3HOaf6e-0)
+ - [90 minutes, from 2020](https://youtu.be/YbQcJj1GqH0)
+- The FHIR Confluence site, e.g., [Guide to Designing Resources](https://confluence.hl7.org/display/FHIR/Guide+to+Designing+Resources), but there are many other pages that may be of interest
+- Search the archives or ask for help at [chat.fhir.org (a.k.a. Zulip)](https://chat.fhir.org/)
\ No newline at end of file
diff --git a/fsh-seminar/input/pagecontent/index.md b/fsh-seminar/input/pagecontent/index.md
index 4e4c623..3ae6109 100644
--- a/fsh-seminar/input/pagecontent/index.md
+++ b/fsh-seminar/input/pagecontent/index.md
@@ -6,12 +6,12 @@ This course is a comprehensive overview of IG authoring for those interested in
### Learning objectives
-1. Become familiar with the FHIR specification, and commonly used FHIR resources and element types.
+1. Become familiar with the FHIR specification, and commonly used FHIR resources and element types
2. Learn the recommended process for successfully planning a new IG
3. Gain proficiency with the FHIR Shorthand ecosystem of tools (FSH, GoFSH, SUSHI)
4. Learn how to create the common components of an IG, including FHIR profiles, code systems, and value sets
5. Learn about key FHIR profiling concepts including value set binding, cardinality, MustSupport, slicing, and extensions
-6. Awareness of common clinical code systems including LOINC, SNOMED, ICD10, and code systems in the HL7 terminology list
+6. Understand the purpose of common clinical code systems including LOINC, SNOMED, ICD10, and code systems in the HL7 terminology list
### Prerequisites
@@ -47,7 +47,7 @@ We recommend completing the course materials over two days as described below.
Complete the setup instructions
-
~1 hour; help available on chat.fhir.org |
+
~1 hour; help available on chat.fhir.org |
@@ -62,7 +62,7 @@ We recommend completing the course materials over two days as described below.
What's the purpose of an IG?
What are the common components of an IG?
How to approach reading an unfamiliar IG
- Review of the SMART Health Cards: Vaccination & Testing IG
+ Review of the minimal Common Oncology Data Elements (mCODE) IG
| ~1 hour |
@@ -106,7 +106,17 @@ We recommend completing the course materials over two days as described below.
Deep Dive With FSH |
- - TBD, but likely: slicing, extensions, invariants, CapabilityStatements and SearchParams
+ - IG Overview: review purposes and processes for creating FHIR IGs
+ - FSH Profiles: cardinality, flags, types, patterns, bindings, extensions, metadata
+ - Slicing: defining slicing logic, creating slices, referencing slices
+ - FHIRPath: path navigation, common expressions, testing and debugging
+ - Invariants: defining and using invariants (a.k.a. constraints)
+ - FSH Extensions: simple and complex extensions
+ - FSH Terminology: value sets and code systems
+ - FSH Instances: example and definition instances, rule sets, search parameters, operations, capability statements
+ - Narrative: creating pages in your IG and inserting content into formal definition pages
+ - Configuration: sushi-config.yaml and the ImplementationGuide resource
+ - GoFSH: converting an existing project to FSH
|
2-3 hours |
@@ -121,7 +131,7 @@ We recommend completing the course materials over two days as described below.
- Chris Moesel (MITRE)
- May Terry (MITRE)
-If you have questions or comments, please contact us on chat.fhir.org.
+If you have questions or comments, please contact us on chat.fhir.org.
MITRE: Approved for Public Release. Distribution Unlimited. Case Number 19-3439.
diff --git a/fsh-seminar/input/pagecontent/setup.md b/fsh-seminar/input/pagecontent/setup.md
index 6c05916..2f3b63c 100644
--- a/fsh-seminar/input/pagecontent/setup.md
+++ b/fsh-seminar/input/pagecontent/setup.md
@@ -1,20 +1,20 @@
### FHIR Background
-- [45 minute FHIR introduction video](https://www.youtube.com/watch?v=rJ_VEKiR55I) -- please consider viewing before the course begins
+- [35 minute FHIR introduction video](https://youtu.be/Dz3HOaf6e-0) -- please consider viewing before the course begins
### Local environment
As part of this course, you will edit and build a FHIR Implementation Guide on your computer. To do this, you will need the following:
-1. Install [Visual Studio Code](https://code.visualstudio.com) and the [FSH language extension](https://marketplace.visualstudio.com/items?itemName=MITRE-Health.vscode-language-fsh)
+1. Install [Visual Studio Code](https://code.visualstudio.com) and the [FSH language extension](https://marketplace.visualstudio.com/items?itemName=FHIR-Shorthand.vscode-fsh)
2. Install a Java runtime
3. Install Ruby and Jekyll using [these OS-specific instructions](https://jekyllrb.com/docs/installation/#guides)
4. Install SUSHI using [these directions](https://fshschool.org/docs/sushi/installation/)
5. Download the syllabus IG from `https://github.com/FSHSchool/courses-fsh-seminar-exercise/archive/refs/heads/main.zip` and unzip it, or `git clone https://github.com/FSHSchool/courses-fsh-seminar-exercise.git`
-6. Open a Terminal/Command Prompt window inside the IG folder, and run `./_updatePublisher.sh` (Mac/Linux) or `_updatePublisher.bat` (Windows) from the command line.
- - This will automatically download the latest `publisher.jar` release from and put it in the `input-cache/` folder inside the IG folder.
- - The IG folder will be `courses-fsh-seminar-exercise-main/input-cache/` if you used the `.zip` download, or `courses-fsh-seminar-exercise/input-cache/` if you used `git clone`.
-7. Run `./_genonce.sh` (Mac/Linux) or `_genonce.bat` (Windows)
+ - The IG folder will be `courses-fsh-seminar-exercise-main/` if you used the `.zip` download, or `courses-fsh-seminar-exercise/` if you used `git clone`.
+6. Open a Terminal/Command Prompt window inside the IG folder, and run `./_build.sh update` (Mac/Linux) or `_build.bat update` (Windows) from the command line, answering `Y` to each of the prompts
+ - This will automatically download the latest `publisher.jar` release from and put it in the `input-cache/` folder inside the IG folder
+7. Run `./_build.sh build` (Mac/Linux) or `_build.bat build` (Windows)
8. Open `output/index.html` from inside your IG folder. You should see a mostly-empty IG home page that says "FSHSeminarExercise" on it.
### JSON background
diff --git a/index.html b/index.html
index d8f0b3e..d74da58 100644
--- a/index.html
+++ b/index.html
@@ -96,7 +96,7 @@
- Questions? Ask on Zulip.
+ Questions? Ask on Zulip.