{
  "resourceType": "StructureDefinition",
  "id": "c832ee6b-3f5b-48a6-83d3-00c90c19f06d",
  "meta": {
    "lastUpdated": "2017-12-04T14:01:59.132+00:00"
  },
  "url": "http://devices.fhir.org/StructureDefinition/CompoundNumericObservation",
  "name": "CompoundNumericObservation",
  "title": "Compound Numeric Observation Profile",
  "status": "draft",
  "date": "2017-11-25T10:06:33.851+00:00",
  "description": "StructureDefinition for a Compound Numeric Observation resource",
  "fhirVersion": "3.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "Observation",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "Observation.code",
        "path": "Observation.code",
        "short": "Base numeric type",
        "definition": "Observation.code shall have a coding from the ISO/IEEE 11073 MDC metrics nomenclature. The Rosetta Terminology Mapping Management System (RTMMS) lists available codes. Depending on the type of measurement, the Vital Signs profiles may require an additional LOINC code."
      },
      {
        "id": "Observation.code.coding",
        "path": "Observation.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.code.coding:11073MDC",
        "path": "Observation.code.coding",
        "sliceName": "11073MDC",
        "short": "11073 MDC code",
        "definition": "Code defined by the ISO/IEEE 11073-10101 Nomenclature",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.code.coding:11073MDC.system",
        "path": "Observation.code.coding.system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.code.coding:11073MDC.code",
        "path": "Observation.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.subject",
        "path": "Observation.subject",
        "definition": "Observation.subject shall be present and refer to a Patient resource or PoC Device resource.",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": "http://hl7.org/fhir/StructureDefinition/Patient"
          },
          {
            "code": "Reference",
            "targetProfile": "http://devices.fhir.org/StructureDefinition/PoCDevice"
          }
        ]
      },
      {
        "id": "Observation.value[x]",
        "path": "Observation.value[x]",
        "max": "0"
      },
      {
        "id": "Observation.device",
        "path": "Observation.device",
        "definition": "Observation.device shall be present and refer to the Numeric DeviceMetric resource where this observation belongs to.",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": "http://devices.fhir.org/StructureDefinition/NumericDeviceMetric"
          }
        ]
      },
      {
        "id": "Observation.component",
        "path": "Observation.component",
        "min": 1,
        "constraint": [
          {
            "key": "pocd-obs-2",
            "severity": "error",
            "human": "If there is no value a dataAbsentReason shall be present",
            "expression": "value.exists() or dataAbsentReason.exists()"
          }
        ]
      },
      {
        "id": "Observation.component.extension",
        "path": "Observation.component.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        }
      },
      {
        "id": "Observation.component.extension:measurementStatus",
        "path": "Observation.component.extension",
        "sliceName": "measurementStatus",
        "short": "Measurement status",
        "definition": "The Measurement Status extension provides more detailed status information about observed values. It gets a code from the Measurement Status value set.",
        "type": [
          {
            "code": "Extension",
            "profile": "http://devices.fhir.org/StructureDefinition/observation-measurement-status"
          }
        ]
      },
      {
        "id": "Observation.component.code",
        "path": "Observation.component.code",
        "short": "Component numeric type",
        "definition": "Observation.component.code shall have a coding from the ISO/IEEE 11073 MDC metrics nomenclature. The Rosetta Terminology Mapping Management System (RTMMS) lists available codes. Depending on the type of measurement, the Vital Signs profiles may require an additional LOINC code."
      },
      {
        "id": "Observation.component.code.coding",
        "path": "Observation.component.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "system"
            }
          ],
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.component.code.coding:11073MDC",
        "path": "Observation.component.code.coding",
        "sliceName": "11073MDC",
        "short": "11073 MDC code",
        "definition": "Code defined by the ISO/IEEE 11073-10101 Nomenclature",
        "min": 1,
        "max": "1"
      },
      {
        "id": "Observation.component.code.coding:11073MDC.system",
        "path": "Observation.component.code.coding.system",
        "min": 1,
        "fixedUri": "urn:iso:std:iso:11073:10101"
      },
      {
        "id": "Observation.component.code.coding:11073MDC.code",
        "path": "Observation.component.code.coding.code",
        "min": 1
      },
      {
        "id": "Observation.component.value[x]:valueQuantity",
        "path": "Observation.component.valueQuantity",
        "sliceName": "valueQuantity",
        "type": [
          {
            "code": "Quantity"
          }
        ],
        "condition": [
          "pocd-obs-2"
        ]
      },
      {
        "id": "valueQuantity:valueQuantity.value",
        "path": "Observation.component.valueQuantity.value",
        "min": 1
      },
      {
        "id": "valueQuantity:valueQuantity.system",
        "path": "Observation.component.valueQuantity.system",
        "fixedUri": "http://unitsofmeasure.org"
      },
      {
        "id": "Observation.component.dataAbsentReason",
        "path": "Observation.component.dataAbsentReason",
        "condition": [
          "pocd-obs-2"
        ]
      }
    ]
  }
}