Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


HideElements
metastrue
sidebartrue
peopletrue
labelstrue
likestrue

Info

Find this page online: http://snomed.org/fhir-devdays

During the hands-on session of the SNOMED CT on FHIR tutorial, you will learn how to query FHIR 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 this tutorial, you will be able to use 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


HTML
<div class="postman-run-button"
data-postman-action="collection/import"
data-postman-var-1="4aa97fbcc6a6ccd0e94c"></div>
<script type="text/javascript">
  (function (p,o,s,t,m,a,n) {
    !p[s] && (p[s] = function () { (p[t] || (p[t] = [])).push(arguments); });
    !o.getElementById(s+t) && o.getElementsByTagName("head")[0].appendChild((
      (n = o.createElement("script")),
      (n.id = s+t), (n.async = 1), (n.src = m), n
    ));
  }(window, document, "_pm", "PostmanRunObject", "https://run.pstmn.io/button.js"));
</script>




    logo fhir

On this page

Table of Contents
absoluteUrltrue



Note

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 one of 3 servers:

  1. https://snowstorm-fhir.snomedtools.org/fhir/  (this is a read-only instance)
  2. https://snowstorm-devdays.snomedtools.org/fhir/  (this is a temporary read/write instance)
  3. 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.

Questions

Exercise #1 - Simple Content Retrieval

  1. Discover the capabilities of SNOMED International Snowstorm terminology server
  2. Retrieve the information for the concept with the following SNOMED CT identifier, 
    Concept
    t82272006 |Common cold (disorder)|
  3. Retrieve the information for the concept with the following SNOMED CT identifier, 
    Concept
    t82272006 |Common cold (disorder)|
    in Spanish
  4. Retrieve the normal form for the concept with the following SNOMED CT identifier, 
    Concept
    t22298006 |Myocardial infarction (disorder)|
    .



Exercise #2 - Content Searching

  1. Retrieve all types of cancer
  2. Retrieve all concepts related to asthma, returning results in Spanish 
  3. Find the ICD-10 map targets for 

    Concept
    t9977002 |Blister of ankle with infection (disorder)|



Exercise #3 - Advanced querying with ECL and implicit Valuesets

Create ECL queries to retrieve the following results:

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



Exercise #4 - Creating value sets

  1. Using the exampleVScaffeine-products.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><yourname-domain>       
    1. curl -i --request PUT "https://snowstorm-devdays.snomedtools.org/fhir/ValueSet/caffeine-products" --header "Content-Type: application/fhir+json" -d @caffeine-products.json
  2. Retrieve the previously created value set
  3. Use the expand operation on the value set containing ECL as well as filter parameters
  4. Add some new items to the value set by updating the JSON file

example file #1: caffeine-products.json


Answers

Answers to all questions can be found here - FHIR DevDays - Exercise Answers