This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions
Orders and Observations ![]() | Maturity Level: 0 | Trial Use | Use Context: Any |
The canonical URL for this profile is:
http://hl7.org/fhir/StructureDefinition/vitalsigns
FHIR Vital Signs Profile
Vital signs will be one of the first areas where there is a need for a single, global vocabulary to allow for ubiquitous access and re-use. Particularly with the use of wearables by patients where they want to/need to share information from those devices. To meet this need there must be a consistent vocabulary and a common syntax to achieve semantic interoperability. The FHIR Vital Signs profile sets minimum expectations for the Observation resource to record, search and fetch the vital signs associated with a patient that include the primary vital signs plus additional measurements such as height, weight and BMI. Support for basic mandatory searching of resources is defined below in the Quick Start section. When a FHIR implementation supports any of the vital signs listed below, the implementation SHALL conform to this profile for the vital sign observation.
These requirements were originally developed, balloted, and published in FHIR DSTU2 as part of the ONC sponsored Data Access Framework (DAF) project and were subsequently updated to define the minimum mandatory conformance requirements needed for accessing patient data as defined by the Argonaut
pilot implementations.
Example Usage Scenarios:
The following are example usage scenarios for this profile:
The following data-elements are mandatory (i.e. data SHALL be present). These are presented below in a simple human-readable explanation. Profile-specific guidance and valid examples are provided as well. Note that many of the examples capture more than the minimum required. The links to the Profile Definitions provide the formal views of the profile content, descriptions, mappings and the StructureDefinitions in JSON and XML.
Each Observation must have:
Vital Signs Profile : Link to the formal definition views for the vital signs listed in this table.
Profile Name | "Magic Value" (LOINC) | LOINC Name and Comments | UCUM Unit Code | Examples |
---|---|---|---|---|
Vital Signs Panel | 85353-1 | Vital signs, weight, height, head circumference, oxygen saturation and BMI panel - It represent a panel of vital signs listed in this table. All members of the panel are optional and note that querying for the panel may miss individual results that are not part of the actual panel. When used, Observation.valueQuantity is not present; instead, related links (with type=has-member) reference the vital signs observations (e.g. respiratory rate, heart rate, BP, etc.). This code replaces the deprecated code 8716-3 - Vital signs which is used in the Argonaut Data Query Implementation Guide. | - | Vital Signs Panel Example |
Respiratory Rate | 9279-1 | Respiratory Rate | /min | Respiratory Rate Example |
Heart rate | 8867-4 | Heart rate - To supplement this vital sign observation, 8887-2 - Heart rate device type MAY be included as an additional observation. | /min | Heart Rate Example |
Oxygen saturation | 2708-6 | Oxygen saturation in Arterial blood - This code replaces 59408-5 Oxygen saturation in Arterial blood by Pulse oximetry which MAY be included as an additional observation code. | % | Oxygen Saturation Example |
Body temperature | 8310-5 | Body temperature - To supplement this vital sign observation, 8327-9 - Body temperature measurement site (oral, forehead, rectal, etc.) and 8326-1 -Type of body temperature device MAY be used as additional observations. | Cel, [degF] | Body Temperature Example |
Body height | 8302-2 | Body height - To supplement this vital sign observation, 8306-3 -Body height - lying (i.e., body length - typically used for infants) MAY be included as an additional observation code. | cm, [in_i] | Body height Example |
Head circumference | 9843-4 | Head Occipital-frontal circumference | cm, [in_i] | Head Circumference Example |
Body weight | 29463-7 | Body weight - To supplement this vital sign observation, 8352-7 - Clothing worn during measure and 8361-8 - Body position with respect to gravity MAY be included as additional observation codes. | g, kg,[lb_av] | Body Weight Example |
Body mass index | 39156-5 | Body mass index (BMI) [Ratio] | kg/m2 | Body Mass Example |
Blood pressure systolic and diastolic | 85354-9 | Blood pressure panel with all children optional - This is a component observation. It has no value in Observation.valueQuantity and contains at least one component (systolic and/or diastolic). To supplement this vital sign observation, 8478-0 - Mean blood pressure, 8357-6 - Blood pressure method, 41904-4 - Blood pressure measurement site, 8358-4 - Blood pressure device cuff size, 41901-0 - Type of blood pressure device MAY be used as additional observations. | - | Blood Pressure Example, Blood Pressure Example with missing Diastolic measurement |
Systolic blood pressure | 8480-6 | Systolic blood pressure - Observation.component code for a blood pressure Observation | mm[Hg] | Blood Pressure Example |
Diastolic blood pressure | 8462-4 | Diastolic blood pressure - Observation.component code for a blood pressure Observation | mm[Hg] | Blood Pressure Example |
Below is an overview of required search and read operations
Clients
GET [base]/Observation?patient=[id]&category=vital-signs
.GET [base]/Observation?patient=[id]&category=vital-signs&date=[date]{&date=[date]}
.GET [base]/Observation?patient=[id]&code[vital sign LOINC{,LOINC2,LOINC3,...}]
.GET [base]/Observation?patient=[id]&code=[LOINC{,LOINC2...}]vital-signs&date=[date]{&date=[date]}
.Servers
GET [base]/Observation?patient=[id]&category=vital-signs
.GET [base]/Observation?patient=[id]&category=vital-signs&date=[date]{&date=[date]}
.GET [base]/Observation?patient=[id]&code[vital sign LOINC{,LOINC2,LOINC3,...}]
.GET [base]/Observation?patient=[id]&code=[LOINC{,LOINC2...}]vital-signs&date=[date]{&date=[date]}
.Example: Search for all Vital Signs measurements for a patient
GET [base]/Observation?patient=1186747&category=vital-signs
Support: Mandatory to support search by category code.
Implementation Notes: Search based on vital sign category code. This search 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). The table above is the minimum set, additional vital signs are allowed.
Response Class:
Example: Search for all heart rate observations for a patient:
GET [base]/Observation?patient=1186747&code=8867-4
Example: Search for all heart rate, respiratory rate and blood pressure observations for a patient:
GET [base]/Observation?patient=1186747&code=8867-4,9279-1,85354-9
Support: Mandatory to support search by vital sign LOINC(s) listed above.
Implementation Notes: 1)Search based on vital sign LOINC code(s). This fetches a bundle of all Observation resources for specific vital sign(s) listed in the table above for the specified patient (how to search by reference) and [how to search by token)]. 2) The "code" parameter searches only Observation.code
. For example when fetching blood pressures the resource will be only be returned when the search is based on 85354-9(Systolic and Diastolic BP). Using the component codes 8480-6(Systolic BP) or 8462-4 (Diastolic BP) will not return the resource . In order to search both Observation.code
and Observation.component.code
in a single query, use the "combo-code" search parameter.
Response Class:
Example: Find all the blood pressures after 2015-01-14
GET [base]/Observation?patient=555580&code=85354-9&date=ge2015-01-14
Support: Mandatory to 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).
Response Class:
This profile was published on Sat, Aug 11, 2018 00:00+0000 as a draft by Health Level Seven International (Orders and Observations Workgroup).
Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.
This structure is derived from Observation.
Summary
"#### Complete Summary of the Mandatory Requirements
One status in Observation.status
which has a required binding to:
A category in Observation.category
which must have:
Observation.category.coding.system
="http://terminology.hl7.org/CodeSystem/observation-category"Observation.category.coding.code
= "vital-signs"A code in Observation.code
Observation.code.coding.system
= "http://loinc.org""Observation.code.coding.code
which has an extensible binding to:
One patient in Observation.subject
A date and time in effectiveDateTime
or effectivePeriod
Either one Observation.value[x]
or, if there is no value, one code in Observation.DataAbsentReason
When using a panel code to group component observations (Note: See
the comments regarding blood pressure in the table above), one or
more Observation.component.code
each of which must have:
Observation.component.code.coding.system
=""http://loinc.org""
Observation.code.coding.code
which has an extensible binding to:
Either one Observation.component.valueQuantity
or, if there is
no value, one code in Observation.component.DataAbsentReason
When using a panel code to group observations, one or more reference
to Vitals Signs Observations in Observation.related.target
Observation.related.type
= "has-member""Mandatory: 9 elements (+1 nested mandatory element)
Must-Support: 16 elements
Fixed Value: 2 elements
Slices
This structure defines the following Slices:
This indicates the differences between this profile and the base Observation structure.
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() | C ![]() | 0..* | Observation | FHIR Vital Signs Profile vs-2: If there is no component or hasMember element then either a value[x] or a data absent reason must be present. |
![]() ![]() ![]() | S | 1..1 | code | registered | preliminary | final | amended + Binding: Observation Status (required) |
![]() ![]() ![]() | S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by value:coding.code, value:coding.system |
![]() ![]() ![]() ![]() | S | 1..1 | CodeableConcept | Classification of type of observation |
![]() ![]() ![]() ![]() ![]() | S | 1..* | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() ![]() ![]() | S | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category |
![]() ![]() ![]() ![]() ![]() ![]() | S | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs |
![]() ![]() ![]() | S | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Binding: Vital Signs (extensible): This identifies the vital sign result type. Original source C-CDA R1.1 , HITSP Vital Sign Result Type. |
![]() ![]() ![]() | S | 1..1 | Reference(Patient) | Who and/or what the observation is about |
![]() ![]() ![]() | SC ![]() | 1..1 | Often just a dateTime for Vital Signs vs-1: if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day | |
![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() | Period | |||
![]() ![]() ![]() | SC ![]() | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period, Attachment, Reference(MolecularSequence) | Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. |
![]() ![]() ![]() | SC ![]() | 0..1 | CodeableConcept | Why the result is missing |
![]() ![]() ![]() | 0..* | Reference(QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Used when reporting vital signs panel components | |
![]() ![]() ![]() | 0..* | Reference(DocumentReference | ImagingStudy | QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Related resource from which the observation is made | |
![]() ![]() ![]() | SC ![]() | 0..* | BackboneElement | Used when reporting systolic and diastolic blood pressure. vs-3: If there is no a value a data absent reason must be present |
![]() ![]() ![]() ![]() | S | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: Vital Signs (extensible): This identifies the vital sign result type. Original source C-CDA R1.1 , HITSP Vital Sign Result Type. |
![]() ![]() ![]() ![]() | SC ![]() | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period, Attachment, Reference(MolecularSequence) | Vital Sign Value |
![]() ![]() ![]() ![]() | S | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (required): Commonly encountered UCUM units for recording Vital Signs. |
![]() ![]() ![]() ![]() | SC ![]() | 0..1 | CodeableConcept | Why the component result is missing |
![]() ![]() |
This provides the consolidated view (aka snapshot) of the profile after applying the changes in this profile to the base Observation structure.
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() | C ![]() | 0..* | Observation | FHIR Vital Signs Profile vs-2: If there is no component or hasMember element then either a value[x] or a data absent reason must be present. |
![]() ![]() ![]() | Σ | 0..1 | id | Logical id of this artifact |
![]() ![]() ![]() | Σ | 0..1 | Meta | Metadata about the resource |
![]() ![]() ![]() | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() | 0..1 | code | Language of the resource content Binding: All Languages (required): IETF language tag for a human language | |
![]() ![]() ![]() | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
![]() ![]() ![]() | 0..* | Resource | Contained, inline Resources | |
![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() | Σ | 0..* | Identifier | Business Identifier for observation |
![]() ![]() ![]() | ΣTU | 0..1 | canonical(ObservationDefinition), Reference(ObservationDefinition) | Instantiates FHIR ObservationDefinition |
![]() ![]() ![]() | Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order |
![]() ![]() ![]() | TU | 0..* | BackboneElement | Triggering observation(s) |
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() | Σ | 1..1 | Reference(Observation) | Triggering observation |
![]() ![]() ![]() ![]() | Σ | 1..1 | code | reflex | repeat | re-run Binding: triggered Bytype (required): The type of TriggeredBy Observation. |
![]() ![]() ![]() ![]() | 0..1 | string | Reason that the observation was triggered | |
![]() ![]() ![]() | Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy | GenomicStudy) | Part of referenced event |
![]() ![]() ![]() | ?!SΣ | 1..1 | code | registered | preliminary | final | amended + Binding: Observation Status (required) |
![]() ![]() ![]() | S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by value:coding.code, value:coding.system Binding: Observation Category Codes (preferred): Codes for high level observation categories. |
![]() ![]() ![]() ![]() | S | 1..1 | CodeableConcept | Classification of type of observation Binding: Observation Category Codes (preferred): Codes for high level observation categories. |
![]() ![]() ![]() ![]() ![]() | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() | SΣ | 1..* | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() ![]() | SΣ | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category |
![]() ![]() ![]() ![]() ![]() ![]() | Σ | 0..1 | string | Version of the system - if relevant |
![]() ![]() ![]() ![]() ![]() ![]() | SΣC ![]() | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs |
![]() ![]() ![]() ![]() ![]() ![]() | ΣC ![]() | 0..1 | string | Representation defined by the system |
![]() ![]() ![]() ![]() ![]() ![]() | Σ | 0..1 | boolean | If this coding was chosen directly by the user |
![]() ![]() ![]() ![]() ![]() | Σ | 0..1 | string | Plain text representation of the concept |
![]() ![]() ![]() | SΣC ![]() | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Binding: Vital Signs (extensible): This identifies the vital sign result type. Original source C-CDA R1.1 , HITSP Vital Sign Result Type. |
![]() ![]() ![]() | SΣ | 1..1 | Reference(Patient) | Who and/or what the observation is about |
![]() ![]() ![]() | ΣTU | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record |
![]() ![]() ![]() | Σ | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made |
![]() ![]() ![]() | SΣC ![]() | 1..1 | Often just a dateTime for Vital Signs vs-1: if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day | |
![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() | Period | |||
![]() ![]() ![]() | Σ | 0..1 | instant | Date/Time this version was made available |
![]() ![]() ![]() | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who is responsible for the observation |
![]() ![]() ![]() | SΣC ![]() | 0..1 | Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. | |
![]() ![]() ![]() ![]() | Quantity | |||
![]() ![]() ![]() ![]() | CodeableConcept | |||
![]() ![]() ![]() ![]() | string | |||
![]() ![]() ![]() ![]() | boolean | |||
![]() ![]() ![]() ![]() | integer | |||
![]() ![]() ![]() ![]() | Range | |||
![]() ![]() ![]() ![]() | Ratio | |||
![]() ![]() ![]() ![]() | SampledData | |||
![]() ![]() ![]() ![]() | time | |||
![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() | Period | |||
![]() ![]() ![]() ![]() | Attachment | |||
![]() ![]() ![]() ![]() | Reference(MolecularSequence) | |||
![]() ![]() ![]() | SC ![]() | 0..1 | CodeableConcept | Why the result is missing Binding: Data Absent Reason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
![]() ![]() ![]() | 0..* | CodeableConcept | High, low, normal, etc Binding: Observation Interpretation Codes (extensible): Codes identifying interpretations of observations. | |
![]() ![]() ![]() | 0..* | Annotation | Comments about the observation | |
![]() ![]() ![]() | C ![]() | 0..1 | CodeableConcept | Observed body part Binding: SNOMED CT Body Structures (example): SNOMED CT Body site concepts |
![]() ![]() ![]() | C ![]() | 0..1 | Reference(BodyStructure) | Observed body structure |
![]() ![]() ![]() | 0..1 | CodeableConcept | How it was done Binding: Observation Methods (example): Methods for simple observations. | |
![]() ![]() ![]() | C ![]() | 0..1 | Reference(Specimen | Group) | Specimen used for this observation |
![]() ![]() ![]() | 0..1 | Reference(Device | DeviceMetric) | A reference to the device that generates the measurements or the device settings for the device | |
![]() ![]() ![]() | C ![]() | 0..* | BackboneElement | Provides guide for interpretation |
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() | C ![]() | 0..1 | SimpleQuantity | Low Range, if relevant |
![]() ![]() ![]() ![]() | C ![]() | 0..1 | SimpleQuantity | High Range, if relevant |
![]() ![]() ![]() ![]() | TU | 0..1 | CodeableConcept | Normal value, if relevant Binding: Observation Reference Range Normal Value Codes (extensible): Codes identifying the normal value of the observation. |
![]() ![]() ![]() ![]() | TU | 0..1 | CodeableConcept | Reference range qualifier Binding: Observation Reference Range Meaning Codes (preferred): Code for the meaning of a reference range. |
![]() ![]() ![]() ![]() | 0..* | CodeableConcept | Reference range population Binding: Observation Reference Range Applies To Codes (example): Codes identifying the population the reference range applies to. | |
![]() ![]() ![]() ![]() | 0..1 | Range | Applicable age range, if relevant | |
![]() ![]() ![]() ![]() | C ![]() | 0..1 | markdown | Text based reference range in an observation |
![]() ![]() ![]() | Σ | 0..* | Reference(QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Used when reporting vital signs panel components |
![]() ![]() ![]() | Σ | 0..* | Reference(DocumentReference | ImagingStudy | QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Related resource from which the observation is made |
![]() ![]() ![]() | SΣC ![]() | 0..* | BackboneElement | Used when reporting systolic and diastolic blood pressure. vs-3: If there is no a value a data absent reason must be present |
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() | SΣC ![]() | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: Vital Signs (extensible): This identifies the vital sign result type. Original source C-CDA R1.1 , HITSP Vital Sign Result Type. |
![]() ![]() ![]() ![]() | SΣC ![]() | 0..1 | Vital Sign Value Slice: Unordered, Open by type:$this | |
![]() ![]() ![]() ![]() ![]() | Quantity | |||
![]() ![]() ![]() ![]() ![]() | CodeableConcept | |||
![]() ![]() ![]() ![]() ![]() | string | |||
![]() ![]() ![]() ![]() ![]() | boolean | |||
![]() ![]() ![]() ![]() ![]() | integer | |||
![]() ![]() ![]() ![]() ![]() | Range | |||
![]() ![]() ![]() ![]() ![]() | Ratio | |||
![]() ![]() ![]() ![]() ![]() | SampledData | |||
![]() ![]() ![]() ![]() ![]() | time | |||
![]() ![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() ![]() | Period | |||
![]() ![]() ![]() ![]() ![]() | Attachment | |||
![]() ![]() ![]() ![]() ![]() | Reference(MolecularSequence) | |||
![]() ![]() ![]() ![]() ![]() | SΣ | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (required): Commonly encountered UCUM units for recording Vital Signs. |
![]() ![]() ![]() ![]() | SC ![]() | 0..1 | CodeableConcept | Why the component result is missing Binding: Data Absent Reason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
![]() ![]() ![]() ![]() | 0..* | CodeableConcept | High, low, normal, etc Binding: Observation Interpretation Codes (extensible): Codes identifying interpretations of observations. | |
![]() ![]() ![]() ![]() | 0..* | See referenceRange (Observation) | Provides guide for interpretation of component result | |
![]() ![]() |
<!-- Observationvitalsigns --><Observation xmlns="http://hl7.org/fhir" > <!-- from Element: extension --> <id value="[id]"/><!-- 0..1 Logical id of this artifact --> <meta><!-- I 0..1 Meta Metadata about the resource --></meta> <implicitRules value="[uri]"/><!-- I 0..1 A set of rules under which this content was created --> <language value="[code]"/><!-- I 0..1 Language of the resource content --> <text><!-- I 0..1 Narrative Text summary of the resource, for human interpretation --></text> <contained><!-- 0..* Resource Contained, inline Resources --></contained> <modifierExtension><!-- I 0..* Extension Extensions that cannot be ignored --></modifierExtension> <identifier><!-- I 0..* Identifier Business Identifier for observation --></identifier> <instantiates[x]><!-- I 0..1 canonical|Reference(ObservationDefinition) Instantiates FHIR ObservationDefinition --></instantiates[x]> <basedOn><!-- I 0..* Reference(CarePlan) Fulfills plan, proposal or order --></basedOn> <triggeredBy> I 0..* BackboneElement <!-- I 0..* Triggering observation(s) --> <modifierExtension><!-- I 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <observation><!-- I 1..1 Reference(Observation) Triggering observation --></observation> <type value="[code]"/><!-- I 1..1 reflex | repeat | re-run --> <reason value="[string]"/><!-- I 0..1 Reason that the observation was triggered --> </triggeredBy> <partOf><!-- I 0..* Reference(MedicationAdministration) Part of referenced event --></partOf> <status value="[code]"/><!-- I 1..1 registered | preliminary | final | amended + --> <-- category sliced by value:coding.code, value:coding.system in the specified orderOpen--> <category> I 1..1 CodeableConcept <!-- I 1..1 Classification of type of observation --> <coding> I 1..* Coding <!-- I 1..* Code defined by a terminology system --> <system value="[uri]"/><!-- I 1..1 Identity of the terminology system --> <version value="[string]"/><!-- I 0..1 Version of the system - if relevant --> <code value="[code]"/><!-- I 1..1 Symbol in syntax defined by the system --> <display value="[string]"/><!-- I 0..1 Representation defined by the system --> <userSelected value="[boolean]"/><!-- I 0..1 If this coding was chosen directly by the user --> </coding> <text value="[string]"/><!-- I 0..1 Plain text representation of the concept --> </category> <code><!-- I 1..1 CodeableConcept Coded Responses from C-CDA Vital Sign Results --></code> <subject><!-- I 1..1 Reference(Patient) Who and/or what the observation is about --></subject> <focus><!-- I 0..* Reference(Resource) What the observation is about, when it is not about the subject of record --></focus> <encounter><!-- I 0..1 Reference(Encounter) Healthcare event during which this observation is made --></encounter> <effective[x]><!-- I 1..1 dateTime|Period Often just a dateTime for Vital Signs --></effective[x]> <issued value="[instant]"/><!-- I 0..1 Date/Time this version was made available --> <performer><!-- I 0..* Reference(Practitioner) 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(MolecularSequence) Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. --></value[x]> <dataAbsentReason><!-- I 0..1 CodeableConcept Why the result is missing --></dataAbsentReason> <interpretation><!-- I 0..* CodeableConcept High, low, normal, etc --></interpretation> <note><!-- I 0..* Annotation Comments about the observation --></note> <bodySite><!-- I 0..1 CodeableConcept Observed body part --></bodySite> <bodyStructure><!-- I 0..1 Reference(BodyStructure) Observed body structure --></bodyStructure> <method><!-- I 0..1 CodeableConcept How it was done --></method> <specimen><!-- I 0..1 Reference(Specimen) Specimen used for this observation --></specimen> <device><!-- I 0..1 Reference(Device) A reference to the device that generates the measurements or the device settings for the device --></device> <referenceRange> I 0..* BackboneElement <!-- I 0..* Provides guide for interpretation --> <modifierExtension><!-- I 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <low><!-- I 0..1 Quantity Low Range, if relevant --></low> <high><!-- I 0..1 Quantity High Range, if relevant --></high> <normalValue><!-- I 0..1 CodeableConcept Normal value, if relevant --></normalValue> <type><!-- I 0..1 CodeableConcept Reference range qualifier --></type> <appliesTo><!-- I 0..* CodeableConcept Reference range population --></appliesTo> <age><!-- I 0..1 Range Applicable age range, if relevant --></age> <text value="[markdown]"/><!-- I 0..1 Text based reference range in an observation --> </referenceRange> <hasMember><!-- I 0..* Reference(QuestionnaireResponse) Used when reporting vital signs panel components --></hasMember> <derivedFrom><!-- I 0..* Reference(DocumentReference) Related resource from which the observation is made --></derivedFrom> <component> I 0..* BackboneElement <!-- I 0..* Used when reporting systolic and diastolic blood pressure. --> <modifierExtension><!-- I 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <code><!-- I 1..1 CodeableConcept Type of component observation (code / type) --></code> <-- value[x] sliced by type:$this in the specified orderOpen--> <valueQuantity><!-- I 0..1 Quantity Vital Sign Value recorded with UCUM --></valueQuantity> <dataAbsentReason><!-- I 0..1 CodeableConcept Why the component result is missing --></dataAbsentReason> <interpretation><!-- I 0..* CodeableConcept High, low, normal, etc --></interpretation> <referenceRange><!-- See http://hl7.org/fhir/StructureDefinition/Observation#Observation.referenceRange Provides guide for interpretation of component result --></referenceRange> </component> </Observation>
{ // Observationvitalsigns // from Element: extension "meta" : { Meta }, // IMetadata about the resource "implicitRules" : "<uri>", // IA set of rules under which this content was created "language" : "<code>", // ILanguage of the resource content "text" : { Narrative }, // IText summary of the resource, for human interpretation "contained" : [{ Resource }], //Contained, inline Resources "modifierExtension" : [{ Extension }], // IExtensions that cannot be ignored "identifier" : [{ Identifier }], // IBusiness Identifier for observation // value[x]: Instantiates FHIR ObservationDefinition. One of these 2: "instantiatesCanonical" : "<canonical>", // IInstantiates FHIR ObservationDefinition "instantiatesReference" : { Reference(ObservationDefinition) }, // IInstantiates FHIR ObservationDefinition "basedOn" : [{ Reference(CarePlan) }], // IFulfills plan, proposal or order "triggeredBy" : [{ BackboneElement }], // ITriggering observation(s) "partOf" : [{ Reference(MedicationAdministration) }], // IPart of referenced event "status" : "<code>", // I R! registered | preliminary | final | amended + "category" : [ // sliced by value:coding.code, value:coding.system in the specified order, Open { // Classification of type of observation // I R! // from Element: extension "extension" : [ // sliced by value:url in the specified order, Open ] "coding" : [{ Coding }], // I R! Code defined by a terminology system "text" : "<string>" // IPlain text representation of the concept } ], "code" : { CodeableConcept }, // I R! Coded Responses from C-CDA Vital Sign Results "subject" : { Reference(Patient) }, // I R! Who and/or what the observation is about "focus" : [{ Reference(Resource) }], // IWhat the observation is about, when it is not about the subject of record "encounter" : { Reference(Encounter) }, // IHealthcare event during which this observation is made // value[x]: Often just a dateTime for Vital Signs. One of these 2: "effectiveDateTime" : "<dateTime>", // I R! Often just a dateTime for Vital Signs "effectivePeriod" : { Period }, // I R! Often just a dateTime for Vital Signs "issued" : "<instant>", // IDate/Time this version was made available "performer" : [{ Reference(Practitioner) }], // IWho is responsible for the observation // value[x]: Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept.. One of these 13: "valueQuantity" : { Quantity }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueCodeableConcept" : { CodeableConcept }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueString" : "<string>", // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueBoolean" : <boolean>, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueInteger" : <integer>, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueRange" : { Range }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueRatio" : { Ratio }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueSampledData" : { SampledData }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueTime" : "<time>", // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueDateTime" : "<dateTime>", // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valuePeriod" : { Period }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueAttachment" : { Attachment }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueReference" : { Reference(MolecularSequence) }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "dataAbsentReason" : { CodeableConcept }, // IWhy the result is missing "interpretation" : [{ CodeableConcept }], // IHigh, low, normal, etc "note" : [{ Annotation }], // IComments about the observation "bodySite" : { CodeableConcept }, // IObserved body part "bodyStructure" : { Reference(BodyStructure) }, // IObserved body structure "method" : { CodeableConcept }, // IHow it was done "specimen" : { Reference(Specimen) }, // ISpecimen used for this observation "device" : { Reference(Device) }, // IA reference to the device that generates the measurements or the device settings for the device "referenceRange" : [{ BackboneElement }], // IProvides guide for interpretation "hasMember" : [{ Reference(QuestionnaireResponse) }], // IUsed when reporting vital signs panel components "derivedFrom" : [{ Reference(DocumentReference) }], // IRelated resource from which the observation is made "component" : [{ BackboneElement }], // IUsed when reporting systolic and diastolic blood pressure. }
This structure is derived from Observation.
Summary
"#### Complete Summary of the Mandatory Requirements
One status in Observation.status
which has a required binding to:
A category in Observation.category
which must have:
Observation.category.coding.system
="http://terminology.hl7.org/CodeSystem/observation-category"Observation.category.coding.code
= "vital-signs"A code in Observation.code
Observation.code.coding.system
= "http://loinc.org""Observation.code.coding.code
which has an extensible binding to:
One patient in Observation.subject
A date and time in effectiveDateTime
or effectivePeriod
Either one Observation.value[x]
or, if there is no value, one code in Observation.DataAbsentReason
When using a panel code to group component observations (Note: See
the comments regarding blood pressure in the table above), one or
more Observation.component.code
each of which must have:
Observation.component.code.coding.system
=""http://loinc.org""
Observation.code.coding.code
which has an extensible binding to:
Either one Observation.component.valueQuantity
or, if there is
no value, one code in Observation.component.DataAbsentReason
When using a panel code to group observations, one or more reference
to Vitals Signs Observations in Observation.related.target
Observation.related.type
= "has-member""Mandatory: 9 elements (+1 nested mandatory element)
Must-Support: 16 elements
Fixed Value: 2 elements
Slices
This structure defines the following Slices:
Differential View
This indicates the differences between this profile and the base Observation structure.
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() | C ![]() | 0..* | Observation | FHIR Vital Signs Profile vs-2: If there is no component or hasMember element then either a value[x] or a data absent reason must be present. |
![]() ![]() ![]() | S | 1..1 | code | registered | preliminary | final | amended + Binding: Observation Status (required) |
![]() ![]() ![]() | S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by value:coding.code, value:coding.system |
![]() ![]() ![]() ![]() | S | 1..1 | CodeableConcept | Classification of type of observation |
![]() ![]() ![]() ![]() ![]() | S | 1..* | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() ![]() ![]() | S | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category |
![]() ![]() ![]() ![]() ![]() ![]() | S | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs |
![]() ![]() ![]() | S | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Binding: Vital Signs (extensible): This identifies the vital sign result type. Original source C-CDA R1.1 , HITSP Vital Sign Result Type. |
![]() ![]() ![]() | S | 1..1 | Reference(Patient) | Who and/or what the observation is about |
![]() ![]() ![]() | SC ![]() | 1..1 | Often just a dateTime for Vital Signs vs-1: if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day | |
![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() | Period | |||
![]() ![]() ![]() | SC ![]() | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period, Attachment, Reference(MolecularSequence) | Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. |
![]() ![]() ![]() | SC ![]() | 0..1 | CodeableConcept | Why the result is missing |
![]() ![]() ![]() | 0..* | Reference(QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Used when reporting vital signs panel components | |
![]() ![]() ![]() | 0..* | Reference(DocumentReference | ImagingStudy | QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Related resource from which the observation is made | |
![]() ![]() ![]() | SC ![]() | 0..* | BackboneElement | Used when reporting systolic and diastolic blood pressure. vs-3: If there is no a value a data absent reason must be present |
![]() ![]() ![]() ![]() | S | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: Vital Signs (extensible): This identifies the vital sign result type. Original source C-CDA R1.1 , HITSP Vital Sign Result Type. |
![]() ![]() ![]() ![]() | SC ![]() | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period, Attachment, Reference(MolecularSequence) | Vital Sign Value |
![]() ![]() ![]() ![]() | S | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (required): Commonly encountered UCUM units for recording Vital Signs. |
![]() ![]() ![]() ![]() | SC ![]() | 0..1 | CodeableConcept | Why the component result is missing |
![]() ![]() |
Snapshot View
This provides the consolidated view (aka snapshot) of the profile after applying the changes in this profile to the base Observation structure.
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() | C ![]() | 0..* | Observation | FHIR Vital Signs Profile vs-2: If there is no component or hasMember element then either a value[x] or a data absent reason must be present. |
![]() ![]() ![]() | Σ | 0..1 | id | Logical id of this artifact |
![]() ![]() ![]() | Σ | 0..1 | Meta | Metadata about the resource |
![]() ![]() ![]() | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() | 0..1 | code | Language of the resource content Binding: All Languages (required): IETF language tag for a human language | |
![]() ![]() ![]() | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
![]() ![]() ![]() | 0..* | Resource | Contained, inline Resources | |
![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() | Σ | 0..* | Identifier | Business Identifier for observation |
![]() ![]() ![]() | ΣTU | 0..1 | canonical(ObservationDefinition), Reference(ObservationDefinition) | Instantiates FHIR ObservationDefinition |
![]() ![]() ![]() | Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order |
![]() ![]() ![]() | TU | 0..* | BackboneElement | Triggering observation(s) |
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() | Σ | 1..1 | Reference(Observation) | Triggering observation |
![]() ![]() ![]() ![]() | Σ | 1..1 | code | reflex | repeat | re-run Binding: triggered Bytype (required): The type of TriggeredBy Observation. |
![]() ![]() ![]() ![]() | 0..1 | string | Reason that the observation was triggered | |
![]() ![]() ![]() | Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy | GenomicStudy) | Part of referenced event |
![]() ![]() ![]() | ?!SΣ | 1..1 | code | registered | preliminary | final | amended + Binding: Observation Status (required) |
![]() ![]() ![]() | S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by value:coding.code, value:coding.system Binding: Observation Category Codes (preferred): Codes for high level observation categories. |
![]() ![]() ![]() ![]() | S | 1..1 | CodeableConcept | Classification of type of observation Binding: Observation Category Codes (preferred): Codes for high level observation categories. |
![]() ![]() ![]() ![]() ![]() | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() | SΣ | 1..* | Coding | Code defined by a terminology system |
![]() ![]() ![]() ![]() ![]() ![]() | 0..1 | id | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() ![]() | SΣ | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category |
![]() ![]() ![]() ![]() ![]() ![]() | Σ | 0..1 | string | Version of the system - if relevant |
![]() ![]() ![]() ![]() ![]() ![]() | SΣC ![]() | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs |
![]() ![]() ![]() ![]() ![]() ![]() | ΣC ![]() | 0..1 | string | Representation defined by the system |
![]() ![]() ![]() ![]() ![]() ![]() | Σ | 0..1 | boolean | If this coding was chosen directly by the user |
![]() ![]() ![]() ![]() ![]() | Σ | 0..1 | string | Plain text representation of the concept |
![]() ![]() ![]() | SΣC ![]() | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Binding: Vital Signs (extensible): This identifies the vital sign result type. Original source C-CDA R1.1 , HITSP Vital Sign Result Type. |
![]() ![]() ![]() | SΣ | 1..1 | Reference(Patient) | Who and/or what the observation is about |
![]() ![]() ![]() | ΣTU | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record |
![]() ![]() ![]() | Σ | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made |
![]() ![]() ![]() | SΣC ![]() | 1..1 | Often just a dateTime for Vital Signs vs-1: if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day | |
![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() | Period | |||
![]() ![]() ![]() | Σ | 0..1 | instant | Date/Time this version was made available |
![]() ![]() ![]() | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who is responsible for the observation |
![]() ![]() ![]() | SΣC ![]() | 0..1 | Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. | |
![]() ![]() ![]() ![]() | Quantity | |||
![]() ![]() ![]() ![]() | CodeableConcept | |||
![]() ![]() ![]() ![]() | string | |||
![]() ![]() ![]() ![]() | boolean | |||
![]() ![]() ![]() ![]() | integer | |||
![]() ![]() ![]() ![]() | Range | |||
![]() ![]() ![]() ![]() | Ratio | |||
![]() ![]() ![]() ![]() | SampledData | |||
![]() ![]() ![]() ![]() | time | |||
![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() | Period | |||
![]() ![]() ![]() ![]() | Attachment | |||
![]() ![]() ![]() ![]() | Reference(MolecularSequence) | |||
![]() ![]() ![]() | SC ![]() | 0..1 | CodeableConcept | Why the result is missing Binding: Data Absent Reason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
![]() ![]() ![]() | 0..* | CodeableConcept | High, low, normal, etc Binding: Observation Interpretation Codes (extensible): Codes identifying interpretations of observations. | |
![]() ![]() ![]() | 0..* | Annotation | Comments about the observation | |
![]() ![]() ![]() | C ![]() | 0..1 | CodeableConcept | Observed body part Binding: SNOMED CT Body Structures (example): SNOMED CT Body site concepts |
![]() ![]() ![]() | C ![]() | 0..1 | Reference(BodyStructure) | Observed body structure |
![]() ![]() ![]() | 0..1 | CodeableConcept | How it was done Binding: Observation Methods (example): Methods for simple observations. | |
![]() ![]() ![]() | C ![]() | 0..1 | Reference(Specimen | Group) | Specimen used for this observation |
![]() ![]() ![]() | 0..1 | Reference(Device | DeviceMetric) | A reference to the device that generates the measurements or the device settings for the device | |
![]() ![]() ![]() | C ![]() | 0..* | BackboneElement | Provides guide for interpretation |
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() | C ![]() | 0..1 | SimpleQuantity | Low Range, if relevant |
![]() ![]() ![]() ![]() | C ![]() | 0..1 | SimpleQuantity | High Range, if relevant |
![]() ![]() ![]() ![]() | TU | 0..1 | CodeableConcept | Normal value, if relevant Binding: Observation Reference Range Normal Value Codes (extensible): Codes identifying the normal value of the observation. |
![]() ![]() ![]() ![]() | TU | 0..1 | CodeableConcept | Reference range qualifier Binding: Observation Reference Range Meaning Codes (preferred): Code for the meaning of a reference range. |
![]() ![]() ![]() ![]() | 0..* | CodeableConcept | Reference range population Binding: Observation Reference Range Applies To Codes (example): Codes identifying the population the reference range applies to. | |
![]() ![]() ![]() ![]() | 0..1 | Range | Applicable age range, if relevant | |
![]() ![]() ![]() ![]() | C ![]() | 0..1 | markdown | Text based reference range in an observation |
![]() ![]() ![]() | Σ | 0..* | Reference(QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Used when reporting vital signs panel components |
![]() ![]() ![]() | Σ | 0..* | Reference(DocumentReference | ImagingStudy | QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Related resource from which the observation is made |
![]() ![]() ![]() | SΣC ![]() | 0..* | BackboneElement | Used when reporting systolic and diastolic blood pressure. vs-3: If there is no a value a data absent reason must be present |
![]() ![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() | SΣC ![]() | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: Vital Signs (extensible): This identifies the vital sign result type. Original source C-CDA R1.1 , HITSP Vital Sign Result Type. |
![]() ![]() ![]() ![]() | SΣC ![]() | 0..1 | Vital Sign Value Slice: Unordered, Open by type:$this | |
![]() ![]() ![]() ![]() ![]() | Quantity | |||
![]() ![]() ![]() ![]() ![]() | CodeableConcept | |||
![]() ![]() ![]() ![]() ![]() | string | |||
![]() ![]() ![]() ![]() ![]() | boolean | |||
![]() ![]() ![]() ![]() ![]() | integer | |||
![]() ![]() ![]() ![]() ![]() | Range | |||
![]() ![]() ![]() ![]() ![]() | Ratio | |||
![]() ![]() ![]() ![]() ![]() | SampledData | |||
![]() ![]() ![]() ![]() ![]() | time | |||
![]() ![]() ![]() ![]() ![]() | dateTime | |||
![]() ![]() ![]() ![]() ![]() | Period | |||
![]() ![]() ![]() ![]() ![]() | Attachment | |||
![]() ![]() ![]() ![]() ![]() | Reference(MolecularSequence) | |||
![]() ![]() ![]() ![]() ![]() | SΣ | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (required): Commonly encountered UCUM units for recording Vital Signs. |
![]() ![]() ![]() ![]() | SC ![]() | 0..1 | CodeableConcept | Why the component result is missing Binding: Data Absent Reason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
![]() ![]() ![]() ![]() | 0..* | CodeableConcept | High, low, normal, etc Binding: Observation Interpretation Codes (extensible): Codes identifying interpretations of observations. | |
![]() ![]() ![]() ![]() | 0..* | See referenceRange (Observation) | Provides guide for interpretation of component result | |
![]() ![]() |
XML Template
<!-- Observationvitalsigns --><Observation xmlns="http://hl7.org/fhir" > <!-- from Element: extension --> <id value="[id]"/><!-- 0..1 Logical id of this artifact --> <meta><!-- I 0..1 Meta Metadata about the resource --></meta> <implicitRules value="[uri]"/><!-- I 0..1 A set of rules under which this content was created --> <language value="[code]"/><!-- I 0..1 Language of the resource content --> <text><!-- I 0..1 Narrative Text summary of the resource, for human interpretation --></text> <contained><!-- 0..* Resource Contained, inline Resources --></contained> <modifierExtension><!-- I 0..* Extension Extensions that cannot be ignored --></modifierExtension> <identifier><!-- I 0..* Identifier Business Identifier for observation --></identifier> <instantiates[x]><!-- I 0..1 canonical|Reference(ObservationDefinition) Instantiates FHIR ObservationDefinition --></instantiates[x]> <basedOn><!-- I 0..* Reference(CarePlan) Fulfills plan, proposal or order --></basedOn> <triggeredBy> I 0..* BackboneElement <!-- I 0..* Triggering observation(s) --> <modifierExtension><!-- I 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <observation><!-- I 1..1 Reference(Observation) Triggering observation --></observation> <type value="[code]"/><!-- I 1..1 reflex | repeat | re-run --> <reason value="[string]"/><!-- I 0..1 Reason that the observation was triggered --> </triggeredBy> <partOf><!-- I 0..* Reference(MedicationAdministration) Part of referenced event --></partOf> <status value="[code]"/><!-- I 1..1 registered | preliminary | final | amended + --> <-- category sliced by value:coding.code, value:coding.system in the specified orderOpen--> <category> I 1..1 CodeableConcept <!-- I 1..1 Classification of type of observation --> <coding> I 1..* Coding <!-- I 1..* Code defined by a terminology system --> <system value="[uri]"/><!-- I 1..1 Identity of the terminology system --> <version value="[string]"/><!-- I 0..1 Version of the system - if relevant --> <code value="[code]"/><!-- I 1..1 Symbol in syntax defined by the system --> <display value="[string]"/><!-- I 0..1 Representation defined by the system --> <userSelected value="[boolean]"/><!-- I 0..1 If this coding was chosen directly by the user --> </coding> <text value="[string]"/><!-- I 0..1 Plain text representation of the concept --> </category> <code><!-- I 1..1 CodeableConcept Coded Responses from C-CDA Vital Sign Results --></code> <subject><!-- I 1..1 Reference(Patient) Who and/or what the observation is about --></subject> <focus><!-- I 0..* Reference(Resource) What the observation is about, when it is not about the subject of record --></focus> <encounter><!-- I 0..1 Reference(Encounter) Healthcare event during which this observation is made --></encounter> <effective[x]><!-- I 1..1 dateTime|Period Often just a dateTime for Vital Signs --></effective[x]> <issued value="[instant]"/><!-- I 0..1 Date/Time this version was made available --> <performer><!-- I 0..* Reference(Practitioner) 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(MolecularSequence) Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. --></value[x]> <dataAbsentReason><!-- I 0..1 CodeableConcept Why the result is missing --></dataAbsentReason> <interpretation><!-- I 0..* CodeableConcept High, low, normal, etc --></interpretation> <note><!-- I 0..* Annotation Comments about the observation --></note> <bodySite><!-- I 0..1 CodeableConcept Observed body part --></bodySite> <bodyStructure><!-- I 0..1 Reference(BodyStructure) Observed body structure --></bodyStructure> <method><!-- I 0..1 CodeableConcept How it was done --></method> <specimen><!-- I 0..1 Reference(Specimen) Specimen used for this observation --></specimen> <device><!-- I 0..1 Reference(Device) A reference to the device that generates the measurements or the device settings for the device --></device> <referenceRange> I 0..* BackboneElement <!-- I 0..* Provides guide for interpretation --> <modifierExtension><!-- I 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <low><!-- I 0..1 Quantity Low Range, if relevant --></low> <high><!-- I 0..1 Quantity High Range, if relevant --></high> <normalValue><!-- I 0..1 CodeableConcept Normal value, if relevant --></normalValue> <type><!-- I 0..1 CodeableConcept Reference range qualifier --></type> <appliesTo><!-- I 0..* CodeableConcept Reference range population --></appliesTo> <age><!-- I 0..1 Range Applicable age range, if relevant --></age> <text value="[markdown]"/><!-- I 0..1 Text based reference range in an observation --> </referenceRange> <hasMember><!-- I 0..* Reference(QuestionnaireResponse) Used when reporting vital signs panel components --></hasMember> <derivedFrom><!-- I 0..* Reference(DocumentReference) Related resource from which the observation is made --></derivedFrom> <component> I 0..* BackboneElement <!-- I 0..* Used when reporting systolic and diastolic blood pressure. --> <modifierExtension><!-- I 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <code><!-- I 1..1 CodeableConcept Type of component observation (code / type) --></code> <-- value[x] sliced by type:$this in the specified orderOpen--> <valueQuantity><!-- I 0..1 Quantity Vital Sign Value recorded with UCUM --></valueQuantity> <dataAbsentReason><!-- I 0..1 CodeableConcept Why the component result is missing --></dataAbsentReason> <interpretation><!-- I 0..* CodeableConcept High, low, normal, etc --></interpretation> <referenceRange><!-- See http://hl7.org/fhir/StructureDefinition/Observation#Observation.referenceRange Provides guide for interpretation of component result --></referenceRange> </component> </Observation>
JSON Template
{ // Observationvitalsigns // from Element: extension "meta" : { Meta }, // IMetadata about the resource "implicitRules" : "<uri>", // IA set of rules under which this content was created "language" : "<code>", // ILanguage of the resource content "text" : { Narrative }, // IText summary of the resource, for human interpretation "contained" : [{ Resource }], //Contained, inline Resources "modifierExtension" : [{ Extension }], // IExtensions that cannot be ignored "identifier" : [{ Identifier }], // IBusiness Identifier for observation // value[x]: Instantiates FHIR ObservationDefinition. One of these 2: "instantiatesCanonical" : "<canonical>", // IInstantiates FHIR ObservationDefinition "instantiatesReference" : { Reference(ObservationDefinition) }, // IInstantiates FHIR ObservationDefinition "basedOn" : [{ Reference(CarePlan) }], // IFulfills plan, proposal or order "triggeredBy" : [{ BackboneElement }], // ITriggering observation(s) "partOf" : [{ Reference(MedicationAdministration) }], // IPart of referenced event "status" : "<code>", // I R! registered | preliminary | final | amended + "category" : [ // sliced by value:coding.code, value:coding.system in the specified order, Open { // Classification of type of observation // I R! // from Element: extension "extension" : [ // sliced by value:url in the specified order, Open ] "coding" : [{ Coding }], // I R! Code defined by a terminology system "text" : "<string>" // IPlain text representation of the concept } ], "code" : { CodeableConcept }, // I R! Coded Responses from C-CDA Vital Sign Results "subject" : { Reference(Patient) }, // I R! Who and/or what the observation is about "focus" : [{ Reference(Resource) }], // IWhat the observation is about, when it is not about the subject of record "encounter" : { Reference(Encounter) }, // IHealthcare event during which this observation is made // value[x]: Often just a dateTime for Vital Signs. One of these 2: "effectiveDateTime" : "<dateTime>", // I R! Often just a dateTime for Vital Signs "effectivePeriod" : { Period }, // I R! Often just a dateTime for Vital Signs "issued" : "<instant>", // IDate/Time this version was made available "performer" : [{ Reference(Practitioner) }], // IWho is responsible for the observation // value[x]: Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept.. One of these 13: "valueQuantity" : { Quantity }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueCodeableConcept" : { CodeableConcept }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueString" : "<string>", // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueBoolean" : <boolean>, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueInteger" : <integer>, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueRange" : { Range }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueRatio" : { Ratio }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueSampledData" : { SampledData }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueTime" : "<time>", // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueDateTime" : "<dateTime>", // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valuePeriod" : { Period }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueAttachment" : { Attachment }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "valueReference" : { Reference(MolecularSequence) }, // IVital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. "dataAbsentReason" : { CodeableConcept }, // IWhy the result is missing "interpretation" : [{ CodeableConcept }], // IHigh, low, normal, etc "note" : [{ Annotation }], // IComments about the observation "bodySite" : { CodeableConcept }, // IObserved body part "bodyStructure" : { Reference(BodyStructure) }, // IObserved body structure "method" : { CodeableConcept }, // IHow it was done "specimen" : { Reference(Specimen) }, // ISpecimen used for this observation "device" : { Reference(Device) }, // IA reference to the device that generates the measurements or the device settings for the device "referenceRange" : [{ BackboneElement }], // IProvides guide for interpretation "hasMember" : [{ Reference(QuestionnaireResponse) }], // IUsed when reporting vital signs panel components "derivedFrom" : [{ Reference(DocumentReference) }], // IRelated resource from which the observation is made "component" : [{ BackboneElement }], // IUsed when reporting systolic and diastolic blood pressure. }
Alternate definitions: Master Definition (XML, JSON), Schematron
Path | Name | Conformance | ValueSet |
Observation.language | All Languages | required | All Languages |
Observation.triggeredBy.type | triggered Bytype | required | triggered Bytype |
Observation.status | Observation Status | required | Observation Status |
Observation.category | Observation Category Codes | preferred | Observation Category Codes |
Observation.category | Observation Category Codes | preferred | Observation Category Codes |
Observation.code | Vital Signs | extensible | Vital Signs |
Observation.dataAbsentReason | Data Absent Reason | extensible | Data Absent Reason |
Observation.interpretation | Observation Interpretation Codes | extensible | Observation Interpretation Codes |
Observation.bodySite | SNOMED CT Body Structures | example | SNOMED CT Body Structures |
Observation.method | Observation Methods | example | Observation Methods |
Observation.referenceRange.normalValue | Observation Reference Range Normal Value Codes | extensible | Observation Reference Range Normal Value Codes |
Observation.referenceRange.type | Observation Reference Range Meaning Codes | preferred | Observation Reference Range Meaning Codes |
Observation.referenceRange.appliesTo | Observation Reference Range Applies To Codes | example | Observation Reference Range Applies To Codes |
Observation.component.code | Vital Signs | extensible | Vital Signs |
Observation.component.value[x] | Vital Signs Units | required | Vital Signs Units |
Observation.component.dataAbsentReason | Data Absent Reason | extensible | Data Absent Reason |
Observation.component.interpretation | Observation Interpretation Codes | extensible | Observation Interpretation Codes |
Id | Path | Details | Requirements |
vs-2 | Observation | If there is no component or hasMember element then either a value[x] or a data absent reason must be present. Expression ![]() | |
vs-1 | Observation.effective[x] | if Observation.effective[x] is dateTime and has a value then that value shall be precise to the day Expression ![]() | |
vs-3 | Observation.component | If there is no a value a data absent reason must be present Expression ![]() |