FHIR R4 Symptoms Implementation Guide
1.0.0-ballot - STU 1 Ballot International flag

FHIR R4 Symptoms Implementation Guide, published by HL7 International / Clinical Interoperability Council. This guide is not an authorized publication; it is the continuous build for version 1.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-symptoms-ig/ and changes regularly. See the Directory of published versions

Resource Profile: Symptom Absent Observation

Official URL: http://hl7.org/fhir/uv/symptoms/StructureDefinition/SymptomAbsentObservation Version: 1.0.0-ballot
Standards status: Trial-use Active as of 2025-12-17 Maturity Level: 1 Computable Name: SymptomAbsentObservation

Used to record the absence of a Symptom as reported by a patient or their caregiver.

Mandatory Data Elements

The following data elements must always be present or must be supported if the data is present in the sending system (Must Support definition). They are presented below with a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.

Each Symptom Absent Observation SHALL Have:

  1. a status
  2. a category - one repetition must be set to 'symptom'
  3. a code (LOINC: 111551-8) that indicates this is a Symptom Absent observation
  4. a patient
  5. a dateTime or period detailing when the symptom was not present
  6. a performer of either the Patient or a RelatedPerson who provided the information about the symptom
  7. a valueCodeableConcept that provides the code identifying the specific symptom

Each Symptom Absent Observation SHALL support:

  1. bodySite - a code representing the body site where the symptom is NOT occurring, eg. no pain in my right knee

Each Symptom Absent Observation SHALL NOT provide:

  1. a data absent reason - if there is no data about the symptom, then just do not provide information about that symptom
  2. an interpretation code or a reference range - those apply to observations in general but not to symptom observations
  3. a specimen or device - those do not apply to symptom observations

Other Important Data Elements

