In this section, we illustrate how history supplements can be applied to an expression constraint to supplement the results with relevant inactive concepts. History supplements are specified inside double curly braces and begin with a plus sign (i.e. "+") followed by the word "HISTORY".
When capturing new clinical data in an electronic health record (EHR), it is good practice to only allow active SNOMED CT concept identifiers to be recorded. However, SNOMED CT is a dynamic and evolving terminology that must remain consistent with current clinical practice and our evolving understanding of disease processes and treatments. As a result, content may change, become outdated, or need remodelling. As SNOMED CT evolves, concepts that were previously recorded in the EHR may subsequently be inactivated. For legal reasons, it is important that the concepts used at the time the data was recorded should persist in the health records. For this reason, the number of inactive SNOMED CT identifiers in an EHR may increase over time.
As most ECL queries typically return only active SNOMED CT concept identifiers, it may not be possible to retrieve health records containing inactive identifiers using a standard expression constraint. One solution to this challenge, is to execute the expression constraint over an old SNOMED CT edition, in which all required concepts were active. However, given that the logical definitions in SNOMED CT typically improve over time, it is generally accepted that the best ECL results can be obtained using the most recent edition. Therefore, a query approach utilising the most recent edition of SNOMED CT is preferred in many cases.
When a SNOMED CT concept is inactivated, the author first allocates an appropriate reason for the inactivation, and then links the inactivated concept to one or more replacements using historical association reference sets. These historical associations provide a clear understanding of the level of semantic equivalence between the inactivated concept and its replacements where they exist. Vendors can use these historical associations to supplement the active concepts in their query results, with inactive concepts which are linked via appropriate historical associations to the active query results.
On this page, we describe how 'history supplements' can be added to an ECL query, to augment the query results with relevant inactive concepts, and how the resulting queries can be used to retrieve a more complete set of matching health records.
The member filter syntax, described in 6.10 Member Filters, can be used to augment the results of an expression constraint with a set of inactive concepts that are related via an historical association reference set. For example, the following expression constraint can be used to find all the active descendants (and self) of the concept , plus any inactive concept that is linked to an active descendant (or self) of
via a historical
member.
<< 195967001 |Asthma| OR ^ 900000000000527005 |SAME AS association reference set| {{ M targetComponentId = << 195967001 |Asthma| }} |
The ECL history supplement syntax can be used to simplify queries with this structure. For example, the above query can be expressed in a a shorter form as:
<< 195967001 |Asthma| {{ + HISTORY (900000000000527005 |SAME AS association reference set|) }} |
The general template
Note that this template uses the template syntax defined in the SNOMED CT Template Syntax specification, with the addition of an 'ECL' replacement type to indicate that the respective slot must be replaced by a valid ECL expression constraint. This extended template slot syntax is then used within an expression constraint to informally illustrate the pattern required when expanding a history supplement. |
for history supplements is shown below.
[[+ecl @ecl_query]] {{ + HISTORY ( [[+ecl @history_refset_query]] ) }} |
This general template for history supplements is equivalent to the expanded version shown below. Please note that the first and last slot in this template have the same name, which indicates that they must be populated with the same value (which in this case is the ECL query being performed).
[[+ecl @ecl_query]] OR ^ [[+ecl @history_refset_query]] {{ M targetComponentId = [[+ecl @ecl_query]] }} |
Please note that this history template does not support the , as the referencedComponentId refers to the active concept, while the targetComponentId refers to the inactive concept (which is the opposite of typical historical associations). If supporting
historical associations, it is recommended that these be added to the
, to ensure that the template pattern above can be consistently applied.
Also note that the can be ignored for the purposes of executing historical ECL queries.
To help implementers of clinical systems write suitable ECL queries that include an appropriate set of inactive concepts, three history supplement profiles are provided. These profiles are designed to support a range of use cases, depending on the level of precision and recall required for inactive content. The three history supplement profiles are described in the table below.
History Profile | Purpose | Historical Association Reference Sets | |
---|---|---|---|
HISTORY-MIN | Minimum: To support use cases requiring a high level of precision, only historical associations that have a one-to-one equivalence with their replacement are used. Example use case: Clinical decision support | ||
HISTORY-MOD | Moderate: To support use cases that must balance precision with recall, only historical associations that
are used. Example use cases: Clinical research, clinical audit | ||
HISTORY-MAX HISTORY (*) | Maximum: To support use cases that require the highest level of recall, where precision is not as important, all possible historical associations are used. Example use case: Identifying patients for manual review. |
|
For example, if a high level of precision is required, then the HISTORY-MIN profile may be used. The expression constraint below matches descendants or self of , plus any inactive concept that is associated with a descendant or self of
in the
or the
<< 195967001 |Asthma| {{ + HISTORY-MIN }} |
The above expression constraint is equivalent to the one below, with an expanded history supplement.
<< 195967001 |Asthma| {{ + HISTORY (900000000000527005 |SAME AS association reference set|) }} |
Use cases that must balance the precision of associated inactive concepts with the level of recall, may use the HISTORY-MOD supplement. The following two expression constraint, which use the history supplement profile and the expanded history supplement respectively, are equivalent.
<< 195967001 |Asthma| {{ + HISTORY-MOD }} |
<< 195967001 |Asthma| {{ + HISTORY (900000000000527005 |SAME AS association reference set| OR 900000000000526001 |REPLACED BY association reference set| OR 900000000000528000 |WAS A association reference set| OR 1186924009 |PARTIALLY EQUIVALENT TO association reference set|) }} |
And finally, use cases that require the highest level of recall, may use the HISTORY-MAX supplement profile. This profile uses all possible historical association reference sets to find any potentially relevant inactive concept. The following four expression constraints, which use (a) the history supplement profile, (b) the expanded history supplement, (c) the ANY wildcard symbol ('*'), and (d) the 'history' keyword on its own, are all equivalent. Please note that the does not need to be included in the execution of this query, because the targetComponentId is assigned a namespace concept
<< 195967001 |Asthma| {{ + HISTORY-MAX }} |
<< 195967001 |Asthma| {{ + HISTORY (< 900000000000522004 |Historical association reference set|) }} |
<< 195967001 |Asthma| {{ + HISTORY (*) }} |
<< 195967001 |Asthma| {{ + HISTORY }} |
Here are two use cases that illustrate how these history supplements may be used in practice:
A clinical system is trying to count the number of patients who have had any type of referral to a service. The system attempts to use the following ECL query to find patient records with a matching procedure.
<< 306206005 |Referral to service (procedure)| |
This query is successfully used to finds patient records containing active referral concepts, such as .
However, it is discovered that there are 738,090 patient records coded with the inactive SNOMED CT concept , which should also be included in the patient count. The clinical system, therefore, adjusts its expression constraint query as shown below, to add a history supplement that includes all inactive concepts with the same meaning as one of the active referral concepts.
<< 306206005 |Referral to service (procedure)| {{ + HISTORY-MIN }} |
Because the expression constraint "
<< 306206005 |Referral to service (procedure)| |
" matches the active concept , and a SAME AS association exists between the inactive concept
and the active concept
, the above expression constraint will include the inactive concept
, and therefore successfully find the additional 738,090 patient records in which this inactive referral procedure is recorded.
A clinician is trying to find all patients with any type of breast pain. Knowing that she will be reviewing the patient records prior to acting upon the information, she decides to use a maximal approach to searching historical records. She therefore uses the following ECL query:
<< 53430007 |Pain of breast (finding)| {{ + HISTORY-MAX }} |
She is delighted to see that patient records containing the inactive concept are retrieved, as these are indeed relevant to her query. Behind the scenes, the clinical system was able to identify that this inactive concept may be relevant, because it is linked to the active concepts
and
(which are both a type of
) via the
.