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
| 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.
| 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. |
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.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
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7 |
![]() ![]() |
SΣ | 1..1 | Meta | Metadata about the resource |
![]() ![]() ![]() |
Σ | 1..1 | uri | Identifies where the resource comes from |
![]() ![]() ![]() |
Σ | 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". |
![]() ![]() ![]() ![]() |
Σ | 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". |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Required Pattern: http://onemedical.com/terminology/source-type |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | Symbol in syntax defined by the system Required Pattern: one-medical-collected |
![]() ![]() ![]() ![]() |
Σ | 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". |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Required Pattern: http://onemedical.com/terminology/source-system |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | Symbol in syntax defined by the system Required Pattern: onelife |
![]() ![]() |
?!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. |
![]() ![]() |
S | 0..* | CodeableConcept | vital-signs, laboratory, or survey — determines which US Core profile applies Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. |
![]() ![]() |
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. |
![]() ![]() |
SΣ | 1..1 | Reference(Patient | Group | Device | Location) | The patient this measurement belongs to |
![]() ![]() |
SΣ | 1..1 | dateTime | When the measurement was taken |
![]() ![]() |
SΣ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who performed the measurement — clinician, patient, or external organization |
![]() ![]() |
SΣC | 0..1 | The measured value — numeric with UCUM units, or a string for non-numeric results | |
![]() ![]() ![]() |
Quantity | |||
![]() ![]() ![]() |
string | |||
![]() ![]() |
S | 0..1 | Reference(Device | DeviceMetric) | The device that captured this measurement, if applicable |
![]() ![]() |
SC | 0..* | BackboneElement | Normal range for this measurement — may be numeric bounds or free text Constraints: obs-3 |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
Documentation for this format | ||||
| 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. |
| 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
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Observation | Measurements and simple assertions | |
![]() ![]() |
S | 1..1 | Meta | Metadata about the resource |
![]() ![]() ![]() |
1..1 | uri | Identifies where the resource comes from | |
![]() ![]() ![]() |
2..* | Coding | Tags applied to this resource Slice: Unordered, Open by pattern:system | |
![]() ![]() ![]() ![]() |
1..1 | Coding | Tags applied to this resource | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Required Pattern: http://onemedical.com/terminology/source-type | |
![]() ![]() ![]() ![]() ![]() |
0..1 | code | Symbol in syntax defined by the system Required Pattern: one-medical-collected | |
![]() ![]() ![]() ![]() |
1..1 | Coding | Tags applied to this resource | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Required Pattern: http://onemedical.com/terminology/source-system | |
![]() ![]() ![]() ![]() ![]() |
0..1 | code | Symbol in syntax defined by the system Required Pattern: onelife | |
![]() ![]() |
0..0 | A set of rules under which this content was created | ||
![]() ![]() |
0..0 | Language of the resource content | ||
![]() ![]() |
0..0 | Contained, inline Resources | ||
![]() ![]() |
0..0 | Extension | ||
![]() ![]() |
0..0 | Fulfills plan, proposal or order | ||
![]() ![]() |
0..0 | Part of referenced event | ||
![]() ![]() |
S | 1..1 | code | final, corrected, or entered-in-error — reflects whether the measurement is current |
![]() ![]() |
S | 0..* | CodeableConcept | vital-signs, laboratory, or survey — determines which US Core profile applies |
![]() ![]() |
S | 1..1 | CodeableConcept | LOINC code identifying what was measured (e.g., 8867-4 for heart rate) |
![]() ![]() |
S | 1..1 | Reference(Patient | Group | Device | Location) | The patient this measurement belongs to |
![]() ![]() |
0..0 | What the observation is about, when it is not about the subject of record | ||
![]() ![]() |
0..0 | Healthcare event during which this observation is made | ||
![]() ![]() |
S | 1..1 | dateTime | When the measurement was taken |
![]() ![]() |
0..0 | Date/Time this version was made available | ||
![]() ![]() |
S | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who performed the measurement — clinician, patient, or external organization |
![]() ![]() |
S | 0..1 | The measured value — numeric with UCUM units, or a string for non-numeric results | |
![]() ![]() ![]() |
Quantity | |||
![]() ![]() ![]() |
string | |||
![]() ![]() |
0..0 | Why the result is missing | ||
![]() ![]() |
0..0 | High, low, normal, etc. | ||
![]() ![]() |
0..0 | Comments about the observation | ||
![]() ![]() |
0..0 | Observed body part | ||
![]() ![]() |
0..0 | How it was done | ||
![]() ![]() |
0..0 | Specimen used for this observation | ||
![]() ![]() |
S | 0..1 | Reference(Device | DeviceMetric) | The device that captured this measurement, if applicable |
![]() ![]() |
S | 0..* | BackboneElement | Normal range for this measurement — may be numeric bounds or free text |
![]() ![]() |
0..0 | Related resource that belongs to the Observation group | ||
![]() ![]() |
0..0 | Related measurements the observation is made from | ||
![]() ![]() |
0..0 | Component results | ||
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7 |
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact |
![]() ![]() |
SΣ | 1..1 | Meta | Metadata about the resource |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
Σ | 0..1 | id | Version specific identifier |
![]() ![]() ![]() |
Σ | 0..1 | instant | When the resource version last changed |
![]() ![]() ![]() |
Σ | 1..1 | uri | Identifies where the resource comes from |
![]() ![]() ![]() |
Σ | 0..* | canonical(StructureDefinition) | Profiles this resource claims to conform to |
![]() ![]() ![]() |
Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System. |
![]() ![]() ![]() |
Σ | 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". |
![]() ![]() ![]() ![]() |
Σ | 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". |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Required Pattern: http://onemedical.com/terminology/source-type |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Version of the system - if relevant |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | Symbol in syntax defined by the system Required Pattern: one-medical-collected |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | If this coding was chosen directly by the user |
![]() ![]() ![]() ![]() |
Σ | 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". |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Required Pattern: http://onemedical.com/terminology/source-system |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Version of the system - if relevant |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | Symbol in syntax defined by the system Required Pattern: onelife |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | If this coding was chosen directly by the user |
![]() ![]() |
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 | |
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() |
Σ | 0..* | Identifier | Business Identifier for observation |
![]() ![]() |
?!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. |
![]() ![]() |
S | 0..* | CodeableConcept | vital-signs, laboratory, or survey — determines which US Core profile applies Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. |
![]() ![]() |
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. |
![]() ![]() |
SΣ | 1..1 | Reference(Patient | Group | Device | Location) | The patient this measurement belongs to |
![]() ![]() |
SΣ | 1..1 | dateTime | When the measurement was taken |
![]() ![]() |
SΣ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who performed the measurement — clinician, patient, or external organization |
![]() ![]() |
SΣC | 0..1 | The measured value — numeric with UCUM units, or a string for non-numeric results | |
![]() ![]() ![]() |
Quantity | |||
![]() ![]() ![]() |
string | |||
![]() ![]() |
S | 0..1 | Reference(Device | DeviceMetric) | The device that captured this measurement, if applicable |
![]() ![]() |
SC | 0..* | BackboneElement | Normal range for this measurement — may be numeric bounds or free text Constraints: obs-3 |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
C | 0..1 | SimpleQuantity(4.0.1) | Low Range, if relevant |
![]() ![]() ![]() |
C | 0..1 | SimpleQuantity(4.0.1) | High Range, if relevant |
![]() ![]() ![]() |
0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range. | |
![]() ![]() ![]() |
0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to. | |
![]() ![]() ![]() |
0..1 | Range | Applicable age range, if relevant | |
![]() ![]() ![]() |
0..1 | string | Text based reference range in an observation | |
Documentation for this format | ||||
| 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. |
| 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:
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7 |
![]() ![]() |
SΣ | 1..1 | Meta | Metadata about the resource |
![]() ![]() ![]() |
Σ | 1..1 | uri | Identifies where the resource comes from |
![]() ![]() ![]() |
Σ | 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". |
![]() ![]() ![]() ![]() |
Σ | 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". |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Required Pattern: http://onemedical.com/terminology/source-type |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | Symbol in syntax defined by the system Required Pattern: one-medical-collected |
![]() ![]() ![]() ![]() |
Σ | 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". |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Required Pattern: http://onemedical.com/terminology/source-system |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | Symbol in syntax defined by the system Required Pattern: onelife |
![]() ![]() |
?!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. |
![]() ![]() |
S | 0..* | CodeableConcept | vital-signs, laboratory, or survey — determines which US Core profile applies Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. |
![]() ![]() |
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. |
![]() ![]() |
SΣ | 1..1 | Reference(Patient | Group | Device | Location) | The patient this measurement belongs to |
![]() ![]() |
SΣ | 1..1 | dateTime | When the measurement was taken |
![]() ![]() |
SΣ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who performed the measurement — clinician, patient, or external organization |
![]() ![]() |
SΣC | 0..1 | The measured value — numeric with UCUM units, or a string for non-numeric results | |
![]() ![]() ![]() |
Quantity | |||
![]() ![]() ![]() |
string | |||
![]() ![]() |
S | 0..1 | Reference(Device | DeviceMetric) | The device that captured this measurement, if applicable |
![]() ![]() |
SC | 0..* | BackboneElement | Normal range for this measurement — may be numeric bounds or free text Constraints: obs-3 |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
Documentation for this format | ||||
| 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. |
| 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
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Observation | Measurements and simple assertions | |
![]() ![]() |
S | 1..1 | Meta | Metadata about the resource |
![]() ![]() ![]() |
1..1 | uri | Identifies where the resource comes from | |
![]() ![]() ![]() |
2..* | Coding | Tags applied to this resource Slice: Unordered, Open by pattern:system | |
![]() ![]() ![]() ![]() |
1..1 | Coding | Tags applied to this resource | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Required Pattern: http://onemedical.com/terminology/source-type | |
![]() ![]() ![]() ![]() ![]() |
0..1 | code | Symbol in syntax defined by the system Required Pattern: one-medical-collected | |
![]() ![]() ![]() ![]() |
1..1 | Coding | Tags applied to this resource | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Required Pattern: http://onemedical.com/terminology/source-system | |
![]() ![]() ![]() ![]() ![]() |
0..1 | code | Symbol in syntax defined by the system Required Pattern: onelife | |
![]() ![]() |
0..0 | A set of rules under which this content was created | ||
![]() ![]() |
0..0 | Language of the resource content | ||
![]() ![]() |
0..0 | Contained, inline Resources | ||
![]() ![]() |
0..0 | Extension | ||
![]() ![]() |
0..0 | Fulfills plan, proposal or order | ||
![]() ![]() |
0..0 | Part of referenced event | ||
![]() ![]() |
S | 1..1 | code | final, corrected, or entered-in-error — reflects whether the measurement is current |
![]() ![]() |
S | 0..* | CodeableConcept | vital-signs, laboratory, or survey — determines which US Core profile applies |
![]() ![]() |
S | 1..1 | CodeableConcept | LOINC code identifying what was measured (e.g., 8867-4 for heart rate) |
![]() ![]() |
S | 1..1 | Reference(Patient | Group | Device | Location) | The patient this measurement belongs to |
![]() ![]() |
0..0 | What the observation is about, when it is not about the subject of record | ||
![]() ![]() |
0..0 | Healthcare event during which this observation is made | ||
![]() ![]() |
S | 1..1 | dateTime | When the measurement was taken |
![]() ![]() |
0..0 | Date/Time this version was made available | ||
![]() ![]() |
S | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who performed the measurement — clinician, patient, or external organization |
![]() ![]() |
S | 0..1 | The measured value — numeric with UCUM units, or a string for non-numeric results | |
![]() ![]() ![]() |
Quantity | |||
![]() ![]() ![]() |
string | |||
![]() ![]() |
0..0 | Why the result is missing | ||
![]() ![]() |
0..0 | High, low, normal, etc. | ||
![]() ![]() |
0..0 | Comments about the observation | ||
![]() ![]() |
0..0 | Observed body part | ||
![]() ![]() |
0..0 | How it was done | ||
![]() ![]() |
0..0 | Specimen used for this observation | ||
![]() ![]() |
S | 0..1 | Reference(Device | DeviceMetric) | The device that captured this measurement, if applicable |
![]() ![]() |
S | 0..* | BackboneElement | Normal range for this measurement — may be numeric bounds or free text |
![]() ![]() |
0..0 | Related resource that belongs to the Observation group | ||
![]() ![]() |
0..0 | Related measurements the observation is made from | ||
![]() ![]() |
0..0 | Component results | ||
Documentation for this format | ||||
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7 |
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact |
![]() ![]() |
SΣ | 1..1 | Meta | Metadata about the resource |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
Σ | 0..1 | id | Version specific identifier |
![]() ![]() ![]() |
Σ | 0..1 | instant | When the resource version last changed |
![]() ![]() ![]() |
Σ | 1..1 | uri | Identifies where the resource comes from |
![]() ![]() ![]() |
Σ | 0..* | canonical(StructureDefinition) | Profiles this resource claims to conform to |
![]() ![]() ![]() |
Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System. |
![]() ![]() ![]() |
Σ | 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". |
![]() ![]() ![]() ![]() |
Σ | 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". |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Required Pattern: http://onemedical.com/terminology/source-type |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Version of the system - if relevant |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | Symbol in syntax defined by the system Required Pattern: one-medical-collected |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | If this coding was chosen directly by the user |
![]() ![]() ![]() ![]() |
Σ | 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". |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() |
Σ | 1..1 | uri | Identity of the terminology system Required Pattern: http://onemedical.com/terminology/source-system |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Version of the system - if relevant |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | code | Symbol in syntax defined by the system Required Pattern: onelife |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | string | Representation defined by the system |
![]() ![]() ![]() ![]() ![]() |
Σ | 0..1 | boolean | If this coding was chosen directly by the user |
![]() ![]() |
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 | |
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() |
Σ | 0..* | Identifier | Business Identifier for observation |
![]() ![]() |
?!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. |
![]() ![]() |
S | 0..* | CodeableConcept | vital-signs, laboratory, or survey — determines which US Core profile applies Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. |
![]() ![]() |
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. |
![]() ![]() |
SΣ | 1..1 | Reference(Patient | Group | Device | Location) | The patient this measurement belongs to |
![]() ![]() |
SΣ | 1..1 | dateTime | When the measurement was taken |
![]() ![]() |
SΣ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who performed the measurement — clinician, patient, or external organization |
![]() ![]() |
SΣC | 0..1 | The measured value — numeric with UCUM units, or a string for non-numeric results | |
![]() ![]() ![]() |
Quantity | |||
![]() ![]() ![]() |
string | |||
![]() ![]() |
S | 0..1 | Reference(Device | DeviceMetric) | The device that captured this measurement, if applicable |
![]() ![]() |
SC | 0..* | BackboneElement | Normal range for this measurement — may be numeric bounds or free text Constraints: obs-3 |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
C | 0..1 | SimpleQuantity(4.0.1) | Low Range, if relevant |
![]() ![]() ![]() |
C | 0..1 | SimpleQuantity(4.0.1) | High Range, if relevant |
![]() ![]() ![]() |
0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range. | |
![]() ![]() ![]() |
0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to. | |
![]() ![]() ![]() |
0..1 | Range | Applicable age range, if relevant | |
![]() ![]() ![]() |
0..1 | string | Text based reference range in an observation | |
Documentation for this format | ||||
| 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. |
| 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:
Other representations of profile: CSV, Excel, Schematron