One Medical FHIR Implementation Guide
0.1.0 - ci-build

One Medical FHIR Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: OneLife Blood Pressure Observation

Official URL: https://fhir-ig.onemedical.io/StructureDefinition/onelife-blood-pressure-observation Version: 0.1.0
Draft as of 2026-05-04 Computable Name: OneLifeBloodPressureObservation

Represents a blood pressure measurement recorded for a One Medical patient, containing systolic and diastolic values as separate components. Blood pressure is always captured as a paired reading with both systolic and diastolic values in mmHg.

Blood pressure readings are typically taken by a clinician during a visit using a manual or automated cuff, or self-reported by patients using a connected home blood pressure monitor. The overall observation is coded with LOINC 85354-9 (Blood pressure systolic & diastolic), and each component carries its own LOINC code (e.g., 8480-6 for systolic, 8462-4 for diastolic).

This profile uses US Core Vital Signs as its parent since blood pressure is always categorized as a vital sign and the translator populates all required US Core fields.

This profile describes how blood pressure readings are represented in the One Medical FHIR API.

Blood pressure is always captured as a paired systolic/diastolic reading. Unlike other measurements which carry a single value[x], blood pressure uses the component array with separate entries for systolic and diastolic values, each in mmHg. The overall observation is coded with LOINC 85354-9 (Blood pressure systolic & diastolic).

Key Fields

Field What it contains Notes
code Always LOINC 85354-9 (Blood pressure systolic & diastolic) This is the panel code. Individual component codes identify systolic vs diastolic.
status final or entered-in-error Blood pressure does not use corrected status. Deleted readings are entered-in-error.
category Always vital-signs Blood pressure is always categorized as a vital sign.
component Array with systolic and diastolic entries Each has a LOINC code (8480-6 systolic, 8462-4 diastolic) and a value in mm[Hg].
effectiveDateTime When the reading was taken ISO 8601 format.
performer Who took the reading Practitioner (in-office), Patient (home monitor), or Organization.
device Connected BP monitor, if applicable Present when the reading came from a registered device (e.g., Withings, Omron).

Interpretation Notes

  • No top-level value[x] — blood pressure does not have a single value. The systolic and diastolic readings are in component[].valueQuantity.
  • Component order is not guaranteed — use the LOINC code on each component to identify systolic (8480-6) vs diastolic (8462-4). Do not rely on array position.
  • Units are always mm[Hg] — both the unit and code fields on each component's valueQuantity are set to mm[Hg] (UCUM).
  • No reference ranges — reference ranges are not included on blood pressure observations. Normal range interpretation should be handled by the consuming application.

Example JSON

