<StructureDefinition xmlns="http://hl7.org/fhir">
  <meta>
    <lastUpdated value="2017-06-26T17:15:13.863-04:00" />
    <profile value="PhdBitsEnumerationObservation" />
  </meta>
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
    <valueCode value="oo" />
  </extension>
  <url value="http://pchalliance.org/phdfhir/StructureDefinition/PhdBitsEnumerationObservation" />
  <name value="PhdBitsEnumerationObservation" />
  <status value="draft" />
  <date value="2017-06-02T14:29:52.39367-04:00" />
  <fhirVersion value="3.0.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation">
      <path value="Observation" />
      <definition value="The PhdBitsEnumerationObservation reports PHD measurements that contain a Enum-Observed-Value-Simple-Bit-Str or Enum-Observed-Value-Basic-Bit-Str attribute." />
      <comment value="This type of measurement is used when the Personal Health Device reports a measurement as an IEEE 11073 10101 BITs value. This measurement is a complex representation where each bit means something. In many cases only certain bits are defined and it is generally true that the significant case is when the bit has been set. Given that measurement could result in up to 32 component entries (one for each bit) only set bits are required to be reported. Some specializations have used this measurement type when they should have used IEEE 10101 codes." />
    </element>
    <element id="Observation.meta.profile">
      <path value="Observation.meta.profile" />
      <min value="1" />
    </element>
    <element id="Observation.identifier">
      <path value="Observation.identifier" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="value" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.identifier:conditionalCreateIdentifier">
      <path value="Observation.identifier" />
      <sliceName value="conditionalCreateIdentifier" />
      <short value="Unique identifier of this measurment for a given patient and device" />
      <definition value="An identifier created from a combination of the measurement parameters like sensor time stamp, type code, enumeration BITs integer, patient and device identifiers, and selected elements of any facet component elements." />
      <comment value="This value is used in the conditional create to prevent data duplication. PHDs will often re-send already sent data for a variety of reasons. This element is required unless the metric measurement contains no time stamp or is a measurement containing a time stamp that is real time. By real time the time stamp reported by the PHD must be later than the current time reported by the PHD before any measurements are received. Temporarily stored data from IEEE 11073 20601 devices, which are required to delete the data after sending, can also be considered real time. Temporarily stored data from Bluetooth Low Energy Health devices may be resent so these cannot be considered as real time. " />
      <requirements value="Allows observations to be distinguished in a selective enough manner to prevent resource duplication." />
      <max value="1" />
    </element>
    <element id="Observation.identifier:conditionalCreateIdentifier.value">
      <path value="Observation.identifier.value" />
      <min value="1" />
    </element>
    <element id="Observation.identifier:additionalIdentifiers">
      <path value="Observation.identifier" />
      <sliceName value="additionalIdentifiers" />
      <comment value="Use of additional identifiers is allowed by this profile" />
    </element>
    <element id="Observation.status">
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-display-hint">
        <valueString value="default: final" />
      </extension>
      <path value="Observation.status" />
      <definition value="The status of the result value. Either 'final' or 'preliminary'" />
      <comment value="The value shall be set to 'final' unless a Measurement-Status attribute or Enum-Observed-Value attribute, representing a BITs value, status field indicates that the measurement is preliminary. In that case this field shall be set to 'preliminary'" />
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <comment value="For Enumeration BITs measurements, none will fall into the category of vital signs so a LOINC encoding is never necessary in this profile." />
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.code.coding:11073Type">
      <path value="Observation.code.coding" />
      <sliceName value="11073Type" />
      <short value="The 11073-10101 code for the measurement" />
      <comment value="For 11073-20601 metric enumeration measurements, this code is obtained from one or more of the Type, Metric-Id, Enum-Observed-Value.metric, and Metric-Id-Partition attributes. The algorithm to get the 16-bit partition and 16-bit term code is as follows:&#xD;&#xA;&#xD;&#xA;1. The partition and term code are obtained from the Type attribute.&#xD;&#xA;2. If there is a Metric-Id attribute the term code comes from this attribute.&#xD;&#xA;3. If there is a Enum-Observed-Value attribute the term code comes from this attribute.&#xD;&#xA;4. If the term code is NOT from the Type attribute, and there is a Metric-Id-Partition attribute, the partition comes from this attribute.&#xD;&#xA;5. The 32-bit 11073-10101 code value is given by partition * 2 **16 + term code.&#xD;&#xA;&#xD;&#xA;It is this value that is placed in the code.coding.code element for this 11073Type slice" />
      <max value="1" />
    </element>
    <element id="Observation.code.coding:11073Type.system">
      <path value="Observation.code.coding.system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.code.coding:11073Type.code">
      <path value="Observation.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.code.coding:alternativeCoding">
      <path value="Observation.code.coding" />
      <sliceName value="alternativeCoding" />
      <definition value="A reference to a code describing the meaning of the primary 11073 code in an alternative terminology system." />
    </element>
    <element id="Observation.code.coding:alternativeCoding.system">
      <path value="Observation.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.code.coding:alternativeCoding.code">
      <path value="Observation.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.subject">
      <path value="Observation.subject" />
      <min value="1" />
    </element>
    <element id="Observation.subject.reference">
      <path value="Observation.subject.reference" />
      <min value="1" />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <slicing>
        <discriminator>
          <type value="exists" />
          <path value="start" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <definition value="The time or time-period the observed value is asserted as being true. It is a time period if a Measurement-Duration attribute is part of the metric measurement sent by the PHD. Otherwise it is the time stamp sent by the PHD or the time of reception by the PHG if the PHD sent no time stamp." />
      <min value="1" />
    </element>
    <element id="Observation.effective[x]:dateTimeEffective">
      <path value="Observation.effective[x]" />
      <sliceName value="dateTimeEffective" />
      <comment value="A date and time shall always be present." />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Observation.effective[x]:periodEffective">
      <path value="Observation.effective[x]" />
      <sliceName value="periodEffective" />
      <type>
        <code value="Period" />
      </type>
      <definition value="The time period when there is a Measurement-Duration attribute. The difference between the end and start fields is the value of the Measurement-Duration." />
    </element>
    <element id="Observation.effective[x]:periodEffective.start">
      <path value="Observation.effective[x].start" />
      <min value="1" />
    </element>
    <element id="Observation.effective[x]:periodEffective.end">
      <path value="Observation.effective[x].end" />
      <min value="1" />
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <comment value="The values are reported in Observation.component elements." />
      <max value="0" />
    </element>
    <element id="Observation.dataAbsentReason">
      <path value="Observation.dataAbsentReason" />
      <definition value="Provides a reason why there are Observation.component elements reporting the BITs values present. This would be due to an error condition indicated by the Measurement-Status attribute." />
      <comment value="The current values in the http://hl7.org/fhir/data-absent-reason system do not provide the same detailed set of options reported in the Measurement-Status. In those cases one uses the generic 'error' code if the error is 'fatal'. The measurementStatusComponent can be used to report more specific information." />
    </element>
    <element id="Observation.dataAbsentReason.coding.system">
      <path value="Observation.dataAbsentReason.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.dataAbsentReason.coding.code">
      <path value="Observation.dataAbsentReason.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.device">
      <path value="Observation.device" />
      <comment value="This field will reference the DeviceComponent when the updated fixes are in place. In the meantime it will reference the DeviceMetric" />
      <min value="1" />
    </element>
    <element id="Observation.device.reference">
      <path value="Observation.device.reference" />
      <short value="Reference to the device responsible for the measurement" />
      <definition value="Reference to the device-related resources that describe the sensor device taking the measurement and the gateway that handled it." />
      <comment value="This reference points to the DeviceComponent resource chain containing information about the sensor device  that took the measurement and gateway (if any) that handled it." />
      <min value="1" />
    </element>
    <element id="Observation.related">
      <path value="Observation.related" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="target.reference" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.related:coincidentTimeStampRelated">
      <path value="Observation.related" />
      <sliceName value="coincidentTimeStampRelated" />
      <short value="Pointer to the Coincident Time Stamp" />
      <definition value="A reference to the Coincident Time Stamp observation. The Coincident Time Stamp indicates how the time stamps from the PHD are corrected, if at all." />
      <comment value="This reference shall be present if the PHD reports a time stamp. The reference shall point to the Coincident Time Stamp observation. The Coincident Time Stamp Observation provides an audit of the time stamp. Whether or not the gateway corrected the time stamp can be determined from the elements in this Observation. If the timestamps were corrected, the elements of the Observation can be used to obtain the actual time stamps reported by the PHD.&#xD;&#xA;&#xD;&#xA;There is no reference to a Coincident Time Stamp Observation when the PHD does not report a time stamp." />
      <requirements value="This Observation allows one to re-create the original time stamp generated by the PHD should it have been modified by the PHG." />
    </element>
    <element id="Observation.related:coincidentTimeStampRelated.target.reference">
      <path value="Observation.related.target.reference" />
      <min value="1" />
    </element>
    <element id="Observation.related:SourceHandleReferenceRelated">
      <path value="Observation.related" />
      <sliceName value="SourceHandleReferenceRelated" />
      <comment value="A measurement may have one or more source handle references which point to measurements that this measurement is related to in some way. When one of these attributes are present in the measurement, these values point to other measurements. In this case these measurements will be previously generated Observation resources which are then referenced here. Note that the previously received measurement must be received in the same connection as the current measurement. The application does not need to keep record of all measurements from the given device!" />
      <requirements value="Points to a measurement that this measurement is related to or dependent upon, for example a BMI which is calculated from a weight and height measurement or a heart rate taken during a running session." />
    </element>
    <element id="Observation.related:SourceHandleReferenceRelated.target.reference">
      <path value="Observation.related.target.reference" />
      <min value="1" />
    </element>
    <element id="Observation.related:additionalRelated">
      <path value="Observation.related" />
      <sliceName value="additionalRelated" />
      <comment value="Additional references are allowed but out of scope of this profile" />
    </element>
    <element id="Observation.component">
      <path value="Observation.component" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code.coding.code" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:bitsComponent">
      <path value="Observation.component" />
      <sliceName value="bitsComponent" />
      <short value="BITs setting entry components" />
      <definition value="Each bitsComponent contains one of the bits settings as code from the BITs measurement. These entries are NOT present if a Measurement-Status attribute indicates an error." />
      <comment value="A BITs measurement is a measurement where each BIT means something, such as a device status where many status situations may be reported." />
      <requirements value="Handles a measurement that may be represented by several different settings." />
    </element>
    <element id="Observation.component:bitsComponent.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.component:bitsComponent.code.coding:ASN1Type">
      <path value="Observation.component.code.coding" />
      <sliceName value="ASN1Type" />
      <short value="The ANS1 BITs code for the measurement" />
      <comment value="For BITs measurements, this code is an alpha-numeric string created from the code reported in the Observation.code.coding:11073Type.code followed by a dot (.) followed by the MDER bit being reported. For example, the CGM Device status measurement code is 8418060. If the value reported in the BITs field is 0001 1000 0000 0000 the MDER bits set are bits 3 and 4. Note that MDER bit 0 is the HIGH order bit. Bit 3 means 'sensor malfunction' and bit 4 means 'device specific alert'. THis measurement would require two component elements and one would be 8418060.3 and the other would be 8418060.4. Note these are alphas-numeric strings and not decimal numbers. If one took the code 8418060.3 and looked it up in the ASN1 Bits vocabulary one would find it meant 'sensor malfunctioned'." />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:bitsComponent.code.coding:ASN1Type.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://hl7.org/fhir/IEEE.ASN1" />
      <comment value="This value is a placeholder until the correct reference URL is registered." />
    </element>
    <element id="Observation.component:bitsComponent.code.coding:ASN1Type.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:bitsComponent.code.coding:alternativeCoding">
      <path value="Observation.component.code.coding" />
      <sliceName value="alternativeCoding" />
      <definition value="A reference to a code describing the meaning of the primary ASN1 BITs code in an alternative terminology system." />
    </element>
    <element id="Observation.component:bitsComponent.code.coding:alternativeCoding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component:bitsComponent.code:alternativeCoding.coding.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:bitsComponentComponent.value[x]:valueCodeableConcept">
      <path value="Observation.component.valueCodeableConcept" />
      <sliceName value="valueCodeableConcept" />
      <definition value="The information determined as a result of making the observation, if the information is a code." />
      <comment value="If the application wishes to report an unsupported setting, this element is absent and the dataAbsentReason is used to report the condition." />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Observation.component:bitsComponentComponent.value[x]:valueCodeableConcept.coding">
      <path value="Observation.component.valueCodeableConcept.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:bitsComponentComponent.value[x]:valueCodeableConcept.coding:v2BinaryValue">
      <path value="Observation.component.valueCodeableConcept.coding" />
      <sliceName value="v2BinaryValue" />
      <min value="1" />
    </element>
    <element id="Observation.component:bitsComponentComponent.value[x]:valueCodeableConcept.coding:v2BinaryValue.system">
      <path value="Observation.component.valueCodeableConcept.coding.system" />
      <min value="1" />
      <fixedUri value="http://hl7.org/fhir/v2/0136" />
    </element>
    <element id="Observation.component:bitsComponentComponent.value[x]:valueCodeableConcept.coding:v2BinaryValue.code">
      <path value="Observation.component.valueCodeableConcept.coding.code" />
      <definition value="If the bit is set this code is 'y' and 'n' if the bit is cleared. Only set bits are required to be reported. If the bit is unsupported, a dataAbsentReason is used." />
      <min value="1" />
    </element>
    <element id="Observation.component:bitsComponentComponent.value[x]:valueCodeableConcept.coding:alternativeCoding">
      <path value="Observation.component.valueCodeableConcept.coding" />
      <sliceName value="alternativeCoding" />
      <definition value="The given binary setting value expressed in an alternative coding system" />
    </element>
    <element id="Observation.component:bitsComponentComponent.value[x]:valueCodeableConcept.coding:alternativeCoding.system">
      <path value="Observation.component.valueCodeableConcept.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component:bitsComponentComponent.value[x]:valueCodeableConcept.coding:alternativeCoding.code">
      <path value="Observation.component.valueCodeableConcept.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:bitsComponentComponent.dataAbsentReason">
      <path value="Observation.dataAbsentReason" />
      <definition value="Provides a reason why there are Observation.component elements reporting the BITs values present. This would be due to an error condition indicated by the Measurement-Status attribute." />
      <comment value="This element is only used if the application wishes to report that the state of the bit is unsupported." />
    </element>
    <element id="Observation.component:bitsComponentComponent.dataAbsentReason.coding.system">
      <path value="Observation.dataAbsentReason.coding.system" />
      <fixedUri value="http://hl7.org/fhir/data-absent-reason" />
      <min value="1" />
    </element>
    <element id="Observation.component:bitsComponentComponent.dataAbsentReason.coding.code">
      <path value="Observation.dataAbsentReason.coding.code" />
      <fixedCode value="unsupported" />
      <min value="1" />
    </element>
    <element id="Observation.component:supplementalTypesComponent">
      <path value="Observation.component" />
      <sliceName value="supplementalTypesComponent" />
      <definition value="For each paritition:term code pair contained in the Supplemental-Types attribute, a separate supplementalTypesComponent element is generated. The component is not generated if the attribute is absent or empty. The component shall be generated otherwise.&#xD;&#xA;" />
      <comment value="A PHD may send a Supplemental-Types attribute as part of the measurement. This attribute consists of a set of MDC nomenclature codes as partition:term code pairs. Each pair is a code describing something additional about the measurement, such as MDC_MODALITY_SPOT in the pulse oximeter which indicates that the provided meausrement is a stable average. An MDC_MODALITY_FAST would indicate that a short averaging is used and the result reported regardless of stability." />
    </element>
    <element id="Observation.component:supplementalTypesComponent.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.code.coding:11073Type">
      <path value="Observation.component.code.coding" />
      <sliceName value="11073Type" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.code.coding:11073Type.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.code.coding:11073Type.code">
      <path value="Observation.component.code.coding.code" />
      <definition value="68193 is the 32-bit nomenclature code indicating a 'Supplemental-Types' value" />
      <min value="1" />
      <fixedCode value="68193" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.code.coding:11073Type.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.code.coding.display" />
      <definition value="It is recommended to display at least the reference identifier for the Supplemental-Types which is MDC_ATTR_SUPPLEMENTAL_TYPES" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.code.coding:alternativeCoding">
      <path value="Observation.component.code.coding" />
      <sliceName value="alternativeCoding" />
      <definition value="The Supplemental-Types concept expressed in an alternative coding system" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.code.coding:alternativeCoding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.code.coding:alternativeCoding.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept">
      <path value="Observation.component.valueCodeableConcept" />
      <sliceName value="valueCodeableConcept" />
      <definition value="The information determined as a result of making the observation, if the information is a code." />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding">
      <path value="Observation.component.valueCodeableConcept.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding:11073Value">
      <path value="Observation.component.valueCodeableConcept.coding" />
      <sliceName value="11073Value" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding:11073Value.system">
      <path value="Observation.component.valueCodeableConcept.coding.system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding:11073Value.code">
      <path value="Observation.component.valueCodeableConcept.coding.code" />
      <definition value="For the given Supplemental-Types entry the code here is given by: partition * 2**16 + term code" />
      <min value="1" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding:alternativeCoding">
      <path value="Observation.component.valueCodeableConcept.coding" />
      <sliceName value="alternativeCoding" />
      <definition value="The given Supplemental-Types entry value expressed in an alternative coding system" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding:alternativeCoding.system">
      <path value="Observation.component.valueCodeableConcept.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding:alternativeCoding.code">
      <path value="Observation.component.valueCodeableConcept.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:supplementalTypesComponent.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason" />
      <max value="0" />
    </element>
    <element id="Observation.component:relativeTimeComponent">
      <path value="Observation.component" />
      <sliceName value="relativeTimeComponent" />
      <definition value="This component shall be present if the measurement contains a Relative-Time-Stamp." />
      <comment value="Relative time stamps are converted to wall clock time by the PHG through the Coincident Time Stamp Observation. The original relative time value shall be provided here in order to recover the data sent by the sensor device.&#xD;&#xA;The Relative-Time-Stamp is a 32-bit unsigned integer in units of 1/8th ms." />
      <max value="1" />
    </element>
    <element id="Observation.component:relativeTimesComponent.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.component:relativeTimeComponent.code.coding:11073Type">
      <path value="Observation.component.code.coding" />
      <sliceName value="11073Type" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:relativeTimeComponent.code.coding:11073Type.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.component:relativeTimeComponent.code.coding:11073Type.code">
      <path value="Observation.component.code.coding.code" />
      <definition value="The MDC code of the Relative-Time-Stamp attribute" />
      <fixedCode value="67985" />
      <min value="1" />
    </element>
    <element id="Observation.component:relativeTimeComponent.code.coding:11073Type.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.code.coding.display" />
      <definition value="The reference identifier should be included in the description. For a Relative-Time-Stamp the ref id is MDC_ATTR_TIME_STAMP_REL" />
    </element>
    <element id="Observation.component:relativeTimeComponent.code.coding:alternativeCoding">
      <path value="Observation.component.code.coding" />
      <sliceName value="alternativeCoding" />
    </element>
    <element id="Observation.component:relativeTimeComponent.code.coding:alternativeCoding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component:relativeTimeComponent.code.coding:alternativeCoding.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:relativeTimeComponent.value[x]:valueQuantity">
      <path value="Observation.component.valueQuantity" />
      <sliceName value="valueQuantity" />
      <type>
        <code value="Quantity" />
      </type>
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:relativeTimeComponent.value[x]:valueQuantity.value">
      <path value="Observation.component.valueQuantity.value" />
      <definition value="The value of the relative time attribute which is in units of 1/8th milliseconds scaled to microseconds." />
      <min value="1" />
    </element>
    <element id="Observation.component:relativeTimeComponent.value[x]:valueQuantity.unit">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.valueQuantity.unit" />
      <definition value="A human-readable form of the unit in this case the UCUM code for microseconds (us)" />
      <min value="1" />
    </element>
    <element id="Observation.component:relativeTimeComponent.value[x]:valueQuantity.system">
      <path value="Observation.component.valueQuantity.system" />
      <definition value="The unit code shall use the MDC system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.component:relativeTimeComponent.value[x]:valueQuantity.code">
      <path value="Observation.component.valueQuantity.code" />
      <definition value="The MDC code for microseconds is 264339" />
      <min value="1" />
    </element>
    <element id="Observation.component:relativeTimeComponent.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason" />
      <max value="0" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent">
      <path value="Observation.component" />
      <sliceName value="hiresRelativeTimeComponent" />
      <definition value="This component shall be present if the measurement contains Hi-Res-Relative-Time-Stamp." />
      <comment value="Hi Res Relative time stamps are converted to wall clock time by the PHG through the Coincident Time Stamp Observation. The original relative time value shall be provided here in order to recover the data sent by the sensor device.&#xD;&#xA;The Hi-Res-Relative-Time-Stamp is a 64-bit unsigned interger in units of microseconds." />
      <max value="1" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent.code.coding:11073Type">
      <path value="Observation.component.code.coding" />
      <sliceName value="11073Type" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent.code.coding:11073Type.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent.code.coding:11073Type.code">
      <path value="Observation.component.code.coding.code" />
      <definition value="The MDC code for the Hi-Res-Relative-Time-Stamp attribute" />
      <fixedCode value="68073" />
      <min value="1" />
    </element>
    <element id="Observation.component:hiresRelativeTime.code.coding:11073Type.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.code.coding.display" />
      <definition value="The reference identifier should be included in the description. For a Hi-Res-Relative-Time-Stamp the ref id is MDC_ATTR_TIME_STAMP_REL_HI_RES" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent.code.coding:alternativeCoding">
      <path value="Observation.component.code.coding" />
      <sliceName value="alternativeCoding" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent.code.coding:alternativeCoding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent.code.coding:alternativeCoding.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent.value[x]:valueQuantity">
      <path value="Observation.component.valueQuantity" />
      <sliceName value="valueQuantity" />
      <type>
        <code value="Quantity" />
      </type>
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent.value[x]:valueQuantity.value">
      <path value="Observation.component.valueQuantity.value" />
      <definition value="The value of the hi res relative time attribute (already in microseconds)." />
      <min value="1" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent.value[x]:valueQuantity.unit">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.valueQuantity.unit" />
      <definition value="A human-readable form of the unit in this case the UCUM code for microseconds (us)" />
      <min value="1" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent.value[x]:valueQuantity.system">
      <path value="Observation.component.valueQuantity.system" />
      <definition value="The unit code shall use the MDC system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent.value[x]:valueQuantity.code">
      <path value="Observation.component.valueQuantity.code" />
      <definition value="The MDC code for microseconds is 264339" />
      <min value="1" />
    </element>
    <element id="Observation.component:hiresRelativeTimeComponent.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason" />
      <max value="0" />
    </element>
    <!-- There is no accuracy component or units in an OID measurement 
    <element id="Observation.component:accuracyComponent">
      <path value="Observation.component" />
      <sliceName value="accuracyComponent" />
      <definition value="This component shall be present if the accuracy attribute is present." />
      <max value="1" />
    </element>
    <element id="Observation.component:accuracyComponent.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
      <min value="1"/>
    </element>
    <element id="Observation.component:accuracyComponent.code.coding:11073Type">
      <path value="Observation.component.code.coding" />
      <sliceName value="11073Type" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:accuracyComponent.code.coding:11073Type.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.component:accuracyComponent.code.coding:11073Type.code">
      <path value="Observation.component.code.coding.code" />
      <definition value="The code for the accuracy attribute is 67914" />
      <min value="1" />
      <fixedCode value="67914" />
    </element>
    <element id="Observation.component:accuracyComponent.code.coding:11073Type.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.code.coding.display" />
      <definition value="Should include the reference identifier for the Accuracy-Attribute MDC_ATTR_NU_ACCUR_MSMT" />
    </element>
    <element id="Observation.component:accuracyComponent.code.coding:alternativeCoding">
      <path value="Observation.component.code.coding" />
      <sliceName value="alternativeCoding" />
      <definition value="The accuracy expressed in an alternative coding system" />
    </element>
    <element id="Observation.component:accuracyComponent.code.coding:alternativeCoding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component:accuracyComponent.code.coding:alternativeCoding.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:accuracyComponent.value[x]:valueQuantity">
      <path value="Observation.component.valueQuantity" />
      <sliceName value="valueQuantity" />
      <type>
        <code value="Quantity" />
      </type>
      <min value="1"/>
      <max value="1"/>
    </element>
    <element>
      <path value="Observation.component.valueQuantity.value" />
      <definition value="This is the value of the accuracy attribute. The value is Mder FLOAT encoded and shall be expressed to the precision indicated by the Mder FLOAT." />
      <min value="1" />
    </element>
    <element id="Observation.component:accuracyComponent.value[x]:valueQuantity.unit">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.valueQuantity.unit" />
      <definition value="A human-readable form of the unit. One should put the UCUM code for the units in this display string. It shall match the UCUM code in Observation.valueQuantity.unit if UCUM is used there." />
    </element>
    <element id="Observation.component:accuracyComponent.value[x]:valueQuantity.system">
      <path value="Observation.component.valueQuantity.system" />
      <definition value="The unit code shall use the MDC system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.component:accuracyComponent.value[x]:valueQuantity.code">
      <path value="Observation.component.valueQuantity.code" />
      <definition value="The units are given by the units of the measurement so this shall have the code as in Observation.valueQuantity.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:accuracyComponent.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason"/>
      <max value="0"/>
    </element>

    <element id="Observation.component:unitLabelStringComponent">
      <path value="Observation.component" />
      <sliceName value="unitLabelStringComponent" />
      <definition value="This component reports the value in the Unit-Label-String attribute. Reporting the Unit-Label-String attribute value is optional." />
      <comment value="This attribute consist of a human readable string giving a further description of the measurement units" />
      <max value="1" />
    </element>
    <element id="Observation.component:unitLabelStringComponent">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
      <min value="1"/>
    </element>
    <element id="Observation.component:unitLabelStringComponent.code.coding:11073Type">
      <path value="Observation.component.code.coding" />
      <sliceName value="11073Type" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:unitLabelStringComponent.code.coding:11073Type.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.component:unitLabelStringComponent.code.coding:11073Type.code">
      <path value="Observation.component.code.coding.code" />
      <definition value="The MDC code for the Unit-Label-String attribute" />
      <fixedCode value="133529" />
      <min value="1" />
    </element>
    <element id="Observation.component:unitLabelStringComponent.code.coding:11073Type.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.code.coding.display" />
      <definition value="The reference identifier for the attribute should be included. The Unit-Label-String attribute ref id is MDC_ATTR_UNIT_LABEL_STRING" />
    </element>
    <element id="Observation.component:unitLabelStringComponent.code.coding:alternativeCoding">
      <path value="Observation.component.code.coding" />
      <sliceName value="alternativeCoding" />
      <definition value="This element allows the expression of the unit label sting in alternative coding systems." />
    </element>
    <element id="Observation.component:unitLabelStringComponent.code.coding:alternativeCoding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component:unitLabelStringComponent.code.coding:alternativeCoding.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:unitLabelStringComponent.value[x]:valueString">
      <path value="Observation.component.valueString" />
      <sliceName value="valueString" />
      <type>
        <code value="string" />
      </type>
      <min value="1"/>
      <max value="1"/>
    </element>
    <element id="Observation.component:unitLabelStringComponent.value[x]:valueString.value">
      <path value="Observation.component.valueString.value" />
      <definition value="This is the value of the unit label string attribute." />
      <min value="1" />
    </element>
    <element id="Observation.component:unitLabelStringComponent.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason"/>
      <max value="0"/>
    </element>
