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.
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.
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:
target
elemententity[0].what
elementpolicy
which states reuseEach such Provenance must be submitted along with the resources containing reused data.
See eHealth-observation for further details.
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.
The official URL for this profile is:
http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-provenance
This profile builds on Provenance.
This profile was published on Fri Nov 08 13:01:00 UTC 2019 as a draft by ehealth.sundhed.dk.
Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.
This structure is derived from Provenance
This structure is derived from Provenance
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | ||||
target | 1..* | Reference(Resource) {r} | ||
policy | 1..* | uri | Binding: Policies for provenances (required) | |
location | 0..1 | Reference(Location) {r} | ||
agent | ||||
who[x] | 1..1 | |||
whoUri | uri | |||
whoReference | Reference(eHealth Practitioner | eHealth RelatedPerson | eHealth Patient | eHealth Device | eHealth Organization) | |||
onBehalfOf[x] | 0..1 | |||
onBehalfOfUri | uri | |||
onBehalfOfReference | Reference(eHealth Practitioner | eHealth RelatedPerson | eHealth Patient | eHealth Device | eHealth Organization) | |||
entity | ||||
extension | 0..* | Extension | Slice: Unordered, Open by value:url | |
ehealth-provenance-dateTimeOfReusedEntity | 0..1 | dateTime, Period | Optional Extensions Element URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-provenance-dateTimeOfReusedEntity | |
Documentation for this format |
This structure is derived from Provenance
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | I | 0..* | 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 |
language | 0..1 | code | Language of the resource content Binding: Common Languages (extensible) Max Binding: All Languages | |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
target | Σ | 1..* | Reference(Resource) {r} | Target Reference(s) (usually version specific) |
period | 0..1 | Period | When the activity occurred | |
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) {r} | Where the activity occurred, if relevant | |
reason | 0..* | Coding | Reason the activity is occurring Binding: PurposeOfUse (extensible) | |
activity | 0..1 | Coding | Activity that occurred Binding: ProvenanceActivityType (extensible) | |
agent | I | 1..* | BackboneElement | Actor involved |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
role | Σ | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (extensible) |
who[x] | Σ | 1..1 | Who participated | |
whoUri | uri | |||
whoReference | Reference(eHealth Practitioner | eHealth RelatedPerson | eHealth Patient | eHealth Device | eHealth Organization) | |||
onBehalfOf[x] | 0..1 | Who the agent is representing | ||
onBehalfOfUri | uri | |||
onBehalfOfReference | Reference(eHealth Practitioner | eHealth RelatedPerson | eHealth Patient | eHealth Device | eHealth Organization) | |||
relatedAgentType | 0..1 | CodeableConcept | Type of relationship between agents Binding: RoleLinkType (example) | |
entity | I | 0..* | BackboneElement | An entity used in this activity |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
ehealth-provenance-dateTimeOfReusedEntity | I | 0..1 | dateTime, Period | Optional Extensions Element URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-provenance-dateTimeOfReusedEntity |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
role | Σ | 1..1 | code | derivation | revision | quotation | source | removal Binding: ProvenanceEntityRole (required) |
what[x] | Σ | 1..1 | Identity of entity | |
whatUri | uri | |||
whatReference | Reference(Resource) | |||
whatIdentifier | Identifier | |||
agent | 0..* | Unknown reference to #Provenance.agent Entity is attributed to this agent | ||
signature | 0..* | Signature | Signature on target | |
Documentation for this format |
This structure is derived from Provenance
Differential View
This structure is derived from Provenance
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | ||||
target | 1..* | Reference(Resource) {r} | ||
policy | 1..* | uri | Binding: Policies for provenances (required) | |
location | 0..1 | Reference(Location) {r} | ||
agent | ||||
who[x] | 1..1 | |||
whoUri | uri | |||
whoReference | Reference(eHealth Practitioner | eHealth RelatedPerson | eHealth Patient | eHealth Device | eHealth Organization) | |||
onBehalfOf[x] | 0..1 | |||
onBehalfOfUri | uri | |||
onBehalfOfReference | Reference(eHealth Practitioner | eHealth RelatedPerson | eHealth Patient | eHealth Device | eHealth Organization) | |||
entity | ||||
extension | 0..* | Extension | Slice: Unordered, Open by value:url | |
ehealth-provenance-dateTimeOfReusedEntity | 0..1 | dateTime, Period | Optional Extensions Element URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-provenance-dateTimeOfReusedEntity | |
Documentation for this format |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | I | 0..* | 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 |
language | 0..1 | code | Language of the resource content Binding: Common Languages (extensible) Max Binding: All Languages | |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
target | Σ | 1..* | Reference(Resource) {r} | Target Reference(s) (usually version specific) |
period | 0..1 | Period | When the activity occurred | |
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) {r} | Where the activity occurred, if relevant | |
reason | 0..* | Coding | Reason the activity is occurring Binding: PurposeOfUse (extensible) | |
activity | 0..1 | Coding | Activity that occurred Binding: ProvenanceActivityType (extensible) | |
agent | I | 1..* | BackboneElement | Actor involved |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
role | Σ | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (extensible) |
who[x] | Σ | 1..1 | Who participated | |
whoUri | uri | |||
whoReference | Reference(eHealth Practitioner | eHealth RelatedPerson | eHealth Patient | eHealth Device | eHealth Organization) | |||
onBehalfOf[x] | 0..1 | Who the agent is representing | ||
onBehalfOfUri | uri | |||
onBehalfOfReference | Reference(eHealth Practitioner | eHealth RelatedPerson | eHealth Patient | eHealth Device | eHealth Organization) | |||
relatedAgentType | 0..1 | CodeableConcept | Type of relationship between agents Binding: RoleLinkType (example) | |
entity | I | 0..* | BackboneElement | An entity used in this activity |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
ehealth-provenance-dateTimeOfReusedEntity | I | 0..1 | dateTime, Period | Optional Extensions Element URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-provenance-dateTimeOfReusedEntity |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
role | Σ | 1..1 | code | derivation | revision | quotation | source | removal Binding: ProvenanceEntityRole (required) |
what[x] | Σ | 1..1 | Identity of entity | |
whatUri | uri | |||
whatReference | Reference(Resource) | |||
whatIdentifier | Identifier | |||
agent | 0..* | Unknown reference to #Provenance.agent Entity is attributed to this agent | ||
signature | 0..* | Signature | Signature on target | |
Documentation for this format |
Path | Conformance | ValueSet |
Provenance.language | extensible | Common Languages Max Binding: All Languages |
Provenance.policy | required | Policies for provenances |
Provenance.reason | extensible | PurposeOfUse |
Provenance.activity | extensible | ProvenanceActivityType |
Provenance.agent.role | extensible | SecurityRoleType |
Provenance.agent.relatedAgentType | example | v3 Code System RoleLinkType |
Provenance.entity.role | required | ProvenanceEntityRole |
Id | Path | Details | Requirements |
dom-2 | Provenance | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-1 | Provenance | If the resource is contained in another resource, it SHALL NOT contain any narrative : contained.text.empty() | |
dom-4 | 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-3 | Provenance | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource : contained.where(('#'+id in %resource.descendants().reference).not()).empty() | |
ele-1 | Provenance.agent | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ele-1 | Provenance.entity | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ele-1 | Provenance.entity.extension | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ext-1 | Provenance.entity.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Provenance.entity.extension | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ext-1 | Provenance.entity.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |