FHIR - Further Exercises
During the hands-on session, you will learn how to query Terminology Services to retrieve SNOMED CT content using advanced queries leveraging the SNOMED CT ontology. This will be using, and therefore based around the capabilities, of the SNOMED International open source Terminology Server, Snowstorm, https://github.com/IHTSDO/snowstorm.
After completing these exercises, you will be able to use both the native Snowstorm API and the FHIR Terminology Services API:
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
Create and retrieve value sets
Examples can be found documented in the Snowstorm repository - https://github.com/IHTSDO/snowstorm/blob/develop/docs/using-the-fhir-api.md or in Postman here, https://documenter.getpostman.com/view/462462/S1TVXJ3k
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 the purpose of the exercises, use the following endpoint - https://snowstorm-fhir.snomedtools.org/fhir/
Questions
Exercise #1 - Simple Content Retrieval
Discover the capabilities of SNOMED International Snowstorm terminology server
Retrieve the information for the concept with the following SNOMED CT identifier,
{"timestamp":1757981188312,"msg":"A unknown Exception Occurred","errorMsg":"The provided AtlassianHostUser did not specify a user to act as.","code":"500"}.Retrieve the information for the concept with the following SNOMED CT identifier,
{"timestamp":1757981188372,"msg":"A unknown Exception Occurred","errorMsg":"The provided AtlassianHostUser did not specify a user to act as.","code":"500"}in SpanishRetrieve the normal form for the concept with the following SNOMED CT identifier,
{"timestamp":1757981188298,"msg":"A unknown Exception Occurred","errorMsg":"The provided AtlassianHostUser did not specify a user to act as.","code":"500"}.
Exercise #2 - Content Searching
Retrieve all types of cancer
Retrieve all concepts related to asthma, returning results in Spanish
Find the ICD-10 map targets for
{"timestamp":1757981188371,"msg":"A unknown Exception Occurred","errorMsg":"The provided AtlassianHostUser did not specify a user to act as.","code":"500"}
Exercise #3 - Advanced querying with ECL
Create ECL queries to retrieve the following results:
Find all the concepts that are members of the
{"timestamp":1757981188356,"msg":"A unknown Exception Occurred","errorMsg":"The provided AtlassianHostUser did not specify a user to act as.","code":"500"}Find all the concepts that are members of the General Practice / Family Practice reference set and are a type of
{"timestamp":1757981188305,"msg":"A unknown Exception Occurred","errorMsg":"The provided AtlassianHostUser did not specify a user to act as.","code":"500"}Find all the concepts that are respiratory disorders due to an allergic reaction to pollen
Exercise #4 - Creating value sets
Using the exampleVS.json file found at the link below as an example (or use your own JSON file), create a new value set, making sure you change the identifier in the file and give it a unique identifier such as <yourname-domain>
Retrieve the previously created value set
Add some new items to the value set by updating the JSON file
Create a new value set containing an ECL query
Use the expand operation on the value set containing ECL as well as filter parameters
example file #1: exampleVS.json
Answers
Answers to all questions can be found here - FHIR DevDays - Exercise Answers
Copyright © 2025, SNOMED International