This page is part of the FHIR Specification (v3.0.2: STU 3). 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
(No assigned work group) | Maturity Level: 1 | Informative | 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 Fri, Mar 25, 2016 00:00+1100 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
One status in Observation.status
which has a required binding to:
A category in Observation.category
which must have:
Observation.category.coding.system
="http://hl7.org/fhir/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.valueQuantity
or, if there is no value, one code in Observation.DataAbsentReason
Observation.valueQuantity.value
Observation.valueQuantity.system
="http://unitsofmeasure"Observation.valueQuantity.code
which has an required binding to: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
Observation.component.valueQuantity.value
Observation.component.valueQuantity.system
= "<http://unitsofmeasure.org>"Observation.component.valueQuantity.code
which has an required binding to: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: 5 elements (+11 nested mandatory elements)
Must-Support: 22 elements
Fixed Value: 3 elements
Structures
This structure refers to these other structures:
This structure is derived from Observation.
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | FHIR Vital Signs Profile vs-2: If there is no component or related element then either a value[x] or a data absent reason must be present | |
status | S | 1..1 | code | Binding: ObservationStatus (required) |
category | SI | 1..* | CodeableConcept | vs-4: Must have a category of 'vital-signs' and a code system 'http://hl7.org/fhir/observation-category' |
code | S | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Binding: Vital Signs (extensible) |
subject | S | 1..1 | Reference(Patient) | |
effective[x] | SI | 1..1 | dateTime, Period | Often just a dateTime for Vital Signs vs-1: Datetime must be at least to day. |
valueQuantity | SI | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (required) |
value | S | 1..1 | decimal | |
unit | S | 1..1 | string | |
system | S | 1..1 | uri | Fixed Value: http://unitsofmeasure.org |
code | S | 1..1 | code | Coded responses from the common UCUM units for vital signs value set. |
dataAbsentReason | SI | 0..1 | CodeableConcept | Binding: Observation Value Absent Reason (extensible) |
related | S | 0..* | BackboneElement | Used when reporting vital signs panel components |
type | S | 1..1 | code | Fixed Value: has-member |
target | S | 1..1 | Reference(VitalSigns) | |
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 | Binding: Vital Signs (extensible) |
valueQuantity | SI | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (required) |
value | S | 1..1 | decimal | |
unit | S | 1..1 | string | |
system | S | 1..1 | uri | Fixed Value: http://unitsofmeasure.org |
code | S | 1..1 | code | Coded responses from the common UCUM units for vital signs value set. |
dataAbsentReason | SI | 0..1 | CodeableConcept | Binding: Observation Value Absent Reason (extensible) |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | FHIR Vital Signs Profile vs-2: If there is no component or related 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 (extensible) | |
text | I | 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), Reference(DeviceRequest), Reference(ImmunizationRecommendation), Reference(MedicationRequest), Reference(NutritionOrder), Reference(ProcedureRequest), Reference(ReferralRequest) | Fulfills plan, proposal or order |
status | ?!SΣ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
category | SI | 1..* | CodeableConcept | Classification of type of observation Binding: Observation Category Codes (preferred) vs-4: Must have a category of 'vital-signs' and a code system 'http://hl7.org/fhir/observation-category' |
code | SΣ | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Binding: Vital Signs (extensible) |
subject | SΣ | 1..1 | Reference(Patient) | Who and/or what this is about |
context | 0..1 | Reference(Encounter), Reference(EpisodeOfCare) | Healthcare event during which this observation is made | |
effective[x] | SΣI | 1..1 | dateTime, Period | Often just a dateTime for Vital Signs vs-1: Datetime must be at least to day. |
issued | Σ | 0..1 | instant | Date/Time this was made available |
performer | Σ | 0..* | Reference(Practitioner), Reference(Organization), Reference(Patient), Reference(RelatedPerson) | Who is responsible for the observation |
valueQuantity | SΣI | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
value | SΣ | 1..1 | decimal | Numerical value (with implicit precision) |
comparator | ?!Σ | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
unit | SΣ | 1..1 | string | Unit representation |
system | SΣI | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | SΣ | 1..1 | code | Coded responses from the common UCUM units for vital signs value set. |
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the result is missing Binding: Observation Value Absent Reason (extensible) |
interpretation | 0..1 | CodeableConcept | High, low, normal, etc. Binding: Observation Interpretation Codes (extensible) | |
comment | 0..1 | string | Comments about result | |
bodySite | 0..1 | CodeableConcept | Observed body part Binding: SNOMED CT Body Structures (example) | |
method | 0..1 | CodeableConcept | How it was done Binding: Observation Methods (example) | |
specimen | 0..1 | Reference(Specimen) | Specimen used for this observation | |
device | 0..1 | Reference(Device), Reference(DeviceMetric) | (Measurement) Device | |
referenceRange | I | 0..* | BackboneElement | Provides guide for interpretation obs-3: Must have at least a low or a high or text |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
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 (extensible) | |
appliesTo | 0..* | CodeableConcept | Reference range population Binding: Observation Reference Range Applies To Codes (example) | |
age | 0..1 | Range | Applicable age range, if relevant | |
text | 0..1 | string | Text based reference range in an observation | |
related | SΣI | 0..* | BackboneElement | Used when reporting vital signs panel components |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
type | S | 1..1 | code | has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by Binding: ObservationRelationshipType (required) Fixed Value: has-member |
target | S | 1..1 | Reference(VitalSigns) | Resource that is related to this one |
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 | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
code | SΣ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: Vital Signs (extensible) |
valueQuantity | SΣ | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
value | SΣ | 1..1 | decimal | Numerical value (with implicit precision) |
comparator | ?!Σ | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
unit | SΣ | 1..1 | string | Unit representation |
system | SΣI | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | SΣ | 1..1 | code | Coded responses from the common UCUM units for vital signs value set. |
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the component result is missing Binding: Observation Value Absent Reason (extensible) |
interpretation | 0..1 | CodeableConcept | High, low, normal, etc. Binding: Observation Interpretation Codes (extensible) | |
referenceRange | 0..* | Unknown reference to #Observation.referenceRange Provides guide for interpretation of component result | ||
Documentation for this format |
<!-- Vital Signs Profile --> <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)|Reference(DeviceRequest)|Reference(ImmunizationRecommendation)|Reference(MedicationRequest)| Reference(NutritionOrder)|Reference(ProcedureRequest)|Reference(ReferralRequest) Fulfills plan, proposal or order --></basedOn> <status value="[code]"/><!-- 1..1 registered | preliminary | final | amended + --> <category><!-- 1..* CodeableConcept Classification of type of observation --></category> <code><!-- 1..1 CodeableConcept Coded Responses from C-CDA Vital Sign Results --></code> <subject><!-- 1..1 Reference(Patient) Who and/or what this is about --></subject> <context><!-- 0..1 Reference(Encounter)|Reference(EpisodeOfCare) Healthcare event during which this observation is made --></context> <effective[x]><!-- 1..1 dateTime|Period Often just a dateTime for Vital Signs --></effective[x]> <issued value="[instant]"/><!-- 0..1 Date/Time this was made available --> <performer><!-- 0..* Reference(Practitioner)|Reference(Organization)|Reference(Patient)|Reference(RelatedPerson) Who is responsible for the observation --></performer> <valueQuantity> 0..1 Quantity <!-- 0..1 Vital Sign Value recorded with UCUM --> <value value="[decimal]"/><!-- 1..1 Numerical value (with implicit precision) --> <comparator value="[code]"/><!-- 0..1 < | <= | >= | > - how to understand the value --> <unit value="[string]"/><!-- 1..1 Unit representation --> <system value="[uri]"/><!-- 1..1 System that defines coded unit form --> <code value="[code]"/><!-- 1..1 Coded responses from the common UCUM units for vital signs value set. --> </valueQuantity> <dataAbsentReason><!-- 0..1 CodeableConcept Why the result is missing --></dataAbsentReason> <interpretation><!-- 0..1 CodeableConcept High, low, normal, etc. --></interpretation> <comment value="[string]"/><!-- 0..1 Comments about result --> <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)|Reference(DeviceMetric) (Measurement) Device --></device> <referenceRange> 0..* BackboneElement <!-- 0..* Provides guide for interpretation --> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored --></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> <related> 0..* BackboneElement <!-- 0..* Used when reporting vital signs panel components --> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored --></modifierExtension> <type value="[code]"/><!-- 1..1 has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by --> <target><!-- 1..1 Reference(Vital Signs Profile) Resource that is related to this one --></target> </related> <component> 0..* BackboneElement <!-- 0..* Used when reporting systolic and diastolic blood pressure. --> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored --></modifierExtension> <code><!-- 1..1 CodeableConcept Type of component observation (code / type) --></code> <valueQuantity> 0..1 Quantity <!-- 0..1 Vital Sign Value recorded with UCUM --> <value value="[decimal]"/><!-- 1..1 Numerical value (with implicit precision) --> <comparator value="[code]"/><!-- 0..1 < | <= | >= | > - how to understand the value --> <unit value="[string]"/><!-- 1..1 Unit representation --> <system value="[uri]"/><!-- 1..1 System that defines coded unit form --> <code value="[code]"/><!-- 1..1 Coded responses from the common UCUM units for vital signs value set. --> </valueQuantity> <dataAbsentReason><!-- 0..1 CodeableConcept Why the component result is missing --></dataAbsentReason> <interpretation><!-- 0..1 CodeableConcept High, low, normal, etc. --></interpretation> <referenceRange><!-- See #Observation.referenceRange Provides guide for interpretation of component result --></referenceRange> </component> </Observation>
{ // Vital Signs Profile // from Element: extension "meta" : { Meta }, //Metadata about the resource "implicitRules" : "<uri>", //A set of rules under which this content was created "language" : "<code>", //Language of the resource content "text" : { Narrative }, //Text summary of the resource, for human interpretation "contained" : [{ Resource }], //Contained, inline Resources "modifierExtension" : [{ Extension }], //Extensions that cannot be ignored "identifier" : [{ Identifier }], //Business Identifier for observation // value[x]: Fulfills plan, proposal or order. One of these 7: "basedOn" : [{ Reference(CarePlan) }], //Fulfills plan, proposal or order "basedOn" : [{ Reference(DeviceRequest) }], //Fulfills plan, proposal or order "basedOn" : [{ Reference(ImmunizationRecommendation) }], //Fulfills plan, proposal or order "basedOn" : [{ Reference(MedicationRequest) }], //Fulfills plan, proposal or order "basedOn" : [{ Reference(NutritionOrder) }], //Fulfills plan, proposal or order "basedOn" : [{ Reference(ProcedureRequest) }], //Fulfills plan, proposal or order "basedOn" : [{ Reference(ReferralRequest) }], //Fulfills plan, proposal or order "status" : "<code>", // R! registered | preliminary | final | amended + "category" : [{ CodeableConcept }], // C? R! Classification of type of observation "code" : { CodeableConcept }, // R! Coded Responses from C-CDA Vital Sign Results "subject" : { Reference(Patient) }, // R! Who and/or what this is about // value[x]: Healthcare event during which this observation is made. One of these 2: "context" : { Reference(Encounter) }, //Healthcare event during which this observation is made "context" : { Reference(EpisodeOfCare) }, //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>", //Date/Time this was made available // value[x]: Who is responsible for the observation. One of these 4: "performer" : [{ Reference(Practitioner) }], //Who is responsible for the observation "performer" : [{ Reference(Organization) }], //Who is responsible for the observation "performer" : [{ Reference(Patient) }], //Who is responsible for the observation "performer" : [{ Reference(RelatedPerson) }] //Who is responsible for the observation "valueQuantity" : { Quantity }, //Vital Sign Value recorded with UCUM "dataAbsentReason" : { CodeableConcept }, //Why the result is missing "interpretation" : { CodeableConcept }, //High, low, normal, etc. "comment" : "<string>", //Comments about result "bodySite" : { CodeableConcept }, //Observed body part "method" : { CodeableConcept }, //How it was done "specimen" : { Reference(Specimen) }, //Specimen used for this observation // value[x]: (Measurement) Device. One of these 2: "device" : { Reference(Device) }, //(Measurement) Device "device" : { Reference(DeviceMetric) }, //(Measurement) Device "referenceRange" : [{ BackboneElement }], // C?Provides guide for interpretation "related" : [{ BackboneElement }], // C?Used when reporting vital signs panel components "component" : [{ BackboneElement }], // C?Used when reporting systolic and diastolic blood pressure. }
This structure is derived from Observation.
Summary
One status in Observation.status
which has a required binding to:
A category in Observation.category
which must have:
Observation.category.coding.system
="http://hl7.org/fhir/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.valueQuantity
or, if there is no value, one code in Observation.DataAbsentReason
Observation.valueQuantity.value
Observation.valueQuantity.system
="http://unitsofmeasure"Observation.valueQuantity.code
which has an required binding to: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
Observation.component.valueQuantity.value
Observation.component.valueQuantity.system
= "<http://unitsofmeasure.org>"Observation.component.valueQuantity.code
which has an required binding to: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: 5 elements (+11 nested mandatory elements)
Must-Support: 22 elements
Fixed Value: 3 elements
Structures
This structure refers to these other structures:
Differential View
This structure is derived from Observation.
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | FHIR Vital Signs Profile vs-2: If there is no component or related element then either a value[x] or a data absent reason must be present | |
status | S | 1..1 | code | Binding: ObservationStatus (required) |
category | SI | 1..* | CodeableConcept | vs-4: Must have a category of 'vital-signs' and a code system 'http://hl7.org/fhir/observation-category' |
code | S | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Binding: Vital Signs (extensible) |
subject | S | 1..1 | Reference(Patient) | |
effective[x] | SI | 1..1 | dateTime, Period | Often just a dateTime for Vital Signs vs-1: Datetime must be at least to day. |
valueQuantity | SI | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (required) |
value | S | 1..1 | decimal | |
unit | S | 1..1 | string | |
system | S | 1..1 | uri | Fixed Value: http://unitsofmeasure.org |
code | S | 1..1 | code | Coded responses from the common UCUM units for vital signs value set. |
dataAbsentReason | SI | 0..1 | CodeableConcept | Binding: Observation Value Absent Reason (extensible) |
related | S | 0..* | BackboneElement | Used when reporting vital signs panel components |
type | S | 1..1 | code | Fixed Value: has-member |
target | S | 1..1 | Reference(VitalSigns) | |
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 | Binding: Vital Signs (extensible) |
valueQuantity | SI | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (required) |
value | S | 1..1 | decimal | |
unit | S | 1..1 | string | |
system | S | 1..1 | uri | Fixed Value: http://unitsofmeasure.org |
code | S | 1..1 | code | Coded responses from the common UCUM units for vital signs value set. |
dataAbsentReason | SI | 0..1 | CodeableConcept | Binding: Observation Value Absent Reason (extensible) |
Documentation for this format |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | FHIR Vital Signs Profile vs-2: If there is no component or related 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 (extensible) | |
text | I | 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), Reference(DeviceRequest), Reference(ImmunizationRecommendation), Reference(MedicationRequest), Reference(NutritionOrder), Reference(ProcedureRequest), Reference(ReferralRequest) | Fulfills plan, proposal or order |
status | ?!SΣ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
category | SI | 1..* | CodeableConcept | Classification of type of observation Binding: Observation Category Codes (preferred) vs-4: Must have a category of 'vital-signs' and a code system 'http://hl7.org/fhir/observation-category' |
code | SΣ | 1..1 | CodeableConcept | Coded Responses from C-CDA Vital Sign Results Binding: Vital Signs (extensible) |
subject | SΣ | 1..1 | Reference(Patient) | Who and/or what this is about |
context | 0..1 | Reference(Encounter), Reference(EpisodeOfCare) | Healthcare event during which this observation is made | |
effective[x] | SΣI | 1..1 | dateTime, Period | Often just a dateTime for Vital Signs vs-1: Datetime must be at least to day. |
issued | Σ | 0..1 | instant | Date/Time this was made available |
performer | Σ | 0..* | Reference(Practitioner), Reference(Organization), Reference(Patient), Reference(RelatedPerson) | Who is responsible for the observation |
valueQuantity | SΣI | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
value | SΣ | 1..1 | decimal | Numerical value (with implicit precision) |
comparator | ?!Σ | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
unit | SΣ | 1..1 | string | Unit representation |
system | SΣI | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | SΣ | 1..1 | code | Coded responses from the common UCUM units for vital signs value set. |
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the result is missing Binding: Observation Value Absent Reason (extensible) |
interpretation | 0..1 | CodeableConcept | High, low, normal, etc. Binding: Observation Interpretation Codes (extensible) | |
comment | 0..1 | string | Comments about result | |
bodySite | 0..1 | CodeableConcept | Observed body part Binding: SNOMED CT Body Structures (example) | |
method | 0..1 | CodeableConcept | How it was done Binding: Observation Methods (example) | |
specimen | 0..1 | Reference(Specimen) | Specimen used for this observation | |
device | 0..1 | Reference(Device), Reference(DeviceMetric) | (Measurement) Device | |
referenceRange | I | 0..* | BackboneElement | Provides guide for interpretation obs-3: Must have at least a low or a high or text |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
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 (extensible) | |
appliesTo | 0..* | CodeableConcept | Reference range population Binding: Observation Reference Range Applies To Codes (example) | |
age | 0..1 | Range | Applicable age range, if relevant | |
text | 0..1 | string | Text based reference range in an observation | |
related | SΣI | 0..* | BackboneElement | Used when reporting vital signs panel components |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
type | S | 1..1 | code | has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by Binding: ObservationRelationshipType (required) Fixed Value: has-member |
target | S | 1..1 | Reference(VitalSigns) | Resource that is related to this one |
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 | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
code | SΣ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: Vital Signs (extensible) |
valueQuantity | SΣ | 0..1 | Quantity | Vital Sign Value recorded with UCUM Binding: Vital Signs Units (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
value | SΣ | 1..1 | decimal | Numerical value (with implicit precision) |
comparator | ?!Σ | 0..1 | code | < | <= | >= | > - how to understand the value Binding: QuantityComparator (required) |
unit | SΣ | 1..1 | string | Unit representation |
system | SΣI | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | SΣ | 1..1 | code | Coded responses from the common UCUM units for vital signs value set. |
dataAbsentReason | SI | 0..1 | CodeableConcept | Why the component result is missing Binding: Observation Value Absent Reason (extensible) |
interpretation | 0..1 | CodeableConcept | High, low, normal, etc. Binding: Observation Interpretation Codes (extensible) | |
referenceRange | 0..* | Unknown reference to #Observation.referenceRange Provides guide for interpretation of component result | ||
Documentation for this format |
XML Template
<!-- Vital Signs Profile --> <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)|Reference(DeviceRequest)|Reference(ImmunizationRecommendation)|Reference(MedicationRequest)| Reference(NutritionOrder)|Reference(ProcedureRequest)|Reference(ReferralRequest) Fulfills plan, proposal or order --></basedOn> <status value="[code]"/><!-- 1..1 registered | preliminary | final | amended + --> <category><!-- 1..* CodeableConcept Classification of type of observation --></category> <code><!-- 1..1 CodeableConcept Coded Responses from C-CDA Vital Sign Results --></code> <subject><!-- 1..1 Reference(Patient) Who and/or what this is about --></subject> <context><!-- 0..1 Reference(Encounter)|Reference(EpisodeOfCare) Healthcare event during which this observation is made --></context> <effective[x]><!-- 1..1 dateTime|Period Often just a dateTime for Vital Signs --></effective[x]> <issued value="[instant]"/><!-- 0..1 Date/Time this was made available --> <performer><!-- 0..* Reference(Practitioner)|Reference(Organization)|Reference(Patient)|Reference(RelatedPerson) Who is responsible for the observation --></performer> <valueQuantity> 0..1 Quantity <!-- 0..1 Vital Sign Value recorded with UCUM --> <value value="[decimal]"/><!-- 1..1 Numerical value (with implicit precision) --> <comparator value="[code]"/><!-- 0..1 < | <= | >= | > - how to understand the value --> <unit value="[string]"/><!-- 1..1 Unit representation --> <system value="[uri]"/><!-- 1..1 System that defines coded unit form --> <code value="[code]"/><!-- 1..1 Coded responses from the common UCUM units for vital signs value set. --> </valueQuantity> <dataAbsentReason><!-- 0..1 CodeableConcept Why the result is missing --></dataAbsentReason> <interpretation><!-- 0..1 CodeableConcept High, low, normal, etc. --></interpretation> <comment value="[string]"/><!-- 0..1 Comments about result --> <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)|Reference(DeviceMetric) (Measurement) Device --></device> <referenceRange> 0..* BackboneElement <!-- 0..* Provides guide for interpretation --> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored --></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> <related> 0..* BackboneElement <!-- 0..* Used when reporting vital signs panel components --> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored --></modifierExtension> <type value="[code]"/><!-- 1..1 has-member | derived-from | sequel-to | replaces | qualified-by | interfered-by --> <target><!-- 1..1 Reference(Vital Signs Profile) Resource that is related to this one --></target> </related> <component> 0..* BackboneElement <!-- 0..* Used when reporting systolic and diastolic blood pressure. --> <modifierExtension><!-- 0..* Extension Extensions that cannot be ignored --></modifierExtension> <code><!-- 1..1 CodeableConcept Type of component observation (code / type) --></code> <valueQuantity> 0..1 Quantity <!-- 0..1 Vital Sign Value recorded with UCUM --> <value value="[decimal]"/><!-- 1..1 Numerical value (with implicit precision) --> <comparator value="[code]"/><!-- 0..1 < | <= | >= | > - how to understand the value --> <unit value="[string]"/><!-- 1..1 Unit representation --> <system value="[uri]"/><!-- 1..1 System that defines coded unit form --> <code value="[code]"/><!-- 1..1 Coded responses from the common UCUM units for vital signs value set. --> </valueQuantity> <dataAbsentReason><!-- 0..1 CodeableConcept Why the component result is missing --></dataAbsentReason> <interpretation><!-- 0..1 CodeableConcept High, low, normal, etc. --></interpretation> <referenceRange><!-- See #Observation.referenceRange Provides guide for interpretation of component result --></referenceRange> </component> </Observation>
JSON Template
{ // Vital Signs Profile // from Element: extension "meta" : { Meta }, //Metadata about the resource "implicitRules" : "<uri>", //A set of rules under which this content was created "language" : "<code>", //Language of the resource content "text" : { Narrative }, //Text summary of the resource, for human interpretation "contained" : [{ Resource }], //Contained, inline Resources "modifierExtension" : [{ Extension }], //Extensions that cannot be ignored "identifier" : [{ Identifier }], //Business Identifier for observation // value[x]: Fulfills plan, proposal or order. One of these 7: "basedOn" : [{ Reference(CarePlan) }], //Fulfills plan, proposal or order "basedOn" : [{ Reference(DeviceRequest) }], //Fulfills plan, proposal or order "basedOn" : [{ Reference(ImmunizationRecommendation) }], //Fulfills plan, proposal or order "basedOn" : [{ Reference(MedicationRequest) }], //Fulfills plan, proposal or order "basedOn" : [{ Reference(NutritionOrder) }], //Fulfills plan, proposal or order "basedOn" : [{ Reference(ProcedureRequest) }], //Fulfills plan, proposal or order "basedOn" : [{ Reference(ReferralRequest) }], //Fulfills plan, proposal or order "status" : "<code>", // R! registered | preliminary | final | amended + "category" : [{ CodeableConcept }], // C? R! Classification of type of observation "code" : { CodeableConcept }, // R! Coded Responses from C-CDA Vital Sign Results "subject" : { Reference(Patient) }, // R! Who and/or what this is about // value[x]: Healthcare event during which this observation is made. One of these 2: "context" : { Reference(Encounter) }, //Healthcare event during which this observation is made "context" : { Reference(EpisodeOfCare) }, //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>", //Date/Time this was made available // value[x]: Who is responsible for the observation. One of these 4: "performer" : [{ Reference(Practitioner) }], //Who is responsible for the observation "performer" : [{ Reference(Organization) }], //Who is responsible for the observation "performer" : [{ Reference(Patient) }], //Who is responsible for the observation "performer" : [{ Reference(RelatedPerson) }] //Who is responsible for the observation "valueQuantity" : { Quantity }, //Vital Sign Value recorded with UCUM "dataAbsentReason" : { CodeableConcept }, //Why the result is missing "interpretation" : { CodeableConcept }, //High, low, normal, etc. "comment" : "<string>", //Comments about result "bodySite" : { CodeableConcept }, //Observed body part "method" : { CodeableConcept }, //How it was done "specimen" : { Reference(Specimen) }, //Specimen used for this observation // value[x]: (Measurement) Device. One of these 2: "device" : { Reference(Device) }, //(Measurement) Device "device" : { Reference(DeviceMetric) }, //(Measurement) Device "referenceRange" : [{ BackboneElement }], // C?Provides guide for interpretation "related" : [{ BackboneElement }], // C?Used when reporting vital signs panel components "component" : [{ BackboneElement }], // C?Used when reporting systolic and diastolic blood pressure. }
Other representations of profile: Schematron
Path | Name | Conformance | ValueSet |
Observation.language | Common Languages | extensible | Common Languages |
Observation.status | ObservationStatus | required | ObservationStatus |
Observation.category | Observation Category Codes | preferred | Observation Category Codes |
Observation.code | Vital Signs | extensible | Vital Signs |
Observation.valueQuantity | Vital Signs Units | required | Vital Signs Units |
Observation.valueQuantity.comparator | QuantityComparator | required | QuantityComparator |
Observation.dataAbsentReason | Observation Value Absent Reason | extensible | Observation Value 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.type | Observation Reference Range Meaning Codes | extensible | Observation Reference Range Meaning Codes |
Observation.referenceRange.appliesTo | Observation Reference Range Applies To Codes | example | Observation Reference Range Applies To Codes |
Observation.related.type | ObservationRelationshipType | required | ObservationRelationshipType |
Observation.component.code | Vital Signs | extensible | Vital Signs |
Observation.component.valueQuantity | Vital Signs Units | required | Vital Signs Units |
Observation.component.valueQuantity.comparator | QuantityComparator | required | QuantityComparator |
Observation.component.dataAbsentReason | Observation Value Absent Reason | extensible | Observation Value 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 related element then either a value[x] or a data absent reason must be present Expression : (component.empty() and related.empty()) implies (dataAbsentReason.exists() or value.exists()) | |
vs-4 | Observation.category | Must have a category of 'vital-signs' and a code system 'http://hl7.org/fhir/observation-category' Expression : where(coding.system='http://hl7.org/fhir/observation-category' and coding.code='vital-signs').exists() | |
vs-1 | Observation.effective[x] | Datetime must be at least to day. Expression : ($this as dateTime).toString().length() >= 8 | |
obs-3 | Observation.referenceRange | Must have at least a low or a high or text Expression : low.exists() or high.exists() or text.exists() | |
vs-3 | Observation.component | If there is no a value a data absent reason must be present Expression : value.exists() or dataAbsentReason.exists() |