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 Observation

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

Represents a clinical measurement recorded for a One Medical patient, including vital signs (e.g., heart rate, temperature, weight, BMI), laboratory results (e.g., glucose, cholesterol), and patient-reported survey responses. Measurements are captured during clinical encounters by clinicians, self-reported by patients via connected devices, or received from external laboratories.

The observation category determines the US Core profile this resource conforms to: vital signs use the US Core Vital Signs profile, laboratory results use the US Core Observation Lab profile, and survey responses have no additional US Core profile. Values may be numeric (with UCUM units) or string-based depending on the measurement type and available unit mappings.

Note: This profile uses base FHIR Observation as its parent because the translator dynamically selects between US Core Vital Signs and US Core Observation Lab profiles at runtime based on the measurement category. Both conformance claims appear in meta.profile on the output resource.

This profile describes how clinical measurements (vital signs, laboratory results, and patient survey responses) are represented in the One Medical FHIR API.

Measurements are recorded during clinical encounters by clinicians, self-reported by patients via connected devices (e.g., Withings scales), or received from external laboratories. Each observation includes a LOINC code identifying what was measured, the measured value (numeric or text), and when the measurement was taken.

Key Fields

Field What it contains Notes
code LOINC code for the measurement type (e.g., 8867-4 for heart rate) Always has a text value with the human-readable name.
status final, corrected, or entered-in-error "Corrected" means a newer measurement replaced this one. "Entered-in-error" means it was deleted.
category vital-signs, laboratory, or survey Determines which US Core profile applies. May be absent for uncategorized measurements.
value[x] The measured value — either a numeric Quantity or a string Vitals are always numeric with UCUM units. Labs may be numeric or string. Surveys are string.
effectiveDateTime When the measurement was taken ISO 8601 format. For labs, this is specimen collection time.
performer Who performed the measurement May be a Practitioner, Patient (self-measured), or Organization (external lab).
device Connected device that captured the reading Only present for device-sourced measurements.
referenceRange Normal range for this measurement Numeric ranges are parsed into low/high values. Unparseable ranges appear as text.

Interpretation Notes

  • value[x] type depends on the measurement category — vital signs always produce valueQuantity with UCUM units. Lab results produce valueQuantity when a UCUM mapping exists, otherwise valueString prefixed with [Non-standard unit]. Survey responses are always valueString.
  • category may be absent — this is uncommon but possible for measurements that don't fall into a recognized group (vitals, laboratory, or survey).
  • referenceRange parsing — the system attempts to parse common range patterns (e.g., "70-100", "< 200", "≥ 3.5") into structured low/high Quantity values. Ranges that don't match these patterns are preserved as free text in referenceRange.text.
  • No component field — single-value measurements never use components. For multi-component readings like blood pressure, see the Blood Pressure Observation profile.

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..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... 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, corrected, or entered-in-error — reflects whether the measurement is current
Binding: ObservationStatus (required): Codes providing the status of an observation.
... category S 0..* CodeableConcept vital-signs, laboratory, or survey — determines which US Core profile applies
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
... subject SΣ 1..1 Reference(Patient | Group | Device | Location) The patient this measurement belongs to
... effective[x] SΣ 1..1 dateTime When the measurement was taken
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who performed the measurement — clinician, patient, or external organization
... value[x] SΣC 0..1 The measured value — numeric with UCUM units, or a string for non-numeric results
.... valueQuantity Quantity
.... valueString string
... device S 0..1 Reference(Device | DeviceMetric) The device that captured this measurement, if applicable
... referenceRange SC 0..* BackboneElement Normal range for this measurement — may be numeric bounds or free text
Constraints: obs-3
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized

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.code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.component.​code Base example LOINC 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-3 error Observation.referenceRange Must have at least a low or a high or text low.exists() or high.exists() or text.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()

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation 0..* Observation Measurements and simple assertions
... 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 S 1..1 code final, corrected, or entered-in-error — reflects whether the measurement is current
... category S 0..* CodeableConcept vital-signs, laboratory, or survey — determines which US Core profile applies
... code S 1..1 CodeableConcept LOINC code identifying what was measured (e.g., 8867-4 for heart rate)
... subject S 1..1 Reference(Patient | Group | Device | Location) The patient this measurement belongs to
... 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] S 1..1 dateTime When the measurement was taken
... issued 0..0 Date/Time this version was made available
... performer S 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who performed the measurement — clinician, patient, or external organization
... value[x] S 0..1 The measured value — numeric with UCUM units, or a string for non-numeric results
.... valueQuantity Quantity
.... valueString string
... 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 device that captured this measurement, if applicable
... referenceRange S 0..* BackboneElement Normal range for this measurement — may be numeric bounds or free text
... hasMember 0..0 Related resource that belongs to the Observation group
... derivedFrom 0..0 Related measurements the observation is made from
... component 0..0 Component results

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... 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, corrected, or entered-in-error — reflects whether the measurement is current
Binding: ObservationStatus (required): Codes providing the status of an observation.
... category S 0..* CodeableConcept vital-signs, laboratory, or survey — determines which US Core profile applies
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
... code SΣ 1..1 CodeableConcept LOINC code identifying what was measured (e.g., 8867-4 for heart rate)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
... subject SΣ 1..1 Reference(Patient | Group | Device | Location) The patient this measurement belongs to
... effective[x] SΣ 1..1 dateTime When the measurement was taken
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who performed the measurement — clinician, patient, or external organization
... value[x] SΣC 0..1 The measured value — numeric with UCUM units, or a string for non-numeric results
.... valueQuantity Quantity
.... valueString string
... device S 0..1 Reference(Device | DeviceMetric) The device that captured this measurement, if applicable
... referenceRange SC 0..* BackboneElement Normal range for this measurement — may be numeric bounds or free text
Constraints: obs-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
.... low C 0..1 SimpleQuantity(4.0.1) Low Range, if relevant
.... high C 0..1 SimpleQuantity(4.0.1) High Range, if relevant
.... type 0..1 CodeableConcept Reference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.
.... appliesTo 0..* CodeableConcept Reference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.
.... age 0..1 Range Applicable age range, if relevant
.... text 0..1 string Text based reference range in an observation

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.code Base example LOINC Codes 📍4.0.1 FHIR Std.
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 example LOINC Codes 📍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-3 error Observation.referenceRange Must have at least a low or a high or text low.exists() or high.exists() or text.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()

