This page is part of the Data Access Framework (v1.6.0: STU 2 Ballot 1) based on FHIR v1.6.0. . For a full list of available versions, see the Directory of published versions
This profile sets minimum expectations for the Observation resource to record, search and fetch vital signs associated with a patient. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.
Example Usage Scenarios:
The following are example usage scenarios for the DAF-VitalSigns profile:
The following data-elements are mandatory (i.e data MUST be present). These are presented below in a simple human-readable explanation. Profile specific guidance and an example are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.
Each Observation must have:
Profile specific implementation guidance:
Vital Sign Name | LOINC Code | UCUM Unit Code | Notes | Examples |
---|---|---|---|---|
Vital Signs | 8716-3 | — | This is the top-level grouping structure for a set of vital signs. It has no value in Observation.valueQuantity ; instead, it just includes related links (with type=has-member) to the Observations in this set (e.g. respiratory rate, heart rate, BP). Note that querying for the panel may miss individual results that are not part of an actual panel. | Vital Signs Panel Example |
Respiratory Rate | 9279-1 | /min | Vital Signs Respiratory Rate Example | |
Heart rate | 8867-4 | /min | Vital Signs Heart Rate Example | |
Oxygen saturation | 59408-5 | % | 59408-5 (Oxygen saturation in Arterial blood by Pulse oximetry) replaces the deprecated code 2710-2 which had been listed in C-CDA. | Vital Signs Oxygen Saturation Example |
Body temperature | 8310-5 | Cel, [degF] | Vital Signs Body Temperature Example | |
Body height | 8302-2 | cm, [in_i] | Vital Signs Body height Example | |
Body length | 8306-3 | cm, [in_i] | Like height, but lying down, typically this is used for infants | Vital Signs Body Length Example |
Head circumference | 8287-5 | cm, [in_i] | Vital Signs Head Cirmcumference Example | |
Body weight | 29463-7 | g, kg,[lb_av] | Vital Signs Body Weight Example | |
Body mass index | 39156-5 | kg/m2 | Vital Body Mass Example | |
Blood pressure systolic and diastolic | 55284-4 | — | This is a grouping structure. It has no value in Observation.valueQuantity but contains at least one component (systolic and/or diastolic). | Vital Signs Blood Pressure Example |
Systolic blood pressure | 8480-6 | mm[Hg] | Observation.component code for a blood pressure Observation | Vital Signs Blood Pressure Example |
Diastolic blood pressure | 8462-4 | mm[Hg] | Observation.component code for a blood pressure Observation | Vital Signs Blood Pressure Example |
Alternate codes may be provided in addition to the standard LOINC and UCUM codes defined here.The examples illustrate using other codes as translations.
Other profiles may make rules about which vital sign must be present or must be present as part of a panel.
The official URL for this profile is:
http://hl7.org/fhir/us/daf/StructureDefinition/daf-core-vitalsigns
This profile was published on Mon Aug 01 00:00:00 AEST 2016 as a draft by Health Level Seven International (FHIR-Infrastructure).
Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.
This structure is derived from Observation
Observation.status
which has an extensible binding to:
Observation.category
which must have:
Observation.category.coding.system
=”http://hl7.org/fhir/observation-category”Observation.category.coding.code
=“vital-signs”Observation.code
Observation.code.coding.system
=“http://loinc.org”Observation.code.coding.code
which has an extensible binding to:
Observation.subject
effectiveDateTime
or effectivePeriod
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:
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:
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:
Observation.related.target
Observation.related.type
=“has-member”This structure is derived from Observation
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | Measurements and simple assertions dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-1: If the resource is contained in another resource, it SHALL NOT contain any narrative dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource obs-7: If code is the same as a component code then the value element associated with the code SHALL NOT be present obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present daf-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 | Unique Id for this particular observation | |
status | ?!S | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
category | S | 1..1 | CodeableConcept | Classification of type of observation Binding: Observation Category Codes (example) Required Pattern: {"coding":[{"system":"http://hl7.org/fhir/observation-category","code":"vital-signs"}]} |
code | S | 1..1 | CodeableConcept | Type of observation (code / type) Binding: DAF Vital Sign Codes (extensible) |
subject | S | 1..1 | Reference(Profile daf-core-patient) | Who and/or what this is about |
encounter | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made | |
effective[x] | SI | 1..1 | dateTime, Period | Clinically relevant time/time-period for observation daf-1: Datetime must be at least to day. |
issued | ∑ | 0..1 | instant | Date/Time this was made available |
performer | ∑ | 0..* | Reference(Practitioner | Organization | Patient | RelatedPerson) | Who is responsible for the observation |
valueQuantity | SI | 0..1 | Quantity | Actual result Binding: Vital Signs Units (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
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 | SI | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | S | 1..1 | code | Coded form of the unit |
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 | 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 |
meaning | 0..* | CodeableConcept | Reference range qualifier Binding: Observation Reference Range Meaning Codes (example) | |
age | 0..1 | Range | Applicable age range, if relevant | |
text | 0..1 | string | Text based reference range in an observation | |
related | S | 0..1 | BackboneElement | Resource related to this observation |
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(Profile daf-vitalsigns) | Resource that is related to this one |
component | SI | 0..1 | BackboneElement | Component results daf-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: DAF Vital Sign Codes (extensible) |
valueQuantity | S | 0..1 | Quantity | Actual component result Binding: Vital Signs Units (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
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 | SI | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | S | 1..1 | code | Coded form of the unit |
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:dafcorevitalsigns.referenceRange Provides guide for interpretation of component result | ||
Documentation for this format |
yet to be done: Xml template
yet to be done: Json template
This structure is derived from Observation
Differential View
This structure is derived from Observation
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | Measurements and simple assertions dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-1: If the resource is contained in another resource, it SHALL NOT contain any narrative dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource obs-7: If code is the same as a component code then the value element associated with the code SHALL NOT be present obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present daf-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 | Unique Id for this particular observation | |
status | ?!S | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
category | S | 1..1 | CodeableConcept | Classification of type of observation Binding: Observation Category Codes (example) Required Pattern: {"coding":[{"system":"http://hl7.org/fhir/observation-category","code":"vital-signs"}]} |
code | S | 1..1 | CodeableConcept | Type of observation (code / type) Binding: DAF Vital Sign Codes (extensible) |
subject | S | 1..1 | Reference(Profile daf-core-patient) | Who and/or what this is about |
encounter | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made | |
effective[x] | SI | 1..1 | dateTime, Period | Clinically relevant time/time-period for observation daf-1: Datetime must be at least to day. |
issued | ∑ | 0..1 | instant | Date/Time this was made available |
performer | ∑ | 0..* | Reference(Practitioner | Organization | Patient | RelatedPerson) | Who is responsible for the observation |
valueQuantity | SI | 0..1 | Quantity | Actual result Binding: Vital Signs Units (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
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 | SI | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | S | 1..1 | code | Coded form of the unit |
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 | 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 |
meaning | 0..* | CodeableConcept | Reference range qualifier Binding: Observation Reference Range Meaning Codes (example) | |
age | 0..1 | Range | Applicable age range, if relevant | |
text | 0..1 | string | Text based reference range in an observation | |
related | S | 0..1 | BackboneElement | Resource related to this observation |
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(Profile daf-vitalsigns) | Resource that is related to this one |
component | SI | 0..1 | BackboneElement | Component results daf-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: DAF Vital Sign Codes (extensible) |
valueQuantity | S | 0..1 | Quantity | Actual component result Binding: Vital Signs Units (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
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 | SI | 1..1 | uri | System that defines coded unit form Fixed Value: http://unitsofmeasure.org |
code | S | 1..1 | code | Coded form of the unit |
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:dafcorevitalsigns.referenceRange Provides guide for interpretation of component result | ||
Documentation for this format |
XML Template
yet to be done: Xml template
JSON Template
yet to be done: Json template
Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron
Path | Name | Conformance | ValueSet |
Observation.language | Common Languages | extensible | Common Languages |
Observation.status | ObservationStatus | required | ObservationStatus |
Observation.category | Observation Category Codes | example | Observation Category Codes |
Observation.code | DAF Vital Sign Codes | extensible | DAF Vital Sign Codes |
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.meaning | Observation Reference Range Meaning Codes | example | Observation Reference Range Meaning Codes |
Observation.related.type | ObservationRelationshipType | required | ObservationRelationshipType |
Observation.component.code | DAF Vital Sign Codes | extensible | DAF Vital Sign Codes |
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 |
dom-2 | Observation | If the resource is contained in another resource, it SHALL NOT contain nested Resources XPath: not(parent::f:contained and f:contained) | |
dom-1 | Observation | If the resource is contained in another resource, it SHALL NOT contain any narrative XPath: not(parent::f:contained and f:text) | |
dom-4 | Observation | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated XPath: not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated)) | |
dom-3 | Observation | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource XPath: not(exists(for $id in f:contained/*/@id return $id[not(ancestor::f:contained/parent::*/descendant::f:reference/@value=concat('#', $id))])) | |
obs-7 | Observation | If code is the same as a component code then the value element associated with the code SHALL NOT be present XPath: not(exists(f:value)) or not(count(for $coding in f:code/f:coding return parent::*/f:component/f:code/f:coding[f:code/@value=$coding/f:code/@value and f:system/@value=$coding/f:system/@value])=0) | |
obs-6 | Observation | dataAbsentReason SHALL only be present if Observation.value[x] is not present XPath: not(exists(f:dataAbsentReason)) or (not(exists(*[starts-with(local-name(.), 'value')]))) | |
daf-2 | Observation | If there is no component or related element then either a value[x] or a data absent reason must be present XPath: exists(f:component) or exists(f:related) or exists(f:*[starts-with(local-name(.), 'value)]) or exists(f:dataAbsentReason) | |
daf-1 | Observation.effective[x] | Datetime must be at least to day. XPath: f:matches(effectiveDateTime,/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)/) | |
obs-3 | Observation.referenceRange | Must have at least a low or a high or text XPath: (exists(f:low) or exists(f:high)or exists(f:text)) | |
daf-3 | Observation.component | If there is no a value a data absent reason must be present XPath: exists(f:*[starts-with(local-name(.), 'value)]) or exists(f:dataAbsentReason) |