FHIR Release 3 (STU)

This page is part of the FHIR Specification (v3.0.2: STU 3). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R4B R4 R3 R2

Vocabulary Work GroupMaturity Level: 5Ballot Status: Trial Use
SourceSNOMED CT is owned, maintained and distributed by IHTSDO . IHTSDO is an international organization with countries as members. IHTSDO publishes the international release of SNOMED CT (which is used in FHIR international standards and resources). Each of the IHTSDO member countries may also distribute their own SNOMED CT edition, which contains the international release plus local extension content and derivatives.
SystemThe URI http://snomed.info/sct identifies the SNOMED CT code system.
VersionWhere a version is used, it should be a full URI that represents the specific distribution (International Release, or National Release and version), following the SNOMED CT URI Specification (see note below)
CodeThe following SNOMED CT artifacts are valid in the code element for the http://snomed.info/sct namespace: Concept IDs , Expressions (grammar ) and SNOMED Legacy codes .

SNOMED CT Terms (Description Ids) are not valid as codes in FHIR, nor are other alternate identifiers associated with SNOMED CT Concepts using the RF2 identifier infrastructure. Expressions SHOULD NOT contain terms, only concept IDs (note that when SNOMED CT terms must be exchanged, use the Description Id Extension)
DisplayThe correct display for a SNOMED CT concept is one of the synonyms for the concept. The best display is the preferred term in the relevant language reference set (if applicable). Preferred terms are case sensitive. The Fully Specified Name is not an appropriate choice. The source of preferred name comes from a Language Reference Set. SNOMED CT does not define displays for expressions; if no display has been associated with the expression through a value set or other mechanism, the full expression syntax with preferred terms embedded may be used
InactiveInactive codes are identified using the 'inactive' property (see below)
SubsumptionSNOMED CT Subsumption testing is based in the |is a| relationship defined by SNOMED CT
Filter PropertiesSeveral properties are defined as described below

This specification publishes a canonical SNOMED CT code system resource. See also the SNOMED CT Usage Summary.

Note: The IHTSDO glossary explains some of these SNOMED CT specific terms.

There is no single distribution that contains all defined SNOMED CT codes in all contexts of use. Instead the international release contains all concepts shared and agreed to be internationally relevant and each national release centre distributes this international release plus additional national content (to extend that international set). In addition, other release authorities may be designated. The SNOMED CT URI Specification describes how to unambiguously reference a particular version of a distribution:

  http://snomed.info/sct/[sctid]/version/[YYYYMMDD]

where [sctid] is the concept id of the SNOMED CT distribution (e.g. 32506021000036107 for Australia), and the tail is the date of release (by custom, this is usually the last day of the month). Note that many implementations are in the habit of simple using the date of release in the form YYYYMMDD (e.g. "20140531"), and assuming that the distribution is known. However this is not always safe, so implementations that populate the version element SHOULD use the full URI form.

The use of SNOMED CT codes, display names and value sets in this specification is subject to an MOU signed between HL7 International and IHTSDO. This does not convey the right to use SNOMED CT to any users of this specification; implementers must acquire a license to use SNOMED CT in their own right. See HL7 Policies and Guidance documents – Licensing .

The IHTSDO URI specifications uses the namespace http://snomed.info/sct for the code system, and the URI http://snomed.info/id for the individual concepts in the code system. This means that when a SNOMED CT concept is converted from the system::code pair, where the system is http://snomed.info/sct, to the RDF ontological form, the representation is http://snomed.info/id/[concept-id]. Expressions are represented the same way, except that for this use, expressions SHALL not contain whitespace, terms, or comments.

In addition to the standard properties, the following properties are defined for SNOMED CT:

inactivebooleanWhether the code is active or not (defaults to false). This is derived from the active column in the Concept file of the RF2 Distribution (by inverting the value)
sufficientlyDefinedbooleanTrue if the description logic definition of the concept includes sufficient conditions (i.e., if the concept is not primitive - found in the value of definitionStatusId in the concept file).
moduleIdcodeThe SNOMED CT concept id of the module that the concept belongs to.
normalFormstringGenerated Normal form expression for the provided code or expression, with terms
normalFormTersestringGenerated Normal form expression for the provided code or expression, conceptIds only

In addition, any SNOMED CT relationships where the relationship type is subsumed by Attribute (246061005) automatically become properties. For example, laterality:

LateralitycodeIn this case, the URI (See the code system definition) is http://snomed.info/id/272741003, which can be used to unambiguously map to the underlying concept

Note that when a $lookup operation is performed on a SNOMED CT concept, servers SHALL return the full URI for the edition and version being used (see above) in the version property. Other properties are at the discretion of the server and the client.

