eHealth Infrastructure
5.0.1 - release Denmark flag

This page is part of the FUT Infrastructure (v5.0.1: Release) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version. For a full list of available versions, see the Directory of published versions

Resource Profile: ehealth-observation

Official URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-observation Version: 5.0.1
Active as of 2025-08-12 Computable Name: ehealth-observation

Introduction

An Observation contains the result of a measurement performed by the Patient. It is based on a ServiceRequest that contains information about what to measure and when to measure.

In addition to the result and context, the Observation also contains information about the device used to perform the measurement and reference ranges copied from the ServiceRequest. Reference ranges can change over time, so the copy ensures that the reference range at the time of measurement is preserved.

The eHealth Infrastructure will assist in calculating qualities of the measurement. The observation will be annotated with these qualities.

Scope and Usage

In the eHealth Infrastructure the Observation resource is used in conjunction with the following resources.

  • Media
    • Some Observations may be accompanied by media. E.g. images.
  • QuestionnaireResponse
    • Some activities may involve answering a Questionnaire. The answer is captured in a QuestionnaireResponse. Questionnaires can be used for standalone information about the health of the patient, or they can be used to provide context information for Observations.
  • Communication
    • Communication resources can be used to annotate Observations. See the profile ehealth-communication for further details.
  • Provenance
    • In certain circumstances data from Observations and QuestionnaireResponses can be reused. When this happens, a Provenance resource will identify the source of the original data.
    • Provenance is also used to link correlated resources submitted together.

Submitting Observation bundles

Observations can be submitted using the submit-measurement operation. It is possible to submit a bundle of related resources containing:

  • Observations
  • Media
  • QuestionnaireResponses
  • Provenances

The submit-measurement operation is intended for uploading single measurements, not bulk uploads. Uploading large batches of resources is considered misuse.

The entire bundle is validated and then saved in a single transaction.

Observations are generally immutable once the bundle is saved. Further information about the observation can be added in separate resources like Provenance and Communication.

Marking Observations as "reused"

When a submitted Observation is actually reuse of a previous measurement, this must be marked by the submitter by added a Provenance resource with certain pre-defined properties.

  • Provenance
    • .target must reference all reused resources in the submitted bundle; e.g. the Observation, QuestionnaireResponse or Media containing a copy of the reused values.
    • .activity must have value "Quotation" ("wasQuotedFrom") from FHIR ValueSet https://www.hl7.org/fhir/stu3/codesystem-w3c-provenance-activity-type.html#w3c-provenance-activity-type-Quotation
    • .policy must have value "http://ehealth.sundhed.dk/policy/ehealth/reuse-by-patient"
    • .agent.whoReference must reference the Patient who decided to reuse
    • .entity.role = "quotation"
    • .entity.what = must be reference to Observation, QuestionnaireResponse or Media being reused.

The Provenance resource needs not be supplied for resources which are not being used. However, for non-reused resources, a Provenance resource with .activity = "Primary-Source" can be used to indicate a newly obtained (not reused) Observation, QuestionnaireResponse or Media.

Marking Resources submitted in same bundle

When an Observation-bundle is submitted the eHealth Infrastructure will automatically create a Provenance resource, which identifies the resources which were submitted in the same bundle.

The search-measurements operation can return the resources submitted as part of the same bundle.

Marking Observations with result missing

An Observation is expected to contain a result along with details, for instance when it was obtained. In the event that no result can be measured or otherwise obtained, an Observation can be submitted with the .dataAbsentReason specified.

Searching for Observations

It is possible to search for Observations based on:

  • context
  • subject
  • code
  • period
  • deviceMeasuringQuality
  • situationQuality
  • operationQuality

At least one of "subject" and "context" must be provided. "period" searches on range of "effective".