This structure is derived from Observation

Summary

Mandatory: 8 elements
Must-Support: 10 elements
Prohibited: 18 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..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... 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, corrected, or entered-in-error — reflects whether the measurement is current
Binding: ObservationStatus (required): Codes providing the status of an observation.
... category S 0..* CodeableConcept vital-signs, laboratory, or survey — determines which US Core profile applies
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
... subject SΣ 1..1 Reference(Patient | Group | Device | Location) The patient this measurement belongs to
... effective[x] SΣ 1..1 dateTime When the measurement was taken
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who performed the measurement — clinician, patient, or external organization
... value[x] SΣC 0..1 The measured value — numeric with UCUM units, or a string for non-numeric results
.... valueQuantity Quantity
.... valueString string
... device S 0..1 Reference(Device | DeviceMetric) The device that captured this measurement, if applicable
... referenceRange SC 0..* BackboneElement Normal range for this measurement — may be numeric bounds or free text
Constraints: obs-3
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized

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.code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.component.​code Base example LOINC 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-3 error Observation.referenceRange Must have at least a low or a high or text low.exists() or high.exists() or text.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()

Differential View

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation 0..* Observation Measurements and simple assertions
... 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 S 1..1 code final, corrected, or entered-in-error — reflects whether the measurement is current
... category S 0..* CodeableConcept vital-signs, laboratory, or survey — determines which US Core profile applies
... code S 1..1 CodeableConcept LOINC code identifying what was measured (e.g., 8867-4 for heart rate)
... subject S 1..1 Reference(Patient | Group | Device | Location) The patient this measurement belongs to
... 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] S 1..1 dateTime When the measurement was taken
... issued 0..0 Date/Time this version was made available
... performer S 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who performed the measurement — clinician, patient, or external organization
... value[x] S 0..1 The measured value — numeric with UCUM units, or a string for non-numeric results
.... valueQuantity Quantity
.... valueString string
... 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 device that captured this measurement, if applicable
... referenceRange S 0..* BackboneElement Normal range for this measurement — may be numeric bounds or free text
... hasMember 0..0 Related resource that belongs to the Observation group
... derivedFrom 0..0 Related measurements the observation is made from
... component 0..0 Component results

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... 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, corrected, or entered-in-error — reflects whether the measurement is current
Binding: ObservationStatus (required): Codes providing the status of an observation.
... category S 0..* CodeableConcept vital-signs, laboratory, or survey — determines which US Core profile applies
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
... code SΣ 1..1 CodeableConcept LOINC code identifying what was measured (e.g., 8867-4 for heart rate)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
... subject SΣ 1..1 Reference(Patient | Group | Device | Location) The patient this measurement belongs to
... effective[x] SΣ 1..1 dateTime When the measurement was taken
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who performed the measurement — clinician, patient, or external organization
... value[x] SΣC 0..1 The measured value — numeric with UCUM units, or a string for non-numeric results
.... valueQuantity Quantity
.... valueString string
... device S 0..1 Reference(Device | DeviceMetric) The device that captured this measurement, if applicable
... referenceRange SC 0..* BackboneElement Normal range for this measurement — may be numeric bounds or free text
Constraints: obs-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
.... low C 0..1 SimpleQuantity(4.0.1) Low Range, if relevant
.... high C 0..1 SimpleQuantity(4.0.1) High Range, if relevant
.... type 0..1 CodeableConcept Reference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.
.... appliesTo 0..* CodeableConcept Reference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.
.... age 0..1 Range Applicable age range, if relevant
.... text 0..1 string Text based reference range in an observation

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.code Base example LOINC Codes 📍4.0.1 FHIR Std.
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 example LOINC Codes 📍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-3 error Observation.referenceRange Must have at least a low or a high or text low.exists() or high.exists() or text.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()

This structure is derived from Observation

Summary

Mandatory: 8 elements
Must-Support: 10 elements
Prohibited: 18 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