This section documents the property filters that can be used with the SNOMED CT code system in value set composition statements.

For implementer convenience, some of the property filters are documented in terms of the SNOMED CT Query Language , but this does not imply that its use is required.

DescriptionSelect a set of concepts based on subsumption testing
Property Nameconcept
Operations Allowedis-a
Values Allowed[concept id]
CommentsIncludes all concept ids that have a transitive is-a relationship with the concept Id provided as the value (including the concept itself)
ExampleAdministration Methods
SCT ECL
<< [concept] (or the long form: descendantOrSelfOf [concept])
DescriptionSelect a set of concepts based on their membership of a SNOMED CT reference set
Property Nameconcept
Operations Allowedin
Values Allowed[concept id]
CommentsIncludes all concept ids that are active members of the reference set identified by the concept Id provided as the value
SCT ECL
^ [concept] (or the long form: memberOf [concept])
DescriptionSelect a set of concepts based on a formal expression statement
Property Nameconstraint
Operations Allowed=
Values Allowed[expression]
Comments The result of the filter is the result of executing the given SNOMED CT Expression (Expression Constraint Language) .
Example:
 "compose": {
  "include": [
    {
      "system": "http://snomed.info/sct",
      "filter": [
        {
          "property": "constraint",
          "op": "=",
          "value": "<< 30506011000036107 |Australian product|: 700000101000036108 |hasTP| = 17311000168105 |Panadol|"
        }
      ]
    }
  ]
}

   
DescriptionSpecify whether post-coordination is allowed or not
Property Nameexpressions
Operations Allowed=
Values Allowedtrue or false
CommentsExpressions, if allowed, are subject to the same rules as pre-coordinated concepts. Note: simple reference sets do not include expressions, but Query specification reference sets might).
ExampleAdministration Methods
SCT ECL
n/a

Implicit value sets are those whose specification can be predicted based on the grammar of the underlying code system, and the known structure of the URL that identifies them. SNOMED CT has two common sets of implicit value sets defined: By Subsumption, and By Reference Set. These implicit value sets do not use complex queries. This allows a single URL to serve as a value set definition that defines a value set, and can serve as the basis for the $expansion operation.

If any value set resources exist with an identifier that conforms to the URL patterns specified below, the content of the resource must conform to the template provided. Profiles and other value set references are allowed to reference these value sets directly (by reference as a URI, rather than by a value set reference, which is a literal reference).

A SNOMED CT implicit value set URL has two parts:

  • the base URL is either "http://snomed.info/sct", or the URI for the edition version, in the format specified by the IHTSDO the SNOMED CT URI Specification
  • a query portion that specifies the scope of the content

"http://snomed.info/sct" should be understood to mean an unspecified edition/version. This defines an incomplete value set whose actual membership will depend on the particular edition used when it is expanded. If no version or edition is specified, the terminology service SHALL use the latest version available for its default edition (or the international edition, if no other edition is the default).

For the second part of the URL (the query part), the 4 possible values are:

  • ?fhir_vs - all Concept IDs in the edition/version. If the base URI is http://snomed.info/sct, this means all possible SNOMED CT concepts
  • ?fhir_vs=isa/[sctid] - all concept IDs that are subsumed by the specified Concept.
  • ?fhir_vs=refset - all concept ids that correspond to real references sets defined in the specified SNOMED CT edition
  • ?fhir_vs=refset/[sctid] - all concept IDs in the specified reference set

A value set with a URL that follows the pattern "[edition/version]?fhir_vs=isa/[sctid]" follows this template:

<ValueSet xmlns="http://hl7.org/fhir">
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
     [Some HTML that describes this value set as all concepts subsumed by conceptid]
    </div>
  </text>
  <url value="[edition/version]?fhir_vs=isa/[sctid]"/>
  <version value="[edition/version]"/>
  <name value="SNOMED CT Concept [conceptid] and descendants"/>
  <description value="All SNOMED CT concepts for [concept id or preferred description]"/>
  <copyright value="This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement"/>
  <status value="active"/>
  <compose>
    <include>
      <system value="http://snomed.info/sct"/>
      <filter>
        <property value="concept"/>
        <op value="is-a"/>
        <value value="[sctid]"/>
      </filter>
    </include>
  </compose>
</ValueSet>

The value set with a url that follows the pattern "[edition/version]?fhir_vs=refset" follows this template:

