SNOMED CT is a clinical terminology with global scope covering a wide range of clinical specialties and requirements. The use of SNOMED CT expressions in electronic health records (EHRs) provides a standardized way to represent clinical meanings captured by clinicians and enables the automatic interpretation of these meanings. SNOMED CT expression constraints provide a computable rule that can be used to define a bounded set of clinical meanings for the purpose of constraining the contents of a data element in an electronic health record (EHR), intensionally defining a concept-based reference set, querying SNOMED CT content in a machine processable way, or restricting the range of an attribute defined in the SNOMED CT concept model.
In some situations, however, the specific concepts or values are not known at the time of authoring. In these cases, one or more slots may be used within an expression or expression constraint to create an expression template or expression constraint template (respectively). Slots provide a placeholder in the expression or expression constraint, whose specific value can be completed at a subsequent time using a concept recorded within an information model, entered into a data entry form, or sourced by some other means. When each slot in the template has been replaced with a specific value, the result should be a syntactically correct expression or expression constraint. SNOMED CT templates can be used for a number of purposes, including to define reusable patterns for authoring and validating precoordinated concept definitions and postcoordinated expressions.
The SNOMED CT Template Syntax (v1.0) was first published in July 2017. In 2020, the syntax was updated (v1.1) to support boolean attribute values.
The purpose of this document is to define and describe a consistent mechanism for SNOMED CT templates, which can be used to convert any computable SNOMED CT language into a SNOMED CT template language. For example, by using the syntax provided in this document, SNOMED CT compositional grammar can be used as an expression template language, and the SNOMED CT expression constraint Language can be used as an expression constraint template language. This guide also provides examples and guidance to assist in the processing of templates.
This document presents the specification of a SNOMED CT template syntax, which can be used together with other formal SNOMED CT languages to develop SNOMED CT Templates. The SNOMED CT Template Syntax is part of a consistent set of computer processable language syntaxes designed to support a variety of use cases involving the use of SNOMED CT. Other computable SNOMED CT languages that are either complete or under development include:
This document provides a specification, examples and general guidance to assist in the representation and processing of SNOMED CT templates.
However, this document does not include a full description of how to implement a template parser or interpreter. It does not describe how to transform a template into other languages (such as OWL, SPARQL or SQL), or how to determine whether two templates are equivalent. It also does not describe how to implement a terminology server or an EHR which uses templates to constrain or query its content.
The target audiences of this document include:
It should be noted that this document contains both technical and non-technical content. In particular, the detailed logical model and formal syntax is specifically focussed at more technical readers. Less technical readers are encouraged to read the introductory material and examples.
This document defines the SNOMED CT template syntax and describes how and where it may be implemented. Chapter 2 begins by describing some key use cases in which SNOMED CT templates can be used. Chapter 3 then describes the requirements used to guide the definition of this syntax. In Chapter 4, the logical model of the template syntax is presented, while Chapter 5 defines the ABNF serialisation of the logical model. Chapter 6 explains how to apply the SNOMED CT template syntax to other computable languages, and provides the syntax for the expression template language (ETL). In chapter 7, we explain the steps involved in processing an expression template to create a set of populated expressions. And finally, in chapter 8, we present some examples of SNOMED CT expression templates that conform to the syntaxes defined in Chapters 5 and 6.