-->
    <element id="Observation.component:labelStringComponent">
      <path value="Observation.component" />
      <sliceName value="labelStringComponent" />
      <definition value="This component reports the value in Label-String attribute. Reporting the Label-String attribute information is optional." />
      <comment value="This attribute consists of a human readable string giving a further description of the measurement type" />
      <max value="1" />
    </element>
    <element id="Observation.component:labelStringComponent.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.component:labelStringComponent.code.coding:11073Type">
      <path value="Observation.component.code.coding" />
      <sliceName value="11073Type" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:labelStringComponent.code.coding:11073Type.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.component:labelStringComponent.code.coding:11073Type.code">
      <path value="Observation.component.code.coding.code" />
      <definition value="The MDC code for the Label-String attribute" />
      <fixedCode value="133415" />
      <min value="1" />
    </element>
    <element id="Observation.component:labelStringComponent.code.coding:11073Type.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.code.coding.display" />
      <definition value="The reference identifier for the attribute should be included. The Label-String attribute ref id is MDC_ATTR_LABEL_STRING" />
    </element>
    <element id="Observation.component:labelStringComponent.code.coding:alternativeCoding">
      <path value="Observation.component.code.coding" />
      <sliceName value="alternativeCoding" />
      <definition value="These elements allow the expression of the label string in alternative coding systems." />
    </element>
    <element id="Observation.component:labelStringComponent.code.coding:alternativeCoding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component:labelStringComponent.code.coding:alternativeCoding.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:labelStringComponent.value[x]:valueString">
      <path value="Observation.component.valueString" />
      <sliceName value="valueString" />
      <type>
        <code value="string" />
      </type>
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:labelStringComponent.value[x]:valueString.value">
      <path value="Observation.component.valueString.value" />
      <definition value="This is the value of the label string attribute." />
      <min value="1" />
    </element>
    <element id="Observation.component:labelStringComponent.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason" />
      <max value="0" />
    </element>
    <!-- These specialization components are only present in numeric measurements
    <element id="Observation.component:alertOpStateComponent">
      <path value="Observation.component"/>
      <sliceName value="alertOpStateComponent"/>
      <definition value="This component gives one of the settings reported in the Alert-Op-State attribute. This attribute is used only by the Pulse Oximeter specialization.&#xD;&#xA;The Alert-Op-State attribute is used in conjunction with the Current-Limits and Measurement-Status attributes. The Current-Limits defines upper and lower limit thresholds for a reported measurement value. When the reported measurement value goes below or above these limits, a bit is set in the Measurement-Status attribute is set if the Alert-Op-State attribute indicates that the alert is active for the given threshold. Since it is considered important that if a Current-Limits attribute is present an alert shall be sent went the thresholds are crossed, the Alert-Op-State Bits are only set when the alert is, for some reason, turned OFF for a given threshold.&#xD;&#xA;There shall be one such alertOpStateComponent entry for every bit set in the Alert-Op-State attribute. There may be an entry for the defined cleared components as well."/>
      <comment value="Recall that when creating the code for this entry that the code uses the MDER-Bit setting to be reported along with the Alert-Op-State attribute's MDC code. MDER-Bit 0 is the most significant bit of the attribute value. Since the Alert-Op-State attribute is a BITS-16 value, MDER-Bit 0 would have value 0x8000 and MDER-Bit 1 would have value 0x4000. Only bits 0, 1, and 2 are defined for this attribute."/>
      <requirements value="This component indicates if a given alert condition is turned off."/>
    </element>
    <element id="Observation.component:alertOpStateComponent.code.coding">
      <path value="Observation.component.code.coding"/>
      <comment value="Normally alternative coding systems are allowed but in this case the value is intimately tied to the code. The code represents the feature indicated by a bit settin in the attribute value. which is either cleared (0) or set (1). Thus the value for this entry is itself a binary 'y' or 'n' code from http://hl7.org/fhir/v2/0136"/>
      <min value="1"/>
      <max value="1"/>
    </element>
    <element id="Observation.component:alertOpStateComponent.code.coding.system">
      <path value="Observation.component.code.coding.system"/>
      <min value="1"/>
      <fixedUri value="http://hl7.org/fhir/IEEE.ASN1"/>
    </element>
    <element id="Observation.component:alertOpStateComponent.code.coding.code">
      <path value="Observation.component.code.coding.code"/>
      <definition value="This code, which is an alpha-numeric string, is generated by the attribute MDC code, which is 68746 for the Alert-Op-State, followed by a dot (.) followed by the MDER-bit that was set. Given that only three bits are defined in the Pulse Ox specialization that uses this attribute, the code will be one of 68746.0, 68746.1. or 68746.2"/>
      <comment value="Note that this code is an alpha-numeric string and not a decimal number. Think of it like a very-limited OID."/>
      <min value="1"/>
    </element>
    <element id="Observation.component:alertOpStateComponent.value[x]:valueCodeableConcept">
      <path value="Observation.component.valueCodeableConcept"/>
      <min value="1"/>
      <type>
        <code value="CodeableConcept"/>
      </type>
    </element>
    <element id="Observation.component:alertOpStateComponent.value[x]:valueCodeableConcept.coding">
      <path value="Observation.component.valueCodeableConcept.coding"/>
      <min value="1"/>
      <max value="1"/>
    </element>
    <element id="Observation.component:alertOpStateComponent.value[x]:valueCodeableConcept.coding.system">
      <path value="Observation.component.valueCodeableConcept.coding.system"/>
      <definition value="This coding system contains only two entries, 'y' (yes) and 'n' (no)" />
      <min value="1"/>
      <fixedUri value="http://hl7.org/fhir/v2/0136"/>
    </element>
    <element id="Observation.component:alertOpStateComponent.value[x]:valueCodeableConcept.coding.code">
      <path value="Observation.component.valueCodeableConcept.coding.code"/>
      <definition value="If the MDER-Bit is set, the code value is 'y' otherwise it is 'n'" />
      <comment value="Recall that when the value is 'y' the alarm or alert is turned off" />
      <min value="1"/>
    </element>
    <element id="Observation.component:alertOpStateComponent.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason"/>
      <max value="0"/>
    </element>

    <element id="Observation.component:currentLimitsComponent">
      <path value="Observation.component"/>
      <sliceName value="currentLimitsComponent"/>
      <definition value="The Current-Limits attribute gives upper and lower threshhold values for the triggering of an alert for the measured value being reported in this Observation resource. This attribute is currently used only in the Pulse Oximeter specialization. If the alerting is not turned off, a Measurement-Status attribute bit is set when either threshold is crossed. The Current-Limits attribute value shall be reported if it is present in the measurement."/>
      <comment value="The value is expressed as a range. The lower and upper values of the range represent the thresholds."/>
      <requirements value="Allows the downstream signaling of an alert and/or warning situation."/>
      <max value="1"/>
    </element>
    <element id="Observation.component:currentLimitsComponent.component.code.coding">
      <path value="Observation.component.code.coding"/>
      <slicing>
        <discriminator>
          <type value="value"/>
          <path value="system"/>
        </discriminator>
        <ordered value="true"/>
        <rules value="open"/>
      </slicing>
      <min value="1"/>
    </element>
    <element id="Observation.component:currentLimitsComponent.code.coding:11073Type">
      <path value="Observation.component.code.coding"/>
      <sliceName value="11073Type"/>
      <min value="1"/>
      <max value="1"/>
    </element>
    <element id="Observation.component:currentLimitsComponent.code.coding:11073Type.system">
      <path value="Observation.component.code.coding.system"/>
      <definition value="Indicates the MDC coding system"/>
      <comment value="The code is that of the Current-Limits attribute"/>
      <min value="1"/>
      <fixedUri value="urn:iso:std:iso:11073:10101"/>
    </element>
    <element id="Observation.component:currentLimitsComponent.code.coding:11073Type.code">
      <path value="Observation.component.code.coding.code"/>
      <definition value="Shall be the code of the Current-Limits attribute."/>
      <min value="1"/>
      <fixedCode value="67892"/>
    </element>
    <element id="Observation.component:currentLimitsComponent.code.coding:11073Type.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true"/>
      </extension>
      <path value="Observation.component.code.coding.display"/>
      <definition value="Should include the reference id for the Current-Limits attribute which is MDC_ATTR_LIMIT_CURR"/>
    </element>
    <element id="Observation.component:currentLimitsComponent.code.coding:alternativeCoding">
      <path value="Observation.component.code.coding"/>
      <sliceName value="alternativeCoding"/>
      <definition value="The Current-Limits concept expressed in an alternative coding system"/>
    </element>
    <element id="Observation.component:currentLimitsComponent.code.coding:alternativeCoding.system">
      <path value="Observation.component.code.coding.system"/>
      <min value="1"/>
    </element>
    <element id="Observation.component:currentLimitsComponent.code.coding:alternativeCoding.code">
      <path value="Observation.component.code.coding.code"/>
      <min value="1"/>
    </element>
    <element id="Observation.component:currentLimitsComponent:value[x].valueRange">
      <path value="Observation.component.valueRange"/>
      <type>
        <code value="Range"/>
      </type>
      <min value="1"/>
      <max value="1"/>
    </element>
    <element id="Observation.component:currentLimitsComponent:value[x].valueRange.low">
      <path value="Observation.component.valueRange.low"/>
      <sliceName value="SimpleQuantity"/>
      <min value="1"/>
    </element>
    <element id="Observation.component:currentLimitsComponent:value[x].valueRange.low.value">
      <path value="Observation.component.valueRange.low.value"/>
      <definition value="Thsi value is given by Current-Limits.lower as an MDER-FLOAT and shall be expressed in the precsion indcated by the MDER-FLOAT construct."/>
      <comment value="This gives the lower threshold. If the measurement falls below this value, the Measurement-Status attribute is sent with a bit stating the alert is present (if the alerts are not turned off for the lower limits)."/>
      <min value="1"/>
    </element>
    <element id="Observation.component:currentLimitsComponent:value[x].valueRange.low.unit">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true"/>
      </extension>
      <path value="Observation.component.valueRange.low.unit"/>
      <definition value="A human-readable form of the unit. It is suggested that the UCUM code is used in this string with the {} filled should they be present."/>
    </element>
    <element id="Observation.component:currentLimitsComponent:value[x].valueRange.low.system">
      <path value="Observation.component.valueRange.low.system"/>
      <definition value="Indicates the MDC coding system."/>
      <min value="1"/>
      <fixedUri value="urn:iso:std:iso:11073:10101"/>
    </element>
    <element id="Observation.component:currentLimitsComponent:value[x].valueRange.low.value.code">
      <path value="Observation.component.valueRange.low.code"/>
      <definition value="This code (which is the code for the units) shall be the same as Observation.valueQuantity.code"/>
      <comment value="The MDC units are required to assure no ambiguity in translation. UCUM is optionally placed in the unit element if it is known by the uploader."/>
      <min value="1"/>
    </element>
    <element id="Observation.component:currentLimitsComponent:value[x].valueRange.high">
      <path value="Observation.component.valueRange.high"/>
      <sliceName value="SimpleQuantity"/>
      <comment value="The high limit shall be present"/>
      <min value="1"/>
    </element>
    <element id="Observation.component:currentLimitsComponent:value[x].valueRange.high.value">
      <path value="Observation.component.valueRange.high.value"/>
      <definition value="Thsi value is given by Current-Limits.upper as an MDER-FLOAT and shall be expressed in the precsion indcated by the MDER-FLOAT construct."/>
      <comment value="This gives the upper threshold. If the measurement goes above this value, the Measurement-Status attribute is sent with a bit stating the alert is present (if the alerts are not turned off for the upper limits)."/>
      <min value="1"/>
    </element>
    <element id="Observation.component:currentLimitsComponent:value[x].valueRange.high.unit">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true"/>
      </extension>
      <path value="Observation.component.valueRange.high.unit"/>
      <definition value="A human-readable form of the unit. It is suggested that the UCUM code is used in this string with the {} filled should they be present."/>
    </element>
    <element id="Observation.component:currentLimitsComponent:value[x].valueRange.high.system">
      <path value="Observation.component.valueRange.high.system"/>
      <definition value="Indicates the MDC coding system."/>
      <min value="1"/>
      <fixedUri value="urn:iso:std:iso:11073:10101"/>
    </element>
    <element id="Observation.component:currentLimitsComponent:value[x].valueRange.high.code">
      <path value="Observation.component.valueRange.high.code"/>
      <definition value="This code (which is the code for the units) shall be the same as Observation.valueQuantity.code"/>
      <comment value="The MDC units are required to assure no ambiguity in translation. UCUM is optionally placed in the unit element if it is known by the uploader."/>
      <min value="1"/>
    </element>
    <element id="Observation.component:currentLimitsComponent.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason"/>
      <max value="0"/>
    </element>

    <element id="Observation.component:alertOpTextStringComponent">
      <path value="Observation.component" />
      <sliceName value="alertOpTextStringComponent" />
      <definition value="This component reports the values in the Alert-Op-Text-String attribute. Reporting the this attribute information is optional." />
      <comment value="This attribute consists of human readable strings giving further information about the upper and lower limits" />
      <max value="1" />
    </element>
    <element>
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
      <min value="1"/>
    </element>
    <element id="Observation.component:alertOpTextStringComponent.code.coding:11073Type">
      <path value="Observation.component.code.coding" />
      <sliceName value="11073Type" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:alertOpTextStringComponent.code.coding:11073Type.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.component:alertOpTextStringComponent.code.coding:11073Type.code">
      <path value="Observation.component.code.coding.code" />
      <definition value="The MDC code for the Alert-Op-Text-String attribute" />
      <fixedCode value="68104" />
      <min value="1" />
    </element>
    <element id="Observation.component:alertOpTextStringComponent.code.coding:11073Type.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.code.coding.display" />
      <definition value="The reference identifier for the attribute should be included. The Alert-Op-Text-String attribute ref id is MDC_ATTR_AL_OP_TEXT_STRING" />
    </element>
    <element id="Observation.component:alertOpTextStringComponent.code.coding:alternativeCoding">
      <path value="Observation.component.code.coding" />
      <sliceName value="alternativeCoding" />
      <definition value="These elements allow the expression of the alert op text string in alternative coding systems." />
    </element>
    <element id="Observation.component:alertOpTextStringComponent.code.coding:alternativeCoding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component:alertOpTextStringComponent.code.coding:alternativeCoding.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:alertOpTextStringComponent.value[x]:valueString">
      <path value="Observation.component.valueString" />
      <sliceName value="valueString" />
      <type>
        <code value="string" />
      </type>
      <min value="1"/>
      <max value="1"/>
    </element>
    <element id="Observation.component:alertOpTextStringComponent.value[x]:valueString.value">
      <path value="Observation.component.valueString.value" />
      <definition value="This is the value of the lower and upper text strings presented in an application specific manner." />
      <min value="1" />
    </element>
    <element id="Observation.component:alertOpTextStringComponent.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason"/>
      <max value="0"/>
    </element>