In a normal profile, we would indicate the remaining data elements using the Must Support flag. But since the expected use of this IG is that other IGs would further constrain the Symptoms profile for their own use, we have intentionally not used the Must Support flag so as not to imply any additionally required conformance statements. Instead, we have indicated data elements that were considered important to convey. These elements are the following:

  1. issued - when the symptoms information was recorded. This is different from the effective dateTime or period.
  2. note - a text description of the symptom provided by the patient or caregiver
  3. associatedSymptom extension - used to associate other symptoms with this symptom for arbitrary groupings
  4. associatedCondition extension - used to indicate a relationship between this symptom and a condition, eg. a symptom known to be due to a patient's condition

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:associatedSymptomOrCondition 0..* (Complex) Other information that may be relevant to this event.
URL: http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo"
..... value[x] 1..1 Reference(Symptom Observation | Symptom Absent Observation | Condition) 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Other symptoms or conditions that are associated with this symptom
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... code SΣ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
Required Pattern: At least the following
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... coding 1..* Coding Code defined by a terminology system
Fixed Value: (Complex)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... system 1..1 uri Identity of the terminology system
Fixed Value: http://loinc.org
..... version 0..1 string Version of the system - if relevant
..... code 1..1 code Symbol in syntax defined by the system
Fixed Value: 111551-8
..... display 1..1 string Representation defined by the system
Fixed Value: Symptom absent
..... userSelected 0..1 boolean If this coding was chosen directly by the user
.... text 0..1 string Plain text representation of the concept
... subject SΣ 1..1 Reference(Patient) The patient who is experiencing the symptom
... effective[x] SΣ 0..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued Σ 0..1 instant 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Instant when absence of symptom recorded
... performer SΣ 1..1 Reference(Patient | RelatedPerson) The person who is reporting the symptom information
... value[x] SΣC 1..1 CodeableConcept Coded description of symptom
Binding: Common Set of Symptom Codes (preferred)
Additional BindingsPurpose
SNOMEDCTClinicalFindings Max Binding
... note 0..* Annotation 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Patient or caregiver description of absent symptom
... bodySite S 0..1 CodeableConcept Used to indicate a body site where the symptom is NOT occurring, eg. no pain in my right knee
Binding: SNOMEDCTBodyStructures (preferred)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.status Base required ObservationStatus 📍4.0.1 FHIR Std.
Observation.code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.value[x] Base preferred Common Set of Symptom Codes 📦1.0.0-ballot This IG
Observation.bodySite Base preferred SNOMED CT Body Structures 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
obs-6 error Observation dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation 0..* Observation Measurements and simple assertions
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:associatedSymptomOrCondition 0..* (Complex) Other information that may be relevant to this event.
URL: http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo
..... value[x] 1..1 Reference(Symptom Observation | Symptom Absent Observation | Condition) 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Other symptoms or conditions that are associated with this symptom
... status S 1..1 code registered | preliminary | final | amended +
... code S 1..1 CodeableConcept Type of observation (code / type)
Required Pattern: At least the following
.... coding 1..* Coding Code defined by a terminology system
Fixed Value: (Complex)
..... system 1..1 uri Identity of the terminology system
Fixed Value: http://loinc.org
..... code 1..1 code Symbol in syntax defined by the system
Fixed Value: 111551-8
..... display 1..1 string Representation defined by the system
Fixed Value: Symptom absent
... effective[x] S 0..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued 0..1 instant 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Instant when absence of symptom recorded
... performer S 1..1 Reference(Patient | RelatedPerson) The person who is reporting the symptom information
... value[x] S 1..1 CodeableConcept Coded description of symptom
Binding: Common Set of Symptom Codes (preferred)
Additional BindingsPurpose
SNOMEDCTClinicalFindings Max Binding
... dataAbsentReason 0..0 Why the result is missing
... interpretation 0..0 High, low, normal, etc.
... note 0..* Annotation 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Patient or caregiver description of absent symptom
... bodySite S 0..1 CodeableConcept Used to indicate a body site where the symptom is NOT occurring, eg. no pain in my right knee
Binding: SNOMEDCTBodyStructures (preferred)
... specimen 0..0 Specimen used for this observation
... device 0..0 (Measurement) Device
... referenceRange 0..0 Provides guide for interpretation

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Observation.value[x] Base preferred Common Set of Symptom Codes 📦1.0.0-ballot This IG
Observation.bodySite Base preferred SNOMED CT Body Structures 📦4.0.1 FHIR Std.
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... 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: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:associatedSymptomOrCondition 0..* (Complex) Other information that may be relevant to this event.
URL: http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo
..... id 0..1 id Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo"
..... value[x] 1..1 Reference(Symptom Observation | Symptom Absent Observation | Condition) 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Other symptoms or conditions that are associated with this symptom
... 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): Codes providing the status of an observation.
... category 0..* CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
... code SΣ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
Required Pattern: At least the following
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... coding 1..* Coding Code defined by a terminology system
Fixed Value: (Complex)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... system 1..1 uri Identity of the terminology system
Fixed Value: http://loinc.org
..... version 0..1 string Version of the system - if relevant
..... code 1..1 code Symbol in syntax defined by the system
Fixed Value: 111551-8
..... display 1..1 string Representation defined by the system
Fixed Value: Symptom absent
..... userSelected 0..1 boolean If this coding was chosen directly by the user
.... text 0..1 string Plain text representation of the concept
... subject SΣ 1..1 Reference(Patient) The patient who is experiencing the symptom
... 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Σ 0..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued Σ 0..1 instant 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Instant when absence of symptom recorded
... performer SΣ 1..1 Reference(Patient | RelatedPerson) The person who is reporting the symptom information
... value[x] SΣC 1..1 CodeableConcept Coded description of symptom
Binding: Common Set of Symptom Codes (preferred)
Additional BindingsPurpose
SNOMEDCTClinicalFindings Max Binding
... note 0..* Annotation 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Patient or caregiver description of absent symptom
... bodySite S 0..1 CodeableConcept Used to indicate a body site where the symptom is NOT occurring, eg. no pain in my right knee
Binding: SNOMEDCTBodyStructures (preferred)
... method 0..1 CodeableConcept How it was done
Binding: ObservationMethods (example): Methods for simple observations.
... hasMember Σ 0..* Reference(Observation | QuestionnaireResponse | MolecularSequence) Related resource that belongs to the Observation group
... derivedFrom Σ 0..* Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence) Related measurements the observation is made from
... component Σ 0..* BackboneElement Component results
.... 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 Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
.... value[x] Σ 0..1 Actual component result
..... valueQuantity Quantity
..... valueCodeableConcept CodeableConcept
..... valueString string
..... valueBoolean boolean
..... valueInteger integer
..... valueRange Range
..... valueRatio Ratio
..... valueSampledData SampledData
..... valueTime time
..... valueDateTime dateTime
..... valuePeriod Period
.... dataAbsentReason C 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: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
.... referenceRange 0..* See referenceRange (Observation) Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Observation.status Base required ObservationStatus 📍4.0.1 FHIR Std.
Observation.category Base preferred Observation Category Codes 📍4.0.1 FHIR Std.
Observation.code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.value[x] Base preferred Common Set of Symptom Codes 📦1.0.0-ballot This IG
Observation.bodySite Base preferred SNOMED CT Body Structures 📦4.0.1 FHIR Std.
Observation.method Base example Observation Methods 📍4.0.1 FHIR Std.
Observation.referenceRange.​type Base preferred Observation Reference Range Meaning Codes 📍4.0.1 FHIR Std.
Observation.referenceRange.​appliesTo Base example Observation Reference Range Applies To Codes 📍4.0.1 FHIR Std.
Observation.component.​code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.component.​dataAbsentReason Base extensible DataAbsentReason 📍4.0.1 FHIR Std.
Observation.component.​interpretation Base extensible Observation Interpretation Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
obs-6 error Observation dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
.Data
..Type of observation (code / type)
Cardinality: 1..1
CodeableConcept
Describes what was observed. Sometimes this is called the observation "name".

