This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions

Example OperationDefinition/Observation-stats (Narrative)

Orders and Observations Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: Device, Encounter, Patient, Practitioner, RelatedPerson

This is the narrative for the resource. See also the XML, JSON or Turtle format.

Note that this is the formal definition for the stats operation as an OperationDefinition on Observation. See the Operation documentation

URL: [base]/Observation/$stats



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


The test code(s) upon which the statistics are being performed. Provide along with a system, or as a coding. For example, the LOINC code = 2339-0 (Glucose [Mass/​volume] in Blood) will evaluate all relevant Observations with this code in Observation.code and Observation.component.code. For LOINC codes that are panels, e.g., 85354-9(Blood pressure panel with all children optional), the stats operation returns statistics for each of the individual panel measurements. That means it will include and evaluate all values grouped by code for all the individual observations that are: 1) referenced in .related for .related.type = 'has-member' and 2) component observations in Observation.component.


The system for the code(s). Or provide a coding instead


The test code upon which the statistics are being performed, as a Coding


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


The time period over which the calculations to be performed, if a duration is not provided

INstatistic1..*codeStatistics Code (Required)

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


Whether to return the observations on which the statistics are based


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


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.


Source observations on which the statistics are based

If modifier extensions are present in the Observation, they must be accounted for by implementers. A modifier extension may affect the observation.value in a way that it should be excluded from the from the calculations.

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.



Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.