-->
    <!-- This component is only present in an enumeration BITs field type measurement
    <element id="Observation.component:contextKeyComponent">
      <path value="Observation.component" />
      <sliceName value="contextKeyComponent" />
      <definition value="The Context-Key attribute contains an EUI-64 that acts as a code pointing to futher vendor-provided information" />
      <comment value="This attribute is used in the Advanced Medication Monitor specification to give, in principle further information about the system. It is only present in the Medication Status measurement object which is an ASN1 BITS-16 field." />
    </element>
    <element id="Observation.component:contextKeyComponent.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
      <min value="1"/>
    </element>
    <element id="Observation.component:contextKeyComponent.code.coding:11073Type">
      <path value="Observation.component.code.coding" />
      <sliceName value="11073Type" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:contextKeyComponent.code.coding:11073Type.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.component:contextKeyComponent.code.coding:11073Type.code">
      <path value="Observation.component.code.coding.code" />
      <definition value="68216 is the 32-bit nomenclature code indicating a 'Context-Key' value" />
      <min value="1" />
      <fixedCode value="68216" />
    </element>
    <element id="Observation.component:contextKeyComponent.code.coding:11073Type.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.code.coding.display" />
      <definition value="It is recommended to display at least the reference identifier for the Context-Key which is MDC_ATTR_CONTEXT_KEY" />
    </element>
    <element id="Observation.component:contextKeyComponent.code.coding:alternativeCoding">
      <path value="Observation.component.code.coding" />
      <sliceName value="alternativeCoding" />
      <definition value="The Supplemental-Types concept expressed in an alternative coding system" />
    </element>
    <element id="Observation.component:contextKeyComponent.code.coding:alternativeCoding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component:contextKeyComponent.code.coding:alternativeCoding.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:contextKeyComponent.value[x]:valueCodeableConcept">
      <path value="Observation.component.valueCodeableConcept"/>
      <min value="1"/>
      <type>
        <code value="CodeableConcept"/>
      </type>
    </element>
    <element id="Observation.component:contextKeyComponent.value[x]:valueCodeableConcept.coding">
      <path value="Observation.component.valueCodeableConcept.coding"/>
      <min value="1"/>
      <max value="1"/>
    </element>
    <element id="Observation.component:contextKeyComponent.value[x]:valueCodeableConcept.coding.system">
      <path value="Observation.component.valueCodeableConcept.coding.system"/>
      <definition value="This identifies the IEEE EUI coding system" />
      <min value="1"/>
      <fixedUri value="urn:oid:1.2.840.10004.1.1.1.0.0.1.0.0.1.2680"/>
    </element>
    <element id="Observation.component:contextKeyComponent.value[x]:valueCodeableConcept.coding.code">
      <path value="Observation.component.valueCodeableConcept.coding.code"/>
      <definition value="The EUI-64 context key code" />
      <min value="1"/>
    </element>
    <element id="Observation.component:contextKeyComponent.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason"/>
      <max value="0"/>
    </element>
