Tags:
XML or JSON representation . provenance for this resource
OPERATION: Observation Statistics
The official URL for this operation definition is:
http://hl7.org/fhir/OperationDefinition/Observationstats
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
)
'duration
or
period
)
statistic
)
Possible statistical analyses (see StatisticsCode):
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 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
URL: [base]/Observation/$stats
Parameters
Use  Name  Cardinality  Type  Binding  Documentation 
IN  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 

IN  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 = "456672" will evaluate all relevant Observations with this code in Observation.code. For LOINC codes that are panels, (e.g. 552844) this means to include all the individual codes that are part of a panel 

IN  system  0..1  uri 
The system for the code(s). Or provide a coding instead 

IN  coding  0..*  Coding 
The test code upon which the statistics are being performed, as a Coding 

IN  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 

IN  period  0..1  Period 
The time period over which the calculations to be performed, if a duration is not provided 

IN  statistic  1..*  code 
averagemaxmincount The statistical operations to be performed on the relevant operations. Multiple statistics operations can be specified. These codes are defined here 

IN  include  0..1  boolean 
Whether to return the observations on which the statistics are based 

IN  limit  0..1  positiveInt 
If an include parameter is specified, a limit may also be specified to limit the number of source Observations returned. If the include paramter is absent or equal to "false" the limit parameter SHALL be ignored by the server 

OUT  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


