Introduction to FHIR Terminology track

Background material for the intro to FHIR track

Presentation Material

Day 1

Time (AEST)




11:300.25Introduction and orientation

Presentation - intro to FHIR Terminology Services

Overview of the resources, operations and general use cases




Presentation - Follow the Yellow Brick Code

An exploration of the FHIR terminology services resources and operations through a (very) fictitious patient journey



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



Catch up

How's it all going?

Resolve issues


Wrap up

Go over the exercises if interest (but there’s time tomorrow

Day 2

Time (AEST)




9:150.5Recap from previous day and Q&A



Resume exercises with assistance available
2:300.5Wrap up and prep for main group show and tell

Exercises: Content




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
Wikipedia's List of microorganisms used in food and beverage preparation. Consider using hierarchy and properties.

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




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:

If you want a starting point there's a Let's Build project at 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, but boost the members of the Emergency Department Reference Set 32570361000036108

Try searching for "hyper" or "anxiety" or "diabetes" with and without the boosting.

Documentation can be found at

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?

  "name": "coding",
  "valueCoding": {
   "code": "241649002",
   "system": "",
   "display": "MRI"

Fix an invalid FHIR resource

Provided the example FHIR resource, use the server's validation API to find and fix the validation errors.


Valid FHIR resource
ValueSet differencesFind 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
Query exercise

How many of the following does the Australian Emergency Department Reference Set 1244621000168103 contain

  • diabetes conditions
  • diabetes conditions other than gestational diabetes
  • lung diseases
  • left lung diseases
  • left lung diseases that aren't infections

How do those numbers compare to all of SNOMED CT?

Test servers



Demo server for the connectathon

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


The FHIR specification


NCTS | NCTS - CodeSystemNCTS - ValueSet | NCTS - ConceptMap

Ontoserver documentation

Ontoserver Postman collection

ECL Specification