eHealth Infrastructure
3.6.0 - release Denmark flag

eHealth Infrastructure, published by Den telemedicinske infrastruktur (eHealth Infrastructure). This guide is not an authorized publication; it is the continuous build for version 3.6.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/fut-infrastructure/implementation-guide/ and changes regularly. See the Directory of published versions

Resource Profile: ehealth-provenance

Official URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-provenance Version: 3.6.0
Active as of 2025-10-16 Computable Name: ehealth-provenance

Introduction

Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. Provenance provides a critical foundation for assessing authenticity, enabling trust, and allowing reproducibility. Provenance assertions are a form of contextual metadata and can themselves become important records with their own provenance. Provenance statement indicates clinical significance in terms of confidence in authenticity, reliability, and trustworthiness, integrity, and stage in lifecycle (e.g. Document Completion - has the artifact been legally authenticated), all of which may impact security, privacy, and trust policies.

Scope and Usage

In scope of the eHealth Infrastructure, Provenance resources are used for a number of different purposes. Some of these purposes are purely internal to the infrastructure, whereas others are of relevance to clients of the infrastructure.

The details of different usages of Provenance resources relevant to clients are described in the following sections together with the resources and operations they are supporting.

Reuse of measurements

When a client submits measurements in the form of Observation, QuestionnaireResponse and/or Media, the client can submit one or more of these as reused resources, provided that reuse requirements have been met. For each resource where data is reused, the client must construct a Provenance that:

  • identifies the resource containing reused data through the target element
  • identifies the resource from where data was reused through the entity[0].what element
  • identifies a policy which states reuse

Each such Provenance must be submitted along with the resources containing reused data.

See eHealth-observation for further details.

Tracking measurements submitted in the same bundle

Provenance resources are created internally by the eHealth infrastructure to link correlated resources which are submitted together in one bundle:

See eHealth-observation for further details.

Provenance resources are submitted by a client for creation when an EpisodeOfCare (in profile ehealth-episodeofcare) is created using the create-episode-of-care operation.

Some of these provenance resources hold information about which legal frame the EpisodeOfCare is created under through the Provenance element policy. This could be for instance the health law (in Danish: "Sundhedsloven") or other relevant legal frameworks.

Other of these provenance resources define which data privacy regulations are applicable to data concerning patient, practitioners, and suppliers under the episode of care. This, too, is captured in policy.

See create-episode-of-care for further details.

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
.. Provenance 0..* Provenance Who, What, When for a set of resources
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... target Σ 1..* Reference(Resource) Target Reference(s) (usually version specific)
... policy 1..* uri Policy or plan the activity was defined by
Binding: Policies for provenances (required)
... agent 1..* BackboneElement Actor involved
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... who Σ 1..1 Reference(ehealth-practitioner | ehealth-relatedperson | ehealth-patient | ehealth-device | ehealth-organization) Who participated
.... onBehalfOf 0..1 Reference(ehealth-practitioner | ehealth-relatedperson | ehealth-patient | ehealth-device | ehealth-organization) Who the agent is representing

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Provenance.policy Base required Policies for provenances 📦3.6.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error Provenance If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Provenance 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 Provenance 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 Provenance If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Provenance 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()

This structure is derived from Provenance

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Provenance 0..* Provenance Who, What, When for a set of resources
... policy 1..* uri Policy or plan the activity was defined by
Binding: Policies for provenances (required)
... agent
.... who 1..1 Reference(ehealth-practitioner | ehealth-relatedperson | ehealth-patient | ehealth-device | ehealth-organization) Who participated
.... onBehalfOf 0..1 Reference(ehealth-practitioner | ehealth-relatedperson | ehealth-patient | ehealth-device | ehealth-organization) Who the agent is representing
... entity
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:dateTimeOfReusedEntity 0..1 dateTime, Period Contains date and time of Reused Entity
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-provenance-dateTimeOfReusedEntity

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Provenance.policy Base required Policies for provenances 📦3.6.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Provenance 0..* Provenance Who, What, When for a set of resources
... 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
... 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
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... target Σ 1..* Reference(Resource) Target Reference(s) (usually version specific)
... occurred[x] 0..1 When the activity occurred
.... occurredPeriod Period
.... occurredDateTime dateTime
... recorded Σ 1..1 instant When the activity was recorded / updated
... policy 1..* uri Policy or plan the activity was defined by
Binding: Policies for provenances (required)
... location 0..1 Reference(Location) Where the activity occurred, if relevant
... reason 0..* CodeableConcept Reason the activity is occurring
Binding: PurposeOfUse (extensible): The reason the activity took place.
... activity 0..1 CodeableConcept Activity that occurred
Binding: ProvenanceActivityType (extensible): The activity that took place.
... agent 1..* BackboneElement Actor involved
.... 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
.... type Σ 0..1 CodeableConcept How the agent participated
Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity.
.... role 0..* CodeableConcept What the agents role was
Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.
.... who Σ 1..1 Reference(ehealth-practitioner | ehealth-relatedperson | ehealth-patient | ehealth-device | ehealth-organization) Who participated
.... onBehalfOf 0..1 Reference(ehealth-practitioner | ehealth-relatedperson | ehealth-patient | ehealth-device | ehealth-organization) Who the agent is representing
... entity 0..* BackboneElement An entity used in this activity
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:dateTimeOfReusedEntity 0..1 dateTime, Period Contains date and time of Reused Entity
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-provenance-dateTimeOfReusedEntity
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... role Σ 1..1 code derivation | revision | quotation | source | removal
Binding: ProvenanceEntityRole (required): How an entity was used in an activity.
.... what Σ 1..1 Reference(Resource) Identity of entity
.... agent 0..* See agent (Provenance) Entity is attributed to this agent
... signature 0..* Signature Signature on target

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Provenance.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Provenance.policy Base required Policies for provenances 📦3.6.0 This IG
Provenance.reason Base extensible PurposeOfUse 📦3.1.0 THO v6.5
Provenance.activity Base extensible Provenance activity type 📍4.0.1 FHIR Std.
Provenance.agent.type Base extensible Provenance participant type 📍4.0.1 FHIR Std.
Provenance.agent.role Base example SecurityRoleType 📍4.0.1 FHIR Std.
Provenance.entity.role Base required ProvenanceEntityRole 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Provenance If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Provenance 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 Provenance 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 Provenance If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Provenance 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()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Provenance 0..* Provenance Who, What, When for a set of resources
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... target Σ 1..* Reference(Resource) Target Reference(s) (usually version specific)
... policy 1..* uri Policy or plan the activity was defined by
Binding: Policies for provenances (required)
... agent 1..* BackboneElement Actor involved
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... who Σ 1..1 Reference(ehealth-practitioner | ehealth-relatedperson | ehealth-patient | ehealth-device | ehealth-organization) Who participated
.... onBehalfOf 0..1 Reference(ehealth-practitioner | ehealth-relatedperson | ehealth-patient | ehealth-device | ehealth-organization) Who the agent is representing

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Provenance.policy Base required Policies for provenances 📦3.6.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error Provenance If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Provenance 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 Provenance 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 Provenance If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Provenance 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()