<ValueSet xmlns="http://hl7.org/fhir">
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
     [Some HTML that describes this value set as all concepts with associated reference sets]
    </div>
  </text>
  <url value="[edition/version]?fhir_vs=refset"/>
  <version value="[edition/version]"/>
  <name value="SNOMED CT Reference Sets"/>
  <description value="All SNOMED CT concepts associated with a reference set"/>
  <copyright value="This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement"/>
  <status value="active"/>
  <compose>
    <include>
      <system value="http://snomed.info/sct"/>
      <!-- repeat: one concept element with a code for each concept that has an associated reference set -->
      <concept>
        <code value="[sctid]"/>
      </concept>
      <!-- end repeat -->
    </include>
  </compose>
</ValueSet>

For each concept that is associated with a reference set, there will be one concept element with a contained code that contains the concept id.

A value set with a url that follows the pattern "[edition/version]?fhir_vs=refset/[conceptid]" follows this template:

<ValueSet xmlns="http://hl7.org/fhir">
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
     [Some HTML that describes this value set as all concepts in the reference set identified by conceptid]
    </div>
  </text>
  <url value="[edition/version]?fhir_vs=refset/[sctid]"/>
  <version value="[edition/version]"/>
  <name value="SNOMED CT Reference Set [conceptid]"/>
  <description value="All SNOMED CT concepts in the reference set [concept id or preferred description]"/>
  <copyright value="This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement"/>
  <status value="active"/>
  <compose>
    <include>
      <system value="http://snomed.info/sct"/>
      <filter>
        <property value="concept"/>
        <op value="in"/>
        <value value="[conceptid]"/>
      </filter>
    </include>
  </compose>
</ValueSet>

Implicit concept maps are those whose specification can be predicted based on the grammar and/or content of the underlying code system, and the known structure of the URL that identifies them. This allows a single URL to serve as a concept map definition that defines a mapping between two sets of concepts, and which can serve as the basis for the $translate operation. SNOMED CT has two common sets of implicit concept maps defined:

  • Association Reference Sets
  • Simple Map Reference Sets

Association Reference Sets are part of the core SNOMED CT distribution. The following standard Association Reference sets are mapped to implicit Concept Maps:

NameConcept IdRelationship
POSSIBLY EQUIVALENT TO900000000000523009inexact
REPLACED BY900000000000526001equivalent
SAME AS900000000000527005equal
ALTERNATIVE900000000000530003inexact

If any concept map resources exist with an identifier that conforms to the URL pattern specified below, the content of the resource must conform to the template provided. Canonical references to concept maps are allowed to reference these concept maps directly by referring to their URI.

A SNOMED CT implicit concept map URL has two parts:

  • the base URL is either "http://snomed.info/sct", or the URI for the edition version, in the format specified by the IHTSDO the SNOMED CT URI Specification
  • a query portion that specifies the scope of the content

"http://snomed.info/sct" should be understood to mean an unspecified edition/version. This defines an incomplete concept map whose actual membership will depend on the particular edition used when it is expanded. If no version or edition is specified, the terminology service SHALL use the latest version available for its default edition (or the international edition, if no other edition is the default).

For the second part of the URL (the query part), there is only one possible value:

  • ?fhir_cm=[sctid] - where [sctid] is a value from the table above

A concept map with a URL that follows the pattern "[edition/version]?fhir_cm=[sctid]" follows this template, where [name], [sctid] and [relationship] are taken from the table above:

<ConceptMap xmlns="http://hl7.org/fhir">
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
     [Some HTML that describes this concept map]
    </div>
  </text>
  <url value="[edition/version]?fhir_cm=[sctid]"/>
  <version value="[edition/version]"/>
  <name value="SNOMED CT [name] Concept Map"/>
  <description value="The concept map implicitly defined by the [name] Association Reference Set"/>
  <copyright value="This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement"/>
  <status value="active"/>

  <sourceUri value="[edition/version]?fhir_vs"/>
  <targetUri value="[edition/version]?fhir_vs"/>
  <group>  <!-- 0..* Same source and target systems -->
    <source value="http://snomed.info/sct"/>
    <sourceVersion value="[edition/version]"/>
    <target value="http://snomed.info/sct"/>
    <targetVersion value="[edition/version]"/>

    <!-- a mapping for each member of the reference set -->
    <element>
      <code value="[member]"/>
      <target>
        <code value="[reference set value]"/>
        <equivalence value="[relationship]"/>
      </target>
    </element>
  </group>
</ConceptMap>

Simple Map Reference Sets (reference sets which are descendants of 900000000000496009 "Simple map") also define an implicit concept map. However, at this time, these cannot be converted to Concept Maps because there is no source for the target code system. Another reference set has been proposed to IHTSDO, and this section will be revisited once it is adopted.