Overview
In this section, we discuss a range of topics that were considered in the design of the SNOMED CT MRCM, including:
- How the MRCM will be authored and quality checked,
- How the MRCM will be used to support the use cases described in 2. Use Cases,
- How the MRCM will be versioned when corrections or enhancements are made, and
- How the MRCM can be extended and adapted for use with SNOMED CT extensions.
Authoring and Quality Checks
The MRCM has been designed to include minimal redundancy, to make the authoring and maintenance of these rules less error-prone. For example, by using separate reference sets to represent the attribute domains and ranges, each range does not need to be repeated for each of the attribute's domains.
To support implementers who prefer to process string-based representations of the rules, three MRCM attributes have been provided that concatenate information from other fields (as per the table below). These attributes have been populated automatically to avoid inconsistencies between the structural and string-based representations of the rules. The MRCM attributes that may be generated from other attributes are:
Table width manager |
---|
|
MRCM Reference Set | Attribute | Populated From | Concept |
---|
ShowParts | term |
---|
t | 723589008|MRCM domain reference set| |
---|
|
| domainTemplateForPrecoordination | Concept |
---|
ShowParts | term |
---|
t | 723589008|MRCM domain reference set| |
---|
| .domainConstraint, Concept |
---|
ShowParts | term |
---|
t | 723604009|MRCM attribute domain reference set| |
---|
| .grouped, Concept |
---|
ShowParts | term |
---|
t | 723604009|MRCM attribute domain reference set| |
---|
| .attributeCardinality, Concept |
---|
ShowParts | term |
---|
t | 723604009|MRCM attribute domain reference set| |
---|
| .attributeInGroupCardinality, Concept |
---|
ShowParts | term |
---|
t | 723592007|MRCM attribute range reference set| |
---|
| .rangeConstraintWHERE Concept |
---|
ShowParts | term |
---|
t | 723589008|MRCM domain reference set| |
---|
| . referencedComponentId = Concept |
---|
ShowParts | term |
---|
t | 723604009|MRCM attribute domain reference set| |
---|
| .domainIdAND Concept |
---|
ShowParts | term |
---|
t | 723604009|MRCM attribute domain reference set| |
---|
| . referencedComponentId = Concept |
---|
ShowParts | term |
---|
t | 723592007|MRCM attribute range reference set| |
---|
| . |
|
...
| Concept |
---|
ShowParts | term |
---|
t | 723589008|MRCM domain reference set| |
---|
|
| domainTemplateForPostcoordination | Concept |
---|
ShowParts | term |
---|
t | 723592007|MRCM attribute range reference set| |
---|
|
| attributeRule |
|
In addition, the quality of the international SNOMED CT MRCM is checked using a range of mechanisms, including:
- Manual review, supported by the inclusion of human-readable terms for each concept identifier in the reference sets;
- Automated testing, including checks for the following:
- All MRCM reference sets conform to the associated Descriptor Template,
- All concept identifiers refer to active concepts in the relevant SNOMED CT international edition,
- All concept identifiers refer to concepts from a value set appropriate for that field,
- All parsable strings (e.g. expression constraints) are syntactically valid (based on the associated ABNF syntax) and refer to concepts that are active in the relevant SNOMED CT international edition,
- Feedback from direct use by SNOMED International staff in the SNOMED CT authoring tools, and
- Feedback from the SNOMED CT member, vendor and user communities.
Supporting Use Cases
Another important consideration in the design of the MRCM is how it can best be used to support the range of anticipated use cases. In this section, we describe the ways in which the MRCM design supports each of the use cases presented in 2. Use Cases.
Precoordinated Content Development
As described in 2. Use Cases, one of the key use cases for the SNOMED CT MRCM is to assist with the consistent authoring and validation of SNOMED CT concepts.
...
Please note that when the above process is being applied to the authoring of new precoordinated content, then only rules with a contentType
scg-expression may be used. However, when the process is applied to the validation of (both new and existing) precoordinated content, only rules with a contentType
scg-expression may be used. Rules with a ruleStrength of
Concept |
---|
ShowParts | term |
---|
t | 723597001 |Mandatory concept model rule| |
---|
|
should be enforced when authoring and cause an error during validation, while rules with a ruleStrength of
Concept |
---|
ShowParts | term |
---|
t | 723598006 |Optional concept model rule| |
---|
|
should be used as a recommendation for authoring and result in a warning during validation.
...
The
Concept |
---|
ShowParts | term |
---|
t | 723589008 |MRCM domain reference set| |
---|
|
and the Concept |
---|
ShowParts | term |
---|
t | 723604009 |MRCM attribute domain reference set| |
---|
|
use domains defined in terms of a single top-level hierarchy. This enables concepts being authored to be tested for subsumption with each domain concept, using techniques that are relatively simple to implement (e.g. using a transitive closure table).The
Concept |
---|
ShowParts | term |
---|
t | 723592007 |MRCM attribute range reference set| |
---|
|
includes a set of attribute rules that combine the domain, grouping, cardinality and range constraints into a single expression constraint, which can facilitate the efficient implementation of content validation.The ruleStrengthId attribute in the
Concept |
---|
ShowParts | term |
---|
t | 723604009 |MRCM attribute domain reference set| |
---|
|
and the Concept |
---|
ShowParts | term |
---|
t | 723592007 |MRCM attribute range reference set| |
---|
|
allows both mandatory rules (resulting in errors) and optional rules (resulting in warnings) to be specified.The contentTypeId attribute in the
Concept |
---|
ShowParts | term |
---|
t | 723604009 |MRCM attribute domain reference set| |
---|
|
and the Concept |
---|
ShowParts | term |
---|
t | 723592007 |MRCM attribute range reference set| |
---|
|
allows the scope of each rule to be restricted to a particular type of SNOMED CT content, including: Concept |
---|
ShowParts | term |
---|
t | 723596005|All SNOMED CT content| |
---|
|
– for rules which apply to both precoordinated and postcoordinated content; Concept |
---|
ShowParts | term |
---|
t | 723594008|All precoordinated SNOMED CT content| |
---|
|
– for rules which apply to all precoordinated content (but not to postcoordinated content); Concept |
---|
ShowParts | term |
---|
t | 723593002|All new precoordinated SNOMED CT content| |
---|
|
– for rules which apply to newly authored (i.e. stated) precoordinated content, which may not necessarily be valid for all existing content; and Concept |
---|
ShowParts | term |
---|
t | 723595009|All postcoordinated SNOMED CT content| |
---|
|
– for rules which apply to all postcoordinated content (but not to precoordinated content).
Expressions, Constraints and Queries
2. Use Cases describes using the SNOMED CT MRCM to assist the authoring and validation of SNOMED CT postcoordinated expressions, SNOMED CT expression constraints, and SNOMED CT queries. These languages allow one or more focus concepts to be defined, which when tested against a domain in the MRCM enables possible attribute refinements, cardinalities and valid ranges to be found.
...
- Determine which domains the expression , constraint or query belongs to using the
Concept |
---|
ShowParts | term |
---|
t | 723589008 |MRCM domain reference set| |
---|
|
- An expression belongs to a given domain if all any focus concepts are concept is either:
- Valid when tested against the associated domainConstraint; or
- Valid when tested against the associated proximalPrimitiveConstraint and all required refinements in the proximalPrimitiveRefinement either match a defining relationship on the given focus concept, or match a refinement condition added to the expression being authored;
- Determine the set of valid attributes for the given domains using the
Concept |
---|
ShowParts | term |
---|
t | 723604009 |MRCM attribute domain reference set| |
---|
|
and allow refinements to be added using attribute concepts from this set; - For each attribute used to define the concept, ensure that the grouping and cardinality are valid according to the rules specified in
Concept |
---|
ShowParts | term |
---|
t | 723604009 |MRCM attribute domain reference set| |
---|
|
for the given attribute and parent domain; - Determine the valid range for each attribute using the rangeConstraint in
Concept |
---|
ShowParts | term |
---|
t | 723592007 |MRCM attribute range reference set| |
---|
|
.
Please note that in the above process only rules with a contentType
scg-expression should be used. Rules with a ruleStrength of
Concept |
---|
ShowParts | term |
---|
t | 723597001 |Mandatory concept model rule| |
---|
|
should be enforced when authoring and cause an error during validation, while rules with a ruleStrength of
Concept |
---|
ShowParts | term |
---|
t | 723598006 |Optional concept model rule| |
---|
|
should be used as a recommendation for authoring and result in a warning during validation.
...
- Determine which domains the constraint or query belongs to using the
Concept |
---|
ShowParts | term |
---|
t | 723589008 |MRCM domain reference set| |
---|
|
- An expression constraint or query belongs to a given domain if either:
- All Any focus concepts are concept is valid when tested against the associated proximalPrimitiveConstraint; or
- The constraint or query belongs to a parent domain of the given domain.
- Please note: The concept model requirements for constraints and queries are more relaxed than those for postcoordinated expressions, because their role is to define the membership of a set of concepts or expressions, rather than restrict the manner in which a single concept or expression may be defined.
- Determine the set of valid attributes for the given domains using the
Concept |
---|
ShowParts | term |
---|
t | 723604009 |MRCM attribute domain reference set| |
---|
|
and allow refinements to be added using attribute concepts from this set; - For each attribute used to define the concept, ensure that the grouping and cardinality are consistent with the rules specified in
Concept |
---|
ShowParts | term |
---|
t | 723604009 |MRCM attribute domain reference set| |
---|
|
for the given attribute and parent domain. In particular:- An attribute should only be grouped in an expression constraint or query if it specified as grouped = 1 for that domain in
Concept |
---|
ShowParts | term |
---|
t | 723604009 |MRCM attribute domain reference set| |
---|
|
. Any attribute can appear as ungrouped in an expression constraints. - A cardinality constraint used in an expression constraint or query should be the same, or stricter than the cardinality specified for the given attribute and domain in
Concept |
---|
ShowParts | term |
---|
t | 723604009 |MRCM attribute domain reference set| |
---|
|
.
- Determine the valid range for each attribute using the rangeConstraint in
Concept |
---|
ShowParts | term |
---|
t | 723592007 |MRCM attribute range reference set| |
---|
|
.
Please note that if the expression constraint or query is being applied to a substrate that includes only precoordinated content, then only the MRCM rules with a contentType
scg-expression should be used. However, if the expression constraint or query is being applied to a substrate that may include both precoordinated and postcoordinated content, then the less restrictive rules (e.g. with broader ranges) that apply where contentType
scg-expression may be used. Rules with a ruleStrength of
Concept |
---|
ShowParts | term |
---|
t | 723597001 |Mandatory concept model rule| |
---|
|
should be enforced when authoring and cause an error during validation, while rules with a ruleStrength of
Concept |
---|
ShowParts | term |
---|
t | 723598006 |Optional concept model rule| |
---|
|
should be used as a recommendation for authoring and result in a warning during validation.
Natural Language Processing
The MRCM can also be used to support Natural Language Processing (NLP), as described in 2. Use Cases. When terms used in free text are associated with a particular SNOMED CT concept, this concept can be tested for membership in specific MRCM domains using the process above for authoring postcoordinated expressions. As per this process, if the concept is found to belong to one of the domains, then the
Concept |
---|
ShowParts | term |
---|
t | 723604009 |MRCM attribute domain reference set| |
---|
|
can be used to determine its possible attributes, and the
Concept |
---|
ShowParts | term |
---|
t | 723592007 |MRCM attribute range reference set| |
---|
|
used to determine the valid values of these attributes. This process can thus be used to indicate possible ways in which the discovered concept may be linked (via suitable SNOMED CT attributes) to concepts found in the surrounding text.
...
For more information on using SNOMED CT in Natural Language Processing, please refer to Data Analytics with SNOMED CT.
2. Use Cases describes using the MRCM to suggest possible SNOMED CT terminology bindings for an information model, to ensure that the bindings are consistent (at least at a high level) with the SNOMED CT concept model, and to support the design of expression templates.
The processes above for authoring SNOMED CT postcoordinated expressions, expression constraints and queries can similarly be applied to support terminology binding. Alternatively, new use case specific MRCM reference sets could be developed, which restrict the available attributes and ranges that may be used in a specific implementation scenario.
Versioning
As mentioned in 3. Requirements (D.5), the concept model must be able to be changed between releases to fix identified issues and enhance future releases.
...
When a new or updated rule is introduced to the MRCM, it may take a period of time before all existing content conforms to the new rule. In these situations, a content type of
scg-expressionShowPartsterm | can be used, to ensure that all new content obeys the rule. Over time, as the old content is updated to reflect the new rule, the content type may be changed to either
Scg expression |
---|
ShowParts | term or
scg-expressionShowPartsterm | . This approach can be used to ensure that all new content added to SNOMED CT conforms to high quality concept model rules, even though reviewing and correcting existing content may take additional time.
Extension
As described in 3. Requirements (D.6), the international MRCM rules defined by SNOMED International must be able to be extended and adapted by organizations developing SNOMED CT extensions, to support the concept model requirements of their extension content.
To support this requirement, SNOMED CT extension developers will be able to copy the international MRCM rules defined by SNOMED International into one or more extension MRCM reference sets and edit these reference sets to add new rules and restrict or extend the existing rules as required. New MRCM reference sets created for a SNOMED CT extension must be designed to ensure consistency and data integrity between editions. Please note that if no changes to the SNOMED CT concept model are required to support an extension, no additional MRCM reference sets need to be created, as the international MRCM can be reused by the extension.
The
scg-expressionShowPartsterm | is designed to allow extension developers to specify which MRCM reference sets should be applied to the content in each module. The
Scg expression |
---|
ShowParts | term should therefore be referred to, to determine whether an extension is reusing the international MRCM, or using a customized extension MRCM to support its content.
page-break