value must match LOINC: 111551-8 "Symptom absent" from LOINC Codes (>1000 codes)
..Clinically relevant time/time-period for observation
Cardinality: 0..1
Choice
The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the "physiologically relevant time". This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itself.

value is a choice of:
..𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Instant when absence of symptom recorded
Cardinality: 0..1
instant
The date and time this version of the observation was made available to providers, typically after the results have been reviewed and verified.

..𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Patient or caregiver description of absent symptom
Cardinality: 0..*
Annotation
Comments about the observation or the results.

.Protocol
..The person who is reporting the symptom information
Cardinality: 1..1
Reference
Who was responsible for asserting the observed value as "true".

value must point to one of Patient or RelatedPerson
..Used to indicate a body site where the symptom is NOT occurring, eg. no pain in my right knee
Cardinality: 0..1
CodeableConcept
Indicates the site on the subject's body where the observation was made (i.e. the target site).

value is bound to SNOMED CT Body Structures (>1000 codes)
.Context
..The patient who is experiencing the symptom
Cardinality: 1..1
Reference
The patient, or group of patients, location, or device this observation is about and into whose record the observation is placed. If the actual focus of the observation is different from the subject (or a sample of, part, or region of the subject), the focus element or the code itself specifies the actual focus of the observation.

value must point to a Patient
.Other Data
..Other information that may be relevant to this event.
Cardinality: 0..*
Extension
Other resources from the patient record that may be relevant to the event. The information from these resources was either used to create the instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are available. For example, use Observation.hasMember instead of supportingInformation for representing the members of an Observation panel.

value must be a Supporting info
extensionhas cardinality: 0..0
url is fixed to Supporting info
value[x]has cardinality: 1..1

doco Documentation for this format

Summary

Mandatory: 3 elements
Must-Support: 7 elements
Prohibited: 5 elements

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

