STU 3 Ballot

This page is part of the FHIR Specification (v1.6.0: STU 3 Ballot 4). 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 R4 R3

10.1.14 Vital Signs Profile

10.1.15 Introduction

The FHIR Vitals Signs profile provides a common data model and API documentation for searching and fetching Vitals Signs. To be conformant to FHIR, the implementation SHALL conform to this profile for the vitals sign observations listed in the table below. Support for basic mandatory searching of resources are defined below in the Quick Start section. It is based on the Data Access Framework (DAF) Vital Signs .

This profile represents a minimum set of vital signs observations. It does not require the support of any of these vital signs, but when do, you must represent them using this profile. In addition, if you have a blood pressure observation, you must have both a systolic and a diastolic component, though one or both may have dataAbsentReason instead of a value. Other profiles may make rules about which vital sign must be present.

10.1.16 Scope and Usage

The following data-elements in the Observation resource are mandatory (i.e data MUST be present). These are presented below in simple human-readable explanation. Refer to the table for additional quidance and examples for each vital sign. The StructureDefinition: Vital Signs Profile. provides the complete formal definition profile in summary, differental and snapshot views

Each Observation must have:

  • a patient
  • a time indicating when the measurement was taken
  • a LOINC code which tells you what is being measured and is taken from the "LOINC Code" column in the table below.
    • note: additional codes that translate or map to these are allowed - e.g. method specific LOINC Codes, SNOMED CT concepts, system specific codes
  • a numeric result value and
    • note: if there is no numeric result then you have to supply a reason
  • a reference range if it's available
  • a status
  • a category code of 'vital-signs'

10.1.16.1 Vital Signs Table

Note to reviewers: Several examples provided below link to external references. They will be updated to link to references within the specification in the future following the connectathon freeze period

Vital Sign LOINC Code Units Notes Examples
Vital signs 8716-3 This is the top-level grouping structure for a set of vital signs. It has no value in Observation.valueQuantity ; instead, it just includes related links (with type=has-member) to the Observations in this set (e.g. respiratory rate, heart rate, BP). Note that querying for the grouping (panel) code may miss individual results that are not grouped. Example
Respiratory rate 9279-1 /min Example
Heart rate 8867-4 /min Example
Oxygen saturation 59408-5  % LOINC has deprecated 2710-2 (which is listed in C-CDA) and replaced it with 59408-5. Example
Body temperature 8310-5 Cel, [degF] Example
Body height 8302-2 cm, [in_i] Example
Head circumference 9843-4 cm, [in_i] Example
Body weight 29463-7 g, kg,[lb_av] Example
Body mass index 39156-5 kg/m2 Example
Blood pressure systolic and diastolic 55284-4 This is a grouping structure. It has no value in Observation.valueQuantity but contains at least two component - systolic blood pressure and diastolic blood pressure. Example
Systolic blood pressure 8480-6 mm[Hg] This lives in in the Observation.component structure on a "systolic and diastolic" Observation Example
Diastolic blood pressure 8462-4 mm[Hg] This lives in Observation.component structure on a "systolic and diastolic" Observation Example

DataAbsentReason Example

Mean blood pressure 8478-0 mm[Hg] Will define this as Mean Arterial Pressure (MAP) = 2/3DP + 1/3SP Example

10.1.17 Quick Start

Below is a quick overview of the required search and read operations

10.1.17.1 GET [base]/Observation?patient=[id]&category=vital-signs

Support: Mandatory to support search by category code.

Implementation Notes: Search based on vital sign category code. This fetches a bundle of all Observation resources with category 'vital-signs' for the specified patient (how to search by reference) and (how to search by token).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
Example:
[GET https://fhir-open-api-dstu2.smarthealthit.org/Observation?patient=1186747&category=vital-signs ]

10.1.17.2 GET [base]/Observation?patient=[id]&code=[vital sign LOINC]

Support: Mandatory to support search by vital sign LOINCs listed above.

Implementation Notes: Search based on vital sign LOINC code. This fetches a bundle of all Observation resources for a specific vital sign listed in the table above for the specified patient (how to search by reference) and (how to search by token).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
Example:
Search for all heart rate observations for a patient:
[GET https://fhir-open-api-dstu2.smarthealthit.org/Observation?patient=1186747&code=8867-4 ]

10.1.17.3 GET [base]/Observation?patient=[id]&code=[vital sign1 LOINC, vital sign2 LOINC, etc]

Support: Mandatory to support search by multiple vital sign LOINCs listed above. .

Implementation Notes: Search based on multiple vital sign LOINC codes. This fetches a bundle of all Observation resources for specific vital signs listed in the table above for the specified patient (how to search by reference) and (how to search by token) and (how to search for multiple values)

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
Example:
Search for all heart rate, respiratory rate and blood pressure observations for a patient
[GET https://fhir-open-api-dstu2.smarthealthit.org/Observation?patient=1186747&code=8867-4,9279-1,55284-4 ]

10.1.17.4 GET [base]/Observation?patient=[id]&category=vital-signs&date=[eq|ne|lt|gt|geyyyy-mm-dd]

Support: Should support search by category code and date

Implementation Notes: Search based on vital sign category code and date. This fetches a bundle of all Observation resources with category 'vital-signs' for the specified patient for a specified time period (how to search by reference)and (how to search by token) and (how to search by date).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
Example:
Find all the vital signs after 2013-03-14
[GET http://fhir2.healthintersections.com.au/open/Observation?patient=555580&category=vital-signs&date=ge2015-01-14 ]


10.1.18 References

10.1.18.1 Content

Profiles:
VitalSignsDefines constraints and extensions on the Observation resource for use in querying and retrieving Vital Signs information.
BodyWeightFHIR Body Weight Profile
RespRateFHIR Respiratory Rate Profile
HeartRateFHIR Heart Rate Profile
BodyTempFHIR Body Temperature Profile
BodyHeightFHIR Body Height Profile
HeadCircumFHIR Head Circumference Profile
OxygenSatFHIR Oxygen Saturation Profile
BMIFHIR Body Mass Index (BMI) Profile
MBPFHIR Mean Blood Pressure Profile
BPFHIR Blood Pressure Profile