Concept Definitions
A concept definition is
a set of one or more axioms that partially or sufficiently specify the meaning of a SNOMED CT concept.
Notes
- Concept definitions are represented in two ways in SNOMED CT release files:
- Concept definitions include two distinct elements
Concept Definition Validation Requirements
Concept definitions must conform to the SNOMED CT Concept Model as specified by the machine readable concept model. A concept with a definition that does not conform to the concept model cannot be accurately classified. Therefore, it cannot be reliably tested for subsumption by another concept or inclusion in the results of an expression constraint or analytics query.
Service Requirements for Concept Definition Validation
- services that are designed to support SNOMED CT authoring must support validation of concept definitions based on concept model rules.
- Terminology services that are only designed to support use of the terminology do not need to meet this requirement.
SNOMED CT Expressions
An expression is
a structured combination of one or more concept identifiers that represents an idea.
Example
Expression Validation Requirements
Expressions should conform to the SNOMED CT Concept Model as specified by the machine readable concept model. If an expression conforms to the SNOMED CT concept model, it can be classified by a description logic classifier in the same way as a concept. This means, it can be reliably tested for subsumption by other concepts and for inclusion in the results of applying an expression constraint or analytics query.
Expressions that do not conform to the SNOMED CT concept model cannot be accurately classified or tested against expression constraints. However, as noted in the next section, it may be possible to transform some non-conformant expressions so that they conform to the concept model.
An expression may be invalid when tested against the concept model but may contain refinements that would be valid if correctly structured. There are several situations where predictable structural adjustments enable a valid expression to be constructed from an informal expression that does not fully confirm to the concept model.
These situations include:
Example 4.14-1: Example Transformation to Apply Laterality Values to a Body Structures
<p><span style="color: rgb(0,0,0);">A common situation in which it is useful to move a refining attribute is where a user has refined a disorder with the laterality attribute. The intention is clearly to state that the disorder is present in one limb or one side of the body. However, the concept model requires that the refinement is applied to the affected body structure not to the disorder. The laterality attribute should be applied as a nested refinement to the body structure specified by the <a href="http://snomed.info/id/363698007" title="363698007 | finding site |" class="external-link conf-macro output-inline" rel="nofollow" data-hasbody="false" data-macro-name="concept">
<span style="color: #606060;" class="sctid">363698007</span>
<span style="color: #00ccff;" class="sctpipe">|</span>
<span style="color: #000000;" class="sctid">finding site</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
in the concept definition or in the expression. If the body structure is lateralizable, this will result in a valid expression as illustrated below. The same approach can be applied to procedures with laterality refinements. However, in this case the laterality attribute should be applied as a nested refinement to the body structure specified by the <a href="http://snomed.info/id/363704007" title="363704007 | procedure site |" class="external-link conf-macro output-inline" rel="nofollow" data-hasbody="false" data-macro-name="concept">
<span style="color: #606060;" class="sctid">363704007</span>
<span style="color: #00ccff;" class="sctpipe">|</span>
<span style="color: #000000;" class="sctid">procedure site</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
in the concept definition or in the expression.</span></p>
<div class="conf-macro output-inline" data-hasbody="true" data-macro-name="scg-expression"><div style="margin-left:30px; margin-top:8px; margin-bottom:8px; border-style:solid; display:table; min-width:60%; border-width:1px;border-color:#a0a0a0;"><div style="padding:16px;">
<span style="color: #a00000;" class="sctid"><span style="color: darkgreen;" class="sctid"> 1. An user records "fracture of left femur" in a way that creates the following expression </span><br /><br /></span>
<a href="http://snomed.info/id/71620000" title="71620000 | fracture of femur |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">71620000</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">fracture of femur</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid">: </span>
<a href="http://snomed.info/id/272741003" title="272741003 | laterality |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">272741003</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">laterality</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"> = </span>
<a href="http://snomed.info/id/7771000" title="7771000 | left |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">7771000</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">left</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"><br /><br /><span style="color: darkgreen;" class="sctid"> 2. The concept model rules indicate that this expression is invalid<br /> 3. This is because concept model rules do NOT allow the "laterality" attribute to be applied to the concepts in the "clinical finding" or "disorder" domains<br /> 4. As shown below the definition of "fracture of femur" includes "finding site" = "bone structure of femur" </span><br /><br />=== </span>
<a href="http://snomed.info/id/7523003" title="7523003 | Injury of thigh |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">7523003</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">Injury of thigh</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"> + <br /> </span>
<a href="http://snomed.info/id/46866001" title="46866001 | Fracture of lower limb |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">46866001</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">Fracture of lower limb</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"> :<br /> { </span>
<a href="http://snomed.info/id/363698007" title="363698007 | Finding site |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">363698007</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">Finding site</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"> = </span>
<a href="http://snomed.info/id/71341001" title="71341001 | Bone structure of femur |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">71341001</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">Bone structure of femur</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid">, <br /> </span>
<a href="http://snomed.info/id/116676008" title="116676008 | Associated morphology |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">116676008</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">Associated morphology</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"> = </span>
<a href="http://snomed.info/id/72704001" title="72704001 | Fracture |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">72704001</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">Fracture</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"> }<br /><br /><span style="color: darkgreen;" class="sctid"> 4. The concept model rules indicate the "bone structure of femur" can be refined by the "laterality" attribute <br /> 5. So the value "left" can be applied to this concept as shown below <br /> 6. The end result is an valid expression representing a fracture of the left femur which can be appropriately classified </span><br /><br />=== </span>
<a href="http://snomed.info/id/7523003" title="7523003 | Injury of thigh |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">7523003</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">Injury of thigh</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"> + <br /> </span>
<a href="http://snomed.info/id/46866001" title="46866001 | Fracture of lower limb |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">46866001</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">Fracture of lower limb</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"> :<br /> { </span>
<a href="http://snomed.info/id/363698007" title="363698007 | Finding site |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">363698007</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">Finding site</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"> = ( </span>
<a href="http://snomed.info/id/71341001" title="71341001 | Bone structure of femur |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">71341001</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">Bone structure of femur</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid">: </span>
<a href="http://snomed.info/id/272741003" title="272741003 | laterality |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">272741003</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">laterality</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"> = </span>
<a href="http://snomed.info/id/7771000" title="7771000 | left |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">7771000</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">left</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"> ), <br /> </span>
<a href="http://snomed.info/id/116676008" title="116676008 | Associated morphology |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">116676008</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">Associated morphology</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"> = </span>
<a href="http://snomed.info/id/72704001" title="72704001 | Fracture |" class="external-link" rel="nofollow">
<span style="color: #606060;" class="sctid">72704001</span> <span style="color: #00ccff;" class="sctpipe">|</span><span style="color: #000000;" class="sctid">Fracture</span><span style="color: #00ccff;" class="sctpipe">|</span></a>
<span style="color: #a00000;" class="sctid"> }<br /><br /></span>
</div></div></div>
Service Requirements for Expression Validation
Requirements and Options
The required services are listed in Table 4.14-1.
Table 4.14-1: Services Required
Service Name and Status | Input | Output |
---|
Validate expression RECOMMENDED
| | - Indication of whether the expression is valid or invalid
- If the expression is invalid an indication of the reason for failure of validation
- Syntax error including:
- Character position of first syntax error, and/or
- More specific error message(s).
- Concept model validation error including:
- Character position of start of invalid element and/or
- Reference to failed concept model rule(s).
- Terming errors including:
- Indication of any terms in the expression that do not match valid descriptions for the identified concept.
|
Transform invalid expression OPTIONAL
| | - Structurally adjusted valid expression
- An error message if it is not possible to transform to valid expression
|
Validate concept definition(s) ONLY REQUIRED FOR AUTHORING
| | - Indication of validation results for one or more concepts including
- Nature of error
- If appropriate a reference to a failed concept model rule
|
Interdependencies
Required By
Depends On
Service Examples
Table 4.14-2: Snowstorm API
Service Name | | Result |
Validate expression | N/A | |
Transform invalid expression | N/A | Not supported |
Validate concept definition |
POST [snowstorm]/browser/{branch}/validate/concept
This service requires the concept to be posted as a JSON object representing the concept, its descriptions, axioms and relationships. | |
Validate concept definitions |
POST [snowstorm]/browser/{branch}/validate/concepts
This service requires the concepts to be posted as a JSON array of objects representing the concept, its descriptions, axioms and relationships.
| |
Table 4.14-3: FHIR API
Service Name | | Result |
Validate expression
| N/A | No FHIR terminology services are available to validate SNOMED CT expressions. |
Transform invalid expression |
Validate concept definition |
Validate concept definitions |
Table 4.14-4: MySQL Example Database
Service Name | | Notes |
Validate expression | Not directly supported | The SQL example database does not provide direct support for expression validation. However, it does support access to concept model rules (see 4.13 Get Concept Model Rules). Using those services together with the service that applies expression constraints as described below enable a significant mount of expression validation. - The domains to which the focus concept belong can be checked using the get domain or set of domains that include a specified concept service.
- The attributes in the expression can be checked to confirm they are applicable to those domains using the get the set of attributes applicable to a concept in a specified domain or set of domains service
- The range constraints applicable to each attribute can be access using the get the range of values applicable to a specified attribute service and then applied to validate the values using the 4.7 Validate and Apply Expression Constraints service.
- Where necessary these services can also be applied recursively to nested expressions representing the values of attributes.
|
Transform invalid expression | Not supported |
|
Validate concept definitions | Not required | The SQL example database is designed to provide read only access to the terminology. Therefore, it does not support requirements related to authoring or validating concept definitions. |