Release 4

Operation-codesystem-lookup.xml

Vocabulary Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: Not linked to any defined compartments

Raw XML (canonical form + also see XML Format Specification)

Jump past Narrative

Operation Definition

<?xml version="1.0" encoding="UTF-8"?>

<OperationDefinition xmlns="http://hl7.org/fhir">
  <id value="CodeSystem-lookup"/> 
  <text> 
    <status value="generated"/> 
    <div xmlns="http://www.w3.org/1999/xhtml">
      <h2> Concept Look Up &amp; Decomposition</h2> 
      <p> OPERATION: Concept Look Up &amp; Decomposition</p> 
      <p> The official URL for this operation definition is: </p> 
      <pre> http://hl7.org/fhir/OperationDefinition/CodeSystem-lookup</pre> 
      <div> 
        <p> Given a code/system, or a Coding, get additional details about the concept, including
           definition, status, designations, and properties. One of the products of this operation
           is a full decomposition of a code from a structured terminology.</p> 

        <p> When invoking this operation, a client SHALL provide both a system and a code, either
           using the system+code parameters, or in the coding parameter. Other parameters are optional</p> 

      </div> 
      <p> URL: [base]/CodeSystem/$lookup</p> 
      <p> Parameters</p> 
      <table class="grid">
        <tr> 
          <td> 
            <b> Use</b> 
          </td> 
          <td> 
            <b> Name</b> 
          </td> 
          <td> 
            <b> Cardinality</b> 
          </td> 
          <td> 
            <b> Type</b> 
          </td> 
          <td> 
            <b> Binding</b> 
          </td> 
          <td> 
            <b> Documentation</b> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> code</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#code">code</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The code that is to be located. If a code is provided, a system must be provided</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> system</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#uri">uri</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The system for the code that is to be located</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> version</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#string">string</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The version of the system, if one was provided in the source data</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> coding</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#Coding">Coding</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> A coding to look up</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> date</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#dateTime">dateTime</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The date for which the information should be returned. Normally, this is the current conditions
                 (which is the default value) but under some circumstances, systems need to acccess this
                 information as it would have been in the past. A typical example of this would be where
                 code selection is constrained to the set of codes that were available when the patient
                 was treated, not when the record is being edited. Note that which date is appropriate
                 is a matter for implementation policy.</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> displayLanguage</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#code">code</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The requested language for display (see $expand.displayLanguage)</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> IN</td> 
          <td> property</td> 
          <td> 0..*</td> 
          <td> 
            <a href="datatypes.html#code">code</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> A property that the client wishes to be returned in the output. If no properties are specified,
                 the server chooses what to return. The following properties are defined for all code systems:
                 url, name, version (code system info) and code information: display, definition, designation,
                 parent and child, and for designations, lang.X where X is a designation language code.
                 Some of the properties are returned explicit in named parameters (when the names match),
                 and the rest (except for lang.X) in the property parameter group</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> name</td> 
          <td> 1..1</td> 
          <td> 
            <a href="datatypes.html#string">string</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> A display name for the code system</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> version</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#string">string</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The version that these details are based on</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> display</td> 
          <td> 1..1</td> 
          <td> 
            <a href="datatypes.html#string">string</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The preferred display for this concept</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> designation</td> 
          <td> 0..*</td> 
          <td/>  
          <td/>  
          <td> 
            <div> 
              <p> Additional representations for this concept</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> designation.language</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#code">code</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The language this designation is defined for</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> designation.use</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#Coding">Coding</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> A code that details how this designation would be used</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> designation.value</td> 
          <td> 1..1</td> 
          <td> 
            <a href="datatypes.html#string">string</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The text value for this designation</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> property</td> 
          <td> 0..*</td> 
          <td/>  
          <td/>  
          <td> 
            <div> 
              <p> One or more properties that contain additional information about the code, including status.
                 For complex terminologies (e.g. SNOMED CT, LOINC, medications), these properties serve
                 to decompose the code</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> property.code</td> 
          <td> 1..1</td> 
          <td> 
            <a href="datatypes.html#code">code</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> Identifies the property returned</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> property.value</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#code">code</a>  | 
            <a href="datatypes.html#Coding">Coding</a>  | 
            <a href="datatypes.html#string">string</a>  | 
            <a href="datatypes.html#integer">integer</a>  | 
            <a href="datatypes.html#boolean">boolean</a>  | 
            <a href="datatypes.html#dateTime">dateTime</a>  | 
            <a href="datatypes.html#decimal">decimal</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The value of the property returned</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> property.description</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#string">string</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> Human Readable representation of the property value (e.g. display for a code)</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> property.subproperty</td> 
          <td> 0..*</td> 
          <td/>  
          <td/>  
          <td> 
            <div> 
              <p> Nested Properties (mainly used for SNOMED CT decomposition, for relationship Groups)</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> property.subproperty.code</td> 
          <td> 1..1</td> 
          <td> 
            <a href="datatypes.html#code">code</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> Identifies the sub-property returned</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> property.subproperty.value</td> 
          <td> 1..1</td> 
          <td> 
            <a href="datatypes.html#code">code</a>  | 
            <a href="datatypes.html#Coding">Coding</a>  | 
            <a href="datatypes.html#string">string</a>  | 
            <a href="datatypes.html#integer">integer</a>  | 
            <a href="datatypes.html#boolean">boolean</a>  | 
            <a href="datatypes.html#dateTime">dateTime</a>  | 
            <a href="datatypes.html#decimal">decimal</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> The value of the sub-property returned</p> 

            </div> 
          </td> 
        </tr> 
        <tr> 
          <td> OUT</td> 
          <td> property.subproperty.description</td> 
          <td> 0..1</td> 
          <td> 
            <a href="datatypes.html#string">string</a> 
          </td> 
          <td/>  
          <td> 
            <div> 
              <p> Human Readable representation of the property value (e.g. display for a code)</p> 

            </div> 
          </td> 
        </tr> 
      </table> 
      <div> 
        <p> Note that the $lookup operation is more than just a code system search  - the server finds
           the concept, and gathers the return information from the underlying code system definitions.</p> 

      </div> 
    </div> 
  </text> 
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
    <valueInteger value="5"/> 
  </extension> 
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
    <valueCode value="normative"/> 
  </extension> 
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version">
    <valueCode value="4.0.1"/> 
  </extension> 
  <url value="http://hl7.org/fhir/OperationDefinition/CodeSystem-lookup"/> 
  <version value="4.0.1"/> 
  <name value="Concept Look Up &amp; Decomposition"/> 
  <status value="draft"/> 
  <kind value="operation"/> 
  <date value="2021-01-21T15:34:20+00:00"/> 
  <publisher value="HL7 (FHIR Project)"/> 
  <contact> 
    <telecom> 
      <system value="url"/> 
      <value value="http://hl7.org/fhir"/> 
    </telecom> 
    <telecom> 
      <system value="email"/> 
      <value value="fhir@lists.hl7.org"/> 
    </telecom> 
  </contact> 
  <description value="Given a code/system, or a Coding, get additional details about the concept, including
   definition, status, designations, and properties. One of the products of this operation
   is a full decomposition of a code from a structured terminology.

