The SNOMED CT Expression Constraint Language is a formal language for defining bounded sets of clinical meanings represented by either precoordinated or postcoordinated expressions (https://confluence.ihtsdotools.org/display/SLPG/SNOMED+CT+Expression+Constraint+Language). The specification is published by SNOMED Internationally and allows for rich querying of SNOMED CT by allowing relationship traversal between concepts and refinement based on attributes.
FHIR allows the use of ECL in the definition of ValueSets, and in R4 introduced the implicit ValueSets for SNOMED CT using ECL (http://build.fhir.org/snomedct.html#implicit) making it very easy to expand ECL based ValueSets.
The aim of this repository is to provide a collection of SNOMED CT Expression Constraint Language (ECL) examples that have been compiled to assist users in writing ECL queries to perform common use cases (where help requests have been received by the Agency)
ECL examples for each SNOMED module have been put within their respective folder.
- The AMT folder within this repository contains ECL examples relating to the AMT concept model.
The easiest way to get started using ECL is to use OntoServer and it's associated tooling. Within Australia, OntoServer is provided free of charge to the broader healthcare industry as a result of a licencing agreement between the Australian Digital Health Agency and CSIRO. OntoServer is a product of the Australian eHealth Research Centre (AEHRC), a division of the CSIRO, and is distributed as a Docker container.
Part of the tooling for OntoServer is Shrimp which allows browsing through the various code systems within OntoServer. Shrimp also contains an ECL builder which assists in the query-building process. By default, Shrimp points to CSIRO's public OntoServer but can also be configured to point to a private server if you would like to run your own.
There are a few ECL reference guides available online. Shrimp has a concise ECL reference page that includes example queries as well as explanations relating to the operators and their use. The guide can be access directly here.
OntoServer implements the FHIR Terminology API. An ECL query can be provided as a parameter to the $expand operation:
<<SERVER BASE URL>>/ValueSet/$expand?url=http://snomed.info/sct?fhir_vs=ecl/(<ECL QUERY>)
The full documentation for OntoServer's current API implementation is available via the OntoServer documentation site.