{
  "resourceType": "Observation",
  "status": "final",
  "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs"}]}],
  "code": {"coding": [{"system": "http://loinc.org", "code": "85354-9"}], "text": "Blood pressure systolic & diastolic"},
  "subject": {"reference": "Patient/abc123"},
  "effectiveDateTime": "2026-03-15T10:30:00Z",
  "component": [
    {
      "code": {"coding": [{"system": "http://loinc.org", "code": "8480-6"}], "text": "Systolic blood pressure"},
      "valueQuantity": {"value": 120, "unit": "mm[Hg]", "system": "http://unitsofmeasure.org", "code": "mm[Hg]"}
    },
    {
      "code": {"coding": [{"system": "http://loinc.org", "code": "8462-4"}], "text": "Diastolic blood pressure"},
      "valueQuantity": {"value": 78, "unit": "mm[Hg]", "system": "http://unitsofmeasure.org", "code": "mm[Hg]"}
    }
  ]
}

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* USCoreVitalSignsProfile US Core Vital Signs Profile
Constraints: obs-6, obs-7, vs-2
... meta SΣ 1..1 Meta Metadata about the resource
.... source Σ 1..1 uri Identifies where the resource comes from
.... Slices for tag Σ 2..* Coding Tags applied to this resource
Slice: Unordered, Open by pattern:system
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
..... tag:sourceType Σ 1..1 Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
...... system Σ 1..1 uri Identity of the terminology system
Required Pattern: http://onemedical.com/terminology/source-type
...... code Σ 0..1 code Symbol in syntax defined by the system
Required Pattern: one-medical-collected
..... tag:sourceSystem Σ 1..1 Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
...... system Σ 1..1 uri Identity of the terminology system
Required Pattern: http://onemedical.com/terminology/source-system
...... code Σ 0..1 code Symbol in syntax defined by the system
Required Pattern: onelife
... status ?!SΣ 1..1 code final or entered-in-error — deleted readings are marked entered-in-error
Binding: ObservationStatus (required)
... Slices for category S 1..* CodeableConcept Always 'vital-signs' — blood pressure is always categorized as a vital sign
Slice: Unordered, Open by value:coding.code, value:coding.system
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
.... category:VSCat S 1..1 CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
..... coding SΣ 1..* Coding Code defined by a terminology system
...... system SΣ 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... code SΣ 1..1 code Symbol in syntax defined by the system
Fixed Value: vital-signs
... subject SΣ 1..1 Reference(US Core Patient Profile(4.0.0)) The patient whose blood pressure was measured
... effective[x] SΣC 1..1 dateTime S When the blood pressure was taken
Constraints: vs-1
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who took the reading — clinician, patient, or external organization
... device S 0..1 Reference(Device | DeviceMetric) The blood pressure device used, if a connected device
... component SΣC 1..* BackboneElement Systolic and diastolic values — always both present, always in mmHg
Constraints: vs-3
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code SΣ 1..1 CodeableConcept LOINC code for the component (8480-6 systolic, 8462-4 diastolic)
Binding: US Core Vital Signs ValueSet (extensible): The vital sign codes from the base FHIR and US Core Vital Signs.
.... value[x] SΣC 1..1 Quantity S The pressure value in mmHg
Binding: VitalSignsUnits (extensible): Common UCUM units for recording Vital Signs.
.... dataAbsentReason SC 0..1 CodeableConcept Why the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.meta.tag Base example Common Tags 📍4.0.1 FHIR Std.
Observation.meta.tag:sourceType Base example Common Tags 📍4.0.1 FHIR Std.
Observation.meta.tag:sourceSystem Base example Common Tags 📍4.0.1 FHIR Std.
Observation.status Base required ObservationStatus 📍4.0.1 FHIR Std.
Observation.category Base preferred Observation Category Codes 📦4.0.1 FHIR Std.
Observation.category:VSCat Base preferred Observation Category Codes 📦4.0.1 FHIR Std.
Observation.code Base extensible US Core Vital Signs ValueSet 📦4.0.0 US Core v4.0
Observation.component.​code Base extensible US Core Vital Signs ValueSet 📦4.0.0 US Core v4.0
Observation.component.​value[x] Base extensible Vital Signs Units 📍4.0.1 FHIR Std.
Observation.component.​dataAbsentReason Base extensible DataAbsentReason 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
obs-6 error Observation dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
vs-1 error Observation.effective[x] if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day $this is dateTime implies $this.toString().length() >= 10
vs-2 error Observation If there is no component or hasMember element then either a value[x] or a data absent reason must be present. (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists())
vs-3 error Observation.component If there is no a value a data absent reason must be present value.exists() or dataAbsentReason.exists()