-->
    <!-- These components are only used in numeric measurements in the CGM
    <element id="Observation.component:measurementConfidence95Component">
      <path value="Observation.component"/>
      <sliceName value="measurementConfidence95Component"/>
      <definition value="The Measurement-Confidence-95 attribute defines the lower and upper bounds for a range within which the manufacture is 95% confident that the actual value resides. The unit for the lower bound and upper bound is the same as the measurement. "/>
      <requirements value="Provides a level of confidence for the reported measurement."/>
      <max value="1"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component.code.coding">
      <path value="Observation.component.code.coding"/>
      <slicing>
        <discriminator>
          <type value="value"/>
          <path value="system"/>
        </discriminator>
        <ordered value="true"/>
        <rules value="open"/>
      </slicing>
      <min value="1"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component.coding:11073Type">
      <path value="Observation.component.code.coding"/>
      <sliceName value="11073Type"/>
      <min value="1"/>
      <max value="1"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component.coding:11073Type.system">
      <path value="Observation.component.code.coding.system"/>
      <definition value="Indicates the MDC coding system"/>
      <comment value="The code is that of the Current-Limits attribute"/>
      <min value="1"/>
      <fixedUri value="urn:iso:std:iso:11073:10101"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component.coding:11073Type.code">
      <path value="Observation.component.code.coding.code"/>
      <definition value="Shall be the code of the Current-Limits attribute."/>
      <min value="1"/>
      <fixedCode value="526998"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component.coding:11073Type.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true"/>
      </extension>
      <path value="Observation.component.code.coding.display"/>
      <definition value="Should include the reference id for the Current-Limits attribute which is MDC_ATTR_MSMT_CONFIDENCE_95"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component.coding:alternativeCoding">
      <path value="Observation.component.code.coding"/>
      <sliceName value="alternativeCoding"/>
      <definition value="The Current-Limits concept expressed in an alternative coding system"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component.coding:alternativeCoding.system">
      <path value="Observation.component.code.coding.system"/>
      <min value="1"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component.coding:alternativeCoding.code">
      <path value="Observation.component.code.coding.code"/>
      <min value="1"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component:value[x].valueRange">
      <path value="Observation.component.valueRange"/>
      <type>
        <code value="Range"/>
      </type>
      <min value="1"/>
      <max value="1"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component:value[x].valueRange.low">
      <path value="Observation.component.valueRange.low"/>
      <sliceName value="SimpleQuantity"/>
      <min value="1"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component:value[x].valueRange.low.value">
      <path value="Observation.component.valueRange.low.value"/>
      <definition value="Thsi value is given by Measurement-Confidence-95.lower-bound as an MDER-FLOAT and shall be expressed in the precsion indcated by the MDER-FLOAT construct."/>
      <comment value="This gives the lower value for the manufacturer is 95% confident that the measurement reported is that of the real value."/>
      <min value="1"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component:value[x].valueRange.low.unit">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true"/>
      </extension>
      <path value="Observation.component.valueRange.low.unit"/>
      <definition value="A human-readable form of the unit. It is suggested that the UCUM code is used in this string with the {} filled should they be present."/>
    </element>
    <element id="Observation.component:measurementConfidence95Component:value[x].valueRange.low.system">
      <path value="Observation.component.valueRange.low.system"/>
      <definition value="Indicates the MDC coding system."/>
      <min value="1"/>
      <fixedUri value="urn:iso:std:iso:11073:10101"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component:value[x].valueRange.low.value.code">
      <path value="Observation.component.valueRange.low.code"/>
      <definition value="This code (which is the code for the units) shall be the same as Observation.valueQuantity.code"/>
      <comment value="The MDC units are required to assure no ambiguity in translation. UCUM is optionally placed in the unit element if it is known by the uploader."/>
      <min value="1"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component:value[x].valueRange.high">
      <path value="Observation.component.valueRange.high"/>
      <sliceName value="SimpleQuantity"/>
      <comment value="The high limit shall be present"/>
      <min value="1"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component:value[x].valueRange.high.value">
      <path value="Observation.component.valueRange.high.value"/>
      <definition value="Thsi value is given by Measurement-Confidence-95.upper-bound as an MDER-FLOAT and shall be expressed in the precsion indcated by the MDER-FLOAT construct."/>
      <comment value="This gives the upper value for the manufacturer is 95% confident that the measurement reported is that of the real value."/>
      <min value="1"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component:value[x].valueRange.high.unit">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true"/>
      </extension>
      <path value="Observation.component.valueRange.high.unit"/>
      <definition value="A human-readable form of the unit. It is suggested that the UCUM code is used in this string with the {} filled should they be present."/>
    </element>
    <element id="Observation.component:measurementConfidence95Component:value[x].valueRange.high.system">
      <path value="Observation.component.valueRange.high.system"/>
      <definition value="Indicates the MDC coding system."/>
      <min value="1"/>
      <fixedUri value="urn:iso:std:iso:11073:10101"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component:value[x].valueRange.high.code">
      <path value="Observation.component.valueRange.high.code"/>
      <definition value="This code (which is the code for the units) shall be the same as Observation.valueQuantity.code"/>
      <comment value="The MDC units are required to assure no ambiguity in translation. UCUM is optionally placed in the unit element if it is known by the uploader."/>
      <min value="1"/>
    </element>
    <element id="Observation.component:measurementConfidence95Component.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason"/>
      <max value="0"/>
    </element>

    <element id="Observation.component:thresholdNotificationTextStringComponent">
      <path value="Observation.component" />
      <sliceName value="thresholdNotificationTextStringComponent" />
      <definition value="This component reports the values in the Threshold-Notification-Text-String attribute. Reporting the this attribute information is optional." />
      <comment value="This attribute consists of human readable strings giving further information threshold notification(s)" />
      <max value="1" />
    </element>
    <element id="Observation.component:thresholdNotificationTextStringComponent.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <ordered value="true" />
        <rules value="open" />
      </slicing>
      <min value="1"/>
    </element>
    <element id="Observation.component:thresholdNotificationTextStringComponent.code.coding:11073Type">
      <path value="Observation.component.code.coding" />
      <sliceName value="11073Type" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:thresholdNotificationTextStringComponent.code.coding:11073Type.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="urn:iso:std:iso:11073:10101" />
    </element>
    <element id="Observation.component:thresholdNotificationTextStringComponent.code.coding:11073Type.code">
      <path value="Observation.component.code.coding.code" />
      <definition value="The MDC code for the Threshold-Notification-Text-String attribute" />
      <fixedCode value="68232" />
      <min value="1" />
    </element>
    <element id="Observation.component:thresholdNotificationTextStringComponent.code.coding:11073Type.display">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.component.code.coding.display" />
      <definition value="The reference identifier for the attribute should be included. The Threshold-Notification-Text-String attribute ref id is MDC_ATTR_THRES_NOTIF_TEXT_STRING" />
    </element>
    <element id="Observation.component:thresholdNotificationTextStringComponent.code.coding:alternativeCoding">
      <path value="Observation.component.code.coding" />
      <sliceName value="alternativeCoding" />
      <definition value="These elements allow the expression of the Threshold-Notification-Text-String attribute in alternative coding systems." />
    </element>
    <element id="Observation.component:thresholdNotificationTextStringComponent.code.coding:alternativeCoding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.component:thresholdNotificationTextStringComponent.code.coding:alternativeCoding.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.component:thresholdNotificationTextStringComponent.value[x]:valueString">
      <path value="Observation.component.valueString" />
      <sliceName value="valueString" />
      <type>
        <code value="string" />
      </type>
      <min value="1"/>
      <max value="1"/>
    </element>
    <element id="Observation.component:thresholdNotificationTextStringComponent.value[x]:valueString.value">
      <path value="Observation.component.valueString.value" />
      <definition value="This is the value of the text string." />
      <min value="1" />
    </element>
    <element id="Observation.component:thresholdNotificationTextStringComponent.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason"/>
      <max value="0"/>
    </element>
