NP Core Heart Rate Observation

Sets minimum expectations for heart rate observations in the NP Core. Derives from the FHIR Heart Rate vital signs profile, which fixes the LOINC code (8867-4) and constrains the value to UCUM beats per minute (/min).

Canonical URL
http://fhir.digitalhealth.gov.np/core/StructureDefinition/np-core-heart-rate-observation
Resource / type
Observation
Based on
http://hl7.org/fhir/StructureDefinition/heartrate
Claim conformance
Put the canonical URL in meta.profile of each instance.

Required elements

“Always” means the element must be present in every instance. Otherwise it is required only when its parent element is present.

ElementCard.When
Observation.status
registered | preliminary | final | amended +
1..1 Always
Observation.category
Classification of type of observation
1..* Always
Observation.category:VSCat
Classification of type of observation
1..1 Always
Observation.category:VSCat.coding
Code defined by a terminology system
1..* Always
Observation.category:VSCat.coding.system
Identity of the terminology system
1..1 Always
Observation.category:VSCat.coding.code
Symbol in syntax defined by the system
1..1 Always
Observation.code
Heart Rate
1..1 Always
Observation.code.coding
Code defined by a terminology system
1..* Always
Observation.code.coding:HeartRateCode
Code defined by a terminology system
1..1 Always
Observation.code.coding:HeartRateCode.system
Identity of the terminology system
1..1 Always
Observation.code.coding:HeartRateCode.code
Symbol in syntax defined by the system
1..1 Always
Observation.subject
Who and/or what the observation is about
1..1 Always
Observation.effective[x]
Often just a dateTime for Vital Signs
1..1 Always
Observation.value[x]:valueQuantity.value
Numerical value (with implicit precision)
1..1 If parent present
Observation.value[x]:valueQuantity.unit
Unit representation
1..1 If parent present
Observation.value[x]:valueQuantity.system
System that defines coded unit form
1..1 If parent present
Observation.value[x]:valueQuantity.code
Coded responses from the common UCUM units for vital signs value set.
1..1 If parent present
Observation.component.code
Type of component observation (code / type)
1..1 If parent present

Must-support elements

If your system has this data it SHALL send it, and receivers SHALL process it. Must-support does not by itself make an element mandatory.

  • Observation.status
  • Observation.category
  • Observation.category:VSCat
  • Observation.category:VSCat.coding
  • Observation.category:VSCat.coding.system
  • Observation.category:VSCat.coding.code
  • Observation.code
  • Observation.subject
  • Observation.encounter
  • Observation.effective[x]
  • Observation.value[x]
  • Observation.value[x]:valueQuantity
  • Observation.value[x]:valueQuantity.value
  • Observation.value[x]:valueQuantity.unit
  • Observation.value[x]:valueQuantity.system
  • Observation.value[x]:valueQuantity.code
  • Observation.dataAbsentReason
  • Observation.component
  • Observation.component.code
  • Observation.component.value[x]
  • Observation.component.dataAbsentReason

Fixed and pattern values

ElementValue
Observation.category:VSCat.coding.system
http://terminology.hl7.org/CodeSystem/observation-category
Observation.category:VSCat.coding.code
vital-signs
Observation.code.coding:HeartRateCode.system
http://loinc.org
Observation.code.coding:HeartRateCode.code
8867-4
Observation.value[x]:valueQuantity.system
http://unitsofmeasure.org
Observation.value[x]:valueQuantity.code
/min

Terminology bindings

required: codes SHALL come from the value set · extensible: use the value set if a suitable code exists · preferred / example: guidance only.

ElementStrengthValue set
Observation.language preferred
http://hl7.org/fhir/ValueSet/languages
Observation.status required
http://hl7.org/fhir/ValueSet/observation-status
Observation.category preferred
http://hl7.org/fhir/ValueSet/observation-category
Observation.category:VSCat preferred
http://hl7.org/fhir/ValueSet/observation-category
Observation.code extensible
http://hl7.org/fhir/ValueSet/observation-vitalsignresult
Observation.value[x]:valueQuantity.comparator required
http://hl7.org/fhir/ValueSet/quantity-comparator
Observation.dataAbsentReason extensible
http://hl7.org/fhir/ValueSet/data-absent-reason
Observation.interpretation extensible
http://hl7.org/fhir/ValueSet/observation-interpretation
Observation.bodySite example
http://hl7.org/fhir/ValueSet/body-site
Observation.method example
http://hl7.org/fhir/ValueSet/observation-methods
Observation.referenceRange.type preferred
http://hl7.org/fhir/ValueSet/referencerange-meaning
Observation.referenceRange.appliesTo example
http://hl7.org/fhir/ValueSet/referencerange-appliesto
Observation.component.code extensible
http://hl7.org/fhir/ValueSet/observation-vitalsignresult
Observation.component.value[x] extensible
http://hl7.org/fhir/ValueSet/ucum-vitals-common
Observation.component.dataAbsentReason extensible
http://hl7.org/fhir/ValueSet/data-absent-reason
Observation.component.interpretation extensible
http://hl7.org/fhir/ValueSet/observation-interpretation

Rules (invariants)

vs-2 If there is no component or hasMember element then either a value[x] or a data absent reason must be present.

FHIRPath
(component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists())

vs-1 if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day

FHIRPath
$this is dateTime implies $this.toString().length() >= 10

obs-3 Must have at least a low or a high or text

FHIRPath
low.exists() or high.exists() or text.exists()

vs-3 If there is no a value a data absent reason must be present

FHIRPath
value.exists() or dataAbsentReason.exists()

Official examples

Observation/ExampleNPCoreHeartRateObservation
View in IG ↗
{
  "resourceType": "Observation",
  "id": "ExampleNPCoreHeartRateObservation",
  "meta": {
    "profile": [
      "http://fhir.digitalhealth.gov.np/core/StructureDefinition/np-core-heart-rate-observation"
    ]
  },
  "status": "final",
  "category": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/observation-category",
          "code": "vital-signs",
          "display": "Vital Signs"
        }
      ]
    }
  ],
  "code": {
    "coding": [
      {
        "system": "http://loinc.org",
        "code": "8867-4",
        "display": "Heart rate"
      }
    ]
  },
  "subject": {
    "reference": "Patient/ExampleNPCorePatient"
  },
  "encounter": {
    "reference": "Encounter/ExampleNPCoreEncounter"
  },
  "effectiveDateTime": "2026-05-10T09:14:00+05:45",
  "performer": [
    {
      "reference": "Practitioner/ExampleNPCorePractitioner"
    }
  ],
  "valueQuantity": {
    "value": 78,
    "unit": "beats/minute",
    "system": "http://unitsofmeasure.org",
    "code": "/min"
  }
}

Narrative (text) removed for readability.