This structure is derived from USCoreVitalSignsProfile

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation 0..* USCoreVitalSignsProfile US Core Vital Signs Profile
... meta S 1..1 Meta Metadata about the resource
.... source 1..1 uri Identifies where the resource comes from
.... Slices for tag 2..* Coding Tags applied to this resource
Slice: Unordered, Open by pattern:system
..... tag:sourceType 1..1 Coding Tags applied to this resource
...... system 1..1 uri Identity of the terminology system
Required Pattern: http://onemedical.com/terminology/source-type
...... code 0..1 code Symbol in syntax defined by the system
Required Pattern: one-medical-collected
..... tag:sourceSystem 1..1 Coding Tags applied to this resource
...... system 1..1 uri Identity of the terminology system
Required Pattern: http://onemedical.com/terminology/source-system
...... code 0..1 code Symbol in syntax defined by the system
Required Pattern: onelife
... implicitRules 0..0 A set of rules under which this content was created
... language 0..0 Language of the resource content
... contained 0..0 Contained, inline Resources
... modifierExtension 0..0 Extension
... basedOn 0..0 Fulfills plan, proposal or order
... partOf 0..0 Part of referenced event
... status 1..1 code final or entered-in-error — deleted readings are marked entered-in-error
... category 1..* CodeableConcept Always 'vital-signs' — blood pressure is always categorized as a vital sign
... code 1..1 CodeableConcept Always LOINC 85354-9 (Blood pressure systolic & diastolic)
... subject 1..1 Reference(US Core Patient Profile(4.0.0)) The patient whose blood pressure was measured
... focus 0..0 What the observation is about, when it is not about the subject of record
... encounter 0..0 Healthcare event during which this observation is made
... effective[x] 1..1 dateTime When the blood pressure was taken
... issued 0..0 Date/Time this version was made available
... performer S 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who took the reading — clinician, patient, or external organization
... value[x] 0..0 Vital Signs Value
... dataAbsentReason 0..0 Why the result is missing
... interpretation 0..0 High, low, normal, etc.
... note 0..0 Comments about the observation
... bodySite 0..0 Observed body part
... method 0..0 How it was done
... specimen 0..0 Specimen used for this observation
... device S 0..1 Reference(Device | DeviceMetric) The blood pressure device used, if a connected device
... referenceRange 0..0 Provides guide for interpretation
... hasMember 0..0 Used when reporting vital signs panel components
... derivedFrom 0..0 Related measurements the observation is made from
... component 1..* BackboneElement Systolic and diastolic values — always both present, always in mmHg
.... code 1..1 CodeableConcept LOINC code for the component (8480-6 systolic, 8462-4 diastolic)
.... value[x] 1..1 Quantity The pressure value in mmHg

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* USCoreVitalSignsProfile US Core Vital Signs Profile
Constraints: obs-6, obs-7, vs-2
... id Σ 0..1 id Logical id of this artifact
... meta SΣ 1..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source Σ 1..1 uri Identifies where the resource comes from
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... Slices for tag Σ 2..* Coding Tags applied to this resource
Slice: Unordered, Open by pattern:system
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
..... tag:sourceType Σ 1..1 Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Required Pattern: http://onemedical.com/terminology/source-type
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 0..1 code Symbol in syntax defined by the system
Required Pattern: one-medical-collected
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... tag:sourceSystem Σ 1..1 Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Required Pattern: http://onemedical.com/terminology/source-system
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 0..1 code Symbol in syntax defined by the system
Required Pattern: onelife
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... identifier Σ 0..* Identifier Business Identifier for observation
... status ?!SΣ 1..1 code final or entered-in-error — deleted readings are marked entered-in-error
Binding: ObservationStatus (required)
... Slices for category S 1..* CodeableConcept Always 'vital-signs' — blood pressure is always categorized as a vital sign
Slice: Unordered, Open by value:coding.code, value:coding.system
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
.... category:VSCat S 1..1 CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... coding SΣ 1..* Coding Code defined by a terminology system
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system SΣ 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... version Σ 0..1 string Version of the system - if relevant
...... code SΣ 1..1 code Symbol in syntax defined by the system
Fixed Value: vital-signs
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... text Σ 0..1 string Plain text representation of the concept
... code SΣ 1..1 CodeableConcept Always LOINC 85354-9 (Blood pressure systolic & diastolic)
Binding: US Core Vital Signs ValueSet (extensible): The vital sign codes from the base FHIR and US Core Vital Signs.
... subject SΣ 1..1 Reference(US Core Patient Profile(4.0.0)) The patient whose blood pressure was measured
... effective[x] SΣC 1..1 dateTime S When the blood pressure was taken
Constraints: vs-1
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who took the reading — clinician, patient, or external organization
... device S 0..1 Reference(Device | DeviceMetric) The blood pressure device used, if a connected device
... component SΣC 1..* BackboneElement Systolic and diastolic values — always both present, always in mmHg
Constraints: vs-3
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code SΣ 1..1 CodeableConcept LOINC code for the component (8480-6 systolic, 8462-4 diastolic)
Binding: US Core Vital Signs ValueSet (extensible): The vital sign codes from the base FHIR and US Core Vital Signs.
.... value[x] SΣC 1..1 Quantity S The pressure value in mmHg
Binding: VitalSignsUnits (extensible): Common UCUM units for recording Vital Signs.
.... dataAbsentReason SC 0..1 CodeableConcept Why the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
.... interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
.... referenceRange 0..* See referenceRange (Observation) Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.meta.security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
Observation.meta.tag Base example Common Tags 📍4.0.1 FHIR Std.
Observation.meta.tag:sourceType Base example Common Tags 📍4.0.1 FHIR Std.
Observation.meta.tag:sourceSystem Base example Common Tags 📍4.0.1 FHIR Std.
Observation.status Base required ObservationStatus 📍4.0.1 FHIR Std.
Observation.category Base preferred Observation Category Codes 📦4.0.1 FHIR Std.
Observation.category:VSCat Base preferred Observation Category Codes 📦4.0.1 FHIR Std.
Observation.code Base extensible US Core Vital Signs ValueSet 📦4.0.0 US Core v4.0
Observation.referenceRange.​type Base preferred Observation Reference Range Meaning Codes 📦4.0.1 FHIR Std.
Observation.referenceRange.​appliesTo Base example Observation Reference Range Applies To Codes 📦4.0.1 FHIR Std.
Observation.component.​code Base extensible US Core Vital Signs ValueSet 📦4.0.0 US Core v4.0
Observation.component.​value[x] Base extensible Vital Signs Units 📍4.0.1 FHIR Std.
Observation.component.​dataAbsentReason Base extensible DataAbsentReason 📦4.0.1 FHIR Std.
Observation.component.​interpretation Base extensible Observation Interpretation Codes 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
obs-6 error Observation dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
vs-1 error Observation.effective[x] if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day $this is dateTime implies $this.toString().length() >= 10
vs-2 error Observation If there is no component or hasMember element then either a value[x] or a data absent reason must be present. (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists())
vs-3 error Observation.component If there is no a value a data absent reason must be present value.exists() or dataAbsentReason.exists()