Differential View

This structure is derived from Provenance

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Provenance 0..* Provenance Who, What, When for a set of resources
... policy 1..* uri Policy or plan the activity was defined by
Binding: Policies for provenances (required)
... agent
.... who 1..1 Reference(ehealth-practitioner | ehealth-relatedperson | ehealth-patient | ehealth-device | ehealth-organization) Who participated
.... onBehalfOf 0..1 Reference(ehealth-practitioner | ehealth-relatedperson | ehealth-patient | ehealth-device | ehealth-organization) Who the agent is representing
... entity
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:dateTimeOfReusedEntity 0..1 dateTime, Period Contains date and time of Reused Entity
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-provenance-dateTimeOfReusedEntity

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Provenance.policy Base required Policies for provenances 📦3.6.0 This IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Provenance 0..* Provenance Who, What, When for a set of resources
... 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
... 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
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... target Σ 1..* Reference(Resource) Target Reference(s) (usually version specific)
... occurred[x] 0..1 When the activity occurred
.... occurredPeriod Period
.... occurredDateTime dateTime
... recorded Σ 1..1 instant When the activity was recorded / updated
... policy 1..* uri Policy or plan the activity was defined by
Binding: Policies for provenances (required)
... location 0..1 Reference(Location) Where the activity occurred, if relevant
... reason 0..* CodeableConcept Reason the activity is occurring
Binding: PurposeOfUse (extensible): The reason the activity took place.
... activity 0..1 CodeableConcept Activity that occurred
Binding: ProvenanceActivityType (extensible): The activity that took place.
... agent 1..* BackboneElement Actor involved
.... 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
.... type Σ 0..1 CodeableConcept How the agent participated
Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity.
.... role 0..* CodeableConcept What the agents role was
Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.
.... who Σ 1..1 Reference(ehealth-practitioner | ehealth-relatedperson | ehealth-patient | ehealth-device | ehealth-organization) Who participated
.... onBehalfOf 0..1 Reference(ehealth-practitioner | ehealth-relatedperson | ehealth-patient | ehealth-device | ehealth-organization) Who the agent is representing
... entity 0..* BackboneElement An entity used in this activity
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... extension:dateTimeOfReusedEntity 0..1 dateTime, Period Contains date and time of Reused Entity
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-provenance-dateTimeOfReusedEntity
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... role Σ 1..1 code derivation | revision | quotation | source | removal
Binding: ProvenanceEntityRole (required): How an entity was used in an activity.
.... what Σ 1..1 Reference(Resource) Identity of entity
.... agent 0..* See agent (Provenance) Entity is attributed to this agent
... signature 0..* Signature Signature on target

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Provenance.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Provenance.policy Base required Policies for provenances 📦3.6.0 This IG
Provenance.reason Base extensible PurposeOfUse 📦3.1.0 THO v6.5
Provenance.activity Base extensible Provenance activity type 📍4.0.1 FHIR Std.
Provenance.agent.type Base extensible Provenance participant type 📍4.0.1 FHIR Std.
Provenance.agent.role Base example SecurityRoleType 📍4.0.1 FHIR Std.
Provenance.entity.role Base required ProvenanceEntityRole 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Provenance If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Provenance 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 Provenance 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 Provenance If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Provenance 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()

 

Other representations of profile: CSV, Excel, Schematron