This page is part of the FHIR Specification (v4.3.0: R4B - STU). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3
Orders and Observations Work Group | Maturity Level: 0 | Trial Use | Use Context: Any |
The official URL for this profile is:
http://hl7.org/fhir/StructureDefinition/vitalsigns
FHIR Vital Signs Profile
This profile was published on Mon, Nov 17, 2014 00:00+1100 as a draft by Health Level Seven International (Health Care Devices).
Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.
This structure is derived from Observation.
Summary
"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: 15 elements
Fixed Value: 2 elements
Slices
This structure defines the following Slices:
This structure is derived from Observation.
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 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. |
status | S | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
Slices for category | S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by value:coding.code, value:coding.system |
category:VSCat | S | 1..1 | CodeableConcept | Classification of type of observation |
coding | S | 1..* | Coding | Code defined by a terminology system |
system | S | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category |
code | S | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs |
code | 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. |
subject | S | 1..1 | Reference(Patient) | Who and/or what the observation is about |
effective[x] | SI | 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 | |
effectiveDateTime | dateTime | |||
effectivePeriod | Period | |||
value[x] | SI | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period | Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. Binding: Vital Signs Units (extensible): Commonly encountered UCUM units for recording Vital Signs quantity units as codes. If extending this valueset the codes SHOULD come from UCUM. |
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the result is missing |
hasMember | 0..* | Reference(QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Used when reporting vital signs panel components | |
derivedFrom | 0..* | Reference(DocumentReference | ImagingStudy | QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Related measurements the observation is made from | |
component | SI | 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 |
code | 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. |
value[x] | SI | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (extensible): Commonly encountered UCUM units for recording Vital Signs quantity units as codes. If extending this valueset the codes SHOULD come from UCUM. |
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the component result is missing |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Observation | I | 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. | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | Σ | 0..1 | Meta | Metadata about the resource | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: Common Languages (preferred): IETF language tag
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
identifier | Σ | 0..* | Identifier | Business Identifier for observation | ||||
basedOn | Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order | ||||
partOf | Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) | Part of referenced event | ||||
status | ?!SΣ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) | ||||
Slices for category | 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. | ||||
category:VSCat | S | 1..1 | CodeableConcept | Classification of type of observation Binding: Observation Category Codes (preferred): Codes for high level observation categories. | ||||
id | 0..1 | id | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | SΣ | 1..* | Coding | Code defined by a terminology system | ||||
id | 0..1 | id | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | SΣ | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | ||||
version | Σ | 0..1 | string | Version of the system - if relevant | ||||
code | SΣ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs | ||||
display | Σ | 0..1 | string | Representation defined by the system | ||||
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user | ||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
code | 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. | ||||
subject | SΣ | 1..1 | Reference(Patient) | Who and/or what the observation is about | ||||
focus | Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record | ||||
encounter | Σ | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made | ||||
effective[x] | SΣI | 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 | |||||
effectiveDateTime | dateTime | |||||||
effectivePeriod | Period | |||||||
issued | Σ | 0..1 | instant | Date/Time this version was made available | ||||
performer | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who is responsible for the observation | ||||
value[x] | SΣI | 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. Binding: Vital Signs Units (extensible): Commonly encountered UCUM units for recording Vital Signs quantity units as codes. If extending this valueset the codes SHOULD come from UCUM. | |||||
valueQuantity | Quantity | |||||||
valueCodeableConcept | CodeableConcept | |||||||
valueString | string | |||||||
valueBoolean | boolean | |||||||
valueInteger | integer | |||||||
valueRange | Range | |||||||
valueRatio | Ratio | |||||||
valueSampledData | SampledData | |||||||
valueTime | time | |||||||
valueDateTime | dateTime | |||||||
valuePeriod | Period | |||||||
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
interpretation | 0..* | CodeableConcept | High, low, normal, etc. Binding: Observation Interpretation Codes (extensible): Codes identifying interpretations of observations. | |||||
note | 0..* | Annotation | Comments about the observation | |||||
bodySite | 0..1 | CodeableConcept | Observed body part Binding: SNOMED CT Body Structures (example): SNOMED CT Body site concepts | |||||
method | 0..1 | CodeableConcept | How it was done Binding: Observation Methods (example): Methods for simple observations. | |||||
specimen | 0..1 | Reference(Specimen) | Specimen used for this observation | |||||
device | 0..1 | Reference(Device | DeviceMetric) | (Measurement) Device | |||||
referenceRange | I | 0..* | BackboneElement | Provides guide for interpretation | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
low | I | 0..1 | SimpleQuantity | Low Range, if relevant | ||||
high | I | 0..1 | SimpleQuantity | High Range, if relevant | ||||
type | 0..1 | CodeableConcept | Reference range qualifier Binding: Observation Reference Range Meaning Codes (preferred): Code for the meaning of a reference range. | |||||
appliesTo | 0..* | CodeableConcept | Reference range population Binding: Observation Reference Range Applies To Codes (example): Codes identifying the population the reference range applies to. | |||||
age | 0..1 | Range | Applicable age range, if relevant | |||||
text | 0..1 | string | Text based reference range in an observation | |||||
hasMember | Σ | 0..* | Reference(QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Used when reporting vital signs panel components | ||||
derivedFrom | Σ | 0..* | Reference(DocumentReference | ImagingStudy | QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Related measurements the observation is made from | ||||
component | SΣI | 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 | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
code | 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. | ||||
value[x] | SΣI | 0..1 | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (extensible): Commonly encountered UCUM units for recording Vital Signs quantity units as codes. If extending this valueset the codes SHOULD come from UCUM. | |||||
valueQuantity | Quantity | |||||||
valueCodeableConcept | CodeableConcept | |||||||
valueString | string | |||||||
valueBoolean | boolean | |||||||
valueInteger | integer | |||||||
valueRange | Range | |||||||
valueRatio | Ratio | |||||||
valueSampledData | SampledData | |||||||
valueTime | time | |||||||
valueDateTime | dateTime | |||||||
valuePeriod | Period | |||||||
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
interpretation | 0..* | CodeableConcept | High, low, normal, etc. Binding: Observation Interpretation Codes (extensible): Codes identifying interpretations of observations. | |||||
referenceRange | 0..* | See referenceRange (Observation) | Provides guide for interpretation of component result | |||||
Documentation for this format |
<!-- observation-vitalsigns --> <Observation xmlns="http://hl7.org/fhir" > <!-- from Element: extension --> <id value="[id]"/><!-- 0..1 Logical id of this artifact --> <meta><!-- 0..1 Meta Metadata about the resource --></meta> <implicitRules value="[uri]"/><!-- 0..1 A set of rules under which this content was created --> <language value="[code]"/><!-- 0..1 Language of the resource content --> <text><!-- 0..1 Narrative Text summary of the resource, for human interpretation --></text> <contained><!-- 0..* Resource Contained, inline Resources --></contained> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored --></modifierExtension> <identifier><!-- 0..* Identifier Business Identifier for observation --></identifier> <basedOn><!-- 0..* Reference(CarePlan) Fulfills plan, proposal or order --></basedOn> <partOf><!-- 0..* Reference(MedicationAdministration) Part of referenced event --></partOf> <status value="[code]"/><!-- 1..1 registered | preliminary | final | amended + --> <-- category sliced by value:coding.code, value:coding.system in the specified orderOpen--> <category> 1..1 CodeableConcept <!-- 1..1 Classification of type of observation --> <coding> 1..* Coding <!-- 1..* Code defined by a terminology system --> <system value="[uri]"/><!-- 1..1 Identity of the terminology system --> <version value="[string]"/><!-- 0..1 Version of the system - if relevant --> <code value="[code]"/><!-- 1..1 Symbol in syntax defined by the system --> <display value="[string]"/><!-- 0..1 Representation defined by the system --> <userSelected value="[boolean]"/><!-- 0..1 If this coding was chosen directly by the user --> </coding> <text value="[string]"/><!-- 0..1 Plain text representation of the concept --> </category> <code><!-- 1..1 CodeableConcept Coded Responses from C-CDA Vital Sign Results --></code> <subject><!-- 1..1 Reference(Patient) Who and/or what the observation is about --></subject> <focus><!-- 0..* Reference(Resource) What the observation is about, when it is not about the subject of record --></focus> <encounter><!-- 0..1 Reference(Encounter) Healthcare event during which this observation is made --></encounter> <effective[x]><!-- 1..1 dateTime|Period Often just a dateTime for Vital Signs --></effective[x]> <issued value="[instant]"/><!-- 0..1 Date/Time this version was made available --> <performer><!-- 0..* Reference(Practitioner) Who is responsible for the observation --></performer> <value[x]><!-- 0..1 Quantity|CodeableConcept|string|boolean|integer| Range|Ratio|SampledData|time|dateTime|Period 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><!-- 0..1 CodeableConcept Why the result is missing --></dataAbsentReason> <interpretation><!-- 0..* CodeableConcept High, low, normal, etc. --></interpretation> <note><!-- 0..* Annotation Comments about the observation --></note> <bodySite><!-- 0..1 CodeableConcept Observed body part --></bodySite> <method><!-- 0..1 CodeableConcept How it was done --></method> <specimen><!-- 0..1 Reference(Specimen) Specimen used for this observation --></specimen> <device><!-- 0..1 Reference(Device) (Measurement) Device --></device> <referenceRange> 0..* BackboneElement <!-- 0..* Provides guide for interpretation --> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <low><!-- 0..1 Quantity Low Range, if relevant --></low> <high><!-- 0..1 Quantity High Range, if relevant --></high> <type><!-- 0..1 CodeableConcept Reference range qualifier --></type> <appliesTo><!-- 0..* CodeableConcept Reference range population --></appliesTo> <age><!-- 0..1 Range Applicable age range, if relevant --></age> <text value="[string]"/><!-- 0..1 Text based reference range in an observation --> </referenceRange> <hasMember><!-- 0..* Reference(QuestionnaireResponse) Used when reporting vital signs panel components --></hasMember> <derivedFrom><!-- 0..* Reference(DocumentReference) Related measurements the observation is made from --></derivedFrom> <component> 0..* BackboneElement <!-- 0..* Used when reporting systolic and diastolic blood pressure. --> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <code><!-- 1..1 CodeableConcept Type of component observation (code / type) --></code> <value[x]><!-- 0..1 Quantity|CodeableConcept|string| boolean|integer|Range|Ratio|SampledData|time|dateTime|Period Vital Sign Value recorded with UCUM --></value[x]> <dataAbsentReason><!-- 0..1 CodeableConcept Why the component result is missing --></dataAbsentReason> <interpretation><!-- 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>
{ // observation-vitalsigns // from Element: extension "meta" : { Meta }, // C?Metadata about the resource "implicitRules" : "<uri>", // C?A set of rules under which this content was created "language" : "<code>", // C?Language of the resource content "text" : { Narrative }, // C?Text summary of the resource, for human interpretation "contained" : [{ Resource }], // C?Contained, inline Resources "modifierExtension" : [{ Extension }], // C?Extensions that cannot be ignored "identifier" : [{ Identifier }], // C?Business Identifier for observation "basedOn" : [{ Reference(CarePlan) }], // C?Fulfills plan, proposal or order "partOf" : [{ Reference(MedicationAdministration) }], // C?Part of referenced event "status" : "<code>", // C? R! registered | preliminary | final | amended + "category" : [ // sliced by value:coding.code, value:coding.system in the specified order, Open { // Classification of type of observation // C? R! // from Element: extension "extension" : [ // sliced by value:url in the specified order, Open ] "coding" : [{ Coding }], // C? R! Code defined by a terminology system "text" : "<string>" // C?Plain text representation of the concept } ], "code" : { CodeableConcept }, // C? R! Coded Responses from C-CDA Vital Sign Results "subject" : { Reference(Patient) }, // C? R! Who and/or what the observation is about "focus" : [{ Reference(Resource) }], // C?What the observation is about, when it is not about the subject of record "encounter" : { Reference(Encounter) }, // C?Healthcare event during which this observation is made // value[x]: Often just a dateTime for Vital Signs. One of these 2: "effectiveDateTime" : "<dateTime>", // C? R! Often just a dateTime for Vital Signs "effectivePeriod" : { Period }, // C? R! Often just a dateTime for Vital Signs "issued" : "<instant>", // C?Date/Time this version was made available "performer" : [{ Reference(Practitioner) }], // C?Who 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 11: "valueQuantity" : { Quantity }, // C?Vital 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 }, // C?Vital 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>", // C?Vital 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>, // C?Vital 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>, // C?Vital 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 }, // C?Vital 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 }, // C?Vital 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 }, // C?Vital 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>", // C?Vital 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>", // C?Vital 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 }, // C?Vital 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 } // C?Why the result is missing "interpretation" : [{ CodeableConcept }], // C?High, low, normal, etc. "note" : [{ Annotation }], // C?Comments about the observation "bodySite" : { CodeableConcept }, // C?Observed body part "method" : { CodeableConcept }, // C?How it was done "specimen" : { Reference(Specimen) }, // C?Specimen used for this observation "device" : { Reference(Device) }, // C?(Measurement) Device "referenceRange" : [{ BackboneElement }], // C?Provides guide for interpretation "hasMember" : [{ Reference(QuestionnaireResponse) }], // C?Used when reporting vital signs panel components "derivedFrom" : [{ Reference(DocumentReference) }], // C?Related measurements the observation is made from "component" : [{ BackboneElement }], // C?Used when reporting systolic and diastolic blood pressure. }
This structure is derived from Observation.
Summary
"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: 15 elements
Fixed Value: 2 elements
Slices
This structure defines the following Slices:
Differential View
This structure is derived from Observation.
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 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. |
status | S | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
Slices for category | S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by value:coding.code, value:coding.system |
category:VSCat | S | 1..1 | CodeableConcept | Classification of type of observation |
coding | S | 1..* | Coding | Code defined by a terminology system |
system | S | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category |
code | S | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs |
code | 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. |
subject | S | 1..1 | Reference(Patient) | Who and/or what the observation is about |
effective[x] | SI | 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 | |
effectiveDateTime | dateTime | |||
effectivePeriod | Period | |||
value[x] | SI | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period | Vital Signs value are recorded using the Quantity data type. For supporting observations such as Cuff size could use other datatypes such as CodeableConcept. Binding: Vital Signs Units (extensible): Commonly encountered UCUM units for recording Vital Signs quantity units as codes. If extending this valueset the codes SHOULD come from UCUM. |
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the result is missing |
hasMember | 0..* | Reference(QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Used when reporting vital signs panel components | |
derivedFrom | 0..* | Reference(DocumentReference | ImagingStudy | QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Related measurements the observation is made from | |
component | SI | 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 |
code | 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. |
value[x] | SI | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (extensible): Commonly encountered UCUM units for recording Vital Signs quantity units as codes. If extending this valueset the codes SHOULD come from UCUM. |
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the component result is missing |
Documentation for this format |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Observation | I | 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. | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | Σ | 0..1 | Meta | Metadata about the resource | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: Common Languages (preferred): IETF language tag
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
identifier | Σ | 0..* | Identifier | Business Identifier for observation | ||||
basedOn | Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order | ||||
partOf | Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) | Part of referenced event | ||||
status | ?!SΣ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) | ||||
Slices for category | 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. | ||||
category:VSCat | S | 1..1 | CodeableConcept | Classification of type of observation Binding: Observation Category Codes (preferred): Codes for high level observation categories. | ||||
id | 0..1 | id | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
coding | SΣ | 1..* | Coding | Code defined by a terminology system | ||||
id | 0..1 | id | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
system | SΣ | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | ||||
version | Σ | 0..1 | string | Version of the system - if relevant | ||||
code | SΣ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: vital-signs | ||||
display | Σ | 0..1 | string | Representation defined by the system | ||||
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user | ||||
text | Σ | 0..1 | string | Plain text representation of the concept | ||||
code | 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. | ||||
subject | SΣ | 1..1 | Reference(Patient) | Who and/or what the observation is about | ||||
focus | Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record | ||||
encounter | Σ | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made | ||||
effective[x] | SΣI | 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 | |||||
effectiveDateTime | dateTime | |||||||
effectivePeriod | Period | |||||||
issued | Σ | 0..1 | instant | Date/Time this version was made available | ||||
performer | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who is responsible for the observation | ||||
value[x] | SΣI | 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. Binding: Vital Signs Units (extensible): Commonly encountered UCUM units for recording Vital Signs quantity units as codes. If extending this valueset the codes SHOULD come from UCUM. | |||||
valueQuantity | Quantity | |||||||
valueCodeableConcept | CodeableConcept | |||||||
valueString | string | |||||||
valueBoolean | boolean | |||||||
valueInteger | integer | |||||||
valueRange | Range | |||||||
valueRatio | Ratio | |||||||
valueSampledData | SampledData | |||||||
valueTime | time | |||||||
valueDateTime | dateTime | |||||||
valuePeriod | Period | |||||||
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
interpretation | 0..* | CodeableConcept | High, low, normal, etc. Binding: Observation Interpretation Codes (extensible): Codes identifying interpretations of observations. | |||||
note | 0..* | Annotation | Comments about the observation | |||||
bodySite | 0..1 | CodeableConcept | Observed body part Binding: SNOMED CT Body Structures (example): SNOMED CT Body site concepts | |||||
method | 0..1 | CodeableConcept | How it was done Binding: Observation Methods (example): Methods for simple observations. | |||||
specimen | 0..1 | Reference(Specimen) | Specimen used for this observation | |||||
device | 0..1 | Reference(Device | DeviceMetric) | (Measurement) Device | |||||
referenceRange | I | 0..* | BackboneElement | Provides guide for interpretation | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
low | I | 0..1 | SimpleQuantity | Low Range, if relevant | ||||
high | I | 0..1 | SimpleQuantity | High Range, if relevant | ||||
type | 0..1 | CodeableConcept | Reference range qualifier Binding: Observation Reference Range Meaning Codes (preferred): Code for the meaning of a reference range. | |||||
appliesTo | 0..* | CodeableConcept | Reference range population Binding: Observation Reference Range Applies To Codes (example): Codes identifying the population the reference range applies to. | |||||
age | 0..1 | Range | Applicable age range, if relevant | |||||
text | 0..1 | string | Text based reference range in an observation | |||||
hasMember | Σ | 0..* | Reference(QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Used when reporting vital signs panel components | ||||
derivedFrom | Σ | 0..* | Reference(DocumentReference | ImagingStudy | QuestionnaireResponse | MolecularSequence | Vital Signs Profile) | Related measurements the observation is made from | ||||
component | SΣI | 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 | ||||
id | 0..1 | string | Unique id for inter-element referencing | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
code | 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. | ||||
value[x] | SΣI | 0..1 | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (extensible): Commonly encountered UCUM units for recording Vital Signs quantity units as codes. If extending this valueset the codes SHOULD come from UCUM. | |||||
valueQuantity | Quantity | |||||||
valueCodeableConcept | CodeableConcept | |||||||
valueString | string | |||||||
valueBoolean | boolean | |||||||
valueInteger | integer | |||||||
valueRange | Range | |||||||
valueRatio | Ratio | |||||||
valueSampledData | SampledData | |||||||
valueTime | time | |||||||
valueDateTime | dateTime | |||||||
valuePeriod | Period | |||||||
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
interpretation | 0..* | CodeableConcept | High, low, normal, etc. Binding: Observation Interpretation Codes (extensible): Codes identifying interpretations of observations. | |||||
referenceRange | 0..* | See referenceRange (Observation) | Provides guide for interpretation of component result | |||||
Documentation for this format |
XML Template
<!-- observation-vitalsigns --> <Observation xmlns="http://hl7.org/fhir" > <!-- from Element: extension --> <id value="[id]"/><!-- 0..1 Logical id of this artifact --> <meta><!-- 0..1 Meta Metadata about the resource --></meta> <implicitRules value="[uri]"/><!-- 0..1 A set of rules under which this content was created --> <language value="[code]"/><!-- 0..1 Language of the resource content --> <text><!-- 0..1 Narrative Text summary of the resource, for human interpretation --></text> <contained><!-- 0..* Resource Contained, inline Resources --></contained> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored --></modifierExtension> <identifier><!-- 0..* Identifier Business Identifier for observation --></identifier> <basedOn><!-- 0..* Reference(CarePlan) Fulfills plan, proposal or order --></basedOn> <partOf><!-- 0..* Reference(MedicationAdministration) Part of referenced event --></partOf> <status value="[code]"/><!-- 1..1 registered | preliminary | final | amended + --> <-- category sliced by value:coding.code, value:coding.system in the specified orderOpen--> <category> 1..1 CodeableConcept <!-- 1..1 Classification of type of observation --> <coding> 1..* Coding <!-- 1..* Code defined by a terminology system --> <system value="[uri]"/><!-- 1..1 Identity of the terminology system --> <version value="[string]"/><!-- 0..1 Version of the system - if relevant --> <code value="[code]"/><!-- 1..1 Symbol in syntax defined by the system --> <display value="[string]"/><!-- 0..1 Representation defined by the system --> <userSelected value="[boolean]"/><!-- 0..1 If this coding was chosen directly by the user --> </coding> <text value="[string]"/><!-- 0..1 Plain text representation of the concept --> </category> <code><!-- 1..1 CodeableConcept Coded Responses from C-CDA Vital Sign Results --></code> <subject><!-- 1..1 Reference(Patient) Who and/or what the observation is about --></subject> <focus><!-- 0..* Reference(Resource) What the observation is about, when it is not about the subject of record --></focus> <encounter><!-- 0..1 Reference(Encounter) Healthcare event during which this observation is made --></encounter> <effective[x]><!-- 1..1 dateTime|Period Often just a dateTime for Vital Signs --></effective[x]> <issued value="[instant]"/><!-- 0..1 Date/Time this version was made available --> <performer><!-- 0..* Reference(Practitioner) Who is responsible for the observation --></performer> <value[x]><!-- 0..1 Quantity|CodeableConcept|string|boolean|integer| Range|Ratio|SampledData|time|dateTime|Period 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><!-- 0..1 CodeableConcept Why the result is missing --></dataAbsentReason> <interpretation><!-- 0..* CodeableConcept High, low, normal, etc. --></interpretation> <note><!-- 0..* Annotation Comments about the observation --></note> <bodySite><!-- 0..1 CodeableConcept Observed body part --></bodySite> <method><!-- 0..1 CodeableConcept How it was done --></method> <specimen><!-- 0..1 Reference(Specimen) Specimen used for this observation --></specimen> <device><!-- 0..1 Reference(Device) (Measurement) Device --></device> <referenceRange> 0..* BackboneElement <!-- 0..* Provides guide for interpretation --> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <low><!-- 0..1 Quantity Low Range, if relevant --></low> <high><!-- 0..1 Quantity High Range, if relevant --></high> <type><!-- 0..1 CodeableConcept Reference range qualifier --></type> <appliesTo><!-- 0..* CodeableConcept Reference range population --></appliesTo> <age><!-- 0..1 Range Applicable age range, if relevant --></age> <text value="[string]"/><!-- 0..1 Text based reference range in an observation --> </referenceRange> <hasMember><!-- 0..* Reference(QuestionnaireResponse) Used when reporting vital signs panel components --></hasMember> <derivedFrom><!-- 0..* Reference(DocumentReference) Related measurements the observation is made from --></derivedFrom> <component> 0..* BackboneElement <!-- 0..* Used when reporting systolic and diastolic blood pressure. --> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored even if unrecognized --></modifierExtension> <code><!-- 1..1 CodeableConcept Type of component observation (code / type) --></code> <value[x]><!-- 0..1 Quantity|CodeableConcept|string| boolean|integer|Range|Ratio|SampledData|time|dateTime|Period Vital Sign Value recorded with UCUM --></value[x]> <dataAbsentReason><!-- 0..1 CodeableConcept Why the component result is missing --></dataAbsentReason> <interpretation><!-- 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
{ // observation-vitalsigns // from Element: extension "meta" : { Meta }, // C?Metadata about the resource "implicitRules" : "<uri>", // C?A set of rules under which this content was created "language" : "<code>", // C?Language of the resource content "text" : { Narrative }, // C?Text summary of the resource, for human interpretation "contained" : [{ Resource }], // C?Contained, inline Resources "modifierExtension" : [{ Extension }], // C?Extensions that cannot be ignored "identifier" : [{ Identifier }], // C?Business Identifier for observation "basedOn" : [{ Reference(CarePlan) }], // C?Fulfills plan, proposal or order "partOf" : [{ Reference(MedicationAdministration) }], // C?Part of referenced event "status" : "<code>", // C? R! registered | preliminary | final | amended + "category" : [ // sliced by value:coding.code, value:coding.system in the specified order, Open { // Classification of type of observation // C? R! // from Element: extension "extension" : [ // sliced by value:url in the specified order, Open ] "coding" : [{ Coding }], // C? R! Code defined by a terminology system "text" : "<string>" // C?Plain text representation of the concept } ], "code" : { CodeableConcept }, // C? R! Coded Responses from C-CDA Vital Sign Results "subject" : { Reference(Patient) }, // C? R! Who and/or what the observation is about "focus" : [{ Reference(Resource) }], // C?What the observation is about, when it is not about the subject of record "encounter" : { Reference(Encounter) }, // C?Healthcare event during which this observation is made // value[x]: Often just a dateTime for Vital Signs. One of these 2: "effectiveDateTime" : "<dateTime>", // C? R! Often just a dateTime for Vital Signs "effectivePeriod" : { Period }, // C? R! Often just a dateTime for Vital Signs "issued" : "<instant>", // C?Date/Time this version was made available "performer" : [{ Reference(Practitioner) }], // C?Who 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 11: "valueQuantity" : { Quantity }, // C?Vital 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 }, // C?Vital 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>", // C?Vital 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>, // C?Vital 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>, // C?Vital 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 }, // C?Vital 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 }, // C?Vital 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 }, // C?Vital 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>", // C?Vital 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>", // C?Vital 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 }, // C?Vital 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 } // C?Why the result is missing "interpretation" : [{ CodeableConcept }], // C?High, low, normal, etc. "note" : [{ Annotation }], // C?Comments about the observation "bodySite" : { CodeableConcept }, // C?Observed body part "method" : { CodeableConcept }, // C?How it was done "specimen" : { Reference(Specimen) }, // C?Specimen used for this observation "device" : { Reference(Device) }, // C?(Measurement) Device "referenceRange" : [{ BackboneElement }], // C?Provides guide for interpretation "hasMember" : [{ Reference(QuestionnaireResponse) }], // C?Used when reporting vital signs panel components "derivedFrom" : [{ Reference(DocumentReference) }], // C?Related measurements the observation is made from "component" : [{ BackboneElement }], // C?Used when reporting systolic and diastolic blood pressure. }
Alternate definitions: Master Definition (XML, JSON), Schematron
Path | Name | Conformance | ValueSet |
Observation.language | Common Languages | preferred | Common Languages |
Observation.status | ObservationStatus | required | ObservationStatus |
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.value[x] | Vital Signs Units | extensible | Vital Signs Units |
Observation.dataAbsentReason | DataAbsentReason | extensible | DataAbsentReason |
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.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 | extensible | Vital Signs Units |
Observation.component.dataAbsentReason | DataAbsentReason | extensible | DataAbsentReason |
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 : (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists()) | |
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 : ($this as dateTime).toString().length() >= 8 | |
vs-3 | Observation.component | If there is no a value a data absent reason must be present Expression : value.exists() or dataAbsentReason.exists() |