Tiro.health Implementation Guide
0.1.0 - ci-build
Tiro.health Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Official URL: http://fhir.tiro.health/StructureDefinition/CardiacMeasurement | Version: 0.1.0 | |||
| Draft as of 2026-06-09 | Computable Name: CardiacMeasurement | |||
FHIR Observation profile for measurements and findings derived from a cardiac diagnostic procedure such as a resting 12-lead ECG or an ambulatory (Holter) recording.
Examples include resting heart rate, the standard ECG intervals (PR, QRS, QT, QTc Bazett / Fridericia, P duration), the cardiologist's overall ECG impression, and Holter-derived summaries (24h heart rate min/avg/max, atrial fibrillation burden and episode statistics, sinus pauses, ventricular and supraventricular ectopy).
category is fixed to procedure. The HL7 observation-category
CodeSystem has no cardiac code; cardiology measurements are
classified as procedure per the FHIR
Vital Signs and
ECG guidance.Observation.code. When related metrics are
recorded over the same period (AFib burden + episodes + longest
episode, sinus pause count + longest pause, …) the parent
Observation.code carries a panel grouper code and each metric is
carried on a separate component. The parent code is never reused on
a component. Where LOINC has no panel concept, a Tiro local code from
TiroCardiacMetric is used.TiroCardiacMetric.Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7, obs-8 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Resource | Contained, inline Resources | |
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!SΣ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. |
![]() ![]() |
S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by pattern:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: procedure | |
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: Procedure | |
![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |
![]() ![]() |
SΣC | 1..1 | CodeableConcept | What was measured or assessed (ECG interval, Holter metric, panel grouper, …) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
![]() ![]() |
SΣ | 0..1 | When the measurement was acquired. Use Period for Holter recordings. | |
![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() |
Period | |||
![]() ![]() |
ΣC | 0..1 | Actual result | |
![]() ![]() ![]() |
Quantity | |||
![]() ![]() ![]() |
CodeableConcept | |||
![]() ![]() ![]() |
string | |||
![]() ![]() ![]() |
boolean | |||
![]() ![]() ![]() |
integer | |||
![]() ![]() ![]() |
Range | |||
![]() ![]() ![]() |
Ratio | |||
![]() ![]() ![]() |
SampledData | |||
![]() ![]() ![]() |
time | |||
![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() |
Period | |||
![]() ![]() ![]() |
Attachment | |||
![]() ![]() ![]() |
Reference(MolecularSequence) | |||
![]() ![]() |
S | 0..1 | CodeableConcept | Procedure that produced the measurement (resting 12-lead ECG, 24h Holter monitoring, …) Binding: ObservationMethods (example): Methods for simple observations. |
![]() ![]() |
ΣC | 0..* | BackboneElement | Metrics captured together on the same recording (e.g. AFib burden + episode count + longest episode). |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
SΣC | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
![]() ![]() ![]() |
SΣ | 1..1 | Actual component result | |
![]() ![]() ![]() ![]() |
Quantity | |||
![]() ![]() ![]() ![]() |
CodeableConcept | |||
![]() ![]() ![]() ![]() |
string | |||
![]() ![]() ![]() ![]() |
boolean | |||
![]() ![]() ![]() ![]() |
integer | |||
![]() ![]() ![]() ![]() |
Range | |||
![]() ![]() ![]() ![]() |
Ratio | |||
![]() ![]() ![]() ![]() |
SampledData | |||
![]() ![]() ![]() ![]() |
time | |||
![]() ![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() ![]() |
Period | |||
![]() ![]() ![]() ![]() |
Attachment | |||
![]() ![]() ![]() ![]() |
Reference(MolecularSequence) | |||
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.status | Base | required | Observation Status | 📍5.0.0 | FHIR Std. |
| Observation.category | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std. |
| Observation.category:procedure | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std. |
| Observation.code | Base | example | LOINC Codes | 📍5.0.0 | FHIR Std. |
| Observation.method | Base | example | Observation Methods | 📍5.0.0 | FHIR Std. |
| Observation.component.code | Base | example | LOINC Codes | 📍5.0.0 | FHIR Std. |
| 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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.component.code is the same as Observation.code, then Observation.value SHALL NOT be present (the Observation.component.value[x] holds the value). |
value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
|
| obs-8 | error | Observation | bodyStructure SHALL only be present if Observation.bodySite is not present |
bodySite.exists() implies bodyStructure.empty()
|
This structure is derived from Observation
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Observation | Measurements and simple assertions | |
![]() ![]() |
S | 1..1 | code | registered | preliminary | final | amended + |
![]() ![]() |
S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by pattern:$this |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Classification of type of observation Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: procedure | |
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: Procedure | |
![]() ![]() |
S | 1..1 | CodeableConcept | What was measured or assessed (ECG interval, Holter metric, panel grouper, …) |
![]() ![]() |
S | 0..1 | When the measurement was acquired. Use Period for Holter recordings. | |
![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() |
Period | |||
![]() ![]() |
S | 0..1 | CodeableConcept | Procedure that produced the measurement (resting 12-lead ECG, 24h Holter monitoring, …) |
![]() ![]() |
0..* | BackboneElement | Metrics captured together on the same recording (e.g. AFib burden + episode count + longest episode). | |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Type of component observation (code / type) |
![]() ![]() ![]() |
S | 1..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period, Attachment, Reference(MolecularSequence) | Actual component result |
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7, obs-8 | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 0..* | Identifier | Business Identifier for observation | ||||
![]() ![]() |
Σ | 0..1 | canonical(ObservationDefinition), Reference(ObservationDefinition) | Instantiates FHIR ObservationDefinition | ||||
![]() ![]() |
Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order | ||||
![]() ![]() |
0..* | BackboneElement | Triggering observation(s) | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(Observation) | Triggering observation | ||||
![]() ![]() ![]() |
Σ | 1..1 | code | reflex | repeat | re-run Binding: TriggeredBytype (required): The type of TriggeredBy Observation. | ||||
![]() ![]() ![]() |
0..1 | string | Reason that the observation was triggered | |||||
![]() ![]() |
Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy | GenomicStudy) | Part of referenced event | ||||
![]() ![]() |
?!SΣ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. | ||||
![]() ![]() |
S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by pattern:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. | ||||
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: procedure | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: Procedure | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() |
SΣC | 1..1 | CodeableConcept | What was measured or assessed (ECG interval, Holter metric, panel grouper, …) Binding: LOINCCodes (example): Codes identifying names of simple observations. | ||||
![]() ![]() |
Σ | 0..1 | Reference(Patient | Group | Device | Location | Organization | Procedure | Practitioner | Medication | Substance | BiologicallyDerivedProduct | NutritionProduct) | Who and/or what the observation is about | ||||
![]() ![]() |
Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record | ||||
![]() ![]() |
Σ | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made | ||||
![]() ![]() |
SΣ | 0..1 | When the measurement was acquired. Use Period for Holter recordings. | |||||
![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() |
Period | |||||||
![]() ![]() |
Σ | 0..1 | instant | Date/Time this version was made available | ||||
![]() ![]() |
Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who is responsible for the observation | ||||
![]() ![]() |
ΣC | 0..1 | Actual result | |||||
![]() ![]() ![]() |
Quantity | |||||||
![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() |
Range | |||||||
![]() ![]() ![]() |
Ratio | |||||||
![]() ![]() ![]() |
SampledData | |||||||
![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() |
Attachment | |||||||
![]() ![]() ![]() |
Reference(MolecularSequence) | |||||||
![]() ![]() |
C | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
![]() ![]() |
0..* | CodeableConcept | High, low, normal, etc Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | |||||
![]() ![]() |
0..* | Annotation | Comments about the observation | |||||
![]() ![]() |
C | 0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts | ||||
![]() ![]() |
C | 0..1 | Reference(BodyStructure) | Observed body structure | ||||
![]() ![]() |
S | 0..1 | CodeableConcept | Procedure that produced the measurement (resting 12-lead ECG, 24h Holter monitoring, …) Binding: ObservationMethods (example): Methods for simple observations. | ||||
![]() ![]() |
C | 0..1 | Reference(Specimen | Group) | Specimen used for this observation Constraints: obs-9 | ||||
![]() ![]() |
0..1 | Reference(Device | DeviceMetric) | A reference to the device that generates the measurements or the device settings for the device | |||||
![]() ![]() |
C | 0..* | BackboneElement | Provides guide for interpretation Constraints: obs-3 | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
C | 0..1 | SimpleQuantity(5.0.0) | Low Range, if relevant | ||||
![]() ![]() ![]() |
C | 0..1 | SimpleQuantity(5.0.0) | High Range, if relevant | ||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Normal value, if relevant Binding: ObservationReferenceRangeNormalValueCodes (extensible): Codes identifying the normal value of the observation. | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range. | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to. | |||||
![]() ![]() ![]() |
0..1 | Range | Applicable age range, if relevant | |||||
![]() ![]() ![]() |
C | 0..1 | markdown | Text based reference range in an observation | ||||
![]() ![]() |
Σ | 0..* | Reference(Observation | QuestionnaireResponse | MolecularSequence) | Related resource that belongs to the Observation group | ||||
![]() ![]() |
Σ | 0..* | Reference(DocumentReference | ImagingStudy | ImagingSelection | QuestionnaireResponse | Observation | MolecularSequence | GenomicStudy) | Related resource from which the observation is made | ||||
![]() ![]() |
ΣC | 0..* | BackboneElement | Metrics captured together on the same recording (e.g. AFib burden + episode count + longest episode). | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
SΣC | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. | ||||
![]() ![]() ![]() |
SΣ | 1..1 | Actual component result | |||||
![]() ![]() ![]() ![]() |
Quantity | |||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() ![]() |
Range | |||||||
![]() ![]() ![]() ![]() |
Ratio | |||||||
![]() ![]() ![]() ![]() |
SampledData | |||||||
![]() ![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() ![]() |
Attachment | |||||||
![]() ![]() ![]() ![]() |
Reference(MolecularSequence) | |||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | High, low, normal, etc Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | |||||
![]() ![]() ![]() |
0..* | See referenceRange (Observation) | Provides guide for interpretation of component result | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.language | Base | required | All Languages | 📍5.0.0 | FHIR Std. |
| Observation.triggeredBy.type | Base | required | triggered Bytype | 📍5.0.0 | FHIR Std. |
| Observation.status | Base | required | Observation Status | 📍5.0.0 | FHIR Std. |
| Observation.category | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std. |
| Observation.category:procedure | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std. |
| Observation.code | Base | example | LOINC Codes | 📍5.0.0 | FHIR Std. |
| Observation.dataAbsentReason | Base | extensible | Data Absent Reason | 📍5.0.0 | FHIR Std. |
| Observation.interpretation | Base | extensible | Observation Interpretation Codes | 📍5.0.0 | FHIR Std. |
| Observation.bodySite | Base | example | SNOMED CT Body Structures | 📍5.0.0 | FHIR Std. |
| Observation.method | Base | example | Observation Methods | 📍5.0.0 | FHIR Std. |
| Observation.referenceRange.normalValue | Base | extensible | Observation Reference Range Normal Value Codes | 📍5.0.0 | FHIR Std. |
| Observation.referenceRange.type | Base | preferred | Observation Reference Range Meaning Codes | 📍5.0.0 | FHIR Std. |
| Observation.referenceRange.appliesTo | Base | example | Observation Reference Range Applies To Codes | 📍5.0.0 | FHIR Std. |
| Observation.component.code | Base | example | LOINC Codes | 📍5.0.0 | FHIR Std. |
| Observation.component.dataAbsentReason | Base | extensible | Data Absent Reason | 📍5.0.0 | FHIR Std. |
| Observation.component.interpretation | Base | extensible | Observation Interpretation Codes | 📍5.0.0 | FHIR Std. |
| 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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-3 | error | Observation.referenceRange | Must have at least a low or a high or text |
low.exists() or high.exists() or text.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.component.code is the same as Observation.code, then Observation.value SHALL NOT be present (the Observation.component.value[x] holds the value). |
value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
|
| obs-8 | error | Observation | bodyStructure SHALL only be present if Observation.bodySite is not present |
bodySite.exists() implies bodyStructure.empty()
|
| obs-9 | error | Observation.specimen | If Observation.specimen is a reference to Group, the group can only have specimens |
(reference.resolve().exists() and reference.resolve() is Group) implies reference.resolve().member.entity.resolve().all($this is Specimen)
|
This structure is derived from Observation
Summary
Mandatory: 2 elements(1 nested mandatory element)
Must-Support: 8 elements
Slices
This structure defines the following Slices:
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7, obs-8 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Resource | Contained, inline Resources | |
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!SΣ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. |
![]() ![]() |
S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by pattern:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: procedure | |
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: Procedure | |
![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |
![]() ![]() |
SΣC | 1..1 | CodeableConcept | What was measured or assessed (ECG interval, Holter metric, panel grouper, …) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
![]() ![]() |
SΣ | 0..1 | When the measurement was acquired. Use Period for Holter recordings. | |
![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() |
Period | |||
![]() ![]() |
ΣC | 0..1 | Actual result | |
![]() ![]() ![]() |
Quantity | |||
![]() ![]() ![]() |
CodeableConcept | |||
![]() ![]() ![]() |
string | |||
![]() ![]() ![]() |
boolean | |||
![]() ![]() ![]() |
integer | |||
![]() ![]() ![]() |
Range | |||
![]() ![]() ![]() |
Ratio | |||
![]() ![]() ![]() |
SampledData | |||
![]() ![]() ![]() |
time | |||
![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() |
Period | |||
![]() ![]() ![]() |
Attachment | |||
![]() ![]() ![]() |
Reference(MolecularSequence) | |||
![]() ![]() |
S | 0..1 | CodeableConcept | Procedure that produced the measurement (resting 12-lead ECG, 24h Holter monitoring, …) Binding: ObservationMethods (example): Methods for simple observations. |
![]() ![]() |
ΣC | 0..* | BackboneElement | Metrics captured together on the same recording (e.g. AFib burden + episode count + longest episode). |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
SΣC | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
![]() ![]() ![]() |
SΣ | 1..1 | Actual component result | |
![]() ![]() ![]() ![]() |
Quantity | |||
![]() ![]() ![]() ![]() |
CodeableConcept | |||
![]() ![]() ![]() ![]() |
string | |||
![]() ![]() ![]() ![]() |
boolean | |||
![]() ![]() ![]() ![]() |
integer | |||
![]() ![]() ![]() ![]() |
Range | |||
![]() ![]() ![]() ![]() |
Ratio | |||
![]() ![]() ![]() ![]() |
SampledData | |||
![]() ![]() ![]() ![]() |
time | |||
![]() ![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() ![]() |
Period | |||
![]() ![]() ![]() ![]() |
Attachment | |||
![]() ![]() ![]() ![]() |
Reference(MolecularSequence) | |||
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.status | Base | required | Observation Status | 📍5.0.0 | FHIR Std. |
| Observation.category | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std. |
| Observation.category:procedure | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std. |
| Observation.code | Base | example | LOINC Codes | 📍5.0.0 | FHIR Std. |
| Observation.method | Base | example | Observation Methods | 📍5.0.0 | FHIR Std. |
| Observation.component.code | Base | example | LOINC Codes | 📍5.0.0 | FHIR Std. |
| 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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.component.code is the same as Observation.code, then Observation.value SHALL NOT be present (the Observation.component.value[x] holds the value). |
value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
|
| obs-8 | error | Observation | bodyStructure SHALL only be present if Observation.bodySite is not present |
bodySite.exists() implies bodyStructure.empty()
|
Differential View
This structure is derived from Observation
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Observation | Measurements and simple assertions | |
![]() ![]() |
S | 1..1 | code | registered | preliminary | final | amended + |
![]() ![]() |
S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by pattern:$this |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Classification of type of observation Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: procedure | |
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: Procedure | |
![]() ![]() |
S | 1..1 | CodeableConcept | What was measured or assessed (ECG interval, Holter metric, panel grouper, …) |
![]() ![]() |
S | 0..1 | When the measurement was acquired. Use Period for Holter recordings. | |
![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() |
Period | |||
![]() ![]() |
S | 0..1 | CodeableConcept | Procedure that produced the measurement (resting 12-lead ECG, 24h Holter monitoring, …) |
![]() ![]() |
0..* | BackboneElement | Metrics captured together on the same recording (e.g. AFib burden + episode count + longest episode). | |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Type of component observation (code / type) |
![]() ![]() ![]() |
S | 1..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period, Attachment, Reference(MolecularSequence) | Actual component result |
Documentation for this format | ||||
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions Constraints: obs-6, obs-7, obs-8 | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 0..* | Identifier | Business Identifier for observation | ||||
![]() ![]() |
Σ | 0..1 | canonical(ObservationDefinition), Reference(ObservationDefinition) | Instantiates FHIR ObservationDefinition | ||||
![]() ![]() |
Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order | ||||
![]() ![]() |
0..* | BackboneElement | Triggering observation(s) | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(Observation) | Triggering observation | ||||
![]() ![]() ![]() |
Σ | 1..1 | code | reflex | repeat | re-run Binding: TriggeredBytype (required): The type of TriggeredBy Observation. | ||||
![]() ![]() ![]() |
0..1 | string | Reason that the observation was triggered | |||||
![]() ![]() |
Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy | GenomicStudy) | Part of referenced event | ||||
![]() ![]() |
?!SΣ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. | ||||
![]() ![]() |
S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by pattern:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. | ||||
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: procedure | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: Procedure | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() |
SΣC | 1..1 | CodeableConcept | What was measured or assessed (ECG interval, Holter metric, panel grouper, …) Binding: LOINCCodes (example): Codes identifying names of simple observations. | ||||
![]() ![]() |
Σ | 0..1 | Reference(Patient | Group | Device | Location | Organization | Procedure | Practitioner | Medication | Substance | BiologicallyDerivedProduct | NutritionProduct) | Who and/or what the observation is about | ||||
![]() ![]() |
Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record | ||||
![]() ![]() |
Σ | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made | ||||
![]() ![]() |
SΣ | 0..1 | When the measurement was acquired. Use Period for Holter recordings. | |||||
![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() |
Period | |||||||
![]() ![]() |
Σ | 0..1 | instant | Date/Time this version was made available | ||||
![]() ![]() |
Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who is responsible for the observation | ||||
![]() ![]() |
ΣC | 0..1 | Actual result | |||||
![]() ![]() ![]() |
Quantity | |||||||
![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() |
Range | |||||||
![]() ![]() ![]() |
Ratio | |||||||
![]() ![]() ![]() |
SampledData | |||||||
![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() |
Attachment | |||||||
![]() ![]() ![]() |
Reference(MolecularSequence) | |||||||
![]() ![]() |
C | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
![]() ![]() |
0..* | CodeableConcept | High, low, normal, etc Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | |||||
![]() ![]() |
0..* | Annotation | Comments about the observation | |||||
![]() ![]() |
C | 0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts | ||||
![]() ![]() |
C | 0..1 | Reference(BodyStructure) | Observed body structure | ||||
![]() ![]() |
S | 0..1 | CodeableConcept | Procedure that produced the measurement (resting 12-lead ECG, 24h Holter monitoring, …) Binding: ObservationMethods (example): Methods for simple observations. | ||||
![]() ![]() |
C | 0..1 | Reference(Specimen | Group) | Specimen used for this observation Constraints: obs-9 | ||||
![]() ![]() |
0..1 | Reference(Device | DeviceMetric) | A reference to the device that generates the measurements or the device settings for the device | |||||
![]() ![]() |
C | 0..* | BackboneElement | Provides guide for interpretation Constraints: obs-3 | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
C | 0..1 | SimpleQuantity(5.0.0) | Low Range, if relevant | ||||
![]() ![]() ![]() |
C | 0..1 | SimpleQuantity(5.0.0) | High Range, if relevant | ||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Normal value, if relevant Binding: ObservationReferenceRangeNormalValueCodes (extensible): Codes identifying the normal value of the observation. | |||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range. | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to. | |||||
![]() ![]() ![]() |
0..1 | Range | Applicable age range, if relevant | |||||
![]() ![]() ![]() |
C | 0..1 | markdown | Text based reference range in an observation | ||||
![]() ![]() |
Σ | 0..* | Reference(Observation | QuestionnaireResponse | MolecularSequence) | Related resource that belongs to the Observation group | ||||
![]() ![]() |
Σ | 0..* | Reference(DocumentReference | ImagingStudy | ImagingSelection | QuestionnaireResponse | Observation | MolecularSequence | GenomicStudy) | Related resource from which the observation is made | ||||
![]() ![]() |
ΣC | 0..* | BackboneElement | Metrics captured together on the same recording (e.g. AFib burden + episode count + longest episode). | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
SΣC | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. | ||||
![]() ![]() ![]() |
SΣ | 1..1 | Actual component result | |||||
![]() ![]() ![]() ![]() |
Quantity | |||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() ![]() |
Range | |||||||
![]() ![]() ![]() ![]() |
Ratio | |||||||
![]() ![]() ![]() ![]() |
SampledData | |||||||
![]() ![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() ![]() |
Attachment | |||||||
![]() ![]() ![]() ![]() |
Reference(MolecularSequence) | |||||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | High, low, normal, etc Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | |||||
![]() ![]() ![]() |
0..* | See referenceRange (Observation) | Provides guide for interpretation of component result | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.language | Base | required | All Languages | 📍5.0.0 | FHIR Std. |
| Observation.triggeredBy.type | Base | required | triggered Bytype | 📍5.0.0 | FHIR Std. |
| Observation.status | Base | required | Observation Status | 📍5.0.0 | FHIR Std. |
| Observation.category | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std. |
| Observation.category:procedure | Base | preferred | Observation Category Codes | 📍5.0.0 | FHIR Std. |
| Observation.code | Base | example | LOINC Codes | 📍5.0.0 | FHIR Std. |
| Observation.dataAbsentReason | Base | extensible | Data Absent Reason | 📍5.0.0 | FHIR Std. |
| Observation.interpretation | Base | extensible | Observation Interpretation Codes | 📍5.0.0 | FHIR Std. |
| Observation.bodySite | Base | example | SNOMED CT Body Structures | 📍5.0.0 | FHIR Std. |
| Observation.method | Base | example | Observation Methods | 📍5.0.0 | FHIR Std. |
| Observation.referenceRange.normalValue | Base | extensible | Observation Reference Range Normal Value Codes | 📍5.0.0 | FHIR Std. |
| Observation.referenceRange.type | Base | preferred | Observation Reference Range Meaning Codes | 📍5.0.0 | FHIR Std. |
| Observation.referenceRange.appliesTo | Base | example | Observation Reference Range Applies To Codes | 📍5.0.0 | FHIR Std. |
| Observation.component.code | Base | example | LOINC Codes | 📍5.0.0 | FHIR Std. |
| Observation.component.dataAbsentReason | Base | extensible | Data Absent Reason | 📍5.0.0 | FHIR Std. |
| Observation.component.interpretation | Base | extensible | Observation Interpretation Codes | 📍5.0.0 | FHIR Std. |
| 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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-3 | error | Observation.referenceRange | Must have at least a low or a high or text |
low.exists() or high.exists() or text.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.component.code is the same as Observation.code, then Observation.value SHALL NOT be present (the Observation.component.value[x] holds the value). |
value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
|
| obs-8 | error | Observation | bodyStructure SHALL only be present if Observation.bodySite is not present |
bodySite.exists() implies bodyStructure.empty()
|
| obs-9 | error | Observation.specimen | If Observation.specimen is a reference to Group, the group can only have specimens |
(reference.resolve().exists() and reference.resolve() is Group) implies reference.resolve().member.entity.resolve().all($this is Specimen)
|
This structure is derived from Observation
Summary
Mandatory: 2 elements(1 nested mandatory element)
Must-Support: 8 elements
Slices
This structure defines the following Slices:
Other representations of profile: CSV, Excel, Schematron