Introduction to FHIR Terminology track
Background material for the intro to FHIR track
Presentation Material
- Fhir terminology services (YouTube)
- (Slides)
- Follow the yellow brick code (YouTube)
- (Slides)
Day 1
Time (AEST) | Hrs | Description | Notes |
11:30 | 0.25 | Introduction and orientation | |
11:45 | 1 | Presentation - intro to FHIR Terminology Services | Overview of the resources, operations and general use cases |
12.45 | 0.25 | Q&A | |
1:00 | 0.5 | Lunch | |
1:30 | 1 | Presentation - Follow the Yellow Brick Code | An exploration of the FHIR terminology services resources and operations through a (very) fictitious patient journey |
2:30 | 2 | Exercises - or your own thing! | Details below for some exercises for creating/managing FHIR Terminology resources and for using them. But if you have something from your own work that you want to try to do that's even better - we're happy to help with that. Use the FHIR chat as needed for support |
4:00 | 0.5 | Catch up | How's it all going? Resolve issues |
5.00 | Wrap up | Go over the exercises if interest (but there’s time tomorrow |
Day 2
Time (AEST) | Hrs | Description | Notes |
9:15 | 0.5 | Recap from previous day and Q&A | |
9:45 | 5.25 | Resume exercises with assistance available | |
2:30 | 0.5 | Wrap up and prep for main group show and tell |
Exercises: Content
Exercise | Description | Success |
Create CodeSystem | Create a CodeSystem for Australian jurisdictions. Include hierarchy to indicate which are states and which are territories. Create another CodeSystem from a spreadsheet or other tabular source. If you don't have one of your own, try For convenience Wikipedia's list has been turned into CSV and XLSX - organisms.csv, organisms.xlsx | Browse CodeSystem in Shrimp |
Map CodeSystem | Map the created CodeSystem to SNOMED CT or LOINC | Can translate using the ConceptMap in Postman |
Create a ValueSet | Create a ValueSet for a subset of codes. If you need an example, create a set for diabetes conditions in SNOMED CT | Browse the ValueSet in Shrimp |
ECL challenge 1 | Create an ECL expression to define a ValueSet for all the different types of stroke. | |
ECL challenge 2 - bonus points | Create an ECL expression to define a ValueSet for all substances, which are an active ingredient in any product containing paracetamol (90332006). |
Exercises: Technical
Exercise | Description | Success |
Simple search | Step 1 - typeahead search Create a UI in your favourite technology that allows a user to select a concept from a CodeSystem restricted to a ValueSet. Display the selected concept details. If you don't have one to work with from your own use cases try the Emergency Department Reference Set 32570361000036108 (ValueSet URI: http://snomed.info/sct?fhir_vs=refset/32570361000036108). If you want a starting point there's a Let's Build project at https://github.com/jimsteel/termdemo that has a good starting point and follow along instructions. Step 2 - boosting Update your search from step 1 to search from all clinical findings http://snomed.info/sct?fhir_vs=isa/404684003, but boost the members of the Emergency Department Reference Set 32570361000036108 http://snomed.info/sct?fhir_vs=refset/32570361000036108. Try searching for "hyper" or "anxiety" or "diabetes" with and without the boosting. Documentation can be found at https://ontoserver.csiro.au/docs/6/ext-boosting-vs.html Step 3 - dynamic widget types Try different types of UI controls for ValueSets of different sizes - for example radio buttons for less than 5 options, autocomplete type-ahead search for long lists. For small ValueSets try
| User can search for and select a concept. |
Suggest a replacement | Identify an inactive SNOMED CT concept and provide a list of possible replacements from SNOMED CT's historical association reference sets - these are exposed as "implicit ConceptMaps" with the following URIs
You could allow a user to paste in an inactive SNOMED CT concept ID or a list of IDs, or you could try to allow users to search the inactive concepts in SNOMED CT and select one. | User can find replacements of different types for an inactive concept |
Validate codes | Is the following coding valid in the implicit ValueSet for the reference set 32570361000036108 from SNOMED CT-AU? How would you find out? { | |
Fix an invalid FHIR resource | Provided the example FHIR resource, use the server's validation API to find and fix the validation errors. InvalidAllergyIntolerance.xml | Valid FHIR resource |
ValueSet differences | Find the difference in the expansion of a ValueSet using two different versions of a terminology. For example the new and removed "Containered Trade Product Pack" (CTPP) concepts in AMT between two versions of SNOMED CT-AU - this is the implicit ValueSet URI for CTPP concepts http://snomed.info/sct?fhir_vs=refset/929360051000036108. | |
Query exercise | How many of the following does the Australian Emergency Department Reference Set 1244621000168103 contain
How do those numbers compare to all of SNOMED CT? |
Test servers
Server | Url |
Demo server for the connectathon | https://ontoserver-test-example.australiaeast.cloudapp.azure.com/fhir |
Ontoserver R4 sandbox |
(If you have a test server, let me know and I’ll add it to to the list)
Useful links
FHIR terminology service UI exemplars
NCTS | NCTS - CodeSystem | NCTS - ValueSet | NCTS - ConceptMap