This
page
is
part
of
the
Continuous
Integration
Build
of
FHIR
Specification
(v4.0.1:
R4
-
Mixed
Normative
and
STU
)
in
it's
permanent
home
(it
will
always
(will
be
available
incorrect/inconsistent
at
this
URL).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
of
available
versions,
see
times).
See
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
R2
Responsible
Owner:
Orders
and
Observations
Work
Group
|
|
Security Category : Patient | Compartments : Device , Encounter , Group , Patient , Practitioner , RelatedPerson |
Measurements and simple assertions made about a patient, device or other subject.
This resource is an event resource from a FHIR workflow perspective - see Workflow .
Observations
are
a
central
element
in
healthcare,
used
to
support
diagnosis,
monitor
progress,
determine
baselines
and
patterns
and
even
capture
demographic
characteristics.
characteristics,
as
well
as
capture
results
of
tests
performed
on
products,
substances,
and
environments.
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
provides
a
clinical
or
workflow
context
for
a
set
of
observations
and
the
Observation
resource
is
referenced
by
DiagnosticReport
to
represent
laboratory,
imaging,
and
other
clinical
and
diagnostic
data
to
form
a
complete
report.
Uses for the Observation resource include:
* The boundaries between clinical findings and disorders remains a challenge in medical ontology. Refer to the Boundaries section below and in Condition for general guidance. These boundaries can be clarified by profiling Observation for a particular use case.
The
following
set
of
core
profiles
for
the
Observation
resource
have
been
defined
as
well.
If
implementations
use
this
Resource
defined.
Implementations
using
the
Observation
resource
when
expressing
the
profile-specific
concepts
as
structured
data,
they
SHALL
conform
to
the
following
specified
profiles:
| Profile | Description |
|---|---|
| Vital signs |
The
FHIR
Vital
Signs
|
At its core, Observation allows expressing a name-value pair or structured collection of name-value pairs. As such, it can support conveying any type of information desired. However, that is not its intent. Observation is intended for capturing measurements and subjective point-in-time assessments. It is not intended to be used for those specific contexts and use cases already covered by other FHIR resources. For example, the AllergyIntolerance resource represents a patient allergies, MedicationStatement resource: medications taken by a patient, FamilyMemberHistory resource: a patient's family history, Procedure resource: information about a procedure, and QuestionnaireResponse resource: a set of answers to a set of questions.
The
Observation
resource
should
not
be
used
to
record
clinical
diagnosis
about
a
patient
or
subject
that
are
typically
captured
in
the
Condition
resource
or
the
ClinicalImpression
ClinicalAssessment
resource.
The
Observation
resource
is
often
referenced
by
the
Condition
resource
to
provide
specific
subjective
and
objective
data
to
support
its
assertions.
assertions,
including
symptoms
and
assessments
of
the
presence
or
absence
of
diagnostically
significant
phenomena.
Symptoms
may
sometimes
be
recorded
as
Conditions
if
no
etiology
has
yet
been
identified,
or
if
the
symptom
is
severe
enough
to
merit
independent
treatment,
but
in
most
cases
a
symptom
can
be
represented
in
an
Observation
with
a
relationship
to
the
Condition
of
concern.
There
will
however
be
situations
of
overlap.
For
example,
a
response
to
a
question
of
"have
you
ever
taken
illicit
drugs"
could
in
principle
be
represented
using
MedicationStatement,
but
most
systems
would
treat
such
an
assertion
as
an
Observation.
In
some
cases,
such
as
when
source
data
is
coming
from
an
HL7
v2
V2
feed,
a
system
might
not
have
information
that
allows
it
to
distinguish
diagnosis,
allergy
and
other
"specialized"
types
of
observations
from
laboratory,
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.
Adhering
to
such
convention
is
an
appropriate
use
of
Observation.
If
implementers
are
uncertain
whether
a
proposed
use
of
Observation
is
appropriate,
they're
encouraged
to
consult
with
implementers
on
chat.fhir.org
implementer's
stream
The
Media
resource
captures
a
specific
type
of
observation
whose
value
is
audio,
video
or
image
data.
This
resource
is
used
instead
of
When
an
Observation
to
represent
such
forms
of
information
as
it
exposes
instantiates
an
ObservationDefinition
,
the
metadata
relevant
for
interpreting
elements
of
the
information.
See
Media's
boundaries
section
Observation
resource
are
expected
to
see
how
Media
(and
Observation)
differs
inherit
their
content
from
ImagingStudy
and
DocumentReference
the
corresponding
definitional
elements
declared
in
the
ObservationDefinition
resource
listed
here
.
In
contrast
to
the
Observation
resource,
the
DiagnosticReport
resource
typically
includes
additional
clinical
context
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.
"Laboratories
routinely
have
a
variable
that
is
summative
across
a
series
of
discrete
variables
-
these
are
usually
called
'impressions'
or
'interpretations'.
Sometimes
they
are
algorithmically
specified
and
sometimes
they
have
the
imprimatur
of
pathologists
and
they
are
conveyed
in
Observation
or
DiagnosticReport
instead
of
the
Clinical
Impression
ClinicalAssessment
resource.
The
Observation
resource
should
not
be
used
to
record
clinical
diagnosis
about
a
patient
or
subject
as
discussed
above.
This
The
Observation
resource
is
referenced
used
extensively
for
observations
about
people,
groups,
devices,
locations,
substances,
and
procedures
–
not
about
the
record
describing
these
entities.
For
example,
DeviceAlert
represents
a
single
alert
or
alarm
condition
detected
and
signaled
by
a
patient-connected
health
/
medical
device
to
create
clinician’s
awareness
of
a
patient
safety
risk
that
needs
to
be
addressed,
whereas
Observation
captures
any
evidentiary
data
needed
to
interpret
the
alert
condition
or
that
is
the
reason
why
the
alert
condition
is
present.
The Observation resource contains several elements related to the origin and quality of the observation. To record more detailed information about the source of an Observation, the Provenance resource may be used. More in-depth commentary about or evaluation of the Observation record itself may be recorded in ArtifactAssessment .
Note to Balloters: A new
organizerelement (trial-use) is added to the normative Observation resource in this ballot. The OO Work Group is seeking reviewers and implementer feedback on this new element, which is intended to help clarify and make explicit when an instance of the Observation resource is used for organizing/grouping sets of sub-observations (e.g., for laboratory panel/battery result reporting). This capability is particularly applicable for use in laboratory result reporting, but it can also be used as appropriate with other types of observations.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
|
DomainResource |
Measurements
and
simple
assertions
+ Rule: + Rule: If + Rule: Observation.component.dataAbsentReason SHALL only be present if Observation.component.value[x] is not present + Rule: if organizer exists and organizer = true, then value[x], dataAbsentReason and component SHALL NOT be present + Warning: All observations SHOULD have a performer Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension |
|
|
Σ | 0..* | Identifier |
Business
Identifier
for
observation
|
|
Σ | 0..* |
Reference
(
CarePlan
|
DeviceRequest
|
|
Fulfills
plan,
proposal
or
order
|
| 0..* | BackboneElement |
Triggering
observation(s)
| |
![]()
|
Σ | 1..1 | Reference ( Observation ) |
Triggering
observation
|
![]() ![]() ![]() | Σ | 1..1 |
code
|
reflex
|
repeat
|
re-run
Binding: triggered Bytype ( Required ) |
| 0..1 | string |
Reason
that
the
observation
was
triggered
| |
![]() ![]() | Σ | 0..* | Reference ( MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy | GenomicStudy ) |
Part
of
referenced
event
|
|
?! Σ | 1..1 | code |
registered
|
specimen-in-process
|
preliminary
|
final
|
amended
|
|
0..* | CodeableConcept |
Classification
of
type
of
observation
Binding: Observation Category Codes ( Preferred ) |
|
|
Σ C | 1..1 | CodeableConcept |
Type
of
observation
(code
/
type)
Binding: LOINC |
|
Σ | 0..1 | Reference ( Patient | Group | Device | Location | Organization | Procedure | Practitioner | Medication | Substance | BiologicallyDerivedProduct | NutritionProduct ) |
Who
and/or
what
the
observation
is
about
|
|
|
0..* | Reference ( Any ) |
What
the
observation
is
about,
when
it
is
not
about
the
subject
of
record
|
|
Σ C | 0..1 | boolean |
This
observation
organizes/groups
a
set
of
sub-observations
|
![]() ![]() | Σ | 0..1 | Reference ( Encounter ) |
Healthcare
event
during
which
this
observation
is
|
|
Σ | 0..1 |
Clinically
relevant
time/time-period
for
observation
|
|
|
dateTime | |||
|
Period | |||
|
Timing | |||
|
instant | |||
|
Σ | 0..1 | instant |
Date/Time
this
version
was
made
available
|
|
Σ | 0..* | Reference ( Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson | HealthcareService | Group ) |
Who
is
responsible
for
the
observation
|
|
Σ
|
0..1 |
Actual
result
|
|
|
Quantity | |||
|
CodeableConcept | |||
|
string | |||
|
boolean | |||
|
integer | |||
|
Range | |||
|
Ratio | |||
|
SampledData | |||
|
time | |||
|
dateTime | |||
|
Period | |||
| Attachment | |||
| Reference ( MolecularDefinition ) | |||
|
|
0..1 | CodeableConcept |
Why
the
result
value
is
missing
|
|
0..* | CodeableConcept |
High,
low,
normal,
Binding: Observation Interpretation Codes ( Extensible ) |
|
|
0..* | CodeableReference ( Any ) |
Context
for
understanding
the
observation
Binding: Observation Interpretation Context Codes ( Example ) |
|
| 0..* | Annotation |
Comments
about
the
observation
|
|
|
0..1 | CodeableConcept |
DEPRECATED:
Observed
body
part
Binding: SNOMED CT Body Structures ( Example ) |
|
|
0..1 | CodeableReference ( BodyStructure ) |
Observed
body
structure
Binding: SNOMED CT Body Structures ( Example ) |
|
| 0..1 | CodeableConcept |
How
it
was
done
Binding: Observation Methods ( Example ) |
|
|
C | 0..1 | Reference ( Specimen | Group ) |
Specimen
used
for
this
observation
+ Rule: If Observation.specimen is a reference to Group, the group can only have specimens |
|
0..1 | Reference ( Device | DeviceMetric ) |
A
reference
to
the
device
that
generates
the
measurements
or
the
device
settings
for
the
device
|
|
|
|
0..* | BackboneElement |
Provides
guide
for
interpretation
+ Rule: Must have at least a low or a high or text |
|
|
0..1 |
|
Low
Range,
if
relevant
+ Rule: If low.comparator exists, it must be '>=' or '>'. |
|
C
|
0..1 | Quantity |
High
Range,
if
relevant
+ Rule: If high.comparator exists, it must be '<=' or '<'. |
|
0..1 |
|
Normal
value,
if
relevant
Binding: Observation Reference Range Normal Value Codes ( Example ) |
|
|
0..1 | CodeableConcept |
Reference
range
qualifier
Binding: Observation Reference Range Meaning Codes ( Preferred ) |
|
|
0..* | CodeableConcept |
Reference
range
population
Binding: Observation Reference Range Applies To Codes ( Example ) |
|
|
0..1 | Range |
Applicable
age
range,
if
relevant
|
|
|
C | 0..1 |
|
Text
based
reference
range
in
an
observation
|
|
Σ | 0..* |
Reference
(
Observation
|
QuestionnaireResponse
|
|
Related
resource
that
belongs
to
the
Observation
group
|
|
Σ | 0..* |
Reference
(
DocumentReference
|
ImagingStudy
|
|
Related
|
|
Σ C | 0..* | BackboneElement |
Component
results
|
|
Σ C | 1..1 | CodeableConcept |
Type
of
component
observation
(code
/
type)
Binding: LOINC |
|
Σ C | 0..1 |
Actual
component
result
|
|
|
Quantity | |||
|
CodeableConcept | |||
|
string | |||
|
boolean | |||
|
integer | |||
|
Range | |||
|
Ratio | |||
|
SampledData | |||
|
time | |||
|
dateTime | |||
|
Period | |||
| Attachment | |||
| Reference ( MolecularDefinition ) | |||
|
|
0..1 | CodeableConcept |
Why
the
component
result
value
is
missing
|
|
0..* | CodeableConcept |
High,
low,
normal,
Binding: Observation Interpretation Codes ( Extensible ) |
|
|
0..* | see referenceRange |
Provides
guide
for
interpretation
of
component
result
value
|
|
Documentation
for
this
format
|
||||
See the Extensions for this resource
UML Diagram ( Legend )
XML Template
<Observation xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Business Identifier for observation --></identifier>
<| </basedOn> <| </partOf> <<basedOn><!-- 0..* Reference(CarePlan|DeviceRequest|MedicationRequest| NutritionOrder|ServiceRequest) Fulfills plan, proposal or order --></basedOn> <triggeredBy> <!-- 0..* Triggering observation(s) --> <observation><!-- 1..1 Reference(Observation) Triggering observation --></observation> <type value="[code]"/><!-- 1..1 reflex | repeat | re-run --> <reason value="[string]"/><!-- 0..1 Reason that the observation was triggered --> </triggeredBy> <partOf><!-- 0..* Reference(GenomicStudy|ImagingStudy|Immunization| MedicationAdministration|MedicationDispense|MedicationStatement|Procedure) Part of referenced event --></partOf> <status value="[code]"/><!-- 1..1 registered | specimen-in-process | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | unknown | cannot-be-obtained --> <category><!-- 0..* CodeableConcept Classification of type of observation --></category><</code> <</subject> <</focus> <</encounter><code><!-- I 1..1 CodeableConcept Type of observation (code / type) --></code> <subject><!-- 0..1 Reference(BiologicallyDerivedProduct|Device|Group|Location| Medication|NutritionProduct|Organization|Patient|Practitioner|Procedure| Substance) Who and/or what the observation is about --></subject> <focus><!-- 0..* Reference(Any) What the observation is about, when it is not about the subject of record --></focus> <organizer value="[boolean]"/><!-- I 0..1 This observation organizes/groups a set of sub-observations --> <encounter><!-- 0..1 Reference(Encounter) Healthcare event during which this observation is made. If you need to place the observation within one or more episodes of care, use the workflow-episodeOfCare extension --></encounter> <effective[x]><!-- 0..1 dateTime|Period|Timing|instant Clinically relevant time/time-period for observation --></effective[x]> <issued value="[instant]"/><!-- 0..1 Date/Time this version was made available --><| </performer> <| </value[x]> <</dataAbsentReason> <</interpretation><performer><!-- 0..* Reference(CareTeam|Group|HealthcareService|Organization| Patient|Practitioner|PractitionerRole|RelatedPerson) Who is responsible for the observation --></performer> <value[x]><!-- I 0..1 Quantity|CodeableConcept|string|boolean|integer|Range|Ratio| SampledData|time|dateTime|Period|Attachment|Reference(MolecularDefinition) Actual result --></value[x]> <dataAbsentReason><!-- I 0..1 CodeableConcept Why the result value is missing --></dataAbsentReason> <interpretation><!-- 0..* CodeableConcept High, low, normal, etc --></interpretation> <interpretationContext><!-- 0..* CodeableReference(Any) Context for understanding the observation --></interpretationContext> <note><!-- 0..* Annotation Comments about the observation --></note><</bodySite><bodySite><!-- 0..1 CodeableConcept DEPRECATED: Observed body part --></bodySite> <bodyStructure><!-- 0..1 CodeableReference(BodyStructure) Observed body structure --></bodyStructure> <method><!-- 0..1 CodeableConcept How it was done --></method><</specimen> <</device><specimen><!-- 0..1 Reference(Group|Specimen) Specimen used for this observation --></specimen> <device><!-- 0..1 Reference(Device|DeviceMetric) A reference to the device that generates the measurements or the device settings for the device --></device> <referenceRange> <!-- 0..* Provides guide for interpretation --><</low> <</high><low><!-- I 0..1 Quantity Low Range, if relevant --></low> <high><!-- I 0..1 Quantity High Range, if relevant --></high> <normalValue><!-- 0..1 CodeableConcept Normal value, if relevant --></normalValue> <type><!-- 0..1 CodeableConcept Reference range qualifier --></type> <appliesTo><!-- 0..* CodeableConcept Reference range population --></appliesTo> <age><!-- 0..1 Range Applicable age range, if relevant --></age><<text value="[markdown]"/><!-- I 0..1 Text based reference range in an observation --> </referenceRange><| </hasMember> <| </derivedFrom> < <</code> <| </value[x]> <</dataAbsentReason> <</interpretation> <</referenceRange><hasMember><!-- 0..* Reference(MolecularDefinition|Observation| QuestionnaireResponse) Related resource that belongs to the Observation group --></hasMember> <derivedFrom><!-- 0..* Reference(DocumentReference|GenomicStudy|ImagingSelection| ImagingStudy|MolecularDefinition|Observation|QuestionnaireResponse) Related resource from which the observation is made --></derivedFrom> <component> <!-- I 0..* Component results --> <code><!-- I 1..1 CodeableConcept Type of component observation (code / type) --></code> <value[x]><!-- I 0..1 Quantity|CodeableConcept|string|boolean|integer|Range| Ratio|SampledData|time|dateTime|Period|Attachment|Reference( MolecularDefinition) Actual component result --></value[x]> <dataAbsentReason><!-- I 0..1 CodeableConcept Why the component result value is missing --></dataAbsentReason> <interpretation><!-- 0..* CodeableConcept High, low, normal, etc --></interpretation> <referenceRange><!-- 0..* Content as for Observation.referenceRange Provides guide for interpretation of component result value --></referenceRange> </component> </Observation>
JSON Template
{
"resourceType" : "Observation",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"identifier" : [{ Identifier }], // Business Identifier for observation
"|
"|
"
"basedOn" : [{ Reference(CarePlan|DeviceRequest|MedicationRequest|
NutritionOrder|ServiceRequest) }], // Fulfills plan, proposal or order
"triggeredBy" : [{ // Triggering observation(s)
"observation" : { Reference(Observation) }, // R! Triggering observation
"type" : "<code>", // R! reflex | repeat | re-run
"reason" : "<string>" // Reason that the observation was triggered
}],
"partOf" : [{ Reference(GenomicStudy|ImagingStudy|Immunization|
MedicationAdministration|MedicationDispense|MedicationStatement|Procedure) }], // Part of referenced event
"status" : "<code>", // R! registered | specimen-in-process | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | unknown | cannot-be-obtained
"category" : [{ CodeableConcept }], // Classification of type of observation
"
"
"
"
"code" : { CodeableConcept }, // I R! Type of observation (code / type)
"subject" : { Reference(BiologicallyDerivedProduct|Device|Group|Location|
Medication|NutritionProduct|Organization|Patient|Practitioner|Procedure|
Substance) }, // Who and/or what the observation is about
"focus" : [{ Reference(Any) }], // What the observation is about, when it is not about the subject of record
"organizer" : <boolean>, // I This observation organizes/groups a set of sub-observations
"encounter" : { Reference(Encounter) }, // Healthcare event during which this observation is made. If you need to place the observation within one or more episodes of care, use the workflow-episodeOfCare extension
// effective[x]: Clinically relevant time/time-period for observation. One of these 4:
"effectiveDateTime" : "<dateTime>",
"effectivePeriod" : { Period },
"effectiveTiming" : { Timing },
"effectiveInstant" : "<instant>",
"issued" : "<instant>", // Date/Time this version was made available
"|
"performer" : [{ Reference(CareTeam|Group|HealthcareService|Organization|
Patient|Practitioner|PractitionerRole|RelatedPerson) }], // Who is responsible for the observation
// value[x]: Actual result. One of these 13:
"valueQuantity" : { Quantity },
"valueCodeableConcept" : { CodeableConcept },
"valueString" : "<string>",
"valueBoolean" : <boolean>,
"valueInteger" : <integer>,
"valueRange" : { Range },
"valueRatio" : { Ratio },
"valueSampledData" : { SampledData },
"valueTime" : "<time>",
"valueDateTime" : "<dateTime>",
"valuePeriod" : { Period },
"
"
"valueAttachment" : { Attachment },
"valueReference" : { Reference(MolecularDefinition) },
"dataAbsentReason" : { CodeableConcept }, // I Why the result value is missing
"interpretation" : [{ CodeableConcept }], // High, low, normal, etc
"interpretationContext" : [{ CodeableReference(Any) }], // Context for understanding the observation
"note" : [{ Annotation }], // Comments about the observation
"
"bodySite" : { CodeableConcept }, // DEPRECATED: Observed body part
"bodyStructure" : { CodeableReference(BodyStructure) }, // Observed body structure
"method" : { CodeableConcept }, // How it was done
"
"
"specimen" : { Reference(Group|Specimen) }, // Specimen used for this observation
"device" : { Reference(Device|DeviceMetric) }, // A reference to the device that generates the measurements or the device settings for the device
"referenceRange" : [{ // Provides guide for interpretation
"
"
"low" : { Quantity }, // I Low Range, if relevant
"high" : { Quantity }, // I High Range, if relevant
"normalValue" : { CodeableConcept }, // Normal value, if relevant
"type" : { CodeableConcept }, // Reference range qualifier
"appliesTo" : [{ CodeableConcept }], // Reference range population
"age" : { Range }, // Applicable age range, if relevant
"
"text" : "<markdown>" // I Text based reference range in an observation
}],
"|
"|
"
"
"hasMember" : [{ Reference(MolecularDefinition|Observation|
QuestionnaireResponse) }], // Related resource that belongs to the Observation group
"derivedFrom" : [{ Reference(DocumentReference|GenomicStudy|ImagingSelection|
ImagingStudy|MolecularDefinition|Observation|QuestionnaireResponse) }], // Related resource from which the observation is made
"component" : [{ // I Component results
"code" : { CodeableConcept }, // I R! Type of component observation (code / type)
// value[x]: Actual component result. One of these 13:
"valueQuantity" : { Quantity },
"valueCodeableConcept" : { CodeableConcept },
"valueString" : "<string>",
"valueBoolean" : <boolean>,
"valueInteger" : <integer>,
"valueRange" : { Range },
"valueRatio" : { Ratio },
"valueSampledData" : { SampledData },
"valueTime" : "<time>",
"valueDateTime" : "<dateTime>",
"valuePeriod" : { Period },
"
"
"
"valueAttachment" : { Attachment },
"valueReference" : { Reference(MolecularDefinition) },
"dataAbsentReason" : { CodeableConcept }, // I Why the component result value is missing
"interpretation" : [{ CodeableConcept }], // High, low, normal, etc
"referenceRange" : [{ Content as for Observation.referenceRange }] // Provides guide for interpretation of component result value
}]
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ a fhir:Observation; fhir:nodeRole fhir:treeRoot; # if this is the parser root
# from # from fhir: fhir:| fhir:| fhir: fhir: fhir: fhir: fhir: fhir: # . One of these 4 fhir: ] fhir: ] fhir: ] fhir: ] fhir: fhir: # . One of these 11 fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: ], ...; fhir: fhir:| fhir: fhir: # . One of these 11 fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: fhir: fhir: ], ...;# from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension fhir:identifier ( [ Identifier ] ... ) ; # 0..* Business Identifier for observation fhir:basedOn ( [ Reference(CarePlan|DeviceRequest|MedicationRequest|NutritionOrder|ServiceRequest) ] ... ) ; # 0..* Fulfills plan, proposal or order fhir:triggeredBy ( [ # 0..* Triggering observation(s) fhir:observation [ Reference(Observation) ] ; # 1..1 Triggering observation fhir:type [ code ] ; # 1..1 reflex | repeat | re-run fhir:reason [ string ] ; # 0..1 Reason that the observation was triggered ] ... ) ; fhir:partOf ( [ Reference(GenomicStudy|ImagingStudy|Immunization|MedicationAdministration| MedicationDispense|MedicationStatement|Procedure) ] ... ) ; # 0..* Part of referenced event fhir:status [ code ] ; # 1..1 registered | specimen-in-process | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | unknown | cannot-be-obtained fhir:category ( [ CodeableConcept ] ... ) ; # 0..* Classification of type of observation fhir:code [ CodeableConcept ] ; # 1..1 I Type of observation (code / type) fhir:subject [ Reference(BiologicallyDerivedProduct|Device|Group|Location|Medication|NutritionProduct| Organization|Patient|Practitioner|Procedure|Substance) ] ; # 0..1 Who and/or what the observation is about fhir:focus ( [ Reference(Any) ] ... ) ; # 0..* What the observation is about, when it is not about the subject of record fhir:organizer [ boolean ] ; # 0..1 I This observation organizes/groups a set of sub-observations fhir:encounter [ Reference(Encounter) ] ; # 0..1 Healthcare event during which this observation is made. If you need to place the observation within one or more episodes of care, use the workflow-episodeOfCare extension # effective[x] : 0..1 Clinically relevant time/time-period for observation. One of these 4 fhir:effective [ a fhir:DateTime ; dateTime ] fhir:effective [ a fhir:Period ; Period ] fhir:effective [ a fhir:Timing ; Timing ] fhir:effective [ a fhir:Instant ; instant ] fhir:issued [ instant ] ; # 0..1 Date/Time this version was made available fhir:performer ( [ Reference(CareTeam|Group|HealthcareService|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) ] ... ) ; # 0..* Who is responsible for the observation # value[x] : 0..1 I Actual result. One of these 13 fhir:value [ a fhir:Quantity ; Quantity ] fhir:value [ a fhir:CodeableConcept ; CodeableConcept ] fhir:value [ a fhir:String ; string ] fhir:value [ a fhir:Boolean ; boolean ] fhir:value [ a fhir:Integer ; integer ] fhir:value [ a fhir:Range ; Range ] fhir:value [ a fhir:Ratio ; Ratio ] fhir:value [ a fhir:SampledData ; SampledData ] fhir:value [ a fhir:Time ; time ] fhir:value [ a fhir:DateTime ; dateTime ] fhir:value [ a fhir:Period ; Period ] fhir:value [ a fhir:Attachment ; Attachment ] fhir:value [ a fhir:Reference ; Reference(MolecularDefinition) ] fhir:dataAbsentReason [ CodeableConcept ] ; # 0..1 I Why the result value is missing fhir:interpretation ( [ CodeableConcept ] ... ) ; # 0..* High, low, normal, etc fhir:interpretationContext ( [ CodeableReference(Any) ] ... ) ; # 0..* Context for understanding the observation fhir:note ( [ Annotation ] ... ) ; # 0..* Comments about the observation fhir:bodySite [ CodeableConcept ] ; # 0..1 DEPRECATED: Observed body part fhir:bodyStructure [ CodeableReference(BodyStructure) ] ; # 0..1 Observed body structure fhir:method [ CodeableConcept ] ; # 0..1 How it was done fhir:specimen [ Reference(Group|Specimen) ] ; # 0..1 Specimen used for this observation fhir:device [ Reference(Device|DeviceMetric) ] ; # 0..1 A reference to the device that generates the measurements or the device settings for the device fhir:referenceRange ( [ # 0..* Provides guide for interpretation fhir:low [ Quantity ] ; # 0..1 I Low Range, if relevant fhir:high [ Quantity ] ; # 0..1 I High Range, if relevant fhir:normalValue [ CodeableConcept ] ; # 0..1 Normal value, if relevant fhir:type [ CodeableConcept ] ; # 0..1 Reference range qualifier fhir:appliesTo ( [ CodeableConcept ] ... ) ; # 0..* Reference range population fhir:age [ Range ] ; # 0..1 Applicable age range, if relevant fhir:text [ markdown ] ; # 0..1 I Text based reference range in an observation ] ... ) ; fhir:hasMember ( [ Reference(MolecularDefinition|Observation|QuestionnaireResponse) ] ... ) ; # 0..* Related resource that belongs to the Observation group fhir:derivedFrom ( [ Reference(DocumentReference|GenomicStudy|ImagingSelection|ImagingStudy|MolecularDefinition| Observation|QuestionnaireResponse) ] ... ) ; # 0..* Related resource from which the observation is made fhir:component ( [ # 0..* I Component results fhir:code [ CodeableConcept ] ; # 1..1 I Type of component observation (code / type) # value[x] : 0..1 I Actual component result. One of these 13 fhir:value [ a fhir:Quantity ; Quantity ] fhir:value [ a fhir:CodeableConcept ; CodeableConcept ] fhir:value [ a fhir:String ; string ] fhir:value [ a fhir:Boolean ; boolean ] fhir:value [ a fhir:Integer ; integer ] fhir:value [ a fhir:Range ; Range ] fhir:value [ a fhir:Ratio ; Ratio ] fhir:value [ a fhir:SampledData ; SampledData ] fhir:value [ a fhir:Time ; time ] fhir:value [ a fhir:DateTime ; dateTime ] fhir:value [ a fhir:Period ; Period ] fhir:value [ a fhir:Attachment ; Attachment ] fhir:value [ a fhir:Reference ; Reference(MolecularDefinition) ] fhir:dataAbsentReason [ CodeableConcept ] ; # 0..1 I Why the component result value is missing fhir:interpretation ( [ CodeableConcept ] ... ) ; # 0..* High, low, normal, etc fhir:referenceRange ( [ See Observation.referenceRange ] ... ) ; # 0..* Provides guide for interpretation of component result value ] ... ) ; ]
Changes
since
R3
from
both
R4
and
R4B
| Observation | |
| Observation.basedOn |
|
|
|
|
|
|
|
|
|
|
|
|
|
| Observation.partOf |
|
|
|
|
|
|
|
|
|
|
| Observation.organizer |
|
|
|
|
|
|
|
|
|
|
| Observation.bodyStructure |
|
| Observation.specimen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
See the Full Difference for further information
This
analysis
is
available
for
R4
as
XML
or
JSON
.
See
R3
<-->
R4
Conversion
Maps
(status
=
48
tests
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
23
r3
resources
are
invalid
(0
errors).
)
for
R4B
as
XML
or
JSON
.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
|
DomainResource |
Measurements
and
simple
assertions
+ Rule: + Rule: If + Rule: Observation.component.dataAbsentReason SHALL only be present if Observation.component.value[x] is not present + Rule: if organizer exists and organizer = true, then value[x], dataAbsentReason and component SHALL NOT be present + Warning: All observations SHOULD have a performer Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension |
|
|
Σ | 0..* | Identifier |
Business
Identifier
for
observation
|
|
Σ | 0..* |
Reference
(
CarePlan
|
DeviceRequest
|
|
Fulfills
plan,
proposal
or
order
|
| 0..* | BackboneElement |
Triggering
observation(s)
| |
|
Σ | 1..1 | Reference ( Observation ) |
Triggering
observation
|
![]() ![]() ![]() | Σ | 1..1 | code |
reflex
|
repeat
|
re-run
Binding: triggered Bytype ( Required ) |
| 0..1 | string |
Reason
that
the
observation
was
triggered
| |
![]() ![]() | Σ | 0..* | Reference ( MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy | GenomicStudy ) |
Part
of
referenced
event
|
|
?! Σ | 1..1 | code |
registered
|
specimen-in-process
|
preliminary
|
final
|
amended
|
|
0..* | CodeableConcept |
Classification
of
type
of
observation
Binding: Observation Category Codes ( Preferred ) |
|
|
Σ C | 1..1 | CodeableConcept |
Type
of
observation
(code
/
type)
Binding: LOINC |
|
Σ | 0..1 | Reference ( Patient | Group | Device | Location | Organization | Procedure | Practitioner | Medication | Substance | BiologicallyDerivedProduct | NutritionProduct ) |
Who
and/or
what
the
observation
is
about
|
|
|
0..* | Reference ( Any ) |
What
the
observation
is
about,
when
it
is
not
about
the
subject
of
record
|
|
Σ C | 0..1 | boolean |
This
observation
organizes/groups
a
set
of
sub-observations
|
![]() ![]() | Σ | 0..1 | Reference ( Encounter ) |
Healthcare
event
during
which
this
observation
is
|
|
Σ | 0..1 |
Clinically
relevant
time/time-period
for
observation
|
|
|
dateTime | |||
|
Period | |||
|
Timing | |||
|
instant | |||
|
Σ | 0..1 | instant |
Date/Time
this
version
was
made
available
|
|
Σ | 0..* | Reference ( Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson | HealthcareService | Group ) |
Who
is
responsible
for
the
observation
|
|
Σ
|
0..1 |
Actual
result
|
|
|
Quantity | |||
|
CodeableConcept | |||
|
string | |||
|
boolean | |||
|
integer | |||
|
Range | |||
|
Ratio | |||
|
SampledData | |||
|
time | |||
|
dateTime | |||
|
Period | |||
| Attachment | |||
| Reference ( MolecularDefinition ) | |||
|
|
0..1 | CodeableConcept |
Why
the
result
value
is
missing
|
|
0..* | CodeableConcept |
High,
low,
normal,
Binding: Observation Interpretation Codes ( Extensible ) |
|
|
0..* | CodeableReference ( Any ) |
Context
for
understanding
the
observation
Binding: Observation Interpretation Context Codes ( Example ) |
|
| 0..* | Annotation |
Comments
about
the
observation
|
|
|
0..1 | CodeableConcept |
DEPRECATED:
Observed
body
part
Binding: SNOMED CT Body Structures ( Example ) |
|
|
0..1 | CodeableReference ( BodyStructure ) |
Observed
body
structure
Binding: SNOMED CT Body Structures ( Example ) |
|
| 0..1 | CodeableConcept |
How
it
was
done
Binding: Observation Methods ( Example ) |
|
|
C | 0..1 | Reference ( Specimen | Group ) |
Specimen
used
for
this
observation
+ Rule: If Observation.specimen is a reference to Group, the group can only have specimens |
|
0..1 | Reference ( Device | DeviceMetric ) |
A
reference
to
the
device
that
generates
the
measurements
or
the
device
settings
for
the
device
|
|
|
|
0..* | BackboneElement |
Provides
guide
for
interpretation
+ Rule: Must have at least a low or a high or text |
|
|
0..1 |
|
Low
Range,
if
relevant
+ Rule: If low.comparator exists, it must be '>=' or '>'. |
|
C
|
0..1 | Quantity |
High
Range,
if
relevant
+ Rule: If high.comparator exists, it must be '<=' or '<'. |
|
|
0..1 | CodeableConcept |
Normal
value,
if
relevant
Binding: Observation Reference Range Normal Value Codes ( Example ) |
|
0..1 | CodeableConcept |
Reference
range
qualifier
Binding: Observation Reference Range Meaning Codes ( Preferred ) |
|
|
0..* | CodeableConcept |
Reference
range
population
Binding: Observation Reference Range Applies To Codes ( Example ) |
|
|
0..1 | Range |
Applicable
age
range,
if
relevant
|
|
|
C | 0..1 |
|
Text
based
reference
range
in
an
observation
|
|
Σ | 0..* |
Reference
(
Observation
|
QuestionnaireResponse
|
|
Related
resource
that
belongs
to
the
Observation
group
|
|
Σ | 0..* |
Reference
(
DocumentReference
|
ImagingStudy
|
|
Related
|
|
Σ C | 0..* | BackboneElement |
Component
results
|
|
Σ C | 1..1 | CodeableConcept |
Type
of
component
observation
(code
/
type)
Binding: LOINC |
|
Σ C | 0..1 |
Actual
component
result
|
|
|
Quantity | |||
|
CodeableConcept | |||
|
string | |||
|
boolean | |||
|
integer | |||
|
Range | |||
|
Ratio | |||
|
SampledData | |||
|
time | |||
|
dateTime | |||
|
Period | |||
| Attachment | |||
| Reference ( MolecularDefinition ) | |||
|
|
0..1 | CodeableConcept |
Why
the
component
result
value
is
missing
|
|
0..* | CodeableConcept |
High,
low,
normal,
Binding: Observation Interpretation Codes ( Extensible ) |
|
|
0..* | see referenceRange |
Provides
guide
for
interpretation
of
component
result
value
|
|
Documentation
for
this
format
|
||||
See the Extensions for this resource
XML Template
<Observation xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Business Identifier for observation --></identifier>
<| </basedOn> <| </partOf> <<basedOn><!-- 0..* Reference(CarePlan|DeviceRequest|MedicationRequest| NutritionOrder|ServiceRequest) Fulfills plan, proposal or order --></basedOn> <triggeredBy> <!-- 0..* Triggering observation(s) --> <observation><!-- 1..1 Reference(Observation) Triggering observation --></observation> <type value="[code]"/><!-- 1..1 reflex | repeat | re-run --> <reason value="[string]"/><!-- 0..1 Reason that the observation was triggered --> </triggeredBy> <partOf><!-- 0..* Reference(GenomicStudy|ImagingStudy|Immunization| MedicationAdministration|MedicationDispense|MedicationStatement|Procedure) Part of referenced event --></partOf> <status value="[code]"/><!-- 1..1 registered | specimen-in-process | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | unknown | cannot-be-obtained --> <category><!-- 0..* CodeableConcept Classification of type of observation --></category><</code> <</subject> <</focus> <</encounter><code><!-- I 1..1 CodeableConcept Type of observation (code / type) --></code> <subject><!-- 0..1 Reference(BiologicallyDerivedProduct|Device|Group|Location| Medication|NutritionProduct|Organization|Patient|Practitioner|Procedure| Substance) Who and/or what the observation is about --></subject> <focus><!-- 0..* Reference(Any) What the observation is about, when it is not about the subject of record --></focus> <organizer value="[boolean]"/><!-- I 0..1 This observation organizes/groups a set of sub-observations --> <encounter><!-- 0..1 Reference(Encounter) Healthcare event during which this observation is made. If you need to place the observation within one or more episodes of care, use the workflow-episodeOfCare extension --></encounter> <effective[x]><!-- 0..1 dateTime|Period|Timing|instant Clinically relevant time/time-period for observation --></effective[x]> <issued value="[instant]"/><!-- 0..1 Date/Time this version was made available --><| </performer> <| </value[x]> <</dataAbsentReason> <</interpretation><performer><!-- 0..* Reference(CareTeam|Group|HealthcareService|Organization| Patient|Practitioner|PractitionerRole|RelatedPerson) Who is responsible for the observation --></performer> <value[x]><!-- I 0..1 Quantity|CodeableConcept|string|boolean|integer|Range|Ratio| SampledData|time|dateTime|Period|Attachment|Reference(MolecularDefinition) Actual result --></value[x]> <dataAbsentReason><!-- I 0..1 CodeableConcept Why the result value is missing --></dataAbsentReason> <interpretation><!-- 0..* CodeableConcept High, low, normal, etc --></interpretation> <interpretationContext><!-- 0..* CodeableReference(Any) Context for understanding the observation --></interpretationContext> <note><!-- 0..* Annotation Comments about the observation --></note><</bodySite><bodySite><!-- 0..1 CodeableConcept DEPRECATED: Observed body part --></bodySite> <bodyStructure><!-- 0..1 CodeableReference(BodyStructure) Observed body structure --></bodyStructure> <method><!-- 0..1 CodeableConcept How it was done --></method><</specimen> <</device><specimen><!-- 0..1 Reference(Group|Specimen) Specimen used for this observation --></specimen> <device><!-- 0..1 Reference(Device|DeviceMetric) A reference to the device that generates the measurements or the device settings for the device --></device> <referenceRange> <!-- 0..* Provides guide for interpretation --><</low> <</high><low><!-- I 0..1 Quantity Low Range, if relevant --></low> <high><!-- I 0..1 Quantity High Range, if relevant --></high> <normalValue><!-- 0..1 CodeableConcept Normal value, if relevant --></normalValue> <type><!-- 0..1 CodeableConcept Reference range qualifier --></type> <appliesTo><!-- 0..* CodeableConcept Reference range population --></appliesTo> <age><!-- 0..1 Range Applicable age range, if relevant --></age><<text value="[markdown]"/><!-- I 0..1 Text based reference range in an observation --> </referenceRange><| </hasMember> <| </derivedFrom> < <</code> <| </value[x]> <</dataAbsentReason> <</interpretation> <</referenceRange><hasMember><!-- 0..* Reference(MolecularDefinition|Observation| QuestionnaireResponse) Related resource that belongs to the Observation group --></hasMember> <derivedFrom><!-- 0..* Reference(DocumentReference|GenomicStudy|ImagingSelection| ImagingStudy|MolecularDefinition|Observation|QuestionnaireResponse) Related resource from which the observation is made --></derivedFrom> <component> <!-- I 0..* Component results --> <code><!-- I 1..1 CodeableConcept Type of component observation (code / type) --></code> <value[x]><!-- I 0..1 Quantity|CodeableConcept|string|boolean|integer|Range| Ratio|SampledData|time|dateTime|Period|Attachment|Reference( MolecularDefinition) Actual component result --></value[x]> <dataAbsentReason><!-- I 0..1 CodeableConcept Why the component result value is missing --></dataAbsentReason> <interpretation><!-- 0..* CodeableConcept High, low, normal, etc --></interpretation> <referenceRange><!-- 0..* Content as for Observation.referenceRange Provides guide for interpretation of component result value --></referenceRange> </component> </Observation>
JSON Template
{
"resourceType" : "Observation",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"identifier" : [{ Identifier }], // Business Identifier for observation
"|
"|
"
"basedOn" : [{ Reference(CarePlan|DeviceRequest|MedicationRequest|
NutritionOrder|ServiceRequest) }], // Fulfills plan, proposal or order
"triggeredBy" : [{ // Triggering observation(s)
"observation" : { Reference(Observation) }, // R! Triggering observation
"type" : "<code>", // R! reflex | repeat | re-run
"reason" : "<string>" // Reason that the observation was triggered
}],
"partOf" : [{ Reference(GenomicStudy|ImagingStudy|Immunization|
MedicationAdministration|MedicationDispense|MedicationStatement|Procedure) }], // Part of referenced event
"status" : "<code>", // R! registered | specimen-in-process | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | unknown | cannot-be-obtained
"category" : [{ CodeableConcept }], // Classification of type of observation
"
"
"
"
"code" : { CodeableConcept }, // I R! Type of observation (code / type)
"subject" : { Reference(BiologicallyDerivedProduct|Device|Group|Location|
Medication|NutritionProduct|Organization|Patient|Practitioner|Procedure|
Substance) }, // Who and/or what the observation is about
"focus" : [{ Reference(Any) }], // What the observation is about, when it is not about the subject of record
"organizer" : <boolean>, // I This observation organizes/groups a set of sub-observations
"encounter" : { Reference(Encounter) }, // Healthcare event during which this observation is made. If you need to place the observation within one or more episodes of care, use the workflow-episodeOfCare extension
// effective[x]: Clinically relevant time/time-period for observation. One of these 4:
"effectiveDateTime" : "<dateTime>",
"effectivePeriod" : { Period },
"effectiveTiming" : { Timing },
"effectiveInstant" : "<instant>",
"issued" : "<instant>", // Date/Time this version was made available
"|
"performer" : [{ Reference(CareTeam|Group|HealthcareService|Organization|
Patient|Practitioner|PractitionerRole|RelatedPerson) }], // Who is responsible for the observation
// value[x]: Actual result. One of these 13:
"valueQuantity" : { Quantity },
"valueCodeableConcept" : { CodeableConcept },
"valueString" : "<string>",
"valueBoolean" : <boolean>,
"valueInteger" : <integer>,
"valueRange" : { Range },
"valueRatio" : { Ratio },
"valueSampledData" : { SampledData },
"valueTime" : "<time>",
"valueDateTime" : "<dateTime>",
"valuePeriod" : { Period },
"
"
"valueAttachment" : { Attachment },
"valueReference" : { Reference(MolecularDefinition) },
"dataAbsentReason" : { CodeableConcept }, // I Why the result value is missing
"interpretation" : [{ CodeableConcept }], // High, low, normal, etc
"interpretationContext" : [{ CodeableReference(Any) }], // Context for understanding the observation
"note" : [{ Annotation }], // Comments about the observation
"
"bodySite" : { CodeableConcept }, // DEPRECATED: Observed body part
"bodyStructure" : { CodeableReference(BodyStructure) }, // Observed body structure
"method" : { CodeableConcept }, // How it was done
"
"
"specimen" : { Reference(Group|Specimen) }, // Specimen used for this observation
"device" : { Reference(Device|DeviceMetric) }, // A reference to the device that generates the measurements or the device settings for the device
"referenceRange" : [{ // Provides guide for interpretation
"
"
"low" : { Quantity }, // I Low Range, if relevant
"high" : { Quantity }, // I High Range, if relevant
"normalValue" : { CodeableConcept }, // Normal value, if relevant
"type" : { CodeableConcept }, // Reference range qualifier
"appliesTo" : [{ CodeableConcept }], // Reference range population
"age" : { Range }, // Applicable age range, if relevant
"
"text" : "<markdown>" // I Text based reference range in an observation
}],
"|
"|
"
"
"hasMember" : [{ Reference(MolecularDefinition|Observation|
QuestionnaireResponse) }], // Related resource that belongs to the Observation group
"derivedFrom" : [{ Reference(DocumentReference|GenomicStudy|ImagingSelection|
ImagingStudy|MolecularDefinition|Observation|QuestionnaireResponse) }], // Related resource from which the observation is made
"component" : [{ // I Component results
"code" : { CodeableConcept }, // I R! Type of component observation (code / type)
// value[x]: Actual component result. One of these 13:
"valueQuantity" : { Quantity },
"valueCodeableConcept" : { CodeableConcept },
"valueString" : "<string>",
"valueBoolean" : <boolean>,
"valueInteger" : <integer>,
"valueRange" : { Range },
"valueRatio" : { Ratio },
"valueSampledData" : { SampledData },
"valueTime" : "<time>",
"valueDateTime" : "<dateTime>",
"valuePeriod" : { Period },
"
"
"
"valueAttachment" : { Attachment },
"valueReference" : { Reference(MolecularDefinition) },
"dataAbsentReason" : { CodeableConcept }, // I Why the component result value is missing
"interpretation" : [{ CodeableConcept }], // High, low, normal, etc
"referenceRange" : [{ Content as for Observation.referenceRange }] // Provides guide for interpretation of component result value
}]
}
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ a fhir:Observation; fhir:nodeRole fhir:treeRoot; # if this is the parser root
# from # from fhir: fhir:| fhir:| fhir: fhir: fhir: fhir: fhir: fhir: # . One of these 4 fhir: ] fhir: ] fhir: ] fhir: ] fhir: fhir: # . One of these 11 fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: fhir: ], ...; fhir: fhir:| fhir: fhir: # . One of these 11 fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: ] fhir: fhir: fhir: ], ...;# from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension fhir:identifier ( [ Identifier ] ... ) ; # 0..* Business Identifier for observation fhir:basedOn ( [ Reference(CarePlan|DeviceRequest|MedicationRequest|NutritionOrder|ServiceRequest) ] ... ) ; # 0..* Fulfills plan, proposal or order fhir:triggeredBy ( [ # 0..* Triggering observation(s) fhir:observation [ Reference(Observation) ] ; # 1..1 Triggering observation fhir:type [ code ] ; # 1..1 reflex | repeat | re-run fhir:reason [ string ] ; # 0..1 Reason that the observation was triggered ] ... ) ; fhir:partOf ( [ Reference(GenomicStudy|ImagingStudy|Immunization|MedicationAdministration| MedicationDispense|MedicationStatement|Procedure) ] ... ) ; # 0..* Part of referenced event fhir:status [ code ] ; # 1..1 registered | specimen-in-process | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | unknown | cannot-be-obtained fhir:category ( [ CodeableConcept ] ... ) ; # 0..* Classification of type of observation fhir:code [ CodeableConcept ] ; # 1..1 I Type of observation (code / type) fhir:subject [ Reference(BiologicallyDerivedProduct|Device|Group|Location|Medication|NutritionProduct| Organization|Patient|Practitioner|Procedure|Substance) ] ; # 0..1 Who and/or what the observation is about fhir:focus ( [ Reference(Any) ] ... ) ; # 0..* What the observation is about, when it is not about the subject of record fhir:organizer [ boolean ] ; # 0..1 I This observation organizes/groups a set of sub-observations fhir:encounter [ Reference(Encounter) ] ; # 0..1 Healthcare event during which this observation is made. If you need to place the observation within one or more episodes of care, use the workflow-episodeOfCare extension # effective[x] : 0..1 Clinically relevant time/time-period for observation. One of these 4 fhir:effective [ a fhir:DateTime ; dateTime ] fhir:effective [ a fhir:Period ; Period ] fhir:effective [ a fhir:Timing ; Timing ] fhir:effective [ a fhir:Instant ; instant ] fhir:issued [ instant ] ; # 0..1 Date/Time this version was made available fhir:performer ( [ Reference(CareTeam|Group|HealthcareService|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) ] ... ) ; # 0..* Who is responsible for the observation # value[x] : 0..1 I Actual result. One of these 13 fhir:value [ a fhir:Quantity ; Quantity ] fhir:value [ a fhir:CodeableConcept ; CodeableConcept ] fhir:value [ a fhir:String ; string ] fhir:value [ a fhir:Boolean ; boolean ] fhir:value [ a fhir:Integer ; integer ] fhir:value [ a fhir:Range ; Range ] fhir:value [ a fhir:Ratio ; Ratio ] fhir:value [ a fhir:SampledData ; SampledData ] fhir:value [ a fhir:Time ; time ] fhir:value [ a fhir:DateTime ; dateTime ] fhir:value [ a fhir:Period ; Period ] fhir:value [ a fhir:Attachment ; Attachment ] fhir:value [ a fhir:Reference ; Reference(MolecularDefinition) ] fhir:dataAbsentReason [ CodeableConcept ] ; # 0..1 I Why the result value is missing fhir:interpretation ( [ CodeableConcept ] ... ) ; # 0..* High, low, normal, etc fhir:interpretationContext ( [ CodeableReference(Any) ] ... ) ; # 0..* Context for understanding the observation fhir:note ( [ Annotation ] ... ) ; # 0..* Comments about the observation fhir:bodySite [ CodeableConcept ] ; # 0..1 DEPRECATED: Observed body part fhir:bodyStructure [ CodeableReference(BodyStructure) ] ; # 0..1 Observed body structure fhir:method [ CodeableConcept ] ; # 0..1 How it was done fhir:specimen [ Reference(Group|Specimen) ] ; # 0..1 Specimen used for this observation fhir:device [ Reference(Device|DeviceMetric) ] ; # 0..1 A reference to the device that generates the measurements or the device settings for the device fhir:referenceRange ( [ # 0..* Provides guide for interpretation fhir:low [ Quantity ] ; # 0..1 I Low Range, if relevant fhir:high [ Quantity ] ; # 0..1 I High Range, if relevant fhir:normalValue [ CodeableConcept ] ; # 0..1 Normal value, if relevant fhir:type [ CodeableConcept ] ; # 0..1 Reference range qualifier fhir:appliesTo ( [ CodeableConcept ] ... ) ; # 0..* Reference range population fhir:age [ Range ] ; # 0..1 Applicable age range, if relevant fhir:text [ markdown ] ; # 0..1 I Text based reference range in an observation ] ... ) ; fhir:hasMember ( [ Reference(MolecularDefinition|Observation|QuestionnaireResponse) ] ... ) ; # 0..* Related resource that belongs to the Observation group fhir:derivedFrom ( [ Reference(DocumentReference|GenomicStudy|ImagingSelection|ImagingStudy|MolecularDefinition| Observation|QuestionnaireResponse) ] ... ) ; # 0..* Related resource from which the observation is made fhir:component ( [ # 0..* I Component results fhir:code [ CodeableConcept ] ; # 1..1 I Type of component observation (code / type) # value[x] : 0..1 I Actual component result. One of these 13 fhir:value [ a fhir:Quantity ; Quantity ] fhir:value [ a fhir:CodeableConcept ; CodeableConcept ] fhir:value [ a fhir:String ; string ] fhir:value [ a fhir:Boolean ; boolean ] fhir:value [ a fhir:Integer ; integer ] fhir:value [ a fhir:Range ; Range ] fhir:value [ a fhir:Ratio ; Ratio ] fhir:value [ a fhir:SampledData ; SampledData ] fhir:value [ a fhir:Time ; time ] fhir:value [ a fhir:DateTime ; dateTime ] fhir:value [ a fhir:Period ; Period ] fhir:value [ a fhir:Attachment ; Attachment ] fhir:value [ a fhir:Reference ; Reference(MolecularDefinition) ] fhir:dataAbsentReason [ CodeableConcept ] ; # 0..1 I Why the component result value is missing fhir:interpretation ( [ CodeableConcept ] ... ) ; # 0..* High, low, normal, etc fhir:referenceRange ( [ See Observation.referenceRange ] ... ) ; # 0..* Provides guide for interpretation of component result value ] ... ) ; ]
Changes
since
Release
3
from
both
R4
and
R4B
| Observation | |
| Observation.basedOn |
|
|
|
|
|
|
|
|
|
|
|
|
|
| Observation.partOf |
|
|
|
|
|
|
|
|
|
|
| Observation.organizer |
|
|
|
|
|
|
|
|
|
|
| Observation.bodyStructure |
|
| Observation.specimen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
See the Full Difference for further information
This
analysis
is
available
for
R4
as
XML
or
JSON
.
See
R3
<-->
R4
Conversion
Maps
(status
=
48
tests
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
23
r3
resources
are
invalid
(0
errors).
)
for
R4B
as
XML
or
JSON
.
See
the
Profiles
&
Extensions
and
the
alternate
Additional
definitions:
Master
Definition
XML
+
JSON
,
XML
Schema
/
Schematron
+
JSON
Schema
,
ShEx
(for
Turtle
)
+
see
the
extensions
,
the
spreadsheet
version
&
the
dependency
analysis
| Path |
|
Type |
|
|---|---|---|---|
| Observation.triggeredBy.type | TriggeredBytype | Required |
Codes
providing
the
|
| Observation.status | ObservationStatus | Required |
Codes providing the status of an observation. |
| Observation.category |
|
Preferred |
Observation Category codes. |
|
Observation.code
|
|
Example |
LOINC concepts whose ORDER_OBS property is 'Observation' (Obs only) or 'Both'. |
|
Observation.dataAbsentReason
|
DataAbsentReason | Extensible |
Used
to
specify
why
the
|
| Observation.interpretation |
ObservationInterpretationCodes
(a
valid
code
from
ObservationInterpretation
)
|
Extensible |
A categorical assessment, providing a rough qualitative interpretation of the observation value, such as “normal”/ “abnormal”,”low” / “high”, “better” / “worse”, “susceptible” / “resistant”, “expected”/ “not expected”. The value set is intended to be for ANY use where coded representation of an interpretation is needed. Notes: This is being communicated in v2.x in OBX-8 (Observation Interpretation), in v3 in ObservationInterpretation (CWE) in R1 (Representative Realm) and in FHIR in Observation.interpretation. Historically these values come from the laboratory domain, and these codes are extensively used. The value set binding is extensible, so codes outside the value set that are needed for interpretation concepts (i.e. particular meanings) that are not included in the value set can be used, and these new codes may also be added to the value set and published in a future version. |
| Observation.interpretationContext | ObservationInterpretationContextCodes | Example |
Codes
identifying
|
| Observation.bodySite | SNOMEDCTBodyStructures |
|
This
value
set
includes
all
codes
from
SNOMED
CT
|
|
|
|
Example |
This
value
set
includes
all
codes
from
SNOMED
CT
|
| Observation.method |
|
Example |
Observation
Method
codes
from
SNOMED
CT
|
| Observation.referenceRange.normalValue | ObservationReferenceRangeNormalValueCodes (a valid code from ObservationreferenceRangeNormalValue ) | Example |
Codes
that
describe
the
normal
value
in
the
|
| Observation.referenceRange.type | ObservationReferenceRangeMeaningCodes | Preferred |
This value set defines a set of codes that can be used to indicate the meaning/use of a reference range for a particular target population. |
| Observation.referenceRange.appliesTo | ObservationReferenceRangeAppliesToCodes | Example |
This value set defines a set of codes that can be used to indicate the particular target population the reference range applies to. |
| Observation.component.code | LOINCObsOrBoth | Example |
LOINC concepts whose ORDER_OBS property is 'Observation' (Obs only) or 'Both'. |
| Observation.component.dataAbsentReason |
|
Extensible | Used to specify why the normally expected content of the data element is missing. |
| Observation.component.interpretation |
ObservationInterpretationCodes
(a
valid
code
from
ObservationInterpretation
)
| Extensible | A categorical assessment, providing a rough qualitative interpretation of the observation value, such as “normal”/ “abnormal”,”low” / “high”, “better” / “worse”, “susceptible” / “resistant”, “expected”/ “not expected”. The value set is intended to be for ANY use where coded representation of an interpretation is needed. Notes: This is being communicated in v2.x in OBX-8 (Observation Interpretation), in v3 in ObservationInterpretation (CWE) in R1 (Representative Realm) and in FHIR in Observation.interpretation. Historically these values come from the laboratory domain, and these codes are extensively used. The value set binding is extensible, so codes outside the value set that are needed for interpretation concepts (i.e. particular meanings) that are not included in the value set can be used, and these new codes may also be added to the value set and published in a future version. |
|
|
Level | Location | Description | Expression |
obs-3
|
Rule | Observation.referenceRange | Must have at least a low or a high or text | low.exists() or high.exists() or text.exists() |
obs-6
|
Rule | (base) |
|
dataAbsentReason.empty() or value.empty() |
obs-7
|
Rule | (base) |
If
|
value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty() |
obs-9
| Rule | Observation.specimen | If Observation.specimen is a reference to Group, the group can only have specimens | (reference.resolve().exists() and reference.resolve() is Group) implies reference.resolve().member.entity.resolve().all($this is Specimen) |
obs-10
| Rule | (base) | Observation.component.dataAbsentReason SHALL only be present if Observation.component.value[x] is not present | component.empty() or component.where(dataAbsentReason.exists()).all(value.empty()) |
obs-11
| Rule | (base) | if organizer exists and organizer = true, then value[x], dataAbsentReason and component SHALL NOT be present | (organizer.exists() and organizer.allTrue()) implies (value.empty() and dataAbsentReason.empty() and component.empty()) |
obs-12
| Warning | (base) | All observations SHOULD have a performer | performer.exists() |
obs-13
| Rule | Observation.referenceRange.low | If low.comparator exists, it must be '>=' or '>'. | comparator.exists() implies (comparator = '>=' or comparator = '>') |
obs-14
| Rule | Observation.referenceRange.high | If high.comparator exists, it must be '<=' or '<'. | comparator.exists() implies (comparator = '<=' or comparator = '<') |
At its simplest, a resource instance can consist of only a code and a value, and status flag. The relevance of other properties will vary based on the type of observation. Profiles are created to provide guidance on capturing certain types of observations for a given use case. The Observation resource focuses on the level of detail captured by most systems. However, for a given use case there may be additional constraints and additional information relevant in certain circumstances. As with other resources, extensions can be used to introduce this additional complexity.
Typically,
an
observation
is
made
about
the
subject
-
a
patient,
or
group
of
patients,
location,
or
device
-
and
the
distinction
between
the
subject
and
what
is
directly
measured
for
an
observation
is
specified
in
the
observation
code
itself
(
e.g.,
"Blood
Glucose")
and
does
not
need
to
be
represented
separately.
However,
three
attributes
may
be
used
for
representing
the
focus
of
the
observation
if
it
is
not
the
subject
itself.
The
specimen
,
and
bodySite
,
and
bodyStructure
elements
are
used
to
represent
measurements
taken
on
subject
samples
or
anatomic
and
morphological
locations,
and
focus
represents
specific
aspect
of
the
subject
that
are
the
point
of
attention
such
as
another
observation
or
a
device
implanted
in
a
patient.
There may be some confusion about what to record in the subject, focus, and device elements, and the observation-recording extension, particularly involving Devices.
Note that a device could appear in any of these elements depending on the role it is playing in a particular Observation; there is no fixed element where a device would be recorded. Similarly, patients, related persons, practitioners and other entities may in may appear in various elements. As a result, finding all Observations involving a particular device, etc. may require multiple searches.
Many
observations
have
important
relationships
to
other
observations
and
need
to
be
grouped
together.
These
structures
have
been
defined
together
in
some
fashion
to
document
critical
relationships
for
interpretation
of
the
observations.
The
methods
to
do
this:
so
primarily
are
through
DiagnosticReport
and
using
DiagnosticReport.result
and
,
Observation
the
elements:
Observation
using
Observation.component
,
Observation.hasMember
,
and
Observation.derivedFrom
.
The
sections
below
provides
See
the
Diagnostics
Module
for
guidance
around
which
structure
related
to
use.
Because
the
idea
of
what
Microbiology
reporting
and
relevant
relationships
necessary
to
group
together
is
often
highly
contextual
support
reflex,
follow-up,
and
based
upon
the
end
user's
point
of
view,
the
choice
add-on
orders.
Note
that
Composition
may
also
be
used
to
organize
observations
and
diagnostic
reports,
but
that
is
only
for
purpose
of
which
structure
readability,
not
to
use
will
be
driven
by
jurisdiction,
organizational
practice
record
critical
relationships
for
interpretations.
See
DiagnosticReport.composition
and
context.
Profiling
will
normally
be
necessary
Composition
for
implementation.
further
considerations
for
that
separate
purpose.
DiagnosticReport
relates
directly
to
an
order
(ServiceRequest).
The
DiagnosticReport.code
names
the
panel
and
serves
as
the
grouping
element,
which
is
traditionally
referred
to
as
a
"panel"
or
"battery"
by
laboratories.
The
DiagnosticReport.result
element
references
the
individual
observations.
Several
examples
demonstrate
observation
grouping
using
DiagnosticReport
as
the
grouping
structure.
Observation.component
is
used
for
any
supporting
result
that
cannot
reasonably
be
interpreted
and
used
outside
the
scope
of
the
Observation
it
is
a
component
of.
Component
observations
may
make
up
the
separate
and
individual
parts
of
the
observation
or
may
provide
qualifying
information
to
Observation.code
and
may
only
be
able
to
be
understood
in
relation
to
the
Observation.code
(for
example,
see
the
$stats
operation
).
Therefore
all
code-value
and
component.code-component.value
pairs
need
to
be
taken
into
account
to
correctly
understand
the
meaning
of
the
observation.
Components
should
only
be
used
when
there
is
only
one
method,
one
observation,
one
performer,
one
device,
and
one
time.
Some
use
cases
for
using
this
structure
include:
On the other hand, any observations that are clinically relevant outside the context of being a component of another observation should be represented by separate Observation resources. For example a Body Mass Index (BMI) Observation should not contain components for height and weight because they are clinically relevant observations on their own and should be represented by separate Observation resources. See the section below on how to relate independent Observations.
Observation.hasMember
and
Observation.derivedFrom
and
the
core
extensions:
Observation-sequelTo
and
Observation-replaces
are
used
for
any
supporting
result
that
can
be
interpreted
and
used
on
its
own
and
has
one
or
more
different
values
for
method,
observation,
performer,
device,
time,
and/or
error
conditions.
Two
common
use
cases
for
using
this
structure
are:
Observation.code
represents
the
"panel"
code,
typically
Observation.value[x]
is
not
present,
and
the
set
of
member
Observations
are
listed
in
Observation.hasMember
.
This
structure
permits
nested
grouping
when
used
with
DiagnosticReport
(e.g.
complex
micro
isolate
and
sensitivities
report
Observation.code
and
Observation.value[x]
are
present,
and
the
linked
observations
are
listed
in
Observation.derivedFrom
.
An
example
of
this
would
be
a
Body
Mass
Index
(BMI)
Observation
where
the
height
and
weight
measurements
are
referenced.
To
perform
a
delta
check
one
can
instantiate
a
new
observation
(the
comparison
observation)
with
derivedFrom
populated
with
references
to
the
two
prior
Observations
that
triggered
the
delta
check.
Also,
the
Observation.interpretation
of
the
comparison
Observation
has
the
code
of
the
interpretation
of
the
delta
check.
When
a
result
value
is
a
represented
as
a
predefined
concept
using
a
code,
valueCodeableConcept
is
used.
This
element
is
bound
to
a
value
set
comprised
of
a
standard
nomenclature
such
as
SNOMED
CT
or
a
source
system
("local")
coded
result
values.
Results may be coded in multiple value sets based on different code systems and these may be mapped using the ConceptMap resource and/or given as additional codings directly in the element as shown in the example below.
For
example
the
LOINC
43304-5
Chlamydia
trachomatis
rRNA
[Presence]
in
Unspecified
specimen
by
Probe
and
target
amplification
method
is
typically
associated
with
coded
presence/absence
concepts.
Using
the
coded
value
for
'negative'
with
a
standard
code
translation,
valueCodeableConcept
would
be:
"valueCodeableConcept": { "coding": [ { "system": "http://snomed.info/sct", "code": "260385009", "display": "Negative" }, { "system": "https://acme.lab/resultcodes", "code": "NEG", "display": "Negative" } ], "text": "Negative for Chlamydia Trachomatis rRNA" }"valueCodeableConcept": { "coding": [ { "system": "http://snomed.info/sct", "code": "260385009", "display": "Negative" }, { "system": "https://acme.lab/resultcodes", "code": "NEG", "display": "Negative" } ], "text": "Negative for Chlamydia Trachomatis rRNA" }
When
the
data
element
is
usually
coded
or
the
type
associated
with
the
code
element
defines
a
coded
value,
use
valueCodeableConcept
even
if
there
is
no
appropriate
code
and
only
free
text
is
available.
For
example
using
text
only,
the
valueCodeableConcept
element
would
be:
"valueCodeableConcept": { "text": "uncoded free text result" }"valueCodeableConcept": { "text": "uncoded free text result" }
When
a
coded
answer
list
includes
a
concept
code
for
"other"
and
there
is
a
free
text
description
of
the
concept,
the
valueCodeableConcept.text
element
should
be
used
to
capture
the
full
meaning
of
the
source.
In
the
example
below,
the
answer
code
"Other"
is
provided
in
the
valueCodeableConcept
element
and
the
text
value
supplied
value
in
the
CodeableConcept.text
element.
{
"resourceType": "Observation",
... snip ...
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "74076-1",
"display": "Medication or substance involved"
}
]
},
.. snip ...
"valueCodeableConcept": {
"coding": [
{
"system": "http://loinc.org",
"code": " LA20343-2",
"display": "Other substance: PLEASE SPECIFY"
}
],
"text": "Other: Blue pills I found under my couch"
}
.. snip ...
}
.. snip ...
}
A
recurring
issue
for
many
observation
events,
regardless
of
the
particular
pattern,
is
determining
how
to
populate
observation.code
and
observation.value.
While
this
is
typically
straight-forward
for
laboratory
observations,
it
can
get
blurry
for
other
types
of
observations,
such
as
findings
and
disorders,
family
history
observations,
etc.
This
discussion
focuses
on
the
way
in
which
the
coded
representation
of
such
statements
is
expressed
using
the
Observation.code
and
Observation.value
elements.
There are two distinct facets that are central to a FHIR Observations:
Several
different
ways
of
representing
the
same
information
exist
using
different
combinations
of
the
Observation.code
and
Observation.value
.
Unconstrained
use
of
the
alternatives
presents
a
major
challenge
for
computation
of
semantic
equivalence
and
for
safe
interpretation
of
observations
originating
from
different
applications
and
users.
The
following
four
patterns
could
reasonably
represent
the
same
case.
Considering
that
the
Observation
resource
needs
to
support
many
use
cases,
the
appropriate
place
to
define
the
specific
pattern
is
expected
to
be
done
through
profiles
and
implementation
guides
as
specified
by
the
jurisdictions
and/or
organizations
implementing
FHIR:
Observation.code
represents
the
nature
of
the
observation
and
the
Observation.value
a
code
represents
the
non-numeric
result
value.
These
are
two
distinct
facets
that
are
central
to
a
FHIR
Observations.
For
example:
Observation.code
is
nearly
identical
to
1)
above,
but
the
level
of
granularity
is
shifted
from
the
value
to
code.
For
example:
Observation.code
is
also
expressed
in
a
way
that
does
not
specify
the
observation
action
but
indicates
a
statement
about
findings
reduced
to
a
single
name
(or
term),
as
in
the
above
item.
In
this
example,
the
Observation.value
is
present
and
"qualifies"
the
finding
typically
confirming
or
refuting
it.
For
example:
Observation.code
is
expressed
in
a
way
that
does
not
specify
the
observation
action
but
indicates
a
statement
about
findings
reduced
to
a
single
name
(or
term).
In
this
particular
example
in
that
context,
the
Observation.value
is
omitted.
For
example:
concept
code.
concept
code
is
used,
the
expression
SHOULD
represent
a
363787002
(Observable
entity(Observable
entity))
or
386053000
(Evaluation
procedure(evaluation
procedure))
.
(
The
code
is
'ASSERTION'
and
the
value
is
a
SNOMED
CT
concept
or
expression
)
The following list provides guidance on using codes or other observations to provide additional context that may alter how an observation is interpreted.:
If possible, use the most specific code you can
e.g.:
{
"resourceType": "Observation",
... snip ...
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "6689-4",
"display": "Glucose [Mass/volume] in Blood --2 hours post meal"
}
]
},
... snip ...
}
Alternatively, use additional codes in Observation.code as described above .
e.g.: Observation.code = coding-1: 59408-5 Oxygen saturation in Arterial blood by Pulse oximetry, coding-2: 20564-1 Oxygen saturation in Blood
{
"resourceType": "Observation",
... snip ...
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "59408-5",
"display": "Oxygen saturation in Arterial blood by Pulse oximetry"
},
{
"system": "http://loinc.org",
"code": "20564-1",
"display": "Oxygen saturation in Blood"
}
]
},
... snip ...
}
As described above , observations are typically grouped together to provide additional information needed for correctly understanding and interpreting the observation. As an alternative to grouping observations, extensions may be used to provide references to other observations needed for understanding and interpreting an observation.
Note:Note to Implementers: We are seeking input from the implementer community in evaluating existing Observation Extensions for this purpose
Feedback here
.
derivedFrom
.
Images
that
are
referenced
as
part
of
a
report
should
be
represented
with
DiagnosticReport.media
or,
if
the
entire
report
is
in
a
binary
format
such
as
pdf,
with
DiagnosticReport.presentedForm
.
value[x]
because
most
observations
result
values
are
never
truly
Boolean
due
to
exceptional
values
such
as
"unknown",
therefore
they
should
use
the
CodeableConcept
data
type
instead
and
select
codes
from
http://terminology.hl7.org/ValueSet/v2-0136
(these
"yes/no"
concepts
can
be
mapped
to
the
display
name
"true/false"
or
other
mutually
exclusive
terms
that
may
be
needed")
valueQuantity
would
be:
"valueQuantity": {
"value": 2.0,
"comparator": "<",
"unit": "mmol/l",
"system": "http://unitsofmeasure.org",
"code": "mmol/L"
}
If
the
value
was
"NaN"
(i.e.
an
error)
the
valueCodeableConcept
element
would
be
absent
and
dataAbsentReason
element
would
be:
"dataAbsentReason": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/data-absent-reason",
"code": "NaN",
"display": "Not a Number"
}
]
}
The effectiveDateTime or effectivePeriod 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 venipuncture). 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.
Most common observations will only have one generic reference range. Reference ranges may be useful for laboratory tests and other measures like systolic blood pressure but will have little relevance for something like "pregnancy status". 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 might 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.
If a measurement or test could not be completed (for example if the specimen is unsatisfactory or the provider cancelled the order), then the status value should be updated to "cancelled" and the specific details given - preferably as coded values in the dataAbsentReason or valueCodeableConcept element. Additional information may be provided in the `note` element as well. The specimen reject example demonstrates this using a coded value for unsatisfactory specimen in dataAbsentReason.
For Observations that will not or were not performed:
Genetic
Genomic
reporting
makes
heavy
use
of
the
DiagnosticReport
and
Observation
resources.
resources
to
represent
structured,
computable
genomic
data.
An
implementation
guide
describing
how
to
represent
genetic
results
can
be
found
here
.
Beyond the structured, computable data available in DiagnosticReport and Observation, metadata about the analysis performed is captured in the GenomicStudy resource. GenomicStudy aims at delineating relevant information of a genomic study. A genomic study might comprise one or more analyses, each serving a specific purpose. These analyses may vary in method (e.g., karyotyping, CNV, or SNV detection), performer, software, devices used, or regions targeted.
When
referencing
genomic
analysis
from
an
Observation,
the
partOf
attribute
MAY
be
used
to
reference
the
GenomicStudy
that
led
to
this
observation
being
made.
Another
option
is
that
derivedFrom
MAY
be
used
to
reference
a
DocumentReference
when
the
observation
was
derived
from
the
data
in
the
file,
even
when
that
file
was
produced
as
part
of
a
GenomicStudy
output.
Also,
derivedFrom
MAY
be
used
to
reference
the
GenomicStudy
where
the
data
was
produced.
The lastn query operation meets the common need for searching for the most recent or "last known" Observations for a subject. Examples where this query could be used:
See the Last N Observations Query section in the Observation resource operations page for more information and examples
The stats operation performs a set of statistical calculations on a set of clinical measurements such as a blood pressure as stored on the server. This operation is focused on Observation resources with valueQuantity elements that have UCUM unit codes. Examples where this operation could be used:
Search parameters for this resource. See also the full list of search parameters for this resource , and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
| Name | Type | Description | Expression | In Common |
|
based-on
|
reference | Reference to the service request. |
Observation.basedOn
( CarePlan , MedicationRequest , NutritionOrder , DeviceRequest , ServiceRequest |
|
| body-site | token | DEPRECATED: Observed body part | Observation.bodySite | |
| body-structure-code | token | Code for observed body structure | Observation.bodyStructure.concept | |
|
category
|
token | The classification of the type of observation | Observation.category | |
|
code
|
token | The code of the observation type | Observation.code |
|
|
code-value-concept
|
composite | Code and coded value parameter pair |
On
Observation:
code: code value-concept: |
|
|
code-value-date
|
composite | Code and date/time value parameter pair |
On
Observation:
code: code value-date: |
|
|
code-value-quantity
|
composite | Code and quantity value parameter pair |
On
Observation:
code: code value-quantity: |
|
|
code-value-string
|
composite | Code and string value parameter pair |
On
Observation:
code: code value-string: |
|
|
combo-code
|
token | The code of the observation type or component type | Observation.code | Observation.component.code | |
|
combo-code-value-concept
|
composite | Code and coded value parameter pair, including in components |
On
Observation
|
Observation.component:
combo-code: code combo-value-concept: |
|
|
combo-code-value-quantity
|
composite | Code and quantity value parameter pair, including in components |
On
Observation
|
Observation.component:
combo-code: code combo-value-quantity: |
|
|
combo-data-absent-reason
|
token | The reason why the expected value in the element Observation.value[x] or Observation.component.value[x] is missing. | Observation.dataAbsentReason | Observation.component.dataAbsentReason | |
| combo-interpretation | token | The interpretation of the observation type or component type | Observation.interpretation | Observation.component.interpretation | |
|
combo-value-concept
|
token | The value or component value of the observation, if the value is a CodeableConcept |
|
|
|
combo-value-quantity
|
quantity |
The
value
or
component
value
of
the
observation,
if
the
value
is
a
|
|
|
|
component-code
|
token | The component code of the observation type | Observation.component.code | |
|
component-code-value-concept
|
composite | Component code and component coded value parameter pair |
On
Observation.component:
component-code: code component-value-concept: |
|
|
component-code-value-quantity
|
composite | Component code and component quantity value parameter pair |
On
Observation.component:
component-code: code component-value-quantity: |
|
|
component-data-absent-reason
|
token | The reason why the expected value in the element Observation.component.value[x] is missing. | Observation.component.dataAbsentReason | |
| component-interpretation | token | The component interpretation of the observation type | Observation.component.interpretation | |
|
component-value-concept
|
token | The value of the component observation, if the value is a CodeableConcept |
|
|
|
component-value-quantity
|
quantity |
The
value
of
the
component
observation,
if
the
value
is
a
|
|
|
| component-value-reference | reference | Reference contained in valueReference. |
Observation.component.value.ofType(Reference)
( MolecularDefinition ) |
|
|
data-absent-reason
|
token | The reason why the expected value in the element Observation.value[x] is missing. | Observation.dataAbsentReason | |
|
date
|
date |
|
|
|
|
derived-from
|
reference | Related measurements the observation is made from |
Observation.derivedFrom
( |
|
|
device
|
reference | The Device that generated the observation data. |
Observation.device
( Device , DeviceMetric ) |
|
|
encounter
|
reference | Encounter related to the observation |
Observation.encounter
( Encounter ) |
|
|
focus
|
reference | The focus of an observation when the focus is not the patient of record. |
Observation.focus
(Any) |
|
|
has-member
|
reference | Related resource that belongs to the Observation group |
Observation.hasMember
( MolecularDefinition , Observation , |
|
|
identifier
|
token | The unique id for a particular observation | Observation.identifier |
|
| interpretation | token | The interpretation of the observation type | Observation.interpretation | |
|
method
|
token | The method used for the observation | Observation.method | |
|
part-of
|
reference | Part of referenced event |
Observation.partOf
( GenomicStudy , Immunization , MedicationDispense , MedicationAdministration , Procedure , ImagingStudy , MedicationStatement ) |
|
|
patient
|
reference | The subject that the observation is about (if patient) |
Observation.subject.where(resolve()
is
Patient)
( Patient ) |
|
|
performer
|
reference | Who performed the observation |
Observation.performer
( Practitioner , Group , Organization , CareTeam , Patient , HealthcareService , PractitionerRole , RelatedPerson ) |
|
| reference | reference | Observed body structure (reference) |
Observation.bodyStructure.reference
( BodyStructure ) |
|
|
specimen
|
reference | Specimen used for this observation |
Observation.specimen
( Specimen , Group ) |
|
|
status
|
token | The status of the observation | Observation.status | |
|
subject
|
reference | The subject that the observation is about |
Observation.subject
( Practitioner , Group , Organization , BiologicallyDerivedProduct , NutritionProduct , Device , Medication , Patient , Procedure , Substance , Location ) |
|
|
value-concept
|
token | The value of the observation, if the value is a CodeableConcept |
|
|
|
value-date
|
date | The value of the observation, if the value is a date or period of time |
|
|
|
value-quantity
|
quantity |
The
value
of
the
observation,
if
the
value
is
a
|
|
|
| value-reference | reference | Reference contained in valueReference. |
Observation.value.ofType(Reference)
( MolecularDefinition ) | |
|
value-string
|
string |
The
value
of
the
observation,
if
the
value
is
a
|
|