NP Core Blood Pressure Observation

Sets minimum expectations for blood pressure observations in the NP Core. Derives from the FHIR Blood Pressure vital signs profile, which fixes the panel LOINC code (85354-9), the systolic (8480-6) and diastolic (8462-4) component codes, and constrains the component values to UCUM mm[Hg].

Canonical URL
http://fhir.digitalhealth.gov.np/core/StructureDefinition/np-core-blood-pressure-observation
Resource / type
Observation
Based on
http://hl7.org/fhir/StructureDefinition/bp
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
Blood Pressure
1..1 Always
Observation.code.coding
Code defined by a terminology system
1..* Always
Observation.code.coding:BPCode
Code defined by a terminology system
1..1 Always
Observation.code.coding:BPCode.system
Identity of the terminology system
1..1 Always
Observation.code.coding:BPCode.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.component
Used when reporting systolic and diastolic blood pressure.
2..* Always
Observation.component.code
Type of component observation (code / type)
1..1 Always
Observation.component:SystolicBP
Used when reporting systolic and diastolic blood pressure.
1..1 Always
Observation.component:SystolicBP.code
Type of component observation (code / type)
1..1 Always
Observation.component:SystolicBP.code.coding
Systolic Blood Pressure
1..* Always
Observation.component:SystolicBP.code.coding:SBPCode
Systolic Blood Pressure
1..1 Always
Observation.component:SystolicBP.code.coding:SBPCode.system
Identity of the terminology system
1..1 Always
Observation.component:SystolicBP.code.coding:SBPCode.code
Symbol in syntax defined by the system
1..1 Always
Observation.component:SystolicBP.value[x].value
Numerical value (with implicit precision)
1..1 If parent present
Observation.component:SystolicBP.value[x].unit
Unit representation
1..1 If parent present
Observation.component:SystolicBP.value[x].system
System that defines coded unit form
1..1 If parent present
Observation.component:SystolicBP.value[x].code
Coded responses from the common UCUM units for vital signs value set.
1..1 If parent present
Observation.component:DiastolicBP
Used when reporting systolic and diastolic blood pressure.
1..1 Always
Observation.component:DiastolicBP.code
Type of component observation (code / type)
1..1 Always
Observation.component:DiastolicBP.code.coding
Diastolic Blood Pressure
1..* Always
Observation.component:DiastolicBP.code.coding:DBPCode
Diastolic Blood Pressure
1..1 Always
Observation.component:DiastolicBP.code.coding:DBPCode.system
Identity of the terminology system
1..1 Always
Observation.component:DiastolicBP.code.coding:DBPCode.code
Symbol in syntax defined by the system
1..1 Always
Observation.component:DiastolicBP.value[x].value
Numerical value (with implicit precision)
1..1 If parent present
Observation.component:DiastolicBP.value[x].unit
Unit representation
1..1 If parent present
Observation.component:DiastolicBP.value[x].system
System that defines coded unit form
1..1 If parent present
Observation.component:DiastolicBP.value[x].code
Coded responses from the common UCUM units for vital signs value set.
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.dataAbsentReason
  • Observation.component
  • Observation.component.code
  • Observation.component.value[x]
  • Observation.component.dataAbsentReason
  • Observation.component:SystolicBP
  • Observation.component:SystolicBP.code
  • Observation.component:SystolicBP.value[x]
  • Observation.component:SystolicBP.value[x].value
  • Observation.component:SystolicBP.value[x].unit
  • Observation.component:SystolicBP.value[x].system
  • Observation.component:SystolicBP.value[x].code
  • Observation.component:SystolicBP.dataAbsentReason
  • Observation.component:DiastolicBP
  • Observation.component:DiastolicBP.code
  • Observation.component:DiastolicBP.value[x]
  • Observation.component:DiastolicBP.value[x].value
  • Observation.component:DiastolicBP.value[x].unit
  • Observation.component:DiastolicBP.value[x].system
  • Observation.component:DiastolicBP.value[x].code
  • Observation.component:DiastolicBP.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:BPCode.system
http://loinc.org
Observation.code.coding:BPCode.code
85354-9
Observation.component:SystolicBP.code.coding:SBPCode.system
http://loinc.org
Observation.component:SystolicBP.code.coding:SBPCode.code
8480-6
Observation.component:SystolicBP.value[x].system
http://unitsofmeasure.org
Observation.component:SystolicBP.value[x].code
mm[Hg]
Observation.component:DiastolicBP.code.coding:DBPCode.system
http://loinc.org
Observation.component:DiastolicBP.code.coding:DBPCode.code
8462-4
Observation.component:DiastolicBP.value[x].system
http://unitsofmeasure.org
Observation.component:DiastolicBP.value[x].code
mm[Hg]

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.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
Observation.component:SystolicBP.code extensible
http://hl7.org/fhir/ValueSet/observation-vitalsignresult
Observation.component:SystolicBP.value[x] extensible
http://hl7.org/fhir/ValueSet/ucum-vitals-common
Observation.component:SystolicBP.value[x].comparator required
http://hl7.org/fhir/ValueSet/quantity-comparator
Observation.component:SystolicBP.dataAbsentReason extensible
http://hl7.org/fhir/ValueSet/data-absent-reason
Observation.component:SystolicBP.interpretation extensible
http://hl7.org/fhir/ValueSet/observation-interpretation
Observation.component:DiastolicBP.code extensible
http://hl7.org/fhir/ValueSet/observation-vitalsignresult
Observation.component:DiastolicBP.value[x] extensible
http://hl7.org/fhir/ValueSet/ucum-vitals-common
Observation.component:DiastolicBP.value[x].comparator required
http://hl7.org/fhir/ValueSet/quantity-comparator
Observation.component:DiastolicBP.dataAbsentReason extensible
http://hl7.org/fhir/ValueSet/data-absent-reason
Observation.component:DiastolicBP.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/ExampleNPCoreBloodPressureObservation
View in IG ↗
{
  "resourceType": "Observation",
  "id": "ExampleNPCoreBloodPressureObservation",
  "meta": {
    "profile": [
      "http://fhir.digitalhealth.gov.np/core/StructureDefinition/np-core-blood-pressure-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": "85354-9",
        "display": "Blood pressure panel with all children optional"
      }
    ]
  },
  "subject": {
    "reference": "Patient/ExampleNPCorePatient"
  },
  "encounter": {
    "reference": "Encounter/ExampleNPCoreEncounter"
  },
  "effectiveDateTime": "2026-05-10T09:10:00+05:45",
  "performer": [
    {
      "reference": "Practitioner/ExampleNPCorePractitioner"
    }
  ],
  "component": [
    {
      "code": {
        "coding": [
          {
            "system": "http://loinc.org",
            "code": "8480-6",
            "display": "Systolic blood pressure"
          }
        ]
      },
      "valueQuantity": {
        "value": 148,
        "unit": "mmHg",
        "system": "http://unitsofmeasure.org",
        "code": "mm[Hg]"
      }
    },
    {
      "code": {
        "coding": [
          {
            "system": "http://loinc.org",
            "code": "8462-4",
            "display": "Diastolic blood pressure"
          }
        ]
      },
      "valueQuantity": {
        "value": 94,
        "unit": "mmHg",
        "system": "http://unitsofmeasure.org",
        "code": "mm[Hg]"
      }
    }
  ]
}

Narrative (text) removed for readability.