{
  "resourceType": "StructureDefinition",
  "id": "fiphr-sd-heartrate",
  "meta": {
    "versionId": "5",
    "lastUpdated": "2023-03-02T10:23:56.5173126+00:00"
  },
  "url": "http://phr.kanta.fi/StructureDefinition/fiphr-sd-heartrate",
  "version": "1.0.0",
  "name": "FIPHRSDHeartRate",
  "title": "Finnish PHR Heart Rate profile",
  "status": "active",
  "experimental": false,
  "description": "Finnish PHR profile for heart rate measurement",
  "purpose": "Finnish PHR profile for Observation used in heart rate measurements.  The profile is based on the Finnish PHR observation profile.",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "Observation",
  "baseDefinition": "http://phr.kanta.fi/StructureDefinition/fiphr-sd-vitalsigns",
  "derivation": "constraint",
  "snapshot": {},
  "differential": {
    "element": [
      {
        "id": "Observation",
        "path": "Observation",
        "short": "Finnish PHR profile for heart rate resource",
        "definition": "Finnish PHR profile for Observation used in heart rate measurements. The profile is based on the Finnish PHR observation profile."
      },
      {
        "id": "Observation.meta",
        "path": "Observation.meta"
      },
      {
        "id": "Observation.meta.profile",
        "path": "Observation.meta.profile"
      },
      {
        "id": "Observation.meta.profile:fiphrProfile",
        "path": "Observation.meta.profile",
        "sliceName": "fiphrProfile",
        "fixedCanonical": "http://phr.kanta.fi/StructureDefinition/fiphr-sd-heartrate"
      },
      {
        "id": "Observation.extension",
        "path": "Observation.extension",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "url"
            }
          ],
          "rules": "open"
        },
        "min": 0
      },
      {
        "id": "Observation.extension:HeartRateRhythm",
        "path": "Observation.extension",
        "sliceName": "HeartRateRhythm",
        "short": "Flag about rhythm regularity",
        "definition": "In Finnish PHR: Need possibility to store information of irregular rhythm. True: rhythm is regular. False: rhythm is irregular.",
        "min": 0,
        "max": "1",
        "type": [
          {
            "code": "Extension",
            "profile": [
              "http://phr.kanta.fi/StructureDefinition/fiphr-ext-isHeartRateRhythmRegular"
            ]
          }
        ],
        "isModifier": false
      },
      {
        "id": "Observation.code.coding",
        "path": "Observation.code.coding",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "code"
            },
            {
              "type": "value",
              "path": "system"
            }
          ],
          "rules": "open"
        },
        "min": 1
      },
      {
        "id": "Observation.code.coding:heartRate",
        "path": "Observation.code.coding",
        "sliceName": "heartRate",
        "min": 1,
        "max": "1",
        "binding": {
          "strength": "required",
          "description": "This identifies the vital sign result type.",
          "valueSet": "http://phr.kanta.fi/ValueSet/fiphr-vs-vitalsigns"
        }
      },
      {
        "id": "Observation.code.coding:heartRate.system",
        "path": "Observation.code.coding.system",
        "min": 1,
        "fixedUri": "http://loinc.org"
      },
      {
        "id": "Observation.code.coding:heartRate.code",
        "path": "Observation.code.coding.code",
        "min": 1,
        "fixedCode": "8867-4"
      },
      {
        "id": "Observation.code.coding:heartRate.display",
        "path": "Observation.code.coding.display",
        "min": 1
      },
      {
        "id": "Observation.code.coding:heartRateAverage24h",
        "path": "Observation.code.coding",
        "sliceName": "heartRateAverage24h",
        "max": "1"
      },
      {
        "id": "Observation.code.coding:heartRateAverage24h.system",
        "path": "Observation.code.coding.system",
        "min": 1,
        "fixedUri": "http://loinc.org"
      },
      {
        "id": "Observation.code.coding:heartRateAverage24h.code",
        "path": "Observation.code.coding.code",
        "min": 1,
        "fixedCode": "41924-2"
      },
      {
        "id": "Observation.code.coding:heartRateAverage24h.display",
        "path": "Observation.code.coding.display",
        "min": 1
      },
      {
        "id": "Observation.code.coding:heartRateMinimum24h",
        "path": "Observation.code.coding",
        "sliceName": "heartRateMinimum24h",
        "max": "1"
      },
      {
        "id": "Observation.code.coding:heartRateMinimum24h.system",
        "path": "Observation.code.coding.system",
        "min": 1,
        "fixedUri": "http://loinc.org"
      },
      {
        "id": "Observation.code.coding:heartRateMinimum24h.code",
        "path": "Observation.code.coding.code",
        "min": 1,
        "fixedCode": "8883-1"
      },
      {
        "id": "Observation.code.coding:heartRateMinimum24h.display",
        "path": "Observation.code.coding.display",
        "min": 1
      },
      {
        "id": "Observation.code.coding:heartRateMaximum24h",
        "path": "Observation.code.coding",
        "sliceName": "heartRateMaximum24h",
        "max": "1"
      },
      {
        "id": "Observation.code.coding:heartRateMaximum24h.system",
        "path": "Observation.code.coding.system",
        "min": 1,
        "fixedUri": "http://loinc.org"
      },
      {
        "id": "Observation.code.coding:heartRateMaximum24h.code",
        "path": "Observation.code.coding.code",
        "min": 1,
        "fixedCode": "8873-2"
      },
      {
        "id": "Observation.code.coding:heartRateMaximum24h.display",
        "path": "Observation.code.coding.display",
        "min": 1
      },
      {
        "id": "Observation.value[x]",
        "path": "Observation.value[x]",
        "slicing": {
          "discriminator": [
            {
              "type": "type",
              "path": "$this"
            }
          ],
          "rules": "open"
        },
        "min": 1,
        "type": [
          {
            "code": "Quantity"
          }
        ]
      },
      {
        "id": "Observation.value[x]:valueQuantity",
        "path": "Observation.value[x]",
        "sliceName": "valueQuantity",
        "min": 1,
        "type": [
          {
            "code": "Quantity"
          }
        ]
      },
      {
        "id": "Observation.value[x]:valueQuantity.value",
        "path": "Observation.value[x].value",
        "min": 1
      },
      {
        "id": "Observation.value[x]:valueQuantity.unit",
        "path": "Observation.value[x].unit",
        "short": "Finnish PHR: The unit presentation of the measured heart rate in beats/min",
        "definition": "Finnish PHR:  A human-readable form of the unit.presentation of the measured heart rate in beats/min.",
        "requirements": "Unit is mandatory in FinnishPHR vital-signs Observations",
        "min": 1,
        "fixedString": "/min"
      },
      {
        "id": "Observation.value[x]:valueQuantity.system",
        "path": "Observation.value[x].system",
        "min": 1,
        "fixedUri": "http://unitsofmeasure.org"
      },
      {
        "id": "Observation.value[x]:valueQuantity.code",
        "path": "Observation.value[x].code",
        "min": 1,
        "fixedCode": "/min"
      },
      {
        "id": "Observation.dataAbsentReason",
        "path": "Observation.dataAbsentReason",
        "max": "0"
      },
      {
        "id": "Observation.dataAbsentReason.id",
        "path": "Observation.dataAbsentReason.id",
        "max": "0"
      },
      {
        "id": "Observation.dataAbsentReason.coding",
        "path": "Observation.dataAbsentReason.coding",
        "max": "0"
      },
      {
        "id": "Observation.dataAbsentReason.text",
        "path": "Observation.dataAbsentReason.text",
        "max": "0"
      },
      {
        "id": "Observation.component",
        "path": "Observation.component",
        "max": "0"
      }
    ]
  }
}