Terminology and Querying

Terminology Service

Assumed terminology service API for openEHR - FHIR / IHTSDO / CTS2 (LexGrid etc)?

DK: no easy answer...

FHIR TS has some redundancy but can process SNOMED expressions

LOINC querying - no stds

Ian: some addition of 'groups' to coalesce same analyte+tissue combinations.

Consider FHIR as a starting point - multi-terminology support.

AQL use of Terminology

Embed SNOMED constraint language expressions in AQL queries?

Terminology Binding

Older notes from openehr-technical

Recently we discussed terminology bindings. We probably still have not got them right, but we don't have a model of what we think they should be. I posted a quick idea of a possible more structured version:


term_bindings = <
	["snomed_ct"] = <
		["/data[id3]/events[id4]/data[id2]/items[id26]"] = (SIMPLE_BINDING) < 
			target = <http://snomedct.info/id/169895004> -- Apgar score at 1 minute 
			notes = <"some notes">
			min_version = <"2017-02-01">
			etc = <"etc">
		>
		["id26"] = (CONSTRAINT_BINDING) < target = <"71388002 |Procedure| : 405815000 |Procedure device| = 122456005 |Laser device| , 260686004 |Method| = 129304002 |Excision - action| ,405813007 |Procedure site - direct| = 1549700l6 |Ovarian structure|"> min_version = <"2017-04-01">
			notes = <"some notes">
			etc = <"etc">
		>
	>
>

I noted that the right hand side of a binding can be a few different things, each of which would be accompanied by various meta-data, including:

  • a single concept code
  • a single code or other id referring to an external value set in an external terminology (in SNOMED it is a SNOMED code; for e.g. ICD10, there is no standard that I know of)
  • a composition expression that refers to a more refined concept
  • possible a constraint expression that locally determines a value set intensionally, to be resolved by application to the Terminology service.

I'd rather avoid the last, because of the brittleness of intensional ref-set query syntax expressions. In any case, we need a better idea of what meta-data are needed. E.g.:

  • something to do with (min) version of terminology required for the reference to be valid
  • something to do with purpose?
  • other notes - a tagged list of basic types?

I would like to get a better idea of the requirements.


DK comments: possibly better to avoid value set defs in archetypes, particularly for multi-terminology support. Have to deal with different versions of constraint def / binding. 

important point - data instances (based on templates) should look the same, regardless of whether terminology binding is inline or not.

TB: should openEHR provide a service to maintain small value sets.

Ian - need 'package management' - archetypes + templates + value sets - how to define versioned bundles?

DK: currently only SNOMED release based; unit of distrib = module; e.g. national extension + intl release; doesn't help with archetypes / templates;

possibly extend SCT URI scheme to cover other artefacts and bundles.

check FHIR profiles for different terminologies for URIs.

Expression resolver strategies

For expressions embedded in AQL queries : only want to resolve to a flat list to test membership; may be on client or server or cache;

For terminology choosing in UI, we need to resolve to structured, not flat lists, i.e. with IS-A relationships intact.

Mappings