DSTU2 Ballot Source

This page is part of the FHIR Specification (v0.5.0: DSTU 2 Ballot 2). 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

4.20 Resource Observation - Content

This resource maintained by the Orders and Observations Work Group

Measurements and simple assertions made about a patient, device or other subject.

4.20.1 Scope and Usage

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:

  • Vital signs: temperature, blood pressure, respiration rate
  • Laboratory Data
  • Imaging results like bone density or fetal measurements
  • Devices Measurements such as EKG data or Pulse Oximetry data
  • Clinical assessment tools such as APGAR
  • Personal characteristics: height, weight, eye-color
  • Social history: tobacco use, family supports, cognitive status
  • Core characteristics: pregnancy status, death assertion

4.20.2 Background and Context

The observation resource has the following aspects:

  • status (mandatory) - all users of observations SHALL be sure of the status of the observation
  • reliability - provides an estimate of the degree to which quality issues have impacted on the value of an observation
  • code (mandatory) - describes what was observed. This is the 'name' in the name/value pair assertion pattern used in this resource
  • identifier - Unique identifier for this particular observation so it can be recognized in all contexts where it is represented
  • value - the actual value that was observed
  • related observations - Other observations that are components of this observation, or provide supporting information, context or warnings about this observation
  • subject,.bodySite[x] - the patient, or group of patients, location, or device, that this observation was made on. Note that group of patients is most often used in veterinary care. For individual patients, the location on the body may also be specified, though this is often implicit in the Observation.code
  • applies[x] - The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the "physiologically relevant time.
  • interpretation, comments, and reference range: information to help understand the observed value
  • method, issued, performer - additional information about how the test was performed that may help understand the observation. The method is often implicit in the Observation.code

Typically, an observation will have either a value or component observations, and not both.

4.20.3 Boundaries and Relationships

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, FamilyMemberHistory 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 ClinicalImpression, Condition, DiagnosticOrder, DiagnosticReport, Goal, Immunization, ImmunizationRecommendation and Procedure

4.20.4 Resource Content

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation IDomainResourceMeasurements and simple assertions
Shall only be present if Observation.value[x] is not present
... code Σ1..1CodeableConceptType of observation (code / type)
ObservationType (Example)
... value[x] ΣActual result
ObservationValue (Example)
.... valueQuantity0..1Quantity
.... valueCodeableConcept0..1CodeableConcept
.... valueString0..1string
.... valueRange0..1Range
.... valueRatio0..1Ratio
.... valueSampledData0..1SampledData
.... valueAttachment0..1Attachment
.... valueTime0..1time
.... valueDateTime0..1dateTime
.... valuePeriod0..1Period
... dataAbsentReason I0..1CodeableConceptWhy the result is missing
ObservationValueAbsentReason (Extensible)
... interpretation 0..1CodeableConceptHigh, low, normal, etc.
ObservationInterpretation (Extensible)
... comments 0..1stringComments about result
... applies[x] ΣPhysiologically Relevant time/time-period for observation
.... appliesDateTime0..1dateTime
.... appliesPeriod0..1Period
... issued Σ0..1instantDate/Time this was made available
... status ?! Σ1..1coderegistered | preliminary | final | amended +
ObservationStatus (Required)
... reliability ?!0..1codeok | ongoing | early | questionable | calibrating | error +
ObservationReliability (Required)
... bodySite[x] Observed body part
BodySite (Example)
.... bodySiteCodeableConcept0..1CodeableConcept
.... bodySiteReference0..1BodySite
... method 0..1CodeableConceptHow it was done
ObservationMethod (Example)
... identifier 0..*IdentifierUnique Id for this particular observation
... subject Σ0..1Patient | Group | Device | LocationWho and/or what this is about
... specimen 0..1SpecimenSpecimen used for this observation
... performer Σ0..*Practitioner | Organization | Patient | RelatedPersonWho did the observation
... device 0..1Device | DeviceMetric(Measurement) Device
... encounter 0..1EncounterHealthcare event during which this observation is made
... referenceRange I0..*ElementProvides guide for interpretation
Must have at least a low or a high or text
.... low I0..1QuantityLow Range, if relevant
Low range comparators can only be '>' or '>=' or empty
.... high I0..1QuantityHigh Range, if relevant
High range comparators can only be '<' or '<=' or empty
.... meaning 0..1CodeableConceptIndicates the meaning/use of this range of this range
ObservationRangeMeaning (Example)
.... age 0..1RangeApplicable age range, if relevant
.... text 0..1stringText based reference range in an observation
... related Σ0..*ElementObservations related to this observation
.... type 0..1codehas-component | has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by
ObservationRelationshipType (Required)
.... target 1..1ObservationObservation that is related to this one

