{
  "resourceType": "StructureDefinition",
  "meta": {
    "lastUpdated": "2017-07-14T13:04:46.679+00:00",
    "profile": [
      "PhdCompoundNumericObservation"
    ]
  },
  "extension": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
      "valueCode": "oo"
    }
  ],
  "url": "http://pchalliance.org/phdfhir/StructureDefinition/PhdCompoundNumericObservation",
  "name": "PhdCompoundNumericObservation",
  "status": "draft",
  "date": "2017-06-02T18:29:52.39367+00:00",
  "fhirVersion": "3.0.0",
  "kind": "resource",
  "abstract": false,
  "type": "Observation",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Observation",
        "path": "Observation",
        "definition": "The PhdCompoundNumericObservation reports PHD measurements that contain one of either a Compound-Basic-Nu-Observed-Value, Compound-Simple-Nu-Observed-Value, or Compound-Nu-Observed-Value attribute.",
        "comment": "Used for compound numeric observations from Personal Health Devices"
      },
      {
        "id": "Observation.meta.profile",
        "path": "Observation.meta.profile",
        "min": 1
      },
      {
        "id": "Observation.identifier",
        "path": "Observation.identifier",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "value"
            }
          ],
          "ordered": true,
          "rules": "open"
        }
      },
      {
        "id": "Observation.identifier:conditionalCreateIdentifier",
        "path": "Observation.identifier",
        "sliceName": "conditionalCreateIdentifier",
        "short": "Unique identifier of this measurment for a given patient and device",
        "definition": "An identifier created from a combination of the measurement parameters like sensor time stamp, type code, each compound value, units code, patient and device identifiers, and selected elements of any facet component elements.",
        "comment": "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": "Allows observations to be distinguished in a selective enough manner to prevent resource duplication.",
        "max": "1"
      },
      {
        "id": "Observation.identifier:conditionalCreateIdentifier.value",
        "path": "Observation.identifier.value",
        "min": 1
      },
      {
        "id": "Observation.identifier:additionalIdentifiers",
        "path": "Observation.identifier",
        "sliceName": "additionalIdentifiers",
        "comment": "Use of additional identifiers is allowed by this profile"
      },
      {
        "id": "Observation.status",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-display-hint",
            "valueString": "default: final"
          }
        ],
        "path": "Observation.status",
        "definition": "The status of the result value. Either 'final' or 'preliminary'",
        "comment": "The value shall be set to 'final' unless a Measurement-Status attribute indicates that the measurement is preliminary. In that case this field shall be set to 'preliminary'"
      },
      {
        "id": "Observation.code.coding",
        "path": "Observation.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "ordered": true,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.code.coding:11073Type",
        "path": "Observation.code.coding",
        "sliceName": "11073Type",
        "short": "The 11073-10101 code for the measurement",
        "comment": "For compound 11073-20601 metric numeric measurements, this code is obtained from the partition and term code of the Type attribute. The 32-bit 11073-10101 code value is given by partition * 2 **16 + term code.\r\n\r\nIt is this value that is placed in the code.coding.code element for this 11073Type slice",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.code.coding:11073Type.system",
        "path": "Observation.code.coding.system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.code.coding:11073Type.code",
        "path": "Observation.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.code.coding:LoincCoding",
        "path": "Observation.code.coding",
        "sliceName": "LoincCoding",
        "max": "1"
      },
      {
        "id": "Observation.code.coding:LoincCoding.system",
        "path": "Observation.code.coding.system",
        "min": 1,
        "fixedUri": "http://loinc.org"
      },
      {
        "id": "Observation.code.coding:LoincCoding.code",
        "path": "Observation.code.coding.code",
        "comment": "Required if the measurement is a vital sign",
        "min": 1
      },
      {
        "id": "Observation.code.coding:alternativeCoding",
        "path": "Observation.code.coding",
        "sliceName": "alternativeCoding",
        "definition": "A reference to a code describing the meaning of the primary 11073 code in an alternative terminology system."
      },
      {
        "id": "Observation.code.coding:alternativeCoding.system",
        "path": "Observation.code.coding.system",
        "min": 1
      },
      {
        "id": "Observation.code.coding:alternativeCoding.code",
        "path": "Observation.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.subject",
        "path": "Observation.subject",
        "min": 1
      },
      {
        "id": "Observation.subject.reference",
        "path": "Observation.subject.reference",
        "min": 1
      },
      {
        "id": "Observation.effective[x]",
        "path": "Observation.effective[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "exists",
              "path": "start"
            }
          ],
          "rules": "open"
        },
        "definition": "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": 1
      },
      {
        "id": "Observation.effective[x]:dateTimeEffective",
        "path": "Observation.effective[x]",
        "sliceName": "dateTimeEffective",
        "comment": "A date and time shall always be present.",
        "type": [
          {
            "code": "dateTime"
          }
        ]
      },
      {
        "id": "Observation.effective[x]:periodEffective",
        "path": "Observation.effective[x]",
        "sliceName": "periodEffective",
        "definition": "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.",
        "type": [
          {
            "code": "Period"
          }
        ]
      },
      {
        "id": "Observation.effective[x]:periodEffective.start",
        "path": "Observation.effective[x].start",
        "min": 1
      },
      {
        "id": "Observation.effective[x]:periodEffective.end",
        "path": "Observation.effective[x].end",
        "min": 1
      },
      {
        "id": "Observation.value[x]",
        "path": "Observation.value[x]",
        "max": "0"
      },
      {
        "id": "Observation.dataAbsentReason",
        "path": "Observation.dataAbsentReason",
        "definition": "Provides a reason why no measurement compoundComponent elements are present. This situation only happens if the Measurement-Status attribute indicates a generic error and the measurement attribute is a Compound-Basic/Simple-Nu-Observed-Value.",
        "comment": "Special values reported in the Compound-Basic/Simple-Nu-Observed-Value are handled individually in each compoundComponent element and are not considered generic. The Compound-Nu-Observed-Value has its own status entry and overrides the Measurement-Status attribute so there will always be compoundComponent elements in that case."
      },
      {
        "id": "Observation.dataAbsentReason.coding.system",
        "path": "Observation.dataAbsentReason.coding.system",
        "min": 1
      },
      {
        "id": "Observation.dataAbsentReason.coding.code",
        "path": "Observation.dataAbsentReason.coding.code",
        "min": 1
      },
      {
        "id": "Observation.device",
        "path": "Observation.device",
        "comment": "This field will reference the DeviceComponent when the updated fixes are in place. In the meantime it will reference the DeviceMetric",
        "min": 1
      },
      {
        "id": "Observation.device.reference",
        "path": "Observation.device.reference",
        "short": "Reference to the device responsible for the measurement",
        "definition": "Reference to the device-related resources that describe the sensor device taking the measurement and the gateway that handled it.",
        "comment": "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": 1
      },
      {
        "id": "Observation.related",
        "path": "Observation.related",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "target.reference"
            }
          ],
          "ordered": true,
          "rules": "open"
        }
      },
      {
        "id": "Observation.related:coincidentTimeStampRelated",
        "path": "Observation.related",
        "sliceName": "coincidentTimeStampRelated",
        "short": "Pointer to the Coincident Time Stamp",
        "definition": "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": "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.\r\n\r\nThere is no reference to a Coincident Time Stamp Observation when the PHD does not report a time stamp.",
        "requirements": "This Observation allows one to re-create the original time stamp generated by the PHD should it have been modified by the PHG."
      },
      {
        "id": "Observation.related:coincidentTimeStampRelated.target.reference",
        "path": "Observation.related.target.reference",
        "min": 1
      },
      {
        "id": "Observation.related:SourceHandleReferenceRelated",
        "path": "Observation.related",
        "sliceName": "SourceHandleReferenceRelated",
        "comment": "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": "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."
      },
      {
        "id": "Observation.related:SourceHandleReferenceRelated.target.reference",
        "path": "Observation.related.target.reference",
        "min": 1
      },
      {
        "id": "Observation.related:additionalRelated",
        "path": "Observation.related",
        "sliceName": "additionalRelated",
        "comment": "Additional references are allowed but out of scope of this profile"
      },
      {
        "id": "Observation.component",
        "path": "Observation.component",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code.coding.code"
            }
          ],
          "ordered": true,
          "rules": "open"
        }
      },
      {
        "id": "Observation.component:compoundComponent",
        "path": "Observation.component",
        "sliceName": "compoundComponent",
        "short": "Compound entry components",
        "definition": "Each compoundComponent contains one of the N constituents of the compound measurement. These entries are NOT present if a Measurement-Status attribute indicates an error.",
        "comment": "A compound measurement is a measurement that requires more than one value to represent it, such as an acceleration which has an x, y, and z components. The Blood pressure is also represented as a compound measurement, containing systolic, diastolic and MAP components. One combines all the compound elements together to describe the measurement. The Metric-Id-List entry n and Compound-Basic/Simple-Nu-Observed-Value entry n are ordered such that the code that describes each entry n is computed from the partition of the Type attribute and the term code of the Metric-Id-List attribute. In the case of the Compound-Nu-Observed-Value, the term code comes from the Compound-Nu-Observed-Value.metric sub-component.",
        "requirements": "Handles a measurement that needs more than one numeric value to describe it.."
      },
      {
        "id": "Observation.component:compoundComponent.code.coding",
        "path": "Observation.component.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "ordered": true,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.component:compoundComponent.code.coding:11073Type",
        "path": "Observation.component.code.coding",
        "sliceName": "11073Type",
        "short": "The 11073-10101 code for the measurement",
        "comment": "For compound 11073-20601 metric numeric measurements, this code is obtained from the partition of the Type attribute and the term code of the nth element of the Metric-Id-List attribute. The 32-bit 11073-10101 code value is given by partition * 2 **16 + term code.  It is this value that is placed in the *.code.coding.code element for this 11073Type slice",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:compoundComponent.code.coding:11073Type.system",
        "path": "Observation.component.code.coding.system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.component:compoundComponent.code.coding:11073Type.code",
        "path": "Observation.component.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component:compoundComponent.code.coding:LoincCoding",
        "path": "Observation.component.code.coding",
        "sliceName": "LoincCoding",
        "max": "1"
      },
      {
        "id": "Observation.component:compoundComponent.code.coding:LoincCoding.system",
        "path": "Observation.component.code.coding.system",
        "min": 1,
        "fixedUri": "http://loinc.org"
      },
      {
        "id": "Observation.component:compoundComponent.code.coding:LoincCoding.code",
        "path": "Observation.component.code.coding.code",
        "comment": "Required if the measurement is a vital sign",
        "min": 1
      },
      {
        "id": "Observation.component:compoundComponent.code.coding:alternativeCoding",
        "path": "Observation.component.code.coding",
        "sliceName": "alternativeCoding",
        "definition": "A reference to a code describing the meaning of the primary 11073 code in an alternative terminology system."
      },
      {
        "id": "Observation.component:compoundComponent.code.coding:alternativeCoding.system",
        "path": "Observation.component.code.coding.system",
        "min": 1
      },
      {
        "id": "Observation.component:compoundComponent.code:alternativeCoding.coding.code",
        "path": "Observation.component.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component.value[x].valueQuantity",
        "path": "Observation.component.valueQuantity",
        "type": [
          {
            "code": "Quantity"
          }
        ]
      },
      {
        "id": "Observation.component:compoundComponent.value[x]:valueQuantity.value",
        "path": "Observation.component.valueQuantity.value",
        "definition": "The value of nth element of the compound attribute. The value element for the nth compoundComponent is missing if the attribute sends a special value or the Compound-Nu-Observed-Value status element indicates an error.",
        "min": 1
      },
      {
        "id": "Observation.component:compoundComponent.value[x]:valueQuantity.unit",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Observation.component.valueQuantity.unit",
        "definition": "A human-readable form of the unit which should be the UCUM code"
      },
      {
        "id": "Observation.component:compoundComponent.value[x]:valueQuantity.system",
        "path": "Observation.component.valueQuantity.system",
        "definition": "The unit code shall use the MDC system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.component:compoundComponent.value[x]:valueQuantity.code",
        "path": "Observation.component.valueQuantity.code",
        "definition": "The MDC code obtained from partition 4 and the term code given by the Unit-Code attribute unless it is a Compound-Nu-Observed-Value in which case the unit code comes from the unit element of the attribute.",
        "min": 1
      },
      {
        "id": "Observation.component:compoundComponent.dataAbsentReason",
        "path": "Observation.component.dataAbsentReason",
        "definition": "Provides a reason why the expected value in the nth element Observation.compoundComponent.valueQuantity is missing. This could be a NaN (Not a Number), PINF (Positive infinity), NINF (Negative infinity)  or an error condition indicated by the status field of the Compound-Nu-Observed-Value.",
        "comment": "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 numeric attributes. For example, the PINF, NINF, and not at this resolution special values have no matching codes. In those cases one uses the generic 'error' code."
      },
      {
        "id": "Observation.component:compoundComponent.dataAbsentReason.coding.system",
        "path": "Observation.component.dataAbsentReason.coding.system",
        "min": 1
      },
      {
        "id": "Observation.component:compoundComponent.dataAbsentReason.coding.code",
        "path": "Observation.component.dataAbsentReason.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component:supplementalTypesComponent",
        "path": "Observation.component",
        "sliceName": "supplementalTypesComponent",
        "definition": "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.",
        "comment": "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."
      },
      {
        "id": "Observation.component:supplementalTypesComponent.code.coding",
        "path": "Observation.component.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "ordered": true,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.component:supplementalTypesComponent.code.coding:11073Type",
        "path": "Observation.component.code.coding",
        "sliceName": "11073Type",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:supplementalTypesComponent.code.coding:11073Type.system",
        "path": "Observation.component.code.coding.system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.component:supplementalTypesComponent.code.coding:11073Type.code",
        "path": "Observation.component.code.coding.code",
        "definition": "68193 is the 32-bit nomenclature code indicating a 'Supplemental-Types' value",
        "min": 1,
        "fixedCode": "68193"
      },
      {
        "id": "Observation.component:supplementalTypesComponent.code.coding:11073Type.display",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Observation.component.code.coding.display",
        "definition": "It is recommended to display at least the reference identifier for the Supplemental-Types which is MDC_ATTR_SUPPLEMENTAL_TYPES"
      },
      {
        "id": "Observation.component:supplementalTypesComponent.code.coding:alternativeCoding",
        "path": "Observation.component.code.coding",
        "sliceName": "alternativeCoding",
        "definition": "The Supplemental-Types concept expressed in an alternative coding system"
      },
      {
        "id": "Observation.component:supplementalTypesComponent.code.coding:alternativeCoding.system",
        "path": "Observation.component.code.coding.system",
        "min": 1
      },
      {
        "id": "Observation.component:supplementalTypesComponent.code.coding:alternativeCoding.code",
        "path": "Observation.component.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept",
        "path": "Observation.component.valueCodeableConcept",
        "sliceName": "valueCodeableConcept",
        "definition": "The information determined as a result of making the observation, if the information is a code.",
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ]
      },
      {
        "id": "Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding",
        "path": "Observation.component.valueCodeableConcept.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "ordered": true,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding:11073Value",
        "path": "Observation.component.valueCodeableConcept.coding",
        "sliceName": "11073Value",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding:11073Value.system",
        "path": "Observation.component.valueCodeableConcept.coding.system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding:11073Value.code",
        "path": "Observation.component.valueCodeableConcept.coding.code",
        "definition": "For the given Supplemental-Types entry the code here is given by: partition * 2**16 + term code",
        "min": 1
      },
      {
        "id": "Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding:alternativeCoding",
        "path": "Observation.component.valueCodeableConcept.coding",
        "sliceName": "alternativeCoding",
        "definition": "The given Supplemental-Types entry value expressed in an alternative coding system"
      },
      {
        "id": "Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding:alternativeCoding.system",
        "path": "Observation.component.valueCodeableConcept.coding.system",
        "min": 1
      },
      {
        "id": "Observation.component:supplementalTypesComponent.value[x]:valueCodeableConcept.coding:alternativeCoding.code",
        "path": "Observation.component.valueCodeableConcept.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component:supplementalTypesComponent.dataAbsentReason",
        "path": "Observation.component.dataAbsentReason",
        "max": "0"
      },
      {
        "id": "Observation.component:relativeTimeComponent",
        "path": "Observation.component",
        "sliceName": "relativeTimeComponent",
        "definition": "This component shall be present if the measurement contains a Relative-Time-Stamp.",
        "comment": "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.\r\nThe Relative-Time-Stamp is a 32-bit unsigned integer in units of 1/8th ms.",
        "max": "1"
      },
      {
        "id": "Observation.component:relativeTimesComponent.code.coding",
        "path": "Observation.component.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code"
            }
          ],
          "ordered": true,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.component:relativeTimeComponent.code.coding:11073Type",
        "path": "Observation.component.code.coding",
        "sliceName": "11073Type",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:relativeTimeComponent.code.coding:11073Type.system",
        "path": "Observation.component.code.coding.system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.component:relativeTimeComponent.code.coding:11073Type.code",
        "path": "Observation.component.code.coding.code",
        "definition": "The MDC code of the Relative-Time-Stamp attribute",
        "min": 1,
        "fixedCode": "67985"
      },
      {
        "id": "Observation.component:relativeTimeComponent.code.coding:11073Type.display",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Observation.component.code.coding.display",
        "definition": "The reference identifier should be included in the description. For a Relative-Time-Stamp the ref id is MDC_ATTR_TIME_STAMP_REL"
      },
      {
        "id": "Observation.component:relativeTimeComponent.code.coding:alternativeCoding",
        "path": "Observation.component.code.coding",
        "sliceName": "alternativeCoding"
      },
      {
        "id": "Observation.component:relativeTimeComponent.code.coding:alternativeCoding.system",
        "path": "Observation.component.code.coding.system",
        "min": 1
      },
      {
        "id": "Observation.component:relativeTimeComponent.code.coding:alternativeCoding.code",
        "path": "Observation.component.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component:relativeTimeComponent.value[x]:valueQuantity",
        "path": "Observation.component.valueQuantity",
        "sliceName": "valueQuantity",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Quantity"
          }
        ]
      },
      {
        "id": "Observation.component:relativeTimeComponent.value[x]:valueQuantity.value",
        "path": "Observation.component.valueQuantity.value",
        "definition": "The value of the relative time attribute which is in units of 1/8th milliseconds scaled to microseconds.",
        "min": 1
      },
      {
        "id": "Observation.component:relativeTimeComponent.value[x]:valueQuantity.unit",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Observation.component.valueQuantity.unit",
        "definition": "A human-readable form of the unit in this case the UCUM code for microseconds (us)",
        "min": 1
      },
      {
        "id": "Observation.component:relativeTimeComponent.value[x]:valueQuantity.system",
        "path": "Observation.component.valueQuantity.system",
        "definition": "The unit code shall use the MDC system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.component:relativeTimeComponent.value[x]:valueQuantity.code",
        "path": "Observation.component.valueQuantity.code",
        "definition": "The MDC code for microseconds is 264339",
        "min": 1
      },
      {
        "id": "Observation.component:relativeTimeComponent.dataAbsentReason",
        "path": "Observation.component.dataAbsentReason",
        "max": "0"
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent",
        "path": "Observation.component",
        "sliceName": "hiresRelativeTimeComponent",
        "definition": "This component shall be present if the measurement contains Hi-Res-Relative-Time-Stamp.",
        "comment": "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.\r\nThe Hi-Res-Relative-Time-Stamp is a 64-bit unsigned interger in units of microseconds.",
        "max": "1"
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent.code.coding",
        "path": "Observation.component.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code"
            }
          ],
          "ordered": true,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent.code.coding:11073Type",
        "path": "Observation.component.code.coding",
        "sliceName": "11073Type",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent.code.coding:11073Type.system",
        "path": "Observation.component.code.coding.system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent.code.coding:11073Type.code",
        "path": "Observation.component.code.coding.code",
        "definition": "The MDC code for the Hi-Res-Relative-Time-Stamp attribute",
        "min": 1,
        "fixedCode": "68073"
      },
      {
        "id": "Observation.component:hiresRelativeTime.code.coding:11073Type.display",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Observation.component.code.coding.display",
        "definition": "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"
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent.code.coding:alternativeCoding",
        "path": "Observation.component.code.coding",
        "sliceName": "alternativeCoding"
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent.code.coding:alternativeCoding.system",
        "path": "Observation.component.code.coding.system",
        "min": 1
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent.code.coding:alternativeCoding.code",
        "path": "Observation.component.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent.value[x]:valueQuantity",
        "path": "Observation.component.valueQuantity",
        "sliceName": "valueQuantity",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Quantity"
          }
        ]
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent.value[x]:valueQuantity.value",
        "path": "Observation.component.valueQuantity.value",
        "definition": "The value of the hi res relative time attribute (already in microseconds).",
        "min": 1
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent.value[x]:valueQuantity.unit",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Observation.component.valueQuantity.unit",
        "definition": "A human-readable form of the unit in this case the UCUM code for microseconds (us)",
        "min": 1
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent.value[x]:valueQuantity.system",
        "path": "Observation.component.valueQuantity.system",
        "definition": "The unit code shall use the MDC system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent.value[x]:valueQuantity.code",
        "path": "Observation.component.valueQuantity.code",
        "definition": "The MDC code for microseconds is 264339",
        "min": 1
      },
      {
        "id": "Observation.component:hiresRelativeTimeComponent.dataAbsentReason",
        "path": "Observation.component.dataAbsentReason",
        "max": "0"
      },
      {
        "id": "Observation.component:accuracyComponent",
        "path": "Observation.component",
        "sliceName": "accuracyComponent",
        "definition": "This component shall be present if the accuracy attribute is present.",
        "max": "1"
      },
      {
        "id": "Observation.component:accuracyComponent.code.coding",
        "path": "Observation.component.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code"
            }
          ],
          "ordered": true,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.component:accuracyComponent.code.coding:11073Type",
        "path": "Observation.component.code.coding",
        "sliceName": "11073Type",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:accuracyComponent.code.coding:11073Type.system",
        "path": "Observation.component.code.coding.system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.component:accuracyComponent.code.coding:11073Type.code",
        "path": "Observation.component.code.coding.code",
        "definition": "The code for the accuracy attribute is 67914",
        "min": 1,
        "fixedCode": "67914"
      },
      {
        "id": "Observation.component:accuracyComponent.code.coding:11073Type.display",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Observation.component.code.coding.display",
        "definition": "Should include the reference identifier for the Accuracy-Attribute MDC_ATTR_NU_ACCUR_MSMT"
      },
      {
        "id": "Observation.component:accuracyComponent.code.coding:alternativeCoding",
        "path": "Observation.component.code.coding",
        "sliceName": "alternativeCoding",
        "definition": "The accuracy expressed in an alternative coding system"
      },
      {
        "id": "Observation.component:accuracyComponent.code.coding:alternativeCoding.system",
        "path": "Observation.component.code.coding.system",
        "min": 1
      },
      {
        "id": "Observation.component:accuracyComponent.code.coding:alternativeCoding.code",
        "path": "Observation.component.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component:accuracyComponent.value[x]:valueQuantity",
        "path": "Observation.component.valueQuantity",
        "sliceName": "valueQuantity",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "Quantity"
          }
        ]
      },
      {
        "path": "Observation.component.valueQuantity.value",
        "definition": "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": 1
      },
      {
        "id": "Observation.component:accuracyComponent.value[x]:valueQuantity.unit",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Observation.component.valueQuantity.unit",
        "definition": "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."
      },
      {
        "id": "Observation.component:accuracyComponent.value[x]:valueQuantity.system",
        "path": "Observation.component.valueQuantity.system",
        "definition": "The unit code shall use the MDC system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.component:accuracyComponent.value[x]:valueQuantity.code",
        "path": "Observation.component.valueQuantity.code",
        "definition": "The units are given by the units of the measurement so this shall have the code as in Observation.valueQuantity.code",
        "min": 1
      },
      {
        "id": "Observation.component:accuracyComponent.dataAbsentReason",
        "path": "Observation.component.dataAbsentReason",
        "max": "0"
      },
      {
        "id": "Observation.component:unitLabelStringComponent",
        "path": "Observation.component",
        "sliceName": "unitLabelStringComponent",
        "definition": "This component reports the value in the Unit-Label-String attribute. Reporting the Unit-Label-String attribute value is optional.",
        "comment": "This attribute consist of a human readable string giving a further description of the measurement units",
        "max": "1"
      },
      {
        "id": "Observation.component:unitLabelStringComponent",
        "path": "Observation.component.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code"
            }
          ],
          "ordered": true,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.component:unitLabelStringComponent.code.coding:11073Type",
        "path": "Observation.component.code.coding",
        "sliceName": "11073Type",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:unitLabelStringComponent.code.coding:11073Type.system",
        "path": "Observation.component.code.coding.system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.component:unitLabelStringComponent.code.coding:11073Type.code",
        "path": "Observation.component.code.coding.code",
        "definition": "The MDC code for the Unit-Label-String attribute",
        "min": 1,
        "fixedCode": "133529"
      },
      {
        "id": "Observation.component:unitLabelStringComponent.code.coding:11073Type.display",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Observation.component.code.coding.display",
        "definition": "The reference identifier for the attribute should be included. The Unit-Label-String attribute ref id is MDC_ATTR_UNIT_LABEL_STRING"
      },
      {
        "id": "Observation.component:unitLabelStringComponent.code.coding:alternativeCoding",
        "path": "Observation.component.code.coding",
        "sliceName": "alternativeCoding",
        "definition": "This element allows the expression of the unit label sting in alternative coding systems."
      },
      {
        "id": "Observation.component:unitLabelStringComponent.code.coding:alternativeCoding.system",
        "path": "Observation.component.code.coding.system",
        "min": 1
      },
      {
        "id": "Observation.component:unitLabelStringComponent.code.coding:alternativeCoding.code",
        "path": "Observation.component.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component:unitLabelStringComponent.value[x]:valueString",
        "path": "Observation.component.valueString",
        "sliceName": "valueString",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Observation.component:unitLabelStringComponent.value[x]:valueString.value",
        "path": "Observation.component.valueString.value",
        "definition": "This is the value of the unit label string attribute.",
        "min": 1
      },
      {
        "id": "Observation.component:unitLabelStringComponent.dataAbsentReason",
        "path": "Observation.component.dataAbsentReason",
        "max": "0"
      },
      {
        "id": "Observation.component:labelStringComponent",
        "path": "Observation.component",
        "sliceName": "labelStringComponent",
        "definition": "This component reports the value in Label-String attribute. Reporting the Label-String attribute information is optional.",
        "comment": "This attribute consists of a human readable string giving a further description of the measurement type",
        "max": "1"
      },
      {
        "id": "Observation.component:labelStringComponent.code.coding",
        "path": "Observation.component.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code"
            }
          ],
          "ordered": true,
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.component:labelStringComponent.code.coding:11073Type",
        "path": "Observation.component.code.coding",
        "sliceName": "11073Type",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:labelStringComponent.code.coding:11073Type.system",
        "path": "Observation.component.code.coding.system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.component:labelStringComponent.code.coding:11073Type.code",
        "path": "Observation.component.code.coding.code",
        "definition": "The MDC code for the Label-String attribute",
        "min": 1,
        "fixedCode": "133415"
      },
      {
        "id": "Observation.component:labelStringComponent.code.coding:11073Type.display",
        "extension": [
          {
            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
            "valueBoolean": true
          }
        ],
        "path": "Observation.component.code.coding.display",
        "definition": "The reference identifier for the attribute should be included. The Label-String attribute ref id is MDC_ATTR_LABEL_STRING"
      },
      {
        "id": "Observation.component:labelStringComponent.code.coding:alternativeCoding",
        "path": "Observation.component.code.coding",
        "sliceName": "alternativeCoding",
        "definition": "These elements allow the expression of the label string in alternative coding systems."
      },
      {
        "id": "Observation.component:labelStringComponent.code.coding:alternativeCoding.system",
        "path": "Observation.component.code.coding.system",
        "min": 1
      },
      {
        "id": "Observation.component:labelStringComponent.code.coding:alternativeCoding.code",
        "path": "Observation.component.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component:labelStringComponent.value[x]:valueString",
        "path": "Observation.component.valueString",
        "sliceName": "valueString",
        "min": 1,
        "max": "1",
        "type": [
          {
            "code": "string"
          }
        ]
      },
      {
        "id": "Observation.component:labelStringComponent.value[x]:valueString.value",
        "path": "Observation.component.valueString.value",
        "definition": "This is the value of the label string attribute.",
        "min": 1
      },
      {
        "id": "Observation.component:labelStringComponent.dataAbsentReason",
        "path": "Observation.component.dataAbsentReason",
        "max": "0"
      },
      {
        "id": "Observation.component:measurementStatusComponent",
        "path": "Observation.component",
        "sliceName": "measurementStatusComponent",
        "definition": "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": "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": "This component indicates a Measurement-Status setting."
      },
      {
        "id": "Observation.component:measurementStatusComponent.code.coding",
        "path": "Observation.component.code.coding",
        "comment": "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": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:measurementStatusComponent.code.coding.system",
        "path": "Observation.component.code.coding.system",
        "min": 1,
        "fixedUri": "http://hl7.org/fhir/IEEE.ASN1"
      },
      {
        "id": "Observation.component:measurementStatusComponent.code.coding.code",
        "path": "Observation.component.code.coding.code",
        "definition": "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": "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": 1
      },
      {
        "id": "Observation.component:measurementStatusComponent.value[x]:valueCodeableConcept",
        "path": "Observation.component.valueCodeableConcept",
        "min": 1,
        "type": [
          {
            "code": "CodeableConcept"
          }
        ]
      },
      {
        "id": "Observation.component:measurementStatusComponent.value[x]:valueCodeableConcept.coding",
        "path": "Observation.component.valueCodeableConcept.coding",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component:measurementStatusComponent.value[x]:valueCodeableConcept.coding.system",
        "path": "Observation.component.valueCodeableConcept.coding.system",
        "definition": "This coding system contains only two entries, 'y' (yes) and 'n' (no)",
        "min": 1,
        "fixedUri": "http://hl7.org/fhir/v2/0136"
      },
      {
        "id": "Observation.component:measurementStatusComponent.value[x]:valueCodeableConcept.coding.code",
        "path": "Observation.component.valueCodeableConcept.coding.code",
        "definition": "If the MDER-Bit is set, the code value is 'y' otherwise it is 'n'",
        "comment": "Recall that when the value is 'y' the alarm or alert is turned off",
        "min": 1
      },
      {
        "id": "Observation.component:measurementStatusComponent.dataAbsentReason",
        "path": "Observation.component.dataAbsentReason",
        "max": "0"
      }
    ]
  }
}