This page is part of the FHIR Specification (v0.4.0: DSTU 2 Draft). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2
This resource maintained by the Orders and Observations Work Group
Measurements and simple assertions made about a patient, device or other subject.
Observations are a central element in healthcare, used to support diagnosis, monitor progress, determine baselines and patterns and even capture demographic characteristics. Most observations are simple name/value pair assertions with some metadata, but some observations group other observations together logically, or even are multi-component observations. Note that the DiagnosticReport resource provide a clinical or workflow context for a set of observations. Expected uses for the Observation resource include:
The observation resource has the following aspects:
Typically, an observation will have either a value or component observations, and not both.
In contrast to the Observation resource, the DiagnosticReport resource typically includes additional clinical context and and some mix of atomic results, images, imaging reports, textual and coded interpretation, and formatted representations. Laboratory reports, pathology reports, and imaging reports should be represented using the DiagnosticReport resource. The Observation resource is referenced by the DiagnosticReport to provide the atomic results for a particular investigation.
The Observation resources should not be used to record diagnosis or clinical assessments about a patient or subject that are typically captured in the Condition resource. However, the Observation resource is often referenced by the Condition resource to provide specific subjective and objective data to support its assertions. There are other resources that can be considered "specializations" of the Observation resource and should be used for those specific contexts and use cases. They include AllergyIntolerance resource, FamilyHistory resource, Procedure resource, and Questionnaire resource.
In some cases, such as when source data is coming from a v2 feed, a system may not have information that allows it to distinguish diagnosis, allergy and other "specialized" types of observations from lab, vital sign and other observation types intended to be conveyed with this resource. In those circumstances, such specialized observations may also appear using this resource.
This resource is referenced by ClinicalAssessment, DiagnosticOrder, DiagnosticReport, Immunization, ImmunizationRecommendation and Procedure
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | DomainResource | Measurements and simple assertions Shall only be present if Observation.value[x] is not present | |
code | 1..1 | CodeableConcept | Type of observation (code / type) ObservationType (Example) | |
value[x] | Actual result | |||
valueQuantity | 0..1 | Quantity | ||
valueCodeableConcept | 0..1 | CodeableConcept | ||
valueAttachment | 0..1 | Attachment | ||
valueRatio | 0..1 | Ratio | ||
valueDateTime | 0..1 | dateTime | ||
valuePeriod | 0..1 | Period | ||
valueSampledData | 0..1 | SampledData | ||
valueString | 0..1 | string | ||
valueTime | 0..1 | time | ||
dataAbsentReason | I | 0..1 | code | unknown | asked | temp | notasked + DataAbsentReason (Required) |
interpretation | 0..1 | CodeableConcept | High, low, normal, etc. ObservationInterpretation (Incomplete) | |
comments | 0..1 | string | Comments about result | |
applies[x] | Physiologically Relevant time/time-period for observation | |||
appliesDateTime | 0..1 | dateTime | ||
appliesPeriod | 0..1 | Period | ||
issued | 0..1 | instant | Date/Time this was made available | |
status | M | 1..1 | code | registered | preliminary | final | amended + ObservationStatus (Required) |
reliability | M | 0..1 | code | ok | ongoing | early | questionable | calibrating | error + ObservationReliability (Required) |
bodySite[x] | Observed body part BodySite (Example) | |||
bodySiteCodeableConcept | 0..1 | CodeableConcept | ||
bodySiteReference | 0..1 | BodySite | ||
method | 0..1 | CodeableConcept | How it was done ObservationMethod (Example) | |
identifier | 0..1 | Identifier | Unique Id for this particular observation | |
subject | 0..1 | Patient | Group | Device | Location | Who and/or what this is about | |
specimen | 0..1 | Specimen | Specimen used for this observation | |
performer | 0..* | Practitioner | Organization | Patient | RelatedPerson | Who did the observation | |
device | 0..1 | Device | DeviceMetric | (Measurement) Device | |
encounter | 0..1 | Encounter | Healthcare event during which this observation is made | |
referenceRange | I | 0..* | Element | Provides guide for interpretation Must have at least a low or a high or text |
low | I | 0..1 | Quantity | Low Range, if relevant Low range comparators can only be '>' or '>=' or empty |
high | I | 0..1 | Quantity | High Range, if relevant High range comparators can only be '<' or '<=' or empty |
meaning | 0..1 | CodeableConcept | Indicates the meaning/use of this range of this range ObservationRangeMeaning (Example) | |
age | 0..1 | Range | Applicable age range, if relevant | |
text | 0..1 | string | Text based reference range in an observation | |
related | 0..* | Element | Observations related to this observation | |
type | 0..1 | code | has-component | has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by ObservationRelationshipType (Required) | |
target | 1..1 | Observation | Observation that is related to this one |
UML Diagram
XML Template
<Observation xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <code><!-- 1..1 CodeableConcept Type of observation (code / type) --></code> <value[x]><!-- 0..1 Quantity|CodeableConcept|Attachment|Ratio|dateTime|Period| SampledData|string|time Actual result --></value[x]> <dataAbsentReason value="[code]"/><!-- 0..1 unknown | asked | temp | notasked + --> <interpretation><!-- 0..1 CodeableConcept High, low, normal, etc. --></interpretation> <comments value="[string]"/><!-- 0..1 Comments about result --> <applies[x]><!-- 0..1 dateTime|Period Physiologically Relevant time/time-period for observation --></applies[x]> <issued value="[instant]"/><!-- 0..1 Date/Time this was made available --> <status value="[code]"/><!-- 1..1 registered | preliminary | final | amended + --> <reliability value="[code]"/><!-- 0..1 ok | ongoing | early | questionable | calibrating | error + --> <bodySite[x]><!-- 0..1 CodeableConcept|Reference(BodySite) Observed body part --></bodySite[x]> <method><!-- 0..1 CodeableConcept How it was done --></method> <identifier><!-- 0..1 Identifier Unique Id for this particular observation --></identifier> <subject><!-- 0..1 Reference(Patient|Group|Device|Location) Who and/or what this is about --></subject> <specimen><!-- 0..1 Reference(Specimen) Specimen used for this observation --></specimen> <performer><!-- 0..* Reference(Practitioner|Organization|Patient|RelatedPerson) Who did the observation --></performer> <device><!-- 0..1 Reference(Device|DeviceMetric) (Measurement) Device --></device> <encounter><!-- 0..1 Reference(Encounter) Healthcare event during which this observation is made --></encounter> <referenceRange> <!-- 0..* Provides guide for interpretation --> <low><!-- 0..1 Quantity Low Range, if relevant --></low> <high><!-- 0..1 Quantity High Range, if relevant --></high> <meaning><!-- 0..1 CodeableConcept Indicates the meaning/use of this range of this range --></meaning> <age><!-- 0..1 Range Applicable age range, if relevant --></age> <text value="[string]"/><!-- 0..1 Text based reference range in an observation --> </referenceRange> <related> <!-- 0..* Observations related to this observation --> <type value="[code]"/><!-- 0..1 has-component | has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by --> <target><!-- 1..1 Reference(Observation) Observation that is related to this one --></target> </related> </Observation>
JSON Template
{ "resourceType" : "Observation", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "code" : { CodeableConcept }, // R! Type of observation (code / type) // value[x]: Actual result. One of these 9: "valueQuantity" : { Quantity }, "valueCodeableConcept" : { CodeableConcept }, "valueAttachment" : { Attachment }, "valueRatio" : { Ratio }, "valueDateTime" : "<dateTime>", "valuePeriod" : { Period }, "valueSampledData" : { SampledData }, "valueString" : "<string>", "valueTime" : "<time>", "dataAbsentReason" : "<code>", // C? unknown | asked | temp | notasked + "interpretation" : { CodeableConcept }, // High, low, normal, etc. "comments" : "<string>", // Comments about result // applies[x]: Physiologically Relevant time/time-period for observation. One of these 2: "appliesDateTime" : "<dateTime>", "appliesPeriod" : { Period }, "issued" : "<instant>", // Date/Time this was made available "status" : "<code>", // R! registered | preliminary | final | amended + "reliability" : "<code>", // ok | ongoing | early | questionable | calibrating | error + // bodySite[x]: Observed body part. One of these 2: "bodySiteCodeableConcept" : { CodeableConcept }, "bodySiteReference" : { Reference(BodySite) }, "method" : { CodeableConcept }, // How it was done "identifier" : { Identifier }, // Unique Id for this particular observation "subject" : { Reference(Patient|Group|Device|Location) }, // Who and/or what this is about "specimen" : { Reference(Specimen) }, // Specimen used for this observation "performer" : [{ Reference(Practitioner|Organization|Patient|RelatedPerson) }], // Who did the observation "device" : { Reference(Device|DeviceMetric) }, // (Measurement) Device "encounter" : { Reference(Encounter) }, // Healthcare event during which this observation is made "referenceRange" : [{ // Provides guide for interpretation "low" : { Quantity }, // C? Low Range, if relevant "high" : { Quantity }, // C? High Range, if relevant "meaning" : { CodeableConcept }, // Indicates the meaning/use of this range of this range "age" : { Range }, // Applicable age range, if relevant "text" : "<string>" // Text based reference range in an observation }], "related" : [{ // Observations related to this observation "type" : "<code>", // has-component | has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by "target" : { Reference(Observation) } // R! Observation that is related to this one }] }
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | DomainResource | Measurements and simple assertions Shall only be present if Observation.value[x] is not present | |
code | 1..1 | CodeableConcept | Type of observation (code / type) ObservationType (Example) | |
value[x] | Actual result | |||
valueQuantity | 0..1 | Quantity | ||
valueCodeableConcept | 0..1 | CodeableConcept | ||
valueAttachment | 0..1 | Attachment | ||
valueRatio | 0..1 | Ratio | ||
valueDateTime | 0..1 | dateTime | ||
valuePeriod | 0..1 | Period | ||
valueSampledData | 0..1 | SampledData | ||
valueString | 0..1 | string | ||
valueTime | 0..1 | time | ||
dataAbsentReason | I | 0..1 | code | unknown | asked | temp | notasked + DataAbsentReason (Required) |
interpretation | 0..1 | CodeableConcept | High, low, normal, etc. ObservationInterpretation (Incomplete) | |
comments | 0..1 | string | Comments about result | |
applies[x] | Physiologically Relevant time/time-period for observation | |||
appliesDateTime | 0..1 | dateTime | ||
appliesPeriod | 0..1 | Period | ||
issued | 0..1 | instant | Date/Time this was made available | |
status | M | 1..1 | code | registered | preliminary | final | amended + ObservationStatus (Required) |
reliability | M | 0..1 | code | ok | ongoing | early | questionable | calibrating | error + ObservationReliability (Required) |
bodySite[x] | Observed body part BodySite (Example) | |||
bodySiteCodeableConcept | 0..1 | CodeableConcept | ||
bodySiteReference | 0..1 | BodySite | ||
method | 0..1 | CodeableConcept | How it was done ObservationMethod (Example) | |
identifier | 0..1 | Identifier | Unique Id for this particular observation | |
subject | 0..1 | Patient | Group | Device | Location | Who and/or what this is about | |
specimen | 0..1 | Specimen | Specimen used for this observation | |
performer | 0..* | Practitioner | Organization | Patient | RelatedPerson | Who did the observation | |
device | 0..1 | Device | DeviceMetric | (Measurement) Device | |
encounter | 0..1 | Encounter | Healthcare event during which this observation is made | |
referenceRange | I | 0..* | Element | Provides guide for interpretation Must have at least a low or a high or text |
low | I | 0..1 | Quantity | Low Range, if relevant Low range comparators can only be '>' or '>=' or empty |
high | I | 0..1 | Quantity | High Range, if relevant High range comparators can only be '<' or '<=' or empty |
meaning | 0..1 | CodeableConcept | Indicates the meaning/use of this range of this range ObservationRangeMeaning (Example) | |
age | 0..1 | Range | Applicable age range, if relevant | |
text | 0..1 | string | Text based reference range in an observation | |
related | 0..* | Element | Observations related to this observation | |
type | 0..1 | code | has-component | has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by ObservationRelationshipType (Required) | |
target | 1..1 | Observation | Observation that is related to this one |
XML Template
<Observation xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <code><!-- 1..1 CodeableConcept Type of observation (code / type) --></code> <value[x]><!-- 0..1 Quantity|CodeableConcept|Attachment|Ratio|dateTime|Period| SampledData|string|time Actual result --></value[x]> <dataAbsentReason value="[code]"/><!-- 0..1 unknown | asked | temp | notasked + --> <interpretation><!-- 0..1 CodeableConcept High, low, normal, etc. --></interpretation> <comments value="[string]"/><!-- 0..1 Comments about result --> <applies[x]><!-- 0..1 dateTime|Period Physiologically Relevant time/time-period for observation --></applies[x]> <issued value="[instant]"/><!-- 0..1 Date/Time this was made available --> <status value="[code]"/><!-- 1..1 registered | preliminary | final | amended + --> <reliability value="[code]"/><!-- 0..1 ok | ongoing | early | questionable | calibrating | error + --> <bodySite[x]><!-- 0..1 CodeableConcept|Reference(BodySite) Observed body part --></bodySite[x]> <method><!-- 0..1 CodeableConcept How it was done --></method> <identifier><!-- 0..1 Identifier Unique Id for this particular observation --></identifier> <subject><!-- 0..1 Reference(Patient|Group|Device|Location) Who and/or what this is about --></subject> <specimen><!-- 0..1 Reference(Specimen) Specimen used for this observation --></specimen> <performer><!-- 0..* Reference(Practitioner|Organization|Patient|RelatedPerson) Who did the observation --></performer> <device><!-- 0..1 Reference(Device|DeviceMetric) (Measurement) Device --></device> <encounter><!-- 0..1 Reference(Encounter) Healthcare event during which this observation is made --></encounter> <referenceRange> <!-- 0..* Provides guide for interpretation --> <low><!-- 0..1 Quantity Low Range, if relevant --></low> <high><!-- 0..1 Quantity High Range, if relevant --></high> <meaning><!-- 0..1 CodeableConcept Indicates the meaning/use of this range of this range --></meaning> <age><!-- 0..1 Range Applicable age range, if relevant --></age> <text value="[string]"/><!-- 0..1 Text based reference range in an observation --> </referenceRange> <related> <!-- 0..* Observations related to this observation --> <type value="[code]"/><!-- 0..1 has-component | has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by --> <target><!-- 1..1 Reference(Observation) Observation that is related to this one --></target> </related> </Observation>
JSON Template
{ "resourceType" : "Observation", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "code" : { CodeableConcept }, // R! Type of observation (code / type) // value[x]: Actual result. One of these 9: "valueQuantity" : { Quantity }, "valueCodeableConcept" : { CodeableConcept }, "valueAttachment" : { Attachment }, "valueRatio" : { Ratio }, "valueDateTime" : "<dateTime>", "valuePeriod" : { Period }, "valueSampledData" : { SampledData }, "valueString" : "<string>", "valueTime" : "<time>", "dataAbsentReason" : "<code>", // C? unknown | asked | temp | notasked + "interpretation" : { CodeableConcept }, // High, low, normal, etc. "comments" : "<string>", // Comments about result // applies[x]: Physiologically Relevant time/time-period for observation. One of these 2: "appliesDateTime" : "<dateTime>", "appliesPeriod" : { Period }, "issued" : "<instant>", // Date/Time this was made available "status" : "<code>", // R! registered | preliminary | final | amended + "reliability" : "<code>", // ok | ongoing | early | questionable | calibrating | error + // bodySite[x]: Observed body part. One of these 2: "bodySiteCodeableConcept" : { CodeableConcept }, "bodySiteReference" : { Reference(BodySite) }, "method" : { CodeableConcept }, // How it was done "identifier" : { Identifier }, // Unique Id for this particular observation "subject" : { Reference(Patient|Group|Device|Location) }, // Who and/or what this is about "specimen" : { Reference(Specimen) }, // Specimen used for this observation "performer" : [{ Reference(Practitioner|Organization|Patient|RelatedPerson) }], // Who did the observation "device" : { Reference(Device|DeviceMetric) }, // (Measurement) Device "encounter" : { Reference(Encounter) }, // Healthcare event during which this observation is made "referenceRange" : [{ // Provides guide for interpretation "low" : { Quantity }, // C? Low Range, if relevant "high" : { Quantity }, // C? High Range, if relevant "meaning" : { CodeableConcept }, // Indicates the meaning/use of this range of this range "age" : { Range }, // Applicable age range, if relevant "text" : "<string>" // Text based reference range in an observation }], "related" : [{ // Observations related to this observation "type" : "<code>", // has-component | has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by "target" : { Reference(Observation) } // R! Observation that is related to this one }] }
Alternate definitions: Schema/Schematron, Resource Profile (XML, JSON), Questionnaire
Path | Definition | Type | Reference |
---|---|---|---|
Observation.code | Codes identifying types of simple observations | Example | http://hl7.org/fhir/vs/observation-codes |
Observation.dataAbsentReason | Used to specify why the normally expected content of the data element is missing | Fixed | http://hl7.org/fhir/data-absent-reason |
Observation.interpretation | Codes identifying interpretations of observations | Incomplete | http://hl7.org/fhir/vs/observation-interpretation |
Observation.status | Codes providing the status of an observation | Fixed | http://hl7.org/fhir/observation-status |
Observation.reliability | Codes that provide an estimate of the degree to which quality issues have impacted on the value of an observation | Fixed | http://hl7.org/fhir/observation-reliability |
Observation.bodySite[x] | Codes describing anatomical locations. May include laterality | Example | http://hl7.org/fhir/vs/body-site |
Observation.method | Methods for simple observations | Example | http://hl7.org/fhir/vs/observation-methods |
Observation.referenceRange.meaning | Code for the meaning of a reference range | Example | http://hl7.org/fhir/vs/referencerange-meaning |
Observation.related.type | Codes specifying how two observations are related | Fixed | http://hl7.org/fhir/observation-relationshiptypes |
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Paths |
code | token | The code of the observation type | Observation.code |
code-value-[x] | composite | Both code and one of the value parameters | |
data-absent-reason | token | The reason why the expected value in the element Observation.value[x] is missing. | Observation.dataAbsentReason |
date | date | Obtained date/time. If the obtained element is a period, a date that falls in the period | Observation.applies[x] |
device | reference | The Device that generated the observation data. | Observation.device (Device, DeviceMetric) |
encounter | reference | Healthcare event related to the observation | Observation.encounter (Encounter) |
identifier | token | The unique Id for a particular observation | Observation.identifier |
patient | reference | The subject that the observation is about (if patient) | Observation.subject (Patient) |
performer | reference | Who performed the observation | Observation.performer (Patient, Organization, Practitioner, RelatedPerson) |
related | composite | Related Observations - search on related-type and related-target together | |
related-target | reference | Observation that is related to this one | Observation.related.target (Observation) |
related-type | token | has-component | has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by | Observation.related.type |
reliability | token | The reliability of the observation | Observation.reliability |
specimen | reference | Specimen used for this observation | Observation.specimen (Specimen) |
status | token | The status of the observation | Observation.status |
subject | reference | The subject that the observation is about | Observation.subject (Device, Location, Patient, Group) |
value-concept | token | The value of the observation, if the value is a CodeableConcept | Observation.valueCodeableConcept |
value-date | date | The value of the observation, if the value is a Period | Observation.valueDateTime, Observation.valuePeriod |
value-quantity | quantity | The value of the observation, if the value is a Quantity, or a SampledData (just search on the bounds of the values in sampled data) | Observation.valueQuantity |
value-string | string | The value of the observation, if the value is a string, and also searches in CodeableConcept.text | Observation.valueString |