This
page
is
part
of
the
FHIR
Specification
(v1.8.0:
STU
3
Draft).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
This resource has 1 operation associated with it:
| $stats | Observation Statistics |
For more information about operations, including how they are invoked, see Operations .
The Statistics 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.
The set of Observations is defined by 4 parameters:
subject
)
code
and
'system',
or
'coding')
statistic
).
Possible statistical analyses (see StatisticsCode ):
of
N
measurements
over
the
stated
period
value
of
N
measurements
over
the
stated
period
value
of
N
measurements
over
the
stated
period
of
N
measurements
over
the
stated
period
of
N
measurements
over
the
stated
period
of
N
measurements
over
the
stated
period
of
N
measurements
over
the
stated
period
of
N
measurements
over
the
stated
period
of
N
measurements
over
the
stated
period
Boundary
of
N
measurements
over
the
stated
period
Boundary
of
N
measurements
over
the
stated
period
is
called
the
Interquartile
range.
(IQR
=
Q3-Q1)
Quartile
deviation
or
Semi-interquartile
range
is
one-half
the
difference
between
the
first
and
the
third
quartiles.
If
successful,
the
operation
returns
an
Observation
resource
for
each
code
with
the
results
of
the
statistical
calculations
as
component
value
pairs
where
the
component
code
=
the
statistical
code.
The
Observation
also
contains
the
the
input
parameters
patient
,
code
and
duration
parameters.
If
unsuccessful,
an
OperationOutcome
with
an
error
message
will
be
returned.
The client can request that all the observations on which the statistics are based be returned as well, using the include parameter. If an include parameter is specified, a limit may also be specified; the sources observations are subsetted at the server's discretion if count > limit. This functionality is included with the intent of supporting graphical presentation
Formal Definition (as a OperationDefinition ).
URL: [base]/Observation/$stats
| In Parameters: | |||||
| Name | Cardinality | Type | Binding | Profile | Documentation |
| subject | 1..1 | uri |
The subject of the relevant Observations, which has the value of the Observation.subject.reference. E.g. 'Patient/123'. Reference can be to an absolute URL, but servers only perform stats on their own observations |
||
| code | 0..* | string |
The test code(s) upon which the statistics are being performed. Provide along with a system, or as a coding. For example, the code = "45667-2" will evaluate all relevant Observations with this code in Observation.code. For LOINC codes that are panels, (e.g. 55284-4) this means to include all the individual codes that are part of a panel |
||
| system | 0..1 | uri |
The system for the code(s). Or provide a coding instead |
||
| coding | 0..* | Coding |
The test code upon which the statistics are being performed, as a Coding |
||
| duration | 0..1 | decimal |
The time period of interest given as hours. For example, the duration = "1" represents the last hour - the time period from on hour ago to now |
||
| period | 0..1 | Period |
The time period over which the calculations to be performed, if a duration is not provided |
||
| params | 1..* | code |
average|max|min|count The statistical operations to be performed on the relevant operations. Multiple statistics operations can be specified. These codes are defined here |
||
| Out Parameters: | |||||
| Name | Cardinality | Type | Binding | Profile | Documentation |
| return | 1..* | Observation |
A
set
of
observations,
one
observation
for
each
code,
each
containing
one
component
for
each
statistic.
The
Observation.component.code
contains
the
statistic,
and
is
relative
to
the
Observation.code
and
cannot
be
interpreted
independently.
The
Observation
will
also
contain
a
subject,
effectivePeriod,
and
code
reflecting
the
input
parameters.
The
status
is
fixed
to
|
||
| source | 0..* | Observation |
Source observations on which the statistics are based |
||
Get the average, min, max and count of a series of BP measurements for a patient (Request):
GET [base]/Observation/$stats?subject=Patient/123&code=55284-4&duration=1&statistic=average&statistic=min&statistic=max&statistic=count
Response:
<?xml version="1.0" encoding="UTF-8"?>
<!--
The outcome for this particular operation is 2 Observation resources - one for the diastolic
and one for the systolic components, because the requested LOINC code is a panel code
-->
<Parameters xmlns="http://hl7.org/fhir">
<parameter>
<name value="return"/>
<resource>
<Observation>
<status value="final"/>
<code>
<coding>
<system value="http://loinc.org"/>
<code value="8462-4"/>
<display value="Diastolic blood pressure"/>
</coding>
</code>
<subject>
<reference value="Patient/123"/>
</subject>
<effectivePeriod>
<start value="2016-05-25T19:26:16Z"/>
<end value="2016-05-25T20:26:16Z"/>
</effectivePeriod>
<!--The Observation.component.code is relative to the Observation.code and cannot be interpreted independently.-->
<component>
<code>
<!-- the average parameter code -->
<coding>
<system value="http://hl7.org/fhir/observation-paramcode"/>
<code value="average"/>
<display value="Average"/>
</coding>
</code>
<valueQuantity>
<value value="79.7"/>
<unit value="mmHg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mm[Hg]"/>
</valueQuantity>
</component>
<component>
<!-- the max parameter code -->
<code>
<coding>
<system value="http://hl7.org/fhir/observation-paramcode"/>
<code value="max"/>
<display value="Maximum"/>
</coding>
</code>
<valueQuantity>
<value value="110"/>
<unit value="mmHg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mm[Hg]"/>
</valueQuantity>
</component>
<component>
<!-- the min parameter code -->
<code>
<coding>
<system value="http://hl7.org/fhir/observation-paramcode"/>
<code value="min"/>
<display value="Minimum"/>
</coding>
</code>
<valueQuantity>
<value value="56"/>
<unit value="mmHg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mm[Hg]"/>
</valueQuantity>
</component>
<component>
<!-- the count parameter code -->
<code>
<coding>
<system value="http://hl7.org/fhir/observation-paramcode"/>
<code value="min"/>
<display value="Minimum"/>
</coding>
</code>
<valueQuantity>
<value value="7"/>
<system value="http://unitsofmeasure.org"/>
<code value="{observations}"/>
</valueQuantity>
</component>
</Observation>
</resource>
</parameter>
<parameter>
<name value="return"/>
<resource>
<Observation>
<status value="final"/>
<code>
<coding>
<system value="http://loinc.org"/>
<code value="8462-4"/>
<display value="Diastolic blood pressure"/>
</coding>
</code>
<subject>
<reference value="Patient/123"/>
</subject>
<effectivePeriod>
<start value="2016-05-25T19:26:16Z"/>
<end value="2016-05-25T20:26:16Z"/>
</effectivePeriod>
<!--The Observation.component.code is relative to the Observation.code and cannot be interpreted independently.-->
<component>
<code>
<!-- the average parameter code -->
<coding>
<system value="http://hl7.org/fhir/observation-paramcode"/>
<code value="average"/>
<display value="Average"/>
</coding>
</code>
<valueQuantity>
<value value="79.7"/>
<unit value="mmHg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mm[Hg]"/>
</valueQuantity>
</component>
<component>
<!-- the max parameter code -->
<code>
<coding>
<system value="http://hl7.org/fhir/observation-paramcode"/>
<code value="max"/>
<display value="Maximum"/>
</coding>
</code>
<valueQuantity>
<value value="110"/>
<unit value="mmHg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mm[Hg]"/>
</valueQuantity>
</component>
<component>
<!-- the min parameter code -->
<code>
<coding>
<system value="http://hl7.org/fhir/observation-paramcode"/>
<code value="min"/>
<display value="Minimum"/>
</coding>
</code>
<valueQuantity>
<value value="56"/>
<unit value="mmHg"/>
<system value="http://unitsofmeasure.org"/>
<code value="mm[Hg]"/>
</valueQuantity>
</component>
<component>
<!-- the count parameter code -->
<code>
<coding>
<system value="http://hl7.org/fhir/observation-paramcode"/>
<code value="count"/>
<display value="Count"/>
</coding>
</code>
<valueQuantity>
<value value="7"/>
<system value="http://unitsofmeasure.org"/>
<code value="{observations}"/>
</valueQuantity>
</component>
</Observation>
</resource>
</parameter>
</Parameters>