Search



  

Overview

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 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

  • Terminology 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.

Notes

Example

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.

Transforming Invalid Expressions to Valid Expressions

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 &quot;fracture of left femur&quot; 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 &quot;laterality&quot; attribute to be applied to the concepts in the &quot;clinical finding&quot; or &quot;disorder&quot; domains<br /> 4. As shown below the definition of &quot;fracture of femur&quot; includes &quot;finding site&quot; = &quot;bone structure of femur&quot;  </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 &quot;bone structure of femur&quot; can be refined by the &quot;laterality&quot; attribute <br /> 5. So the value &quot;left&quot; 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 StatusInputOutput

Validate expression

RECOMMENDED

  • Edition and Version

  • Expression to be validated

  • Optional: Language/dialect1

  • 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

  • Edition and Version

  • Invalid candidate expression for adjustment

Validate concept definition(s)

ONLY REQUIRED FOR AUTHORING

  • Edition and Version

  • Identifier(s) of concept(s) to be validated

  • 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

The Snowstorm and FHIR examples are presented in plain text and URL encoded versions. Always use the "Encoded URL" when testing the example service requests. The plain text version is included to aid readability but using this version in a service request may result in errors. These errors result from characters that have to be encoded as they are not permitted in a URL (see IETF RFC1738).

Table 4.14-2: Snowstorm API

Service Name

API Call2

Result

Validate expression

N/A

Not directly supported

SNOMED International does provide access to a tool that allows validation of the the syntax on an expression https://www.ihtsdo.org/SCT-cg.html.

Transform invalid expressionN/ANot 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.

This command require the use of Drools (see https://www.drools.org/) and access to the Drools representation of the concept model rules.

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.


This command require the use of Drools (see https://www.drools.org/) and access to the Drools representation of the concept model rules.

Table 4.14-3: FHIR API

Service Name

API Call3

Result
Validate expression
N/ANo 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

SQL Query 3

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 expressionNot supported
Validate concept definitionsNot requiredThe 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.


Footnotes
Language and/or dialect should be specified if the service returns terms associated with referenced concepts.
In the Snowstorm service requests [snowstorm] should be replaced by the URL to the Snowstorm server endpoint.
The SNOMED CT MySQL example database is not designed as a terminology server and is not intended for use in a live system . It is referenced in this guide as an illustration that some readers may find helpful. For more information about the SNOMED CT example database see the SNOMED CT - SQL Practical Guide. For instructions on how to build the example database refer to Appendix A: Building the SNOMED CT Example Database.


Feedback
  • No labels