SNOMED on FHIR - Exercises
Find this page online at: http://snomed.org/fhir-exercises
In these hands on exercises, you will learn how to query FHIR Terminology Services to retrieve SNOMED CT content using advanced queries leveraging the SNOMED CT ontology. For this we will use the SNOMED International open source Terminology Server, Snowstorm, https://github.com/IHTSDO/snowstorm.
After completing this tutorial, you will be able to use the FHIR Terminology Services API to:
Retrieve information for a given concept
Search for SNOMED CT content based on
Simple search terms
Reference sets
Expression Constraint Language (ECL) queries
Find map targets for give SNOMED CT content
Examples can be found documented in the Snowstorm repository - https://github.com/IHTSDO/snowstorm/blob/develop/docs/using-the-fhir-api.md
A list of FHIR operations and their parameters can be found here: http://hl7.org/fhir/operationslist.html
Installing a browser extension like JSONView can be useful for "pretty" formatting JSON when requesting FHIR resources directly on the browser address bar.
All these exercises are intended to guide you through retrieving SNOMED CT content. However, if you have applications/code where the results of queries can be directly used, you are likely to get more benefit from the exercises. And of course, you can retrieve other content that is not necessarily specified here.
For these exercises, participants can access: https://snowstorm-fhir.snomedtools.org/fhir/ (this is a read-only instance)
Alternatively Follow instructions at https://github.com/IHTSDO/snowstorm/blob/master/docs/getting-started.md to install a local instance of Snowstorm and load an edition of SNOMED CT.
Scenario #1 - 'Ello 'Ello, what have we here then?
Just hit the base endpoint and check there's someone at home. (Hint: cutting and pasting never goes out of style)
Discover the capabilities of a SNOMED International Snowstorm terminology server (hint: we're looking for metadata here)
Get a list of all CodeSystem instances available on the server (hint: You don't need to say much!)
Scenario #2 - Unidentified Object on Short Range Scan!
Let's say you receive a message with a code in it 840539006. How would you check if that's a valid SNOMED CT code? (Hint: use the CodeSystem $validate-code operation)
And let's say you received that same code with display text of "Disease caused by 2019-nCoV" is that even the same thing? (Hint $validate-code this time including a display parameter)
Now you receive a record that shows a patient has an allergy to 443971000124108 and a check of browser.ihtsdotools.org shows it's not a concept in the International Edition. Is it in ANY known edition?
Scenario #3 - On Closer Examination...
Retrieve information for the concept with the following SNOMED CT identifier,
(Hint: get more detail about concepts using the $lookup operation)
Retrieve terms (designations) for
in Spanish (hint: language code for Spanish is es and the URI for the Spanish Edition is http://snomed.info/sct/449081005)
As part of a pharmacovigilence application, you need to check the ingredients for 371220007. How can you recover the attributes of this concept to investigate the ingredient concepts further? (Hint: you need to ask for the normal form property)
Find more URIs (containing module ids) for various country editions here: 4.4.2 Edition URI Examples
Scenario #4 - Search and Destroy! Actually, just search.
A friend of yours wants to know how many different types of cancer there are. How many does SNOMED CT know about? (Hint the top level concept for cancer is
and you can create an implicit ValueSet using isa )
Retrieve all concepts related to asthma, returning results in Spanish
Find the ICD-10 map targets for
Hint: The URI for ICD-10 is http://hl7.org/fhir/sid/icd-10 and the URL containing the SCTID for SNOMED CT's ICD-10 map is http://snomed.info/sct?fhir_cm=447562003
Scenario #5 - Advanced querying with ECL and implicit Valuesets (No hints!)
In order to populate fields in your General Practice Medical application, you need to create implicit ValueSets using ECL to return:
All the concepts that are members of the
All the concepts that are members of the General Practice / Family Practice reference set and are a type of
All concepts that are respiratory disorders due to an allergic reaction to pollen
Copyright © 2025, SNOMED International