This structure is derived from USCoreVitalSignsProfile

Summary

Mandatory: 8 elements
Must-Support: 3 elements
Prohibited: 19 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Observation.meta.tag

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* USCoreVitalSignsProfile US Core Vital Signs Profile
Constraints: obs-6, obs-7, vs-2
... meta SΣ 1..1 Meta Metadata about the resource
.... source Σ 1..1 uri Identifies where the resource comes from
.... Slices for tag Σ 2..* Coding Tags applied to this resource
Slice: Unordered, Open by pattern:system
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
..... tag:sourceType Σ 1..1 Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
...... system Σ 1..1 uri Identity of the terminology system
Required Pattern: http://onemedical.com/terminology/source-type
...... code Σ 0..1 code Symbol in syntax defined by the system
Required Pattern: one-medical-collected
..... tag:sourceSystem Σ 1..1 Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
...... system Σ 1..1 uri Identity of the terminology system
Required Pattern: http://onemedical.com/terminology/source-system
...... code Σ 0..1 code Symbol in syntax defined by the system
Required Pattern: onelife
... status ?!SΣ 1..1 code final or entered-in-error — deleted readings are marked entered-in-error
Binding: ObservationStatus (required)
... Slices for category S 1..* CodeableConcept Always 'vital-signs' — blood pressure is always categorized as a vital sign
Slice: Unordered, Open by value:coding.code, value:coding.system
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
.... category:VSCat S 1..1 CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
..... coding SΣ 1..* Coding Code defined by a terminology system
...... system SΣ 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... code SΣ 1..1 code Symbol in syntax defined by the system
Fixed Value: vital-signs
... subject SΣ 1..1 Reference(US Core Patient Profile(4.0.0)) The patient whose blood pressure was measured
... effective[x] SΣC 1..1 dateTime S When the blood pressure was taken
Constraints: vs-1
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who took the reading — clinician, patient, or external organization
... device S 0..1 Reference(Device | DeviceMetric) The blood pressure device used, if a connected device
... component SΣC 1..* BackboneElement Systolic and diastolic values — always both present, always in mmHg
Constraints: vs-3
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code SΣ 1..1 CodeableConcept LOINC code for the component (8480-6 systolic, 8462-4 diastolic)
Binding: US Core Vital Signs ValueSet (extensible): The vital sign codes from the base FHIR and US Core Vital Signs.
.... value[x] SΣC 1..1 Quantity S The pressure value in mmHg
Binding: VitalSignsUnits (extensible): Common UCUM units for recording Vital Signs.
.... dataAbsentReason SC 0..1 CodeableConcept Why the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.meta.tag Base example Common Tags 📍4.0.1 FHIR Std.
Observation.meta.tag:sourceType Base example Common Tags 📍4.0.1 FHIR Std.
Observation.meta.tag:sourceSystem Base example Common Tags 📍4.0.1 FHIR Std.
Observation.status Base required ObservationStatus 📍4.0.1 FHIR Std.
Observation.category Base preferred Observation Category Codes 📦4.0.1 FHIR Std.
Observation.category:VSCat Base preferred Observation Category Codes 📦4.0.1 FHIR Std.
Observation.code Base extensible US Core Vital Signs ValueSet 📦4.0.0 US Core v4.0
Observation.component.​code Base extensible US Core Vital Signs ValueSet 📦4.0.0 US Core v4.0
Observation.component.​value[x] Base extensible Vital Signs Units 📍4.0.1 FHIR Std.
Observation.component.​dataAbsentReason Base extensible DataAbsentReason 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
obs-6 error Observation dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
vs-1 error Observation.effective[x] if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day $this is dateTime implies $this.toString().length() >= 10
vs-2 error Observation If there is no component or hasMember element then either a value[x] or a data absent reason must be present. (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists())
vs-3 error Observation.component If there is no a value a data absent reason must be present value.exists() or dataAbsentReason.exists()

