Page tree


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.


    logo fhir

On this page


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?

  1. Just hit the base endpoint and check there's someone at home.  (Hint: cutting and pasting never goes out of style)
  2. Discover the capabilities of a SNOMED International Snowstorm terminology server (hint:  we're looking for metadata here)
  3. Get a list of all CodeSystem instances available on the server (hint: You don't need to say much!)

Answers


Scenario #2 - Unidentified Object on Short Range Scan!

  1. 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)
  2. 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)
  3. 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?

Answers



Scenario #3 - On Closer Examination...

  1. Retrieve information for the concept with the following SNOMED CT identifier,  82272006 | Common cold (disorder)|  (Hint:  get more detail about concepts using the $lookup operation)
  2. Retrieve terms (designations) for  82272006 | Common cold (disorder)| in Spanish (hint: language code for Spanish is es and the URI for the Spanish Edition is http://snomed.info/sct/449081005)
  3. 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

Answers



Scenario #4 - Search and Destroy!   Actually, just search.

  1. 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  363346000 | Malignant neoplastic disease (disorder)|  and you can create an implicit ValueSet using isa )
  2. Retrieve all concepts related to asthma, returning results in Spanish 
  3. Find the ICD-10 map targets for  9977002 | Blister of ankle with infection (disorder)|  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

Answers



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:

  1. All the concepts that are members of the 450970008 | General Practice / Family Practice reference set (foundation metadata concept)|
  2. All the concepts that are members of the General Practice / Family Practice reference set and are a type of  125605004 | Fracture of bone (disorder)|
  3. All concepts that are respiratory disorders due to an allergic reaction to pollen 

Answers

  • No labels