Introduction to FHIR Terminology track

Background material for the intro to FHIR track

Presentation Material


Day 1

Time (AEST)

Hrs

Description

Notes

11:300.25Introduction and orientation
11:451

Presentation - intro to FHIR Terminology Services

Overview of the resources, operations and general use cases

12.45

0.25

Q&A
1:000.5Lunch
1:301

Presentation - Follow the Yellow Brick Code

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


2:30

2

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

4:00

0.5

Catch up

How's it all going?

Resolve issues

5.00


Wrap up

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


Day 2

Time (AEST)

Hrs

Description

Notes

9:150.5Recap from previous day and Q&A

9:45

5.25

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


Exercises: Content

Exercise

Description

Success

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


Exercise

Description

Success

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: http://snomed.info/sct?fhir_vs=refset/32570361000036108).

If you want a starting point there's a Let's Build project at https://github.com/jimsteel/termdemo 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 http://snomed.info/sct?fhir_vs=isa/404684003, but boost the members of the Emergency Department Reference Set 32570361000036108 http://snomed.info/sct?fhir_vs=refset/32570361000036108.

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

Documentation can be found at https://ontoserver.csiro.au/docs/6/ext-boosting-vs.html

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

  • http://hl7.org/fhir/ValueSet/administrative-gender
  • http://hl7.org/fhir/ValueSet/encounter-reason
  • http://hl7.org/fhir/ValueSet/v3-FamilyMember

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

  • http://snomed.info/sct?fhir_cm=900000000000526001
  • http://snomed.info/sct?fhir_cm=900000000000527005
  • http://snomed.info/sct?fhir_cm=900000000000523009
  • http://snomed.info/sct?fhir_cm=900000000000489007

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": "http://snomed.info/sct",
   "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.

InvalidCondition.xml

InvalidAllergyIntolerance.xml
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 http://snomed.info/sct?fhir_vs=refset/929360051000036108.
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


Server

Url

Demo server for the connectathon

https://ontoserver-test-example.australiaeast.cloudapp.azure.com/fhir

Ontoserver R4 sandbox

https://r4.ontoserver.csiro.au/fhir


(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

SNOMED CT UI Demo


The FHIR specification

POSTMan

NCTS | NCTS - CodeSystemNCTS - ValueSet | NCTS - ConceptMap


Ontoserver documentation

Ontoserver Postman collection

ECL Specification