Maturity: 1

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:associatedSymptomOrCondition 0..* (Complex) Other information that may be relevant to this event.
URL: http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo"
..... value[x] 1..1 Reference(Symptom Observation | Symptom Absent Observation | Condition) 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Other symptoms or conditions that are associated with this symptom
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... code SΣ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
Required Pattern: At least the following
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... coding 1..* Coding Code defined by a terminology system
Fixed Value: (Complex)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... system 1..1 uri Identity of the terminology system
Fixed Value: http://loinc.org
..... version 0..1 string Version of the system - if relevant
..... code 1..1 code Symbol in syntax defined by the system
Fixed Value: 111551-8
..... display 1..1 string Representation defined by the system
Fixed Value: Symptom absent
..... userSelected 0..1 boolean If this coding was chosen directly by the user
.... text 0..1 string Plain text representation of the concept
... subject SΣ 1..1 Reference(Patient) The patient who is experiencing the symptom
... effective[x] SΣ 0..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued Σ 0..1 instant 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Instant when absence of symptom recorded
... performer SΣ 1..1 Reference(Patient | RelatedPerson) The person who is reporting the symptom information
... value[x] SΣC 1..1 CodeableConcept Coded description of symptom
Binding: Common Set of Symptom Codes (preferred)
Additional BindingsPurpose
SNOMEDCTClinicalFindings Max Binding
... note 0..* Annotation 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Patient or caregiver description of absent symptom
... bodySite S 0..1 CodeableConcept Used to indicate a body site where the symptom is NOT occurring, eg. no pain in my right knee
Binding: SNOMEDCTBodyStructures (preferred)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.status Base required ObservationStatus 📍4.0.1 FHIR Std.
Observation.code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.value[x] Base preferred Common Set of Symptom Codes 📦1.0.0-ballot This IG
Observation.bodySite Base preferred SNOMED CT Body Structures 📦4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
obs-6 error Observation dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()

