This
page
is
part
of
the
FHIR
Specification
(v3.0.2:
STU
3).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
Continuous
Integration
Build
of
available
versions,
see
FHIR
(will
be
incorrect/inconsistent
at
times).
See
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
R2
Responsible
Owner:
Orders
and
Observations
Work
Group
|
|
|
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
lab,
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
ClinicalAssessment
resource.
The
Observation
resource
is
often
referenced
by
the
Condition
resource
to
provide
specific
subjective
and
objective
data
to
support
its
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
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

When an Observation instantiates an ObservationDefinition , the elements of the Observation resource are expected to inherit their content from 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
"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.
However,
the
The
Observation
resources
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
resource.
as
discussed
above.
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
extensively
for
those
specific
contexts
observations
about
people,
groups,
devices,
locations,
substances,
and
use
cases.
They
include
AllergyIntolerance
resource,
FamilyMemberHistory
resource,
Procedure
procedures
–
not
about
the
record
describing
these
entities.
For
example,
DeviceAlert
resource,
represents
a
single
alert
or
alarm
condition
detected
and
Questionnaire
resource.
In
some
cases,
such
as
when
source
data
is
coming
from
an
HL7
v2
feed,
signaled
by
a
system
may
not
have
information
that
allows
it
patient-connected
health
/
medical
device
to
distinguish
diagnosis,
allergy
and
other
"specialized"
types
create
clinician’s
awareness
of
observations
from
lab,
vital
sign
and
other
observation
types
intended
a
patient
safety
risk
that
needs
to
be
conveyed
with
this
resource.
In
those
circumstances,
such
specialized
observations
may
also
appear
using
this
resource.
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
Media
resource
captures
a
specific
type
of
observation
whose
value
is
audio,
video
or
image
data.
This
Observation
resource
is
contains
several
elements
related
to
the
preferred
representation
of
such
forms
origin
and
quality
of
the
observation.
To
record
more
detailed
information
as
it
exposes
about
the
metadata
relevant
for
interpreting
source
of
an
Observation,
the
information.
However,
in
some
implementations,
media
information
Provenance
resource
may
appear
in
Observation
susing
be
used.
More
in-depth
commentary
about
or
evaluation
of
the
Observation
record
itself
may
be
recorded
in
ArtifactAssessment
.
Note to Balloters: A new
element (trial-use) is added to the normative Observation resource in this ballot. The OO Work Group is seeking reviewers andvalueAttachmentorganizersystems should be aware ofimplementer feedback on thispossibility. Thisnew element, which is intended to help clarify and make explicit when an instance of the Observation resource isreferenced byused 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: Observation.dataAbsentReason SHALL only be present if Observation.value[x] is not present + Rule: If + + 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
|
|
?! Σ | 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 | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
| 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
|
|
|
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 '>'. |
|
|
0..1 |
|
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 ( |
|
|
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..* |
|
Related
resource
that
belongs
to
|
|
|
0..* |
|
Related
resource
from
which
the
observation
is
|
|
Σ 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 | |||
|
|
|||
|
|
|||
|
|
|||
|
Ratio
|
|||
| SampledData | |||
|
time | |||
|
dateTime | |||
|
Period | |||
| Attachment | |||
| Reference ( MolecularDefinition ) | |||
|
C | 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> <<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> <</context> <</effective[x]> < <</performer> <| </value[x]> <</dataAbsentReason> <</interpretation> < <</bodySite><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><!-- 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><!-- 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> < <</low> <</high><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><!-- 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><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>< < <</target> </related> < <</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" : "",
"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: # . One of these 2 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: fhir: # . One of these 10 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
DSTU2
from
both
R4
and
R4B
| Observation | |
| Observation.basedOn |
|
| Observation.triggeredBy |
|
| Observation.triggeredBy.observation |
|
| Observation.triggeredBy.type |
|
| Observation.triggeredBy.reason |
|
|
|
|
|
|
|
| Observation.subject |
|
| Observation.focus |
|
| Observation.organizer |
|
| Observation.performer |
|
| Observation.value[x] |
|
|
|
|
|
|
|
|
|
|
| Observation.referenceRange.low |
|
|
|
|
|
|
|
| Observation.referenceRange.text |
|
| Observation.hasMember |
|
| Observation.derivedFrom |
|
| Observation.component.value[x] |
|
See the Full Difference for further information
This
analysis
is
available
for
R4
as
XML
or
JSON
.
See
R2
<-->
R3
Conversion
Maps
(status
=
34
tests
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
15
r3
resources
are
invalid
(58
errors).
).
for
R4B
as
XML
or
JSON
.
Structure
| Name | Flags | Card. | Type |
Description
&
Constraints
Filter:
|
|---|---|---|---|---|
|
|
DomainResource |
Measurements
and
simple
assertions
+ Rule: Observation.dataAbsentReason SHALL only be present if Observation.value[x] is not present + Rule: If + + 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 |
|
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
|
|
?! Σ | 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 | |||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
| Reference ( MolecularDefinition ) | |||
|
|
0..1 | CodeableConcept |
Why
the
result
value
is
missing
|
|
|
0..* | CodeableConcept |
High,
low,
normal,
Binding: Observation Interpretation Codes ( Extensible ) |
|
0..* |
|
Context
for
understanding
the
observation
Binding: Observation Interpretation Context Codes ( Example ) |
|
|
0..* | Annotation |
Comments
about
|
|
|
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 '>'. |
|
|
0..1 |
|
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 ( |
|
|
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..* |
|
Related
resource
that
belongs
to
|
|
|
0..* |
|
Related
resource
from
which
the
observation
is
|
|
Σ 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 | |||
|
|
|||
|
|
|||
|
|
|||
|
Ratio
|
|||
| SampledData | |||
|
time | |||
|
dateTime | |||
|
Period | |||
| Attachment | |||
| Reference ( MolecularDefinition ) | |||
|
C | 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> <<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> <</context> <</effective[x]> < <</performer> <| </value[x]> <</dataAbsentReason> <</interpretation> < <</bodySite><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><!-- 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><!-- 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> < <</low> <</high><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><!-- 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><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>< < <</target> </related> < <</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" : "",
"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: # . One of these 2 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: fhir: # . One of these 10 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
DSTU2
from
both
R4
and
R4B
| Observation | |
| Observation.basedOn |
|
| Observation.triggeredBy |
|
| Observation.triggeredBy.observation |
|
| Observation.triggeredBy.type |
|
| Observation.triggeredBy.reason |
|
|
|
|
|
|
|
| Observation.subject |
|
| Observation.focus |
|
| Observation.organizer |
|
| Observation.performer |
|
| Observation.value[x] |
|
|
|
|
|
|
|
|
|
|
| Observation.referenceRange.low |
|
|
|
|
|
|
|
| Observation.referenceRange.text |
|
| Observation.hasMember |
|
| Observation.derivedFrom |
|
| Observation.component.value[x] |
|
See the Full Difference for further information
This
analysis
is
available
for
R4
as
XML
or
JSON
.
See
R2
<-->
R3
Conversion
Maps
(status
=
34
tests
that
all
execute
ok.
All
tests
pass
round-trip
testing
and
15
r3
resources
are
invalid
(58
errors).
).
for
R4B
as
XML
or
JSON
.
Alternate
Additional
definitions:
Master
Definition
(
XML
,
+
JSON
),
,
XML
Schema
/
Schematron
(for
)
+
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
|
|
Observation.code
|
|
Example |
LOINC
|
|
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
|
| Observation.referenceRange.normalValue | ObservationReferenceRangeNormalValueCodes (a valid code from ObservationreferenceRangeNormalValue ) | Example |
Codes
that
describe
the
normal
value
in
the
|
| Observation.referenceRange.type | ObservationReferenceRangeMeaningCodes |
|
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 |
|
|
Used to specify why the normally expected content of the data element is missing. |
| Observation.component.interpretation |
)
| 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. |
| UniqueKey | Level | Location | Description | Expression |
obs-3
| Rule | Observation.referenceRange |
Must
have
at
least
a
low
or
a
high
or
text
|
|
obs-6
| Rule | (base) |
Observation.dataAbsentReason
SHALL
only
be
present
if
Observation.value[x]
is
not
present
|
|
obs-7
| Rule | (base) |
If
|
|
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
=
| (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
=
|
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
instances
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
will
be
are
created
to
provide
guidance
on
capturing
certain
types
of
simple
observations.
This
observations
for
a
given
use
case.
The
Observation
resource
focuses
on
the
level
of
detail
captured
by
most
systems.
However,
any
"simple"
observation
can
easily
for
a
given
use
case
there
may
be
broken
into
numerous
components
additional
constraints
and
sub-components
to
provide
additional
information
relevant
in
certain
circumstances.
As
with
other
resources,
extensions
can
be
used
to
introduce
this
additional
complexity.
Many
observations
have
important
relationships
to
other
observations
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
grouped
together.
Three
structures
have
been
defined
to
do
this:
DiagnosticReport
and
represented
separately.
However,
three
attributes
may
be
used
for
representing
the
focus
of
the
observation
if
it
is
not
the
subject
itself.
The
,
DiagnosticReport.result
specimen
Observation
and
,
and
Observation.component
bodySite
Observation
and
elements
are
used
to
Observation.related
.
The
table
below
provides
guidance
around
which
structure
bodyStructure
use.
Because
represent
measurements
taken
on
subject
samples
or
anatomic
and
morphological
locations,
and
focus
represents
specific
aspect
of
the
idea
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
group
together
is
often
highly
contextual
record
in
the
subject,
focus,
and
device
elements,
and
based
upon
the
end
user's
point
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
context.
Profiling
will
normally
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
need
to
be
necessary
grouped
together
in
some
fashion
to
document
critical
relationships
for
implementation.
interpretation
of
the
observations.
The
methods
to
do
so
primarily
are
through
DiagnosticReport
and
using
DiagnosticReport.result
Observation
and
Observation
using
Observation.component
,
Observation
Observation.hasMember
,
and
.
See
the
Diagnostics
Module
for
guidance
related
to
Microbiology
reporting
and
relevant
relationships
necessary
to
support
reflex,
follow-up,
and
add-on
orders.
Observation.related
Observation.derivedFrom
Note that Composition may also be used to organize observations and diagnostic reports, but that is only for purpose of readability, not to record critical relationships for interpretations. See DiagnosticReport.composition and Composition for further considerations for that separate purpose.
DiagnosticReport
relates
directly
to
an
order
(ProcedureRequest).
(ServiceRequest).
The
DiagnosticReport.code
names
the
panel
and
serves
as
the
grouping
element,
which
is
traditionally
referred
to
as
a
"panel"
"panel"
or
"battery"
"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
able
to
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
understood
in
relation
to
represented
by
separate
Observation
resources.
See
the
section
below
on
how
to
relate
independent
Observations.
Observation.code
Observation.hasMember
(for
example,
see
the
and
$stats
Observation.derivedFrom
operation
and
the
core
extensions:
Observation-sequelTo
).
and
Observation-replaces
Observation.related
is
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.
The
top
level
observation
specifies
the
Two
common
use
cases
for
using
this
structure
are:
Observation.code
,
but
represents
the
"panel"
code,
typically
Observation.value
,
Observation.value[x]
is
not
present,
and
the
set
of
member
Observation.related
element.
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
variable
name
depending
on
delta
check
one
can
instantiate
a
new
observation
(the
comparison
observation)
with
derivedFrom
populated
with
references
to
the
type
as
follows:
valueQuantity
valueCodeableConcept
valueString
valueBoolean
valueRange
valueRatio
valueSampledData
valueAttachment
valueTime
valueDateTime
valuePeriod
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")
("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
translations
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"
}
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
un-coded
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"
"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"
"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 ...
}
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", "code": { "coding": [{ "system": "http://loinc.org", "code": "74076-1", "display": "Medication or substance involved" }] }, "valueCodeableConcept": { "coding": [{ "system": "http://loinc.org", "code": " LA20343-2", "display": "Other substance: PLEASE SPECIFY" }], "text": "Other: Blue pills I found under my couch" } }{ "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 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
(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
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
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
lab
laboratory
tests
and
other
measures
like
systolic
blood
pressure,
pressure
but
will
have
little
relevance
for
something
like
"pregnancy
status".
"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
may
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"
"cancelled"
and
the
specific
details
given
-
preferably
as
coded
values
in
the
dataAbsentReason
or
valueCodeableConcept
element.
Additional
information
may
be
provided
in
comments
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:
Genomic
reporting
makes
heavy
use
of
the
DiagnosticReport
and
Observation
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"
"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
STU
Note:
This
is
the
first
draft
of
this
operation
and
we
are
seeking
input
from
the
implementer
community
on
it
and
whether
it
should
be
extended
to
other
resources
such
as
DiagnosticReport.
This
operation
could
be
the
subject
of
future
connectathon
testing.
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
|
Observation.basedOn
( |
|
| 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 |
code: code value-concept: value.ofType(CodeableConcept) |
|
| code-value-date | composite | Code and date/time value parameter pair |
code: code value-date: value.ofType(dateTime) | value.ofType(Period) |
|
| code-value-quantity | composite | Code and quantity value parameter pair |
code: code value-quantity: value.ofType(Quantity) |
|
| code-value-string | composite | Code and string value parameter pair |
code: code value-string: value.ofType(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
|
combo-code: code combo-value-concept: value.ofType(CodeableConcept) |
|
| combo-code-value-quantity | composite | Code and quantity value parameter pair, including in components |
On
Observation
|
combo-code: code combo-value-quantity: value.ofType(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 |
component-code: code component-value-concept: value.ofType(CodeableConcept) |
|
| component-code-value-quantity | composite | Component code and component quantity value parameter pair |
component-code: code component-value-quantity: value.ofType(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 |
|
( |
|
| 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
( GenomicStudy , MolecularDefinition , Observation , ImagingStudy , ImagingSelection , QuestionnaireResponse , DocumentReference ) | |
| device | reference | The Device that generated the observation data. |
Observation.device
( Device , DeviceMetric ) |
|
| encounter | reference | Encounter related to the observation |
( 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 , QuestionnaireResponse ) |
|
| 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) |
( Patient ) |
|
| performer | reference | Who performed the observation |
Observation.performer
( Practitioner , Group , Organization , CareTeam , Patient , HealthcareService , PractitionerRole , RelatedPerson ) |
|
|
|
reference |
|
( |
|
| 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
|
|