Differential View

This structure is derived from USCoreVitalSignsProfile

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation 0..* USCoreVitalSignsProfile US Core Vital Signs Profile
... meta S 1..1 Meta Metadata about the resource
.... source 1..1 uri Identifies where the resource comes from
.... Slices for tag 2..* Coding Tags applied to this resource
Slice: Unordered, Open by pattern:system
..... tag:sourceType 1..1 Coding Tags applied to this resource
...... system 1..1 uri Identity of the terminology system
Required Pattern: http://onemedical.com/terminology/source-type
...... code 0..1 code Symbol in syntax defined by the system
Required Pattern: one-medical-collected
..... tag:sourceSystem 1..1 Coding Tags applied to this resource
...... system 1..1 uri Identity of the terminology system
Required Pattern: http://onemedical.com/terminology/source-system
...... code 0..1 code Symbol in syntax defined by the system
Required Pattern: onelife
... implicitRules 0..0 A set of rules under which this content was created
... language 0..0 Language of the resource content
... contained 0..0 Contained, inline Resources
... modifierExtension 0..0 Extension
... basedOn 0..0 Fulfills plan, proposal or order
... partOf 0..0 Part of referenced event
... status 1..1 code final or entered-in-error — deleted readings are marked entered-in-error
... category 1..* CodeableConcept Always 'vital-signs' — blood pressure is always categorized as a vital sign
... code 1..1 CodeableConcept Always LOINC 85354-9 (Blood pressure systolic & diastolic)
... subject 1..1 Reference(US Core Patient Profile(4.0.0)) The patient whose blood pressure was measured
... focus 0..0 What the observation is about, when it is not about the subject of record
... encounter 0..0 Healthcare event during which this observation is made
... effective[x] 1..1 dateTime When the blood pressure was taken
... issued 0..0 Date/Time this version was made available
... performer S 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who took the reading — clinician, patient, or external organization
... value[x] 0..0 Vital Signs Value
... dataAbsentReason 0..0 Why the result is missing
... interpretation 0..0 High, low, normal, etc.
... note 0..0 Comments about the observation
... bodySite 0..0 Observed body part
... method 0..0 How it was done
... specimen 0..0 Specimen used for this observation
... device S 0..1 Reference(Device | DeviceMetric) The blood pressure device used, if a connected device
... referenceRange 0..0 Provides guide for interpretation
... hasMember 0..0 Used when reporting vital signs panel components
... derivedFrom 0..0 Related measurements the observation is made from
... component 1..* BackboneElement Systolic and diastolic values — always both present, always in mmHg
.... code 1..1 CodeableConcept LOINC code for the component (8480-6 systolic, 8462-4 diastolic)
.... value[x] 1..1 Quantity The pressure value in mmHg

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* USCoreVitalSignsProfile US Core Vital Signs Profile
Constraints: obs-6, obs-7, vs-2
... id Σ 0..1 id Logical id of this artifact
... meta SΣ 1..1 Meta Metadata about the resource
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ 0..1 id Version specific identifier
.... lastUpdated Σ 0..1 instant When the resource version last changed
.... source Σ 1..1 uri Identifies where the resource comes from
.... profile Σ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
.... security Σ 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
.... Slices for tag Σ 2..* Coding Tags applied to this resource
Slice: Unordered, Open by pattern:system
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
..... tag:sourceType Σ 1..1 Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Required Pattern: http://onemedical.com/terminology/source-type
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 0..1 code Symbol in syntax defined by the system
Required Pattern: one-medical-collected
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... tag:sourceSystem Σ 1..1 Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Required Pattern: http://onemedical.com/terminology/source-system
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 0..1 code Symbol in syntax defined by the system
Required Pattern: onelife
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... identifier Σ 0..* Identifier Business Identifier for observation
... status ?!SΣ 1..1 code final or entered-in-error — deleted readings are marked entered-in-error
Binding: ObservationStatus (required)
... Slices for category S 1..* CodeableConcept Always 'vital-signs' — blood pressure is always categorized as a vital sign
Slice: Unordered, Open by value:coding.code, value:coding.system
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
.... category:VSCat S 1..1 CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... coding SΣ 1..* Coding Code defined by a terminology system
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system SΣ 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... version Σ 0..1 string Version of the system - if relevant
...... code SΣ 1..1 code Symbol in syntax defined by the system
Fixed Value: vital-signs
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... text Σ 0..1 string Plain text representation of the concept
... code SΣ 1..1 CodeableConcept Always LOINC 85354-9 (Blood pressure systolic & diastolic)
Binding: US Core Vital Signs ValueSet (extensible): The vital sign codes from the base FHIR and US Core Vital Signs.
... subject SΣ 1..1 Reference(US Core Patient Profile(4.0.0)) The patient whose blood pressure was measured
... effective[x] SΣC 1..1 dateTime S When the blood pressure was taken
Constraints: vs-1
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who took the reading — clinician, patient, or external organization
... device S 0..1 Reference(Device | DeviceMetric) The blood pressure device used, if a connected device
... component SΣC 1..* BackboneElement Systolic and diastolic values — always both present, always in mmHg
Constraints: vs-3
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code SΣ 1..1 CodeableConcept LOINC code for the component (8480-6 systolic, 8462-4 diastolic)
Binding: US Core Vital Signs ValueSet (extensible): The vital sign codes from the base FHIR and US Core Vital Signs.
.... value[x] SΣC 1..1 Quantity S The pressure value in mmHg
Binding: VitalSignsUnits (extensible): Common UCUM units for recording Vital Signs.
.... dataAbsentReason SC 0..1 CodeableConcept Why the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
.... interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
.... referenceRange 0..* See referenceRange (Observation) Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.meta.security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
Observation.meta.tag Base example Common Tags 📍4.0.1 FHIR Std.
Observation.meta.tag:sourceType Base example Common Tags 📍4.0.1 FHIR Std.
Observation.meta.tag:sourceSystem Base example Common Tags 📍4.0.1 FHIR Std.
Observation.status Base required ObservationStatus 📍4.0.1 FHIR Std.
Observation.category Base preferred Observation Category Codes 📦4.0.1 FHIR Std.
Observation.category:VSCat Base preferred Observation Category Codes 📦4.0.1 FHIR Std.
Observation.code Base extensible US Core Vital Signs ValueSet 📦4.0.0 US Core v4.0
Observation.referenceRange.​type Base preferred Observation Reference Range Meaning Codes 📦4.0.1 FHIR Std.
Observation.referenceRange.​appliesTo Base example Observation Reference Range Applies To Codes 📦4.0.1 FHIR Std.
Observation.component.​code Base extensible US Core Vital Signs ValueSet 📦4.0.0 US Core v4.0
Observation.component.​value[x] Base extensible Vital Signs Units 📍4.0.1 FHIR Std.
Observation.component.​dataAbsentReason Base extensible DataAbsentReason 📦4.0.1 FHIR Std.
Observation.component.​interpretation Base extensible Observation Interpretation Codes 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
obs-6 error Observation dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
vs-1 error Observation.effective[x] if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day $this is dateTime implies $this.toString().length() >= 10
vs-2 error Observation If there is no component or hasMember element then either a value[x] or a data absent reason must be present. (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists())
vs-3 error Observation.component If there is no a value a data absent reason must be present value.exists() or dataAbsentReason.exists()

This structure is derived from USCoreVitalSignsProfile

Summary

Mandatory: 8 elements
Must-Support: 3 elements
Prohibited: 19 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Observation.meta.tag

 

Other representations of profile: CSV, Excel, Schematron