Differential View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation 0..* Observation Measurements and simple assertions
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:associatedSymptomOrCondition 0..* (Complex) Other information that may be relevant to this event.
URL: http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo
..... value[x] 1..1 Reference(Symptom Observation | Symptom Absent Observation | Condition) 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Other symptoms or conditions that are associated with this symptom
... status S 1..1 code registered | preliminary | final | amended +
... code S 1..1 CodeableConcept Type of observation (code / type)
Required Pattern: At least the following
.... coding 1..* Coding Code defined by a terminology system
Fixed Value: (Complex)
..... system 1..1 uri Identity of the terminology system
Fixed Value: http://loinc.org
..... code 1..1 code Symbol in syntax defined by the system
Fixed Value: 111551-8
..... display 1..1 string Representation defined by the system
Fixed Value: Symptom absent
... effective[x] S 0..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued 0..1 instant 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Instant when absence of symptom recorded
... performer S 1..1 Reference(Patient | RelatedPerson) The person who is reporting the symptom information
... value[x] S 1..1 CodeableConcept Coded description of symptom
Binding: Common Set of Symptom Codes (preferred)
Additional BindingsPurpose
SNOMEDCTClinicalFindings Max Binding
... dataAbsentReason 0..0 Why the result is missing
... interpretation 0..0 High, low, normal, etc.
... note 0..* Annotation 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Patient or caregiver description of absent symptom
... bodySite S 0..1 CodeableConcept Used to indicate a body site where the symptom is NOT occurring, eg. no pain in my right knee
Binding: SNOMEDCTBodyStructures (preferred)
... specimen 0..0 Specimen used for this observation
... device 0..0 (Measurement) Device
... referenceRange 0..0 Provides guide for interpretation

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Observation.value[x] Base preferred Common Set of Symptom Codes 📦1.0.0-ballot This IG
Observation.bodySite Base preferred SNOMED CT Body Structures 📦4.0.1 FHIR Std.

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* Observation Measurements and simple assertions
Constraints: obs-6, obs-7
... 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: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:associatedSymptomOrCondition 0..* (Complex) Other information that may be relevant to this event.
URL: http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo
..... id 0..1 id Unique id for inter-element referencing
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/workflow-supportingInfo"
..... value[x] 1..1 Reference(Symptom Observation | Symptom Absent Observation | Condition) 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Other symptoms or conditions that are associated with this symptom
... 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): Codes providing the status of an observation.
... category 0..* CodeableConcept Classification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
... code SΣ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
Required Pattern: At least the following
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... coding 1..* Coding Code defined by a terminology system
Fixed Value: (Complex)
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
..... system 1..1 uri Identity of the terminology system
Fixed Value: http://loinc.org
..... version 0..1 string Version of the system - if relevant
..... code 1..1 code Symbol in syntax defined by the system
Fixed Value: 111551-8
..... display 1..1 string Representation defined by the system
Fixed Value: Symptom absent
..... userSelected 0..1 boolean If this coding was chosen directly by the user
.... text 0..1 string Plain text representation of the concept
... subject SΣ 1..1 Reference(Patient) The patient who is experiencing the symptom
... 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Σ 0..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued Σ 0..1 instant 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Instant when absence of symptom recorded
... performer SΣ 1..1 Reference(Patient | RelatedPerson) The person who is reporting the symptom information
... value[x] SΣC 1..1 CodeableConcept Coded description of symptom
Binding: Common Set of Symptom Codes (preferred)
Additional BindingsPurpose
SNOMEDCTClinicalFindings Max Binding
... note 0..* Annotation 𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Patient or caregiver description of absent symptom
... bodySite S 0..1 CodeableConcept Used to indicate a body site where the symptom is NOT occurring, eg. no pain in my right knee
Binding: SNOMEDCTBodyStructures (preferred)
... method 0..1 CodeableConcept How it was done
Binding: ObservationMethods (example): Methods for simple observations.
... hasMember Σ 0..* Reference(Observation | QuestionnaireResponse | MolecularSequence) Related resource that belongs to the Observation group
... derivedFrom Σ 0..* Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence) Related measurements the observation is made from
... component Σ 0..* BackboneElement Component results
.... 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 Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
.... value[x] Σ 0..1 Actual component result
..... valueQuantity Quantity
..... valueCodeableConcept CodeableConcept
..... valueString string
..... valueBoolean boolean
..... valueInteger integer
..... valueRange Range
..... valueRatio Ratio
..... valueSampledData SampledData
..... valueTime time
..... valueDateTime dateTime
..... valuePeriod Period
.... dataAbsentReason C 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: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
.... referenceRange 0..* See referenceRange (Observation) Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Observation.status Base required ObservationStatus 📍4.0.1 FHIR Std.
Observation.category Base preferred Observation Category Codes 📍4.0.1 FHIR Std.
Observation.code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.value[x] Base preferred Common Set of Symptom Codes 📦1.0.0-ballot This IG
Observation.bodySite Base preferred SNOMED CT Body Structures 📦4.0.1 FHIR Std.
Observation.method Base example Observation Methods 📍4.0.1 FHIR Std.
Observation.referenceRange.​type Base preferred Observation Reference Range Meaning Codes 📍4.0.1 FHIR Std.
Observation.referenceRange.​appliesTo Base example Observation Reference Range Applies To Codes 📍4.0.1 FHIR Std.
Observation.component.​code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.component.​dataAbsentReason Base extensible DataAbsentReason 📍4.0.1 FHIR Std.
Observation.component.​interpretation Base extensible Observation Interpretation Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
obs-6 error Observation dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()

openEHR View

.Data
..Type of observation (code / type)
Cardinality: 1..1
CodeableConcept
Describes what was observed. Sometimes this is called the observation "name".

value must match LOINC: 111551-8 "Symptom absent" from LOINC Codes (>1000 codes)
..Clinically relevant time/time-period for observation
Cardinality: 0..1
Choice
The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the "physiologically relevant time". This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itself.