OUT  source  0..*  Observation 
Source observations on which the statistics are based 
This operation cannot be performed on observations that the user is not authorized to see. It is assumed that the server has identified and secured the context appropriately, and can either associate the authorization context with a single patient, or determine whether the context has the rights to the nominated patient, if there is one. If there is no nominated patient (e.g. the operation is invoked at the system level) and the context is not associated with a single patient record, then the server should return an error. Specifying the relationship between the context, a user and patient records is outside the scope of this specification.
<?xml version="1.0" encoding="UTF8"?>
<OperationDefinition xmlns="http://hl7.org/fhir">
<id value="Observationstats"/>
<meta>
<versionId value="1"/>
<lastUpdated value="20180920T01:09:26.003Z"/>
</meta>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml">
<h2>Observation Statistics</h2>
<p>OPERATION: Observation Statistics</p>
<p>The official URL for this operation definition is: </p>
<pre>http://hl7.org/fhir/OperationDefinition/Observationstats</pre>
<div>
<p>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
<a href="observation.html">Observation</a>resources with valueQuantity elements that have UCUM unit codes. </p>
<p>The set of Observations is defined by 4 parameters:</p>
<ul>
<li>the subject of the observations for which the statistics are being generated (
<code>subject</code>) </li>
<li>which observations to generate statistics for (
<code>code</code>and
<code>system</code>, or
<code>coding</code>) </li>
<li>the time period over which to generate statistics
<code>'duration</code>or
<code>period</code>) </li>
<li>the set of statistical analyses to return (
<code>statistic</code>) </li> </ul>
<p>Possible statistical analyses (see
<a href="valuesetobservationstatistics.html">StatisticsCode</a>): </p>
<ul>
<li>
<strong>average</strong>("Average"): The
<a href="https://en.wikipedia.org/wiki/Arithmetic_mean">mean</a>of N measurements over the stated period </li>
<li>
<strong>maximum</strong>("Maximum"): The
<a href="https://en.wikipedia.org/wiki/Maximal_element">maximum</a>value of N measurements over the stated period </li>
<li>
<strong>minimum</strong>("Minimum"): The
<a href="https://en.wikipedia.org/wiki/Minimal_element">minimum</a>value of N measurements over the stated period </li>
<li>
<strong>count</strong>("Count"): The [number] of valid measurements over the stated period that contributed to the other statistical outputs </li>
<li>
<strong>totalcount</strong>("Total Count"): The total [number] of valid measurements over the stated period, including observations that were ignored because they did not contain valid result values </li>
<li>
<strong>median</strong>("Median"): The
<a href="https://en.wikipedia.org/wiki/Median">median</a>of N measurements over the stated period </li>
<li>
<strong>stddev</strong>("Standard Deviation"): The
<a href="https://en.wikipedia.org/wiki/Standard_deviation">standard deviation</a>of N measurements over the stated period </li>
<li>
<strong>sum</strong>("Sum"): The
<a href="https://en.wikipedia.org/wiki/Summation">sum</a>of N measurements over the stated period </li>
<li>
<strong>variance</strong>("Variance"): The
<a href="https://en.wikipedia.org/wiki/Variance">variance</a>of N measurements over the stated period </li>
<li>
<strong>20percent</strong>("20th Percentile"): The 20th
<a href="https://en.wikipedia.org/wiki/Percentile">Percentile</a>of N measurements over the stated period </li>
<li>
<strong>80percent</strong>("80th Percentile"): The 80th
<a href="https://en.wikipedia.org/wiki/Percentile">Percentile</a>of N measurements over the stated period </li>
<li>
<strong>4lower</strong>("Lower Quartile"): The lower
<a href="https://en.wikipedia.org/wiki/Quartile">Quartile</a>Boundary of N measurements over the stated period </li>
<li>
<strong>4upper</strong>("Upper Quartile"): The upper
<a href="https://en.wikipedia.org/wiki/Quartile">Quartile</a>Boundary of N measurements over the stated period </li>
<li>
<strong>4dev</strong>("Quartile Deviation"): The difference between the upper and lower
<a href="https://en.wikipedia.org/wiki/Quartile">Quartiles</a>is called the Interquartile range. (IQR = Q3Q1) Quartile deviation or Semiinterquartile range is onehalf the difference between the first and the third quartiles. </li>
<li>
<strong>51</strong>("1st Quintile"): The lowest of four values that divide the N measurements into a frequency distribution of five classes with each containing one fifth of the total population </li>
<li>
<strong>52</strong>("2nd Quintile"): The second of four values that divide the N measurements into a frequency distribution of five classes with each containing one fifth of the total population </li>
<li>
<strong>53</strong>("3rd Quintile"): The third of four values that divide the N measurements into a frequency distribution of five classes with each containing one fifth of the total population </li>
<li>
<strong>54</strong>("4th Quintile"): The fourth of four values that divide the N measurements into a frequency distribution of five classes with each containing one fifth of the total population </li>
<li>
<strong>skew</strong>("Skew"): Skewness is a measure of the asymmetry of the probability distribution of a realvalued random variable about its mean. The skewness value can be positive or negative, or even undefined. Source:
<a href="https://en.wikipedia.org/wiki/Skewness">Wikipedia</a> </li>
<li>
<strong>kurtosis</strong>("Kurtosis"): Kurtosis is a measure of the "tailedness" of the probability distribution of a realvalued random variable. Source:
<a href="https://en.wikipedia.org/wiki/Kurtosis">Wikipedia</a> </li>
<li>
<strong>regression</strong>("Regression"): Linear regression is an approach for modeling twodimensional sample points with one independent variable and one dependent variable (conventionally, the x and y coordinates in a Cartesian coordinate system) and finds a linear function (a nonvertical straight line) that, as accurately as possible, predicts the dependent variable values as a function of the independent variables. Source:
<a href="https://en.wikipedia.org/wiki/Simple_linear_regression">Wikipedia</a>This Statistic code will return both a gradient and an intercept value. </li> </ul>
<p>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 input parameters
<code>patient</code>,
<code>code</code>and
<code>duration</code>parameters. If unsuccessful, an
<a href="operationoutcome.html">OperationOutcome</a>with an error message will be returned. </p>
<p>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</p> </div>
<p>URL: [base]/Observation/$stats</p>
<p>Parameters</p>
<table class="grid">
<tr>
<td>
<b>Use</b> </td>
<td>
<b>Name</b> </td>
<td>
<b>Cardinality</b> </td>
<td>
<b>Type</b> </td>
<td>
<b>Binding</b> </td>
<td>
<b>Documentation</b> </td> </tr>
<tr>
<td>IN</td>
<td>subject</td>
<td>1..1</td>
<td>uri</td>
<td/>
<td>
<div>
<p>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</p> </div> </td> </tr>
<tr>
<td>IN</td>
<td>code</td>
<td>0..*</td>
<td>string</td>
<td/>
<td>
<div>
<p>The test code(s) upon which the statistics are being performed. Provide along with a system, or as a coding. For example, the code = "456672" will evaluate all relevant Observations with this code in Observation.code. For LOINC codes that are panels, (e.g. 552844) this means to include all the individual codes that are part of a panel</p> </div> </td> </tr>
<tr>
<td>IN</td>
<td>system</td>
<td>0..1</td>
<td>uri</td>
<td/>
<td>
<div>
<p>The system for the code(s). Or provide a coding instead</p> </div> </td> </tr>
<tr>
<td>IN</td>
<td>coding</td>
<td>0..*</td>
<td>Coding</td>
<td/>
<td>
<div>
<p>The test code upon which the statistics are being performed, as a Coding</p> </div> </td> </tr>
<tr>
<td>IN</td>
<td>duration</td>
<td>0..1</td>
<td>decimal</td>
<td/>
<td>
<div>
<p>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</p> </div> </td> </tr>
<tr>
<td>IN</td>
<td>period</td>
<td>0..1</td>
<td>Period</td>
<td/>
<td>
<div>
<p>The time period over which the calculations to be performed, if a duration is not provided</p> </div> </td> </tr>
<tr>
<td>IN</td>
<td>statistic</td>
<td>1..*</td>
<td>code</td>
<td/>
<td>
<div>
<p>averagemaxmincount The statistical operations to be performed on the relevant operations. Multiple statistics operations can be specified. These codes are defined
<a href="valuesetobservationstatistics.html">here</a> </p> </div> </td> </tr>
<tr>
<td>IN</td>
<td>include</td>
<td>0..1</td>
<td>boolean</td>
<td/>
<td>
<div>
<p>Whether to return the observations on which the statistics are based</p> </div> </td> </tr>
<tr>
<td>IN</td>
<td>limit</td>
<td>0..1</td>
<td>positiveInt</td>
<td/>
<td>
<div>
<p>If an include parameter is specified, a limit may also be specified to limit the number of source Observations returned. If the include paramter is absent or equal to "false" the limit parameter SHALL be ignored by the server</p> </div> </td> </tr>
<tr>
<td>OUT</td>
<td>return</td>
<td>1..*</td>
<td>Observation</td>
<td/>
<td>
<div>
<p>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
<code>final</code>. </p> </div> </td> </tr>
<tr>
<td>OUT</td>
<td>source</td>
<td>0..*</td>
<td>Observation</td>
<td/>
<td>
<div>
<p>Source observations on which the statistics are based</p> </div> </td> </tr> </table>
<div>
<p>This operation cannot be performed on observations that the user is not authorized to see. It is assumed that the server has identified and secured the context appropriately, and can either associate the authorization context with a single patient, or determine whether the context has the rights to the nominated patient, if there is one. If there is no nominated patient (e.g. the operation is invoked at the system level) and the context is not associated with a single patient record, then the server should return an error. Specifying the relationship between the context, a user and patient records is outside the scope of this specification.</p> </div> </div>
</text>
<url value="http://hl7.org/fhir/OperationDefinition/Observationstats"/>
<name value="Observation Statistics"/>
<status value="draft"/>
<kind value="operation"/>
<date value="20170419T07:44:43+10:00"/>
<publisher value="HL7 (FHIR Project)"/>
<contact>
<telecom>
<system value="url"/>
<value value="http://hl7.org/fhir"/>
</telecom>
<telecom>
<system value="email"/>
<value value="fhir@lists.hl7.org"/>
</telecom>
</contact>
<description value="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](observation.html) resources with valueQuantity elements that have UCUM unit codes. The set of Observations is defined by 4 parameters: * the subject of the observations for which the statistics are being generated (`subject`) * which observations to generate statistics for (`code` and `system`, or `coding`) * the time period over which to generate statistics `'duration` or `period`) * the set of statistical analyses to return (`statistic`) Possible statistical analyses (see [StatisticsCode](valuesetobservationstatistics.html)):  **average** ("Average"): The [mean](https://en.wikipedia.org/wiki/Arithmetic_mean) of N measurements over the stated period  **maximum** ("Maximum"): The [maximum](https://en.wikipedia.org/wiki/Maximal_element) value of N measurements over the stated period  **minimum** ("Minimum"): The [minimum](https://en.wikipedia.org/wiki/Minimal_element) value of N measurements over the stated period  **count** ("Count"): The [number] of valid measurements over the stated period that contributed to the other statistical outputs  **totalcount** ("Total Count"): The total [number] of valid measurements over the stated period, including observations that were ignored because they did not contain valid result values  **median** ("Median"): The [median](https://en.wikipedia.org/wiki/Median) of N measurements over the stated period  **stddev** ("Standard Deviation"): The [standard deviation](https://en.wikipedia.org/wiki/Standard_deviation) of N measurements over the stated period  **sum** ("Sum"): The [sum](https://en.wikipedia.org/wiki/Summation) of N measurements over the stated period  **variance** ("Variance"): The [variance](https://en.wikipedia.org/wiki/Variance) of N measurements over the stated period  **20percent** ("20th Percentile"): The 20th [Percentile](https://en.wikipedia.org/wiki/Percentile) of N measurements over the stated period  **80percent** ("80th Percentile"): The 80th [Percentile](https://en.wikipedia.org/wiki/Percentile) of N measurements over the stated period  **4lower** ("Lower Quartile"): The lower [Quartile](https://en.wikipedia.org/wiki/Quartile) Boundary of N measurements over the stated period  **4upper** ("Upper Quartile"): The upper [Quartile](https://en.wikipedia.org/wiki/Quartile) Boundary of N measurements over the stated period  **4dev** ("Quartile Deviation"): The difference between the upper and lower [Quartiles](https://en.wikipedia.org/wiki/Quartile) is called the Interquartile range. (IQR = Q3Q1) Quartile deviation or Semiinterquartile range is onehalf the difference between the first and the third quartiles.  **51** ("1st Quintile"): The lowest of four values that divide the N measurements into a frequency distribution of five classes with each containing one fifth of the total population  **52** ("2nd Quintile"): The second of four values that divide the N measurements into a frequency distribution of five classes with each containing one fifth of the total population  **53** ("3rd Quintile"): The third of four values that divide the N measurements into a frequency distribution of five classes with each containing one fifth of the total population  **54** ("4th Quintile"): The fourth of four values that divide the N measurements into a frequency distribution of five classes with each containing one fifth of the total population  **skew** ("Skew"): Skewness is a measure of the asymmetry of the probability distribution of a realvalued random variable about its mean. The skewness value can be positive or negative, or even undefined. Source: [Wikipedia](https://en.wikipedia.org/wiki/Skewness)  **kurtosis** ("Kurtosis"): Kurtosis is a measure of the "tailedness" of the probability distribution of a realvalued random variable. Source: [Wikipedia](https://en.wikipedia.org/wiki/Kurtosis)  **regression** ("Regression"): Linear regression is an approach for modeling twodimensional sample points with one independent variable and one dependent variable (conventionally, the x and y coordinates in a Cartesian coordinate system) and finds a linear function (a nonvertical straight line) that, as accurately as possible, predicts the dependent variable values as a function of the independent variables. Source: [Wikipedia](https://en.wikipedia.org/wiki/Simple_linear_regression) This Statistic code will return both a gradient and an intercept value. 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 input parameters `patient`,`code` and `duration` parameters. If unsuccessful, an [OperationOutcome](operationoutcome.html) 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"/>
<code value="stats"/>
<comment value="This operation cannot be performed on observations that the user is not authorized to see. It is assumed that the server has identified and secured the context appropriately, and can either associate the authorization context with a single patient, or determine whether the context has the rights to the nominated patient, if there is one. If there is no nominated patient (e.g. the operation is invoked at the system level) and the context is not associated with a single patient record, then the server should return an error. Specifying the relationship between the context, a user and patient records is outside the scope of this specification."/>
<resource value="Observation"/>
<system value="false"/>
<type value="true"/>
<instance value="false"/>
<parameter>
<name value="subject"/>
<use value="in"/>
<min value="1"/>
<max value="1"/>
<documentation value="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"/>
<type value="uri"/>
</parameter>
<parameter>
<name value="code"/>
<use value="in"/>
<min value="0"/>
<max value="*"/>
<documentation value="The test code(s) upon which the statistics are being performed. Provide along with a system, or as a coding. For example, the code = "456672" will evaluate all relevant Observations with this code in Observation.code. For LOINC codes that are panels, (e.g. 552844) this means to include all the individual codes that are part of a panel"/>
<type value="string"/>
</parameter>
<parameter>
<name value="system"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<documentation value="The system for the code(s). Or provide a coding instead"/>
<type value="uri"/>
</parameter>
<parameter>
<name value="coding"/>
<use value="in"/>
<min value="0"/>
<max value="*"/>
<documentation value="The test code upon which the statistics are being performed, as a Coding"/>
<type value="Coding"/>
</parameter>
<parameter>
<name value="duration"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<documentation value="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"/>
<type value="decimal"/>
</parameter>
<parameter>
<name value="period"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<documentation value="The time period over which the calculations to be performed, if a duration is not provided"/>
<type value="Period"/>
</parameter>
<parameter>
<name value="statistic"/>
<use value="in"/>
<min value="1"/>
<max value="*"/>
<documentation value="averagemaxmincount The statistical operations to be performed on the relevant operations. Multiple statistics operations can be specified. These codes are defined [here](valuesetobservationstatistics.html)"/>
<type value="code"/>
</parameter>
<parameter>
<name value="include"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<documentation value="Whether to return the observations on which the statistics are based"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="limit"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<documentation value="If an include parameter is specified, a limit may also be specified to limit the number of source Observations returned. If the include paramter is absent or equal to "false" the limit parameter SHALL be ignored by the server"/>
<type value="positiveInt"/>
</parameter>
<parameter>
<name value="return"/>
<use value="out"/>
<min value="1"/>
<max value="*"/>
<documentation value="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 `final`."/>
<type value="Observation"/>
</parameter>
<parameter>
<name value="source"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<documentation value="Source observations on which the statistics are based"/>
<type value="Observation"/>
</parameter>
</OperationDefinition>