See Searching for more information about searching in REST, messaging, and services.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

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 2..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:episodeOfCare 1..1 (Complex) Associated Encounter episode of care
URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare
..... extension 0..0
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare"
..... value[x] 1..1 Reference(ehealth-episodeofcare) {r} Value of extension
.... extension:quality 0..* (Complex) Minimum requirements for qualities
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-quality
.... extension:resolvedTiming 1..1 (Complex) Resolved Timing
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-resolved-timing
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code registered | preliminary | final | amended +
Binding: ObservationStatus (required): Codes providing the status of an observation.
... code Σ 1..1 CodeableConcept Type of observation (code / type)
Binding: Observation Codes (required)
... subject Σ 1..1 Reference(ehealth-patient) {r} Who and/or what the observation is about
... effective[x] Σ 1..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effectiveTiming Timing
.... effectiveInstant instant
... performer Σ 1..1 Reference(ehealth-practitioner | ehealth-organization | ehealth-patient | ehealth-relatedperson) {r} Who is responsible for the observation
... value[x] ΣC 0..1 Actual result
.... valueQuantity Quantity
.... valueCodeableConcept CodeableConcept
... dataAbsentReason C 0..1 CodeableConcept Why the result is missing
Binding: Data Absent Reason (required)
... device 0..1 Reference(ehealth-device) {r} (Measurement) Device

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Observation.statusrequiredObservationStatus
http://hl7.org/fhir/ValueSet/observation-status|4.0.1
From the FHIR Standard
Observation.coderequiredObservationCodes
http://ehealth.sundhed.dk/vs/observation-codes
From this IG
Observation.dataAbsentReasonrequiredDataAbsentReason
http://ehealth.sundhed.dk/vs/data-absent-reason
From this IG

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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-4errorObservationIf 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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf 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()

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation Observation
... Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:episodeOfCare 1..1 (Complex) Associated Encounter episode of care
URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare
..... value[x] 1..1 Reference(ehealth-episodeofcare) {r} Value of extension
.... extension:quality 0..* (Complex) Minimum requirements for qualities
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-quality
.... extension:resolvedTiming 1..1 (Complex) Resolved Timing
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-resolved-timing
... basedOn 1..1 Reference(ehealth-servicerequest) {r} Fulfills plan, proposal or order
... code 1..1 CodeableConcept Type of observation (code / type)
Binding: Observation Codes (required)
... effective[x] 1..1 dateTime, Period, Timing, instant Clinically relevant time/time-period for observation
... performer 1..1 Reference(ehealth-practitioner | ehealth-organization | ehealth-patient | ehealth-relatedperson) {r} Who is responsible for the observation
... value[x] 0..1 Actual result
.... valueQuantity Quantity
.... valueCodeableConcept CodeableConcept
... dataAbsentReason 0..1 CodeableConcept Why the result is missing
Binding: Data Absent Reason (required)
... device 0..1 Reference(ehealth-device) {r} (Measurement) Device
... referenceRange
.... type 0..1 CodeableConcept Reference range qualifier
Binding: Reference Range Type (required)
... component
.... code 1..1 CodeableConcept Type of component observation (code / type)
Binding: Observation Codes (required)
.... value[x] 0..1 Actual component result
..... valueQuantity Quantity
..... valueCodeableConcept CodeableConcept

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Observation.coderequiredObservationCodes
http://ehealth.sundhed.dk/vs/observation-codes
From this IG
Observation.dataAbsentReasonrequiredDataAbsentReason
http://ehealth.sundhed.dk/vs/data-absent-reason
From this IG
Observation.referenceRange.typerequiredReferenceRangeType
http://ehealth.sundhed.dk/vs/reference-range-type
From this IG
Observation.component.coderequiredObservationCodes
http://ehealth.sundhed.dk/vs/observation-codes
From this IG
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 2..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:episodeOfCare 1..1 (Complex) Associated Encounter episode of care
URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare
..... id 0..1 id Unique id for inter-element referencing
..... extension 0..0
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare"
..... value[x] 1..1 Reference(ehealth-episodeofcare) {r} Value of extension
.... extension:quality 0..* (Complex) Minimum requirements for qualities
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-quality
.... extension:resolvedTiming 1..1 (Complex) Resolved Timing
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-resolved-timing
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Business Identifier for observation
... basedOn Σ 1..1 Reference(ehealth-servicerequest) {r} Fulfills plan, proposal or order
... partOf Σ 0..* Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) Part of referenced event
... status ?!Σ 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 Σ 1..1 CodeableConcept Type of observation (code / type)
Binding: Observation Codes (required)
... subject Σ 1..1 Reference(ehealth-patient) {r} Who and/or what the observation is about
... focus Σ 0..* Reference(Resource) What the observation is about, when it is not about the subject of record
... encounter Σ 0..1 Reference(Encounter) Healthcare event during which this observation is made
... effective[x] Σ 1..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effectiveTiming Timing
.... effectiveInstant instant
... issued Σ 0..1 instant Date/Time this version was made available
... performer Σ 1..1 Reference(ehealth-practitioner | ehealth-organization | ehealth-patient | ehealth-relatedperson) {r} Who is responsible for the observation
... value[x] ΣC 0..1 Actual result
.... valueQuantity Quantity
.... valueCodeableConcept CodeableConcept
... dataAbsentReason C 0..1 CodeableConcept Why the result is missing
Binding: Data Absent Reason (required)
... interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
... note 0..* Annotation Comments about the observation
... bodySite 0..1 CodeableConcept Observed body part
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
... method 0..1 CodeableConcept How it was done
Binding: ObservationMethods (example): Methods for simple observations.
... specimen 0..1 Reference(Specimen) Specimen used for this observation
... device 0..1 Reference(ehealth-device) {r} (Measurement) Device
... referenceRange C 0..* BackboneElement Provides guide for interpretation
Constraints: obs-3
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... low C 0..1 SimpleQuantity Low Range, if relevant
.... high C 0..1 SimpleQuantity High Range, if relevant
.... type 0..1 CodeableConcept Reference range qualifier
Binding: Reference Range Type (required)
.... appliesTo 0..* CodeableConcept Reference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.
.... age 0..1 Range Applicable age range, if relevant
.... text 0..1 string Text based reference range in an observation
... hasMember Σ 0..* Reference(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: Observation Codes (required)
.... value[x] Σ 0..1 Actual component result
..... valueQuantity Quantity
..... valueCodeableConcept CodeableConcept
.... 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

PathConformanceValueSetURI
Observation.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Observation.statusrequiredObservationStatus
http://hl7.org/fhir/ValueSet/observation-status|4.0.1
From the FHIR Standard
Observation.categorypreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
From the FHIR Standard
Observation.coderequiredObservationCodes
http://ehealth.sundhed.dk/vs/observation-codes
From this IG
Observation.dataAbsentReasonrequiredDataAbsentReason
http://ehealth.sundhed.dk/vs/data-absent-reason
From this IG
Observation.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
From the FHIR Standard
Observation.bodySiteexampleSNOMEDCTBodyStructures
http://hl7.org/fhir/ValueSet/body-site
From the FHIR Standard
Observation.methodexampleObservationMethods
http://hl7.org/fhir/ValueSet/observation-methods
From the FHIR Standard
Observation.referenceRange.typerequiredReferenceRangeType
http://ehealth.sundhed.dk/vs/reference-range-type
From this IG
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
http://hl7.org/fhir/ValueSet/referencerange-appliesto
From the FHIR Standard
Observation.component.coderequiredObservationCodes
http://ehealth.sundhed.dk/vs/observation-codes
From this IG
Observation.component.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.component.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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-4errorObservationIf 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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf 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()

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 2..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:episodeOfCare 1..1 (Complex) Associated Encounter episode of care
URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare
..... extension 0..0
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare"
..... value[x] 1..1 Reference(ehealth-episodeofcare) {r} Value of extension
.... extension:quality 0..* (Complex) Minimum requirements for qualities
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-quality
.... extension:resolvedTiming 1..1 (Complex) Resolved Timing
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-resolved-timing
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code registered | preliminary | final | amended +
Binding: ObservationStatus (required): Codes providing the status of an observation.
... code Σ 1..1 CodeableConcept Type of observation (code / type)
Binding: Observation Codes (required)
... subject Σ 1..1 Reference(ehealth-patient) {r} Who and/or what the observation is about
... effective[x] Σ 1..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effectiveTiming Timing
.... effectiveInstant instant
... performer Σ 1..1 Reference(ehealth-practitioner | ehealth-organization | ehealth-patient | ehealth-relatedperson) {r} Who is responsible for the observation
... value[x] ΣC 0..1 Actual result
.... valueQuantity Quantity
.... valueCodeableConcept CodeableConcept
... dataAbsentReason C 0..1 CodeableConcept Why the result is missing
Binding: Data Absent Reason (required)
... device 0..1 Reference(ehealth-device) {r} (Measurement) Device

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Observation.statusrequiredObservationStatus
http://hl7.org/fhir/ValueSet/observation-status|4.0.1
From the FHIR Standard
Observation.coderequiredObservationCodes
http://ehealth.sundhed.dk/vs/observation-codes
From this IG
Observation.dataAbsentReasonrequiredDataAbsentReason
http://ehealth.sundhed.dk/vs/data-absent-reason
From this IG

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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-4errorObservationIf 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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf 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

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation Observation
... Slices for extension 2..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:episodeOfCare 1..1 (Complex) Associated Encounter episode of care
URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare
..... value[x] 1..1 Reference(ehealth-episodeofcare) {r} Value of extension
.... extension:quality 0..* (Complex) Minimum requirements for qualities
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-quality
.... extension:resolvedTiming 1..1 (Complex) Resolved Timing
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-resolved-timing
... basedOn 1..1 Reference(ehealth-servicerequest) {r} Fulfills plan, proposal or order
... code 1..1 CodeableConcept Type of observation (code / type)
Binding: Observation Codes (required)
... effective[x] 1..1 dateTime, Period, Timing, instant Clinically relevant time/time-period for observation
... performer 1..1 Reference(ehealth-practitioner | ehealth-organization | ehealth-patient | ehealth-relatedperson) {r} Who is responsible for the observation
... value[x] 0..1 Actual result
.... valueQuantity Quantity
.... valueCodeableConcept CodeableConcept
... dataAbsentReason 0..1 CodeableConcept Why the result is missing
Binding: Data Absent Reason (required)
... device 0..1 Reference(ehealth-device) {r} (Measurement) Device
... referenceRange
.... type 0..1 CodeableConcept Reference range qualifier
Binding: Reference Range Type (required)
... component
.... code 1..1 CodeableConcept Type of component observation (code / type)
Binding: Observation Codes (required)
.... value[x] 0..1 Actual component result
..... valueQuantity Quantity
..... valueCodeableConcept CodeableConcept

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Observation.coderequiredObservationCodes
http://ehealth.sundhed.dk/vs/observation-codes
From this IG
Observation.dataAbsentReasonrequiredDataAbsentReason
http://ehealth.sundhed.dk/vs/data-absent-reason
From this IG
Observation.referenceRange.typerequiredReferenceRangeType
http://ehealth.sundhed.dk/vs/reference-range-type
From this IG
Observation.component.coderequiredObservationCodes
http://ehealth.sundhed.dk/vs/observation-codes
From this IG

Snapshot View

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 2..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:episodeOfCare 1..1 (Complex) Associated Encounter episode of care
URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare
..... id 0..1 id Unique id for inter-element referencing
..... extension 0..0
..... url 1..1 uri "http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare"
..... value[x] 1..1 Reference(ehealth-episodeofcare) {r} Value of extension
.... extension:quality 0..* (Complex) Minimum requirements for qualities
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-quality
.... extension:resolvedTiming 1..1 (Complex) Resolved Timing
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-resolved-timing
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Business Identifier for observation
... basedOn Σ 1..1 Reference(ehealth-servicerequest) {r} Fulfills plan, proposal or order
... partOf Σ 0..* Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) Part of referenced event
... status ?!Σ 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 Σ 1..1 CodeableConcept Type of observation (code / type)
Binding: Observation Codes (required)
... subject Σ 1..1 Reference(ehealth-patient) {r} Who and/or what the observation is about
... focus Σ 0..* Reference(Resource) What the observation is about, when it is not about the subject of record
... encounter Σ 0..1 Reference(Encounter) Healthcare event during which this observation is made
... effective[x] Σ 1..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effectiveTiming Timing
.... effectiveInstant instant
... issued Σ 0..1 instant Date/Time this version was made available
... performer Σ 1..1 Reference(ehealth-practitioner | ehealth-organization | ehealth-patient | ehealth-relatedperson) {r} Who is responsible for the observation
... value[x] ΣC 0..1 Actual result
.... valueQuantity Quantity
.... valueCodeableConcept CodeableConcept
... dataAbsentReason C 0..1 CodeableConcept Why the result is missing
Binding: Data Absent Reason (required)
... interpretation 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
... note 0..* Annotation Comments about the observation
... bodySite 0..1 CodeableConcept Observed body part
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
... method 0..1 CodeableConcept How it was done
Binding: ObservationMethods (example): Methods for simple observations.
... specimen 0..1 Reference(Specimen) Specimen used for this observation
... device 0..1 Reference(ehealth-device) {r} (Measurement) Device
... referenceRange C 0..* BackboneElement Provides guide for interpretation
Constraints: obs-3
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... low C 0..1 SimpleQuantity Low Range, if relevant
.... high C 0..1 SimpleQuantity High Range, if relevant
.... type 0..1 CodeableConcept Reference range qualifier
Binding: Reference Range Type (required)
.... appliesTo 0..* CodeableConcept Reference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.
.... age 0..1 Range Applicable age range, if relevant
.... text 0..1 string Text based reference range in an observation
... hasMember Σ 0..* Reference(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: Observation Codes (required)
.... value[x] Σ 0..1 Actual component result
..... valueQuantity Quantity
..... valueCodeableConcept CodeableConcept
.... 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

PathConformanceValueSetURI
Observation.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Observation.statusrequiredObservationStatus
http://hl7.org/fhir/ValueSet/observation-status|4.0.1
From the FHIR Standard
Observation.categorypreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
From the FHIR Standard
Observation.coderequiredObservationCodes
http://ehealth.sundhed.dk/vs/observation-codes
From this IG
Observation.dataAbsentReasonrequiredDataAbsentReason
http://ehealth.sundhed.dk/vs/data-absent-reason
From this IG
Observation.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
From the FHIR Standard
Observation.bodySiteexampleSNOMEDCTBodyStructures
http://hl7.org/fhir/ValueSet/body-site
From the FHIR Standard
Observation.methodexampleObservationMethods
http://hl7.org/fhir/ValueSet/observation-methods
From the FHIR Standard
Observation.referenceRange.typerequiredReferenceRangeType
http://ehealth.sundhed.dk/vs/reference-range-type
From this IG
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
http://hl7.org/fhir/ValueSet/referencerange-appliesto
From the FHIR Standard
Observation.component.coderequiredObservationCodes
http://ehealth.sundhed.dk/vs/observation-codes
From this IG
Observation.component.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.component.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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-4errorObservationIf 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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf 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()

 

Other representations of profile: CSV, Excel, Schematron