eHealth Infrastructure (v2020.1)

StructureDefinition: ehealth-detached-provenance

Introduction

Detached Provenance is a replica of the ehealth-provenance resource. While the ehealth-provenance profile is nested into other resource types, the “Detached Provenance” exists as a stand-alone entity that can be created, searched, and read.

Scope and Usage

In scope of the eHealth infrastructure the purpose of the Detached Provenance resource is:

  • Marking instances of ehealth-messages read/acknowledged (see eHealth-message for further details). Eg. to mark a message as read, a DetachedProvenance instance must be created with activity=read.
  • Indicating the temporal validity of notifications using the “period” attribute (to indicate in which point in the the notification is no longer valid)
  • Specifying legal patient context

A DetachedProvenance resource must reference the related ehealth-message instance using the “target” field, and the actual message recipient in the agent/whoReference field (see example in the “Examples” tab). Only one Provenance instance may be created per ehealth-message. If a different state must be registered, the existing Provenance resource must be updated.

Java examples of searching for DetachedProvenance based on message and recipient are located on the Wiki.

Formal Views of Profile Content

The official URL for this profile is:

http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-detached-provenance

This profile builds on Provenance.

This profile was published on Tue Feb 04 09:11:17 UTC 2020 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

Summary

Structures

This structure refers to these other structures:

This structure is derived from Provenance

This structure is derived from Provenance

NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance I0..*ProvenanceWho, What, When for a set of resources
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
Max Binding: All Languages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... target Σ1..*Reference(Resource)Target Reference(s) (usually version specific)
... period 0..1PeriodWhen the activity occurred
... recorded Σ1..1instantWhen the activity was recorded / updated
... policy 0..*uriPolicy or plan the activity was defined by
... location 0..1Reference(Location) {r}Where the activity occurred, if relevant
... reason 0..*CodingReason the activity is occurring
Binding: PurposeOfUse (extensible)
... activity 0..1CodingActivity that occurred
Binding: ProvenanceActivityType (extensible)
... agent I1..1BackboneElementActor involved
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... role Σ0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (extensible)
.... who[x] Σ1..1Who participated
..... whoUriuri
..... whoReferenceReference(eHealth Practitioner | eHealth Patient)
.... onBehalfOf[x] 0..1Who the agent is representing
..... onBehalfOfUriuri
..... onBehalfOfReferenceReference(eHealth Practitioner | eHealth Patient)
.... relatedAgentType 0..1CodeableConceptType of relationship between agents
Binding: RoleLinkType (example)
... entity I0..*BackboneElementAn entity used in this activity
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... role Σ1..1codederivation | revision | quotation | source | removal
Binding: ProvenanceEntityRole (required)
.... what[x] Σ1..1Identity of entity
..... whatUriuri
..... whatReferenceReference(Resource)
..... whatIdentifierIdentifier
.... agent 0..*Unknown reference to #Provenance.agent
Entity is attributed to this agent
... signature 0..*SignatureSignature on target

doco Documentation for this format

This structure is derived from Provenance

Summary

Structures

This structure refers to these other structures:

Differential View

This structure is derived from Provenance

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance I0..*ProvenanceWho, What, When for a set of resources
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
Max Binding: All Languages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... target Σ1..*Reference(Resource)Target Reference(s) (usually version specific)
... period 0..1PeriodWhen the activity occurred
... recorded Σ1..1instantWhen the activity was recorded / updated
... policy 0..*uriPolicy or plan the activity was defined by
... location 0..1Reference(Location) {r}Where the activity occurred, if relevant
... reason 0..*CodingReason the activity is occurring
Binding: PurposeOfUse (extensible)
... activity 0..1CodingActivity that occurred
Binding: ProvenanceActivityType (extensible)
... agent I1..1BackboneElementActor involved
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... role Σ0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (extensible)
.... who[x] Σ1..1Who participated
..... whoUriuri
..... whoReferenceReference(eHealth Practitioner | eHealth Patient)
.... onBehalfOf[x] 0..1Who the agent is representing
..... onBehalfOfUriuri
..... onBehalfOfReferenceReference(eHealth Practitioner | eHealth Patient)
.... relatedAgentType 0..1CodeableConceptType of relationship between agents
Binding: RoleLinkType (example)
... entity I0..*BackboneElementAn entity used in this activity
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... role Σ1..1codederivation | revision | quotation | source | removal
Binding: ProvenanceEntityRole (required)
.... what[x] Σ1..1Identity of entity
..... whatUriuri
..... whatReferenceReference(Resource)
..... whatIdentifierIdentifier
.... agent 0..*Unknown reference to #Provenance.agent
Entity is attributed to this agent
... signature 0..*SignatureSignature on target

doco Documentation for this format

 

Terminology Bindings

PathConformanceValueSet
Provenance.languageextensibleCommon Languages
Max Binding: All Languages
Provenance.reasonextensiblePurposeOfUse
Provenance.activityextensibleProvenanceActivityType
Provenance.agent.roleextensibleSecurityRoleType
Provenance.agent.relatedAgentTypeexamplev3 Code System RoleLinkType
Provenance.entity.rolerequiredProvenanceEntityRole

Constraints

IdPathDetailsRequirements
dom-2ProvenanceIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-1ProvenanceIf the resource is contained in another resource, it SHALL NOT contain any narrative
: contained.text.empty()
dom-4ProvenanceIf 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-3ProvenanceIf 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-1Provenance.agentAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1Provenance.entityAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
.