value is a choice of:
..𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Instant when absence of symptom recorded
Cardinality: 0..1
instant
The date and time this version of the observation was made available to providers, typically after the results have been reviewed and verified.

..𝗦𝗛𝗢𝗨𝗟𝗗 𝗦𝗨𝗣𝗣𝗢𝗥𝗧 Patient or caregiver description of absent symptom
Cardinality: 0..*
Annotation
Comments about the observation or the results.

.Protocol
..The person who is reporting the symptom information
Cardinality: 1..1
Reference
Who was responsible for asserting the observed value as "true".

value must point to one of Patient or RelatedPerson
..Used to indicate a body site where the symptom is NOT occurring, eg. no pain in my right knee
Cardinality: 0..1
CodeableConcept
Indicates the site on the subject's body where the observation was made (i.e. the target site).

value is bound to SNOMED CT Body Structures (>1000 codes)
.Context
..The patient who is experiencing the symptom
Cardinality: 1..1
Reference
The patient, or group of patients, location, or device this observation is about and into whose record the observation is placed. If the actual focus of the observation is different from the subject (or a sample of, part, or region of the subject), the focus element or the code itself specifies the actual focus of the observation.

value must point to a Patient
.Other Data
..Other information that may be relevant to this event.
Cardinality: 0..*
Extension
Other resources from the patient record that may be relevant to the event. The information from these resources was either used to create the instance or is provided to help with its interpretation. This extension should not be used if more specific inline elements or extensions are available. For example, use Observation.hasMember instead of supportingInformation for representing the members of an Observation panel.

value must be a Supporting info
extensionhas cardinality: 0..0
url is fixed to Supporting info
value[x]has cardinality: 1..1

doco Documentation for this format

Summary

Mandatory: 3 elements
Must-Support: 7 elements
Prohibited: 5 elements

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

Maturity: 1

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Mandatory Search Parameters:

The following search parameters and search parameter combinations SHALL be supported:

  1. SHALL support searching using the combination of the patient and category search parameters:

    GET [base]/Observation?patient={Type/}[id]&category={system|}[code]

    Example:

    1. GET [base]/Observation?patient=1134281&category=http://terminology.hl7.org/CodeSystem/observation-category|symptom

    Implementation Notes: Fetches a bundle of all Observation resources for the specified patient and a category code = symptom (how to search by reference and how to search by token)

  2. SHALL support searching using the combination of the patient and code search parameters: GET [base]/Observation?patient={Type/}[id]&code={system|}[code]

    Example:

    1. GET [base]/Observation?patient=1134281&code=http://loinc.org|111551-8

    Implementation Notes: Fetches a bundle of all Observation resources for the specified patient and observation code (how to search by reference and how to search by token)

  3. SHALL support searching using the combination of the patient and code-value-concept search parameters: GET [base]/Observation?patient={Type/}[id]&code-value-concept={system|}[code]${system|}[code]

    Example:

    1. GET [base]/Observation?patient=1134281&code-value-concept=http://loinc.org|111551-8$http://www.snomed.info/sct/ 51197009

    Implementation Notes: Fetches a bundle of all Observation resources for the specified patient and observation code and symptom code (how to search by reference and how to search by composite)

  4. SHALL support searching using the combination of the patient and code-value-concept and date search parameters:

    • including support for these date comparators: gt,lt,ge,le
    • including optional support for AND search on date (e.g.date=[date]&date=[date]]&...)

    GET [base]/Observation?patient={Type/}[id]&code-value-concept={system|}[code]${system|}[code]&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}

    Example:

    1. GET [base]Observation?patient=555580&code-value-concept=http://loinc.org|111551-8$http://www.snomed.info/sct/ 51197009&date=ge2018-03-14T00:00:00Z

    Implementation Notes: Fetches a bundle of all Observation resources for the specified patient and date and observation code and symptom code (how to search by reference and how to search by composite and how to search by date)