All pages
Powered by GitBook
1 of 3

Loading...

Loading...

Loading...

SNOMED CT APIs

An Application Programming Interface (API) for a SNOMED CT enabled terminology server can be used to request the execution of SNOMED CT searches and queries. Using a terminology server API, record management systems are able to effectively access terminology services without re-implementing their functionality in every system.

A number of commercial terminology servers offer proprietary APIs that enable SNOMED CT search and query, including Dataline's SnAPI solution and B2i's Snow Owl Terminology Server (case study 2.5). An example of a script which uses the B2i's Snow Owl API to execute a SNOMED CT query is shown below:

import com.b2international.snowowl.scripting.services.EscgEvaluatorService def escgQuery = """ <<404684003|Clinical finding| : 246454002|Occurrence| = 255399007|Congenital|, 370135005|Pathological process|=<<263680009|Autoimmune| def escgEvaluator = new EscgEvaluatorService() //initialize a service for evaluating a query def concepts = escgEvaluator.evaluate(escgQuery) //evaluate the query concepts.each { println "ID: ${it.id}, ${it.label}" } //prints the result to the console

Standardized APIs for terminology services are also available. In particular, HL7's Common Terminology Services 2 (CTS 2) provides a standardized API that supports access to terminology servers that may contain a variety of code systems, including SNOMED CT.


Provide Feedback

SNOMED CT Languages

SNOMED International is developing a consistent family of computable languages to support a variety of use cases involving SNOMED CT, including querying and defining intensional subsets. The SNOMED CT family of computable languages will include:

  • Compositional Grammar – for defining SNOMED CT expressions

  • Expression Constraint Language – for constraining a set of possible expressions

  • Query Language – for querying over SNOMED CT content

  • Template Languages – using the other languages with slots that may be filled at a later time

SNOMED CT compositional grammar, which provides a common foundation for all the SNOMED CT computable languages, was adopted as an international standard in 2010. In 2014, the first version of the SNOMED CT expression constraint language was then published. The SNOMED CT template languages and query language are currently under development and will be made available in the near future.

Both the SNOMED CT Expression Constraint Language and the SNOMED CT Query Language can be used to define queries against SNOMED CT content.

The SNOMED CT Expression Constraint Language is a formal language used to represent SNOMED CT Expression Constraints. A SNOMED CT Expression Constraint is a computable rule that can be used to define a bounded set of clinical meanings represented by either precoordinated or postcoordinated expressions. SNOMED CT Expression Constraints allows a set of clinical meanings to be defined using hierarchical relationships, attribute values, reference set membership, and other features such as cardinality, conjunction, disjunction and exclusion. For example, the following expression constraint represents the set of clinical findings, which have both a finding site of 'pulmonary valve structure' (or a subtype of 'pulmonary valve structure') and an associated morphology of 'stenosis' (or a subtype of 'stenosis').

<< : = << , = <<

The SNOMED CT Query Language is a formal language used to represent SNOMED CT Queries. This language is based on the same features as the SNOMED CT Expression Constraint Language, with the addition of SNOMED CT specific filters. These filters allow the author of the query to restrict the results based on the version of SNOMED CT being used and the value of SNOMED CT's release file fields (e.g. definitionStatus, characteristicType, languageCode, term and typeId). Additional keywords are also provided (e.g. preferredTerm, fullySpecifiedName) to simplify the use of common filter combinations. For example, the following SNOMED CT query finds all fully defined diseases which have a preferredTerm (in the GB English language reference set) that contains the substring "heart".

<< 64572001 |disease| {{ definitionStatus = 900000000000073002 |defined|,

preferredTerm = "* heart* ", languageRefSet = 900000000000508004 |GB English| }}

B2i's Snow Owl Terminology Server (see case study) supports the execution of SNOMED CT queries using a precursor to the SNOMED CT Expression Constraint Language (referred to as 'Extended SNOMED CT Compositional Grammar' or 'ESCG').


404684003 |clinical finding|
363698007 |finding site|
39057004 |pulmonary valve structure|
116676008 |associated morphology|
415582006 |stenosis|
Provide Feedback

Terminology Queries


Provide Feedback