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.profileof 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.
| Element | Card. | When |
|---|---|---|
Observation.statusregistered | preliminary | final | amended + |
1..1 | Always |
Observation.categoryClassification of type of observation |
1..* | Always |
Observation.category:VSCatClassification of type of observation |
1..1 | Always |
Observation.category:VSCat.codingCode defined by a terminology system |
1..* | Always |
Observation.category:VSCat.coding.systemIdentity of the terminology system |
1..1 | Always |
Observation.category:VSCat.coding.codeSymbol in syntax defined by the system |
1..1 | Always |
Observation.codeBlood Pressure |
1..1 | Always |
Observation.code.codingCode defined by a terminology system |
1..* | Always |
Observation.code.coding:BPCodeCode defined by a terminology system |
1..1 | Always |
Observation.code.coding:BPCode.systemIdentity of the terminology system |
1..1 | Always |
Observation.code.coding:BPCode.codeSymbol in syntax defined by the system |
1..1 | Always |
Observation.subjectWho and/or what the observation is about |
1..1 | Always |
Observation.effective[x]Often just a dateTime for Vital Signs |
1..1 | Always |
Observation.componentUsed when reporting systolic and diastolic blood pressure. |
2..* | Always |
Observation.component.codeType of component observation (code / type) |
1..1 | Always |
Observation.component:SystolicBPUsed when reporting systolic and diastolic blood pressure. |
1..1 | Always |
Observation.component:SystolicBP.codeType of component observation (code / type) |
1..1 | Always |
Observation.component:SystolicBP.code.codingSystolic Blood Pressure |
1..* | Always |
Observation.component:SystolicBP.code.coding:SBPCodeSystolic Blood Pressure |
1..1 | Always |
Observation.component:SystolicBP.code.coding:SBPCode.systemIdentity of the terminology system |
1..1 | Always |
Observation.component:SystolicBP.code.coding:SBPCode.codeSymbol in syntax defined by the system |
1..1 | Always |
Observation.component:SystolicBP.value[x].valueNumerical value (with implicit precision) |
1..1 | If parent present |
Observation.component:SystolicBP.value[x].unitUnit representation |
1..1 | If parent present |
Observation.component:SystolicBP.value[x].systemSystem that defines coded unit form |
1..1 | If parent present |
Observation.component:SystolicBP.value[x].codeCoded responses from the common UCUM units for vital signs value set. |
1..1 | If parent present |
Observation.component:DiastolicBPUsed when reporting systolic and diastolic blood pressure. |
1..1 | Always |
Observation.component:DiastolicBP.codeType of component observation (code / type) |
1..1 | Always |
Observation.component:DiastolicBP.code.codingDiastolic Blood Pressure |
1..* | Always |
Observation.component:DiastolicBP.code.coding:DBPCodeDiastolic Blood Pressure |
1..1 | Always |
Observation.component:DiastolicBP.code.coding:DBPCode.systemIdentity of the terminology system |
1..1 | Always |
Observation.component:DiastolicBP.code.coding:DBPCode.codeSymbol in syntax defined by the system |
1..1 | Always |
Observation.component:DiastolicBP.value[x].valueNumerical value (with implicit precision) |
1..1 | If parent present |
Observation.component:DiastolicBP.value[x].unitUnit representation |
1..1 | If parent present |
Observation.component:DiastolicBP.value[x].systemSystem that defines coded unit form |
1..1 | If parent present |
Observation.component:DiastolicBP.value[x].codeCoded 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
| Element | Value |
|---|---|
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.
| Element | Strength | Value 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
{
"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.