When invoking this operation, a client SHALL provide both a system and a code, either
   using the system+code parameters, or in the coding parameter. Other parameters are optional"/> 
  <code value="lookup"/> 
  <comment value="Note that the $lookup operation is more than just a code system search  - the server finds
   the concept, and gathers the return information from the underlying code system definitions."/> 
  <resource value="CodeSystem"/> 
  <system value="false"/> 
  <type value="true"/> 
  <instance value="false"/> 
  <parameter> 
    <name value="code"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="The code that is to be located. If a code is provided, a system must be provided"/> 
    <type value="code"/> 
  </parameter> 
  <parameter> 
    <name value="system"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="The system for the code that is to be located"/> 
    <type value="uri"/> 
  </parameter> 
  <parameter> 
    <name value="version"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="The version of the system, if one was provided in the source data"/> 
    <type value="string"/> 
  </parameter> 
  <parameter> 
    <name value="coding"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="A coding to look up"/> 
    <type value="Coding"/> 
  </parameter> 
  <parameter> 
    <name value="date"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="The date for which the information should be returned. Normally, this is the current conditions
     (which is the default value) but under some circumstances, systems need to acccess this
     information as it would have been in the past. A typical example of this would be where
     code selection is constrained to the set of codes that were available when the patient
     was treated, not when the record is being edited. Note that which date is appropriate
     is a matter for implementation policy."/> 
    <type value="dateTime"/> 
  </parameter> 
  <parameter> 
    <name value="displayLanguage"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="The requested language for display (see $expand.displayLanguage)"/> 
    <type value="code"/> 
  </parameter> 
  <parameter> 
    <name value="property"/> 
    <use value="in"/> 
    <min value="0"/> 
    <max value="*"/> 
    <documentation value="A property that the client wishes to be returned in the output. If no properties are specified,
     the server chooses what to return. The following properties are defined for all code systems:
     url, name, version (code system info) and code information: display, definition, designation,
     parent and child, and for designations, lang.X where X is a designation language code.
     Some of the properties are returned explicit in named parameters (when the names match),
     and the rest (except for lang.X) in the property parameter group"/> 
    <type value="code"/> 
  </parameter> 
  <parameter> 
    <name value="name"/> 
    <use value="out"/> 
    <min value="1"/> 
    <max value="1"/> 
    <documentation value="A display name for the code system"/> 
    <type value="string"/> 
  </parameter> 
  <parameter> 
    <name value="version"/> 
    <use value="out"/> 
    <min value="0"/> 
    <max value="1"/> 
    <documentation value="The version that these details are based on"/> 
    <type value="string"/> 
  </parameter> 
  <parameter> 
    <name value="display"/> 
    <use value="out"/> 
    <min value="1"/> 
    <max value="1"/> 
    <documentation value="The preferred display for this concept"/> 
    <type value="string"/> 
  </parameter> 
  <parameter> 
    <name value="designation"/> 
    <use value="out"/> 
    <min value="0"/> 
    <max value="*"/> 
    <documentation value="Additional representations for this concept"/> 
    <part> 
      <name value="language"/> 
      <use value="out"/> 
      <min value="0"/> 
      <max value="1"/> 
      <documentation value="The language this designation is defined for"/> 
      <type value="code"/> 
    </part> 
    <part> 
      <name value="use"/> 
      <use value="out"/> 
      <min value="0"/> 
      <max value="1"/> 
      <documentation value="A code that details how this designation would be used"/> 
      <type value="Coding"/> 
    </part> 
    <part> 
      <name value="value"/> 
      <use value="out"/> 
      <min value="1"/> 
      <max value="1"/> 
      <documentation value="The text value for this designation"/> 
      <type value="string"/> 
    </part> 
  </parameter> 
  <parameter> 
    <name value="property"/> 
    <use value="out"/> 
    <min value="0"/> 
    <max value="*"/> 
    <documentation value="One or more properties that contain additional information about the code, including status.
     For complex terminologies (e.g. SNOMED CT, LOINC, medications), these properties serve
     to decompose the code"/> 
    <part> 
      <name value="code"/> 
      <use value="out"/> 
      <min value="1"/> 
      <max value="1"/> 
      <documentation value="Identifies the property returned"/> 
      <type value="code"/> 
    </part> 
    <part> 
      <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
        <valueUri value="code"/> 
      </extension> 
      <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
        <valueUri value="Coding"/> 
      </extension> 
      <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
        <valueUri value="string"/> 
      </extension> 
      <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
        <valueUri value="integer"/> 
      </extension> 
      <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
        <valueUri value="boolean"/> 
      </extension> 
      <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
        <valueUri value="dateTime"/> 
      </extension> 
      <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
        <valueUri value="decimal"/> 
      </extension> 
      <name value="value"/> 
      <use value="out"/> 
      <min value="0"/> 
      <max value="1"/> 
      <documentation value="The value of the property returned"/> 
      <type value="Element"/> 
    </part> 
    <part> 
      <name value="description"/> 
      <use value="out"/> 
      <min value="0"/> 
      <max value="1"/> 
      <documentation value="Human Readable representation of the property value (e.g. display for a code)"/> 
      <type value="string"/> 
    </part> 
    <part> 
      <name value="subproperty"/> 
      <use value="out"/> 
      <min value="0"/> 
      <max value="*"/> 
      <documentation value="Nested Properties (mainly used for SNOMED CT decomposition, for relationship Groups)"/> 
      <part> 
        <name value="code"/> 
        <use value="out"/> 
        <min value="1"/> 
        <max value="1"/> 
        <documentation value="Identifies the sub-property returned"/> 
        <type value="code"/> 
      </part> 
      <part> 
        <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
          <valueUri value="code"/> 
        </extension> 
        <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
          <valueUri value="Coding"/> 
        </extension> 
        <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
          <valueUri value="string"/> 
        </extension> 
        <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
          <valueUri value="integer"/> 
        </extension> 
        <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
          <valueUri value="boolean"/> 
        </extension> 
        <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
          <valueUri value="dateTime"/> 
        </extension> 
        <extension url="http://hl7.org/fhir/StructureDefinition/operationdefinition-allowed-type">
          <valueUri value="decimal"/> 
        </extension> 
        <name value="value"/> 
        <use value="out"/> 
        <min value="1"/> 
        <max value="1"/> 
        <documentation value="The value of the sub-property returned"/> 
        <type value="Element"/> 
      </part> 
      <part> 
        <name value="description"/> 
        <use value="out"/> 
        <min value="0"/> 
        <max value="1"/> 
        <documentation value="Human Readable representation of the property value (e.g. display for a code)"/> 
        <type value="string"/> 
      </part> 
    </part> 
  </parameter> 
</OperationDefinition> 

Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.