-->
    <element id="Observation.component:measurementStatusComponent">
      <path value="Observation.component" />
      <sliceName value="measurementStatusComponent" />
      <definition value="This component gives one of the settings reported in the Measurement-Status attribute that are not reported in the Observation.dataAbsentReason  or Observation.status element. The settings that ARE reported in the dataAbsentReason and status elements are 'invalid', 'questionable', 'not-available',  and 'early-indication'. It is optional to report any of the other settings UNLESS MDER-BITs 14 or 15 are set. It is optional to report any defined cleared setting." />
      <comment value="When MDER-BITs 14 and 15 are set, these are special uses cases by the Pulse Oximeter and Continuous Glucose specialization. MDER-BIT 14 indicates that a threshold set up in other attributes has been crossed. MDER-BIT 15 indicates that the alert mechanism has been turned off.  There will be one measurementStatusComponent entry for every setting reported." />
      <requirements value="This component indicates a Measurement-Status setting." />
    </element>
    <element id="Observation.component:measurementStatusComponent.code.coding">
      <path value="Observation.component.code.coding" />
      <comment value="Normally alternative coding systems are allowed but in this case the value is intimately tied to the code. The code represents the feature indicated by a bit settin in the attribute value. which is either cleared (0) or set (1). Thus the value for this entry is itself a binary 'y' or 'n' code from http://hl7.org/fhir/v2/0136" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:measurementStatusComponent.code.coding.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://hl7.org/fhir/IEEE.ASN1" />
    </element>
    <element id="Observation.component:measurementStatusComponent.code.coding.code">
      <path value="Observation.component.code.coding.code" />
      <definition value="This code, which is an alpha-numeric string, is generated by the attribute MDC code, which is 133447 for the Measurement-Status, followed by a dot (.) followed by the MDER-bit that was set." />
      <comment value="Note that this code is an alpha-numeric string and not a decimal number. Think of it like a very-limited OID. MDER-BITs 14 and 15 shall be reported if set." />
      <min value="1" />
    </element>
    <element id="Observation.component:measurementStatusComponent.value[x]:valueCodeableConcept">
      <path value="Observation.component.valueCodeableConcept" />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Observation.component:measurementStatusComponent.value[x]:valueCodeableConcept.coding">
      <path value="Observation.component.valueCodeableConcept.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Observation.component:measurementStatusComponent.value[x]:valueCodeableConcept.coding.system">
      <path value="Observation.component.valueCodeableConcept.coding.system" />
      <definition value="This coding system contains only two entries, 'y' (yes) and 'n' (no)" />
      <min value="1" />
      <fixedUri value="http://hl7.org/fhir/v2/0136" />
    </element>
    <element id="Observation.component:measurementStatusComponent.value[x]:valueCodeableConcept.coding.code">
      <path value="Observation.component.valueCodeableConcept.coding.code" />
      <definition value="If the MDER-Bit is set, the code value is 'y' otherwise it is 'n'" />
      <comment value="Recall that when the value is 'y' the alarm or alert is turned off" />
      <min value="1" />
    </element>
    <element id="Observation.component:measurementStatusComponent.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>