UML Diagram

Observation (DomainResource)Describes what was observed. Sometimes this is called the observation "code"code : CodeableConcept 1..1 « (Codes identifying types of simple observationsObservationType) »The information determined as a result of making the observation, if the information has a simple valuevalue[x] : Quantity|CodeableConcept|string|Range| Ratio|SampledData|Attachment|time| dateTime|Period 0..1 « (Codes identifying atomic results of observations when value is type codeableConceptObservationValue) »Provides a reason why the expected value in the element Observation.value[x] is missingdataAbsentReason : CodeableConcept 0..1 « Codes specifying why the result (Observation.value[x]) is missingObservationValueAbsentReason+ »The assessment made based on the result of the observationinterpretation : CodeableConcept 0..1 « Codes identifying interpretations of observationsObservationInterpretation+ »May include statements about significant, unexpected or unreliable values, or information about the source of the value where this may be relevant to the interpretation of the resultcomments : string 0..1The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the "physiologically relevant time". This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itselfapplies[x] : dateTime|Period 0..1The date and time this observation was made availableissued : instant 0..1The status of the result value (this element modifies the meaning of other elements)status : code 1..1 « Codes providing the status of an observationObservationStatus »An estimate of the degree to which quality issues have impacted on the value reported (this element modifies the meaning of other elements)reliability : code 0..1 « Codes that provide an estimate of the degree to which quality issues have impacted on the value of an observationObservationReliability »Indicates the site on the subject's body where the observation was made ( i.e. the target site)bodySite[x] : CodeableConcept|Reference(BodySite) 0..1 « (Codes describing anatomical locations. May include lateralityBodySite) »Indicates the mechanism used to perform the observationmethod : CodeableConcept 0..1 « (Methods for simple observationsObservationMethod) »A unique identifier for the simple observationidentifier : Identifier 0..*The patient, or group of patients, location, or device whose characteristics (direct or indirect) are described by the observation and into whose record the observation is placed. Comments: Indirect characteristics may be those of a specimen, fetus, other observer (for example a relative or EMT), or any observation made about the subjectsubject : Reference(Patient|Group|Device|Location) 0..1The specimen that was used when this observation was madespecimen : Reference(Specimen) 0..1Who was responsible for asserting the observed value as "true"performer : Reference(Practitioner|Organization| Patient|RelatedPerson) 0..*The device used to generate the observation datadevice : Reference(Device|DeviceMetric) 0..1The healthcare event ( e.g. a patient and healthcare provider interaction ) during which this observation is madeencounter : Reference(Encounter) 0..1ReferenceRangeThe value of the low bound of the reference range. If this element is omitted, the low bound of the reference range is assumed to be meaningless. (e.g. reference range is <2.3) If the low.comparator element is missing, it is assumed to be '>'low : Quantity 0..1The value of the high bound of the reference range. If this element is omitted, the high bound of the reference range is assumed to be meaningless. (e.g. reference range is > 5) If the low.comparator element is missing , it is assumed to be '<'high : Quantity 0..1Code for the meaning of the reference rangemeaning : CodeableConcept 0..1 « (Code for the meaning of a reference rangeObservationRangeMeaning) »The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says soage : Range 0..1Text based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of "Negative" or a list or table of 'normals'text : string 0..1RelatedA code specifying the kind of relationship that exists with the target observationtype : code 0..1 « Codes specifying how two observations are relatedObservationRelationshipType »A reference to the observation that is related to this observationtarget : Reference(Observation) 1..1Guidance on how to interpret the value by comparison to a normal or recommended rangereferenceRange0..*Related observations - either components, or previous observations, or statements of derivationrelated0..*

XML Template

<Observation xmlns="http://hl7.org/fhir"> doco
 <!-- 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|string|Range|Ratio|SampledData|
   Attachment|time|dateTime|Period Actual result --></value[x]>
 <dataAbsentReason><!-- ?? 0..1 CodeableConcept Why the result is missing --></dataAbsentReason>
 <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..* 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

{doco
  "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 10:
  "valueQuantity" : { Quantity },
  "valueCodeableConcept" : { CodeableConcept },
  "valueString" : "<string>",
  "valueRange" : { Range },
  "valueRatio" : { Ratio },
  "valueSampledData" : { SampledData },
  "valueAttachment" : { Attachment },
  "valueTime" : "<time>",
  "valueDateTime" : "<dateTime>",
  "valuePeriod" : { Period },
  "dataAbsentReason" : { CodeableConcept }, // C? Why the result is missing
  "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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation IDomainResourceMeasurements and simple assertions
Shall only be present if Observation.value[x] is not present
... code Σ1..1CodeableConceptType of observation (code / type)
ObservationType (Example)
... value[x] ΣActual result
ObservationValue (Example)
.... valueQuantity0..1Quantity
.... valueCodeableConcept0..1CodeableConcept
.... valueString0..1string
.... valueRange0..1Range
.... valueRatio0..1Ratio
.... valueSampledData0..1SampledData
.... valueAttachment0..1Attachment
.... valueTime0..1time
.... valueDateTime0..1dateTime
.... valuePeriod0..1Period
... dataAbsentReason I0..1CodeableConceptWhy the result is missing
ObservationValueAbsentReason (Extensible)
... interpretation 0..1CodeableConceptHigh, low, normal, etc.
ObservationInterpretation (Extensible)
... comments 0..1stringComments about result
... applies[x] ΣPhysiologically Relevant time/time-period for observation
.... appliesDateTime0..1dateTime
.... appliesPeriod0..1Period
... issued Σ0..1instantDate/Time this was made available
... status ?! Σ1..1coderegistered | preliminary | final | amended +
ObservationStatus (Required)
... reliability ?!0..1codeok | ongoing | early | questionable | calibrating | error +
ObservationReliability (Required)
... bodySite[x] Observed body part
BodySite (Example)
.... bodySiteCodeableConcept0..1CodeableConcept
.... bodySiteReference0..1BodySite
... method 0..1CodeableConceptHow it was done
ObservationMethod (Example)
... identifier 0..*IdentifierUnique Id for this particular observation
... subject Σ0..1Patient | Group | Device | LocationWho and/or what this is about
... specimen 0..1SpecimenSpecimen used for this observation
... performer Σ0..*Practitioner | Organization | Patient | RelatedPersonWho did the observation
... device 0..1Device | DeviceMetric(Measurement) Device
... encounter 0..1EncounterHealthcare event during which this observation is made
... referenceRange I0..*ElementProvides guide for interpretation
Must have at least a low or a high or text
.... low I0..1QuantityLow Range, if relevant
Low range comparators can only be '>' or '>=' or empty
.... high I0..1QuantityHigh Range, if relevant
High range comparators can only be '<' or '<=' or empty
.... meaning 0..1CodeableConceptIndicates the meaning/use of this range of this range
ObservationRangeMeaning (Example)
.... age 0..1RangeApplicable age range, if relevant
.... text 0..1stringText based reference range in an observation
... related Σ0..*ElementObservations related to this observation
.... type 0..1codehas-component | has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by
ObservationRelationshipType (Required)
.... target 1..1ObservationObservation that is related to this one

UML Diagram

Observation (DomainResource)Describes what was observed. Sometimes this is called the observation "code"code : CodeableConcept 1..1 « (Codes identifying types of simple observationsObservationType) »The information determined as a result of making the observation, if the information has a simple valuevalue[x] : Quantity|CodeableConcept|string|Range| Ratio|SampledData|Attachment|time| dateTime|Period 0..1 « (Codes identifying atomic results of observations when value is type codeableConceptObservationValue) »Provides a reason why the expected value in the element Observation.value[x] is missingdataAbsentReason : CodeableConcept 0..1 « Codes specifying why the result (Observation.value[x]) is missingObservationValueAbsentReason+ »The assessment made based on the result of the observationinterpretation : CodeableConcept 0..1 « Codes identifying interpretations of observationsObservationInterpretation+ »May include statements about significant, unexpected or unreliable values, or information about the source of the value where this may be relevant to the interpretation of the resultcomments : string 0..1The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the "physiologically relevant time". This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itselfapplies[x] : dateTime|Period 0..1The date and time this observation was made availableissued : instant 0..1The status of the result value (this element modifies the meaning of other elements)status : code 1..1 « Codes providing the status of an observationObservationStatus »An estimate of the degree to which quality issues have impacted on the value reported (this element modifies the meaning of other elements)reliability : code 0..1 « Codes that provide an estimate of the degree to which quality issues have impacted on the value of an observationObservationReliability »Indicates the site on the subject's body where the observation was made ( i.e. the target site)bodySite[x] : CodeableConcept|Reference(BodySite) 0..1 « (Codes describing anatomical locations. May include lateralityBodySite) »Indicates the mechanism used to perform the observationmethod : CodeableConcept 0..1 « (Methods for simple observationsObservationMethod) »A unique identifier for the simple observationidentifier : Identifier 0..*The patient, or group of patients, location, or device whose characteristics (direct or indirect) are described by the observation and into whose record the observation is placed. Comments: Indirect characteristics may be those of a specimen, fetus, other observer (for example a relative or EMT), or any observation made about the subjectsubject : Reference(Patient|Group|Device|Location) 0..1The specimen that was used when this observation was madespecimen : Reference(Specimen) 0..1Who was responsible for asserting the observed value as "true"performer : Reference(Practitioner|Organization| Patient|RelatedPerson) 0..*The device used to generate the observation datadevice : Reference(Device|DeviceMetric) 0..1The healthcare event ( e.g. a patient and healthcare provider interaction ) during which this observation is madeencounter : Reference(Encounter) 0..1ReferenceRangeThe value of the low bound of the reference range. If this element is omitted, the low bound of the reference range is assumed to be meaningless. (e.g. reference range is <2.3) If the low.comparator element is missing, it is assumed to be '>'low : Quantity 0..1The value of the high bound of the reference range. If this element is omitted, the high bound of the reference range is assumed to be meaningless. (e.g. reference range is > 5) If the low.comparator element is missing , it is assumed to be '<'high : Quantity 0..1Code for the meaning of the reference rangemeaning : CodeableConcept 0..1 « (Code for the meaning of a reference rangeObservationRangeMeaning) »The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says soage : Range 0..1Text based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of "Negative" or a list or table of 'normals'text : string 0..1RelatedA code specifying the kind of relationship that exists with the target observationtype : code 0..1 « Codes specifying how two observations are relatedObservationRelationshipType »A reference to the observation that is related to this observationtarget : Reference(Observation) 1..1Guidance on how to interpret the value by comparison to a normal or recommended rangereferenceRange0..*Related observations - either components, or previous observations, or statements of derivationrelated0..*

XML Template

<Observation xmlns="http://hl7.org/fhir"> doco
 <!-- 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|string|Range|Ratio|SampledData|
   Attachment|time|dateTime|Period Actual result --></value[x]>
 <dataAbsentReason><!-- ?? 0..1 CodeableConcept Why the result is missing --></dataAbsentReason>
 <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..* 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

{doco
  "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 10:
  "valueQuantity" : { Quantity },
  "valueCodeableConcept" : { CodeableConcept },
  "valueString" : "<string>",
  "valueRange" : { Range },
  "valueRatio" : { Ratio },
  "valueSampledData" : { SampledData },
  "valueAttachment" : { Attachment },
  "valueTime" : "<time>",
  "valueDateTime" : "<dateTime>",
  "valuePeriod" : { Period },
  "dataAbsentReason" : { CodeableConcept }, // C? Why the result is missing
  "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)

4.20.4.1 Terminology Bindings

PathDefinitionTypeReference
Observation.code Codes identifying types of simple observationsExamplehttp://hl7.org/fhir/vs/observation-codes
Observation.value[x] Codes identifying atomic results of observations when value is type codeableConceptExamplehttp://hl7.org/fhir/vs/observation-values
Observation.dataAbsentReason Codes specifying why the result (Observation.value[x]) is missingExtensiblehttp://hl7.org/fhir/vs/observation-valueabsentreason
Observation.interpretation Codes identifying interpretations of observationsExtensiblehttp://hl7.org/fhir/vs/observation-interpretation
Observation.status Codes providing the status of an observationRequiredhttp://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 observationRequiredhttp://hl7.org/fhir/observation-reliability
Observation.bodySite[x] Codes describing anatomical locations. May include lateralityExamplehttp://hl7.org/fhir/vs/body-site
Observation.method Methods for simple observationsExamplehttp://hl7.org/fhir/vs/observation-methods
Observation.referenceRange.meaning Code for the meaning of a reference rangeExamplehttp://hl7.org/fhir/vs/referencerange-meaning
Observation.related.type Codes specifying how two observations are relatedRequiredhttp://hl7.org/fhir/observation-relationshiptypes

4.20.4.2 Constraints

  • obs-3: On Observation.referenceRange: Must have at least a low or a high or text (xpath on f:Observation/f:referenceRange: (exists(f:low) or exists(f:high)or exists(f:text)))
  • obs-4: On Observation.referenceRange.low: Low range comparators can only be '>' or '>=' or empty (xpath on f:Observation/f:referenceRange/f:low: not(exists(f:comparator)) or boolean(f:comparator/@value = '<') or boolean(f:comparator/@value = '<='))
  • obs-5: On Observation.referenceRange.high: High range comparators can only be '<' or '<=' or empty (xpath on f:Observation/f:referenceRange/f:high: not(exists(f:comparator)) or boolean(f:comparator/@value = '>') or boolean(f:comparator/@value = '>='))
  • obs-6: Shall only be present if Observation.value[x] is not present (xpath: not(exists(f:dataAbsentReason)) or (not(exists(*[starts-with(local-name(.), 'value')]))))

4.20.5 Notes:

  • The element, Observation.value[x], has a variable name depending on the type as follows:
    • valueQuantity
    • valueCodeableConcept
    • valueAttachment
    • valueRatio
    • valuePeriod
    • valueSampledData
    • valueString
  • The appliesDateTime or appliesPeriod is the time that the observation is most relevant as an observation of the subject. For a biological subject (e.g. a human patient), this is the physiologically relevant time of the observation. In the case of an observation using a specimen, this represents the start and end of the specimen collection (e.g. 24 hour Urine Sodium), but if the collection time is sufficiently short, this is reported as a point in time value (e.g. normal venepuncture). In the case of an observation obtained directly from a subject (e.g., BP, Chest X-ray), this is the start and end time of the observation process, which again, is often reported as a single point in time.
  • At its simplest, resource instances can consist of only a type and a value, with a reliability and status flag. The relevance of other properties will vary based on the type of observation. Reference ranges may be useful for lab tests and other measures like systolic blood pressure, but will have little relevance for something like "pregnancy status"
  • Most observations only have one generic reference range. Systems MAY choose to restrict to only supplying the relevant reference range based on knowledge about the patient (e.g. specific to the patient's age, gender, weight and other factors), but this may not be possible or appropriate. Whenever more than one reference range is supplied, the differences between them SHOULD be provided in the reference range and/or age properties
  • Profiles will be created to provide guidance on capturing certain types of simple observations. This resource focuses on the level of detail captured by most systems. However, any "simple" observation can easily be broken into numerous components and sub-components to provide additional information relevant in certain circumstances. As with other resources, extensions can be used to introduce this additional complexity.
  • Because there are multiple types allowed for the value element, multiple value search parameters are defined. There is no standard parameter for searching values of type Attachment, or Ratio

4.20.6 Search Parameters

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionPaths
codetokenThe code of the observation typeObservation.code
code-value-[x]compositeBoth code and one of the value parameters
data-absent-reasontokenThe reason why the expected value in the element Observation.value[x] is missing.Observation.dataAbsentReason
datedateObtained date/time. If the obtained element is a period, a date that falls in the periodObservation.applies[x]
devicereferenceThe Device that generated the observation data.Observation.device
(Device, DeviceMetric)
encounterreferenceHealthcare event related to the observationObservation.encounter
(Encounter)
identifiertokenThe unique Id for a particular observationObservation.identifier
patientreferenceThe subject that the observation is about (if patient)Observation.subject
(Patient)
performerreferenceWho performed the observationObservation.performer
(Patient, Organization, Practitioner, RelatedPerson)
relatedcompositeRelated Observations - search on related-type and related-target together
related-targetreferenceObservation that is related to this oneObservation.related.target
(Observation)
related-typetokenhas-component | has-member | derived-from | sequel-to | replaces | qualified-by | interfered-byObservation.related.type
reliabilitytokenThe reliability of the observationObservation.reliability
specimenreferenceSpecimen used for this observationObservation.specimen
(Specimen)
statustokenThe status of the observationObservation.status
subjectreferenceThe subject that the observation is aboutObservation.subject
(Device, Location, Patient, Group)
value-concepttokenThe value of the observation, if the value is a CodeableConceptObservation.valueCodeableConcept
value-datedateThe value of the observation, if the value is a PeriodObservation.valueDateTime, Observation.valuePeriod
value-quantityquantityThe 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-stringstringThe value of the observation, if the value is a string, and also searches in CodeableConcept.textObservation.valueString