US Core Implementation Guide
7.0.0-ballot - Ballot United States of America flag

This page is part of the US Core (v7.0.0-ballot: STU7 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. The current version which supersedes this version is 6.1.0. For a full list of available versions, see the Directory of published versions

Resource Profile: US Core Provenance Profile

Official URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-provenance Version: 7.0.0-ballot
Standards status: Trial-use Maturity Level: 3 Computable Name: USCoreProvenance

Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

This profile sets minimum expectations for the Provenance resource to record, search, and fetch Provenance information associated with a record to promote interoperability and adoption through common implementation. It identifies which core elements, extensions, vocabularies, and value sets SHALL be present in the resource and constrains the way the elements are used when using this profile. This FHIR Provenance profile here covers the minimal (basic) information to support lineage of information. It provides the floor for standards development for specific use cases. Prior to reviewing this profile, implementers are encouraged to read the Basic Provenance guidance page which documents several key use cases, specifically, what organization was responsible for the most recent action on the resource.

Example Usage Scenarios:

The following are example usage scenarios for this profile:

  • Query for the Provenance records associated with an Allergy
  • Query for the Provenance records associated with a Problem

Mandatory and Must Support Data Elements

The following data-elements are mandatory (i.e. data MUST be present) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Views below provides the formal summary, definitions, and terminology requirements.

Each Provenance Must Have:

  1. a reference to the resource(s) the Provenance record is supporting (target)
  2. a date and time for the activity

Each Provenance Must Support:

  1. the author organization responsible for the information
  2. the transmitter that provided the information
  3. the transmitter organization responsible for the transmission (if the transmitter is a device the transmitter organization must also be valued).

Profile Specific Implementation Guidance:

  • The US Core Provenance resource SHALL be supported for these US Core resources:
    • AllergyIntolerance
    • CarePlan
    • CareTeam
    • Condition
    • Coverage
    • Device
    • DiagnosticReport
    • DocumentReference
    • Encounter
    • Goal
    • Immunization
    • MedicationDispense
    • MedicationRequest
    • Observation
    • Patient
    • Procedure
    • QuestionnaireResponse
    • RelatedPerson
    • ServiceRequest
  • If a system receives a provider in Provenance.agent.who as free text they must capture who sent them the information as the organization. On request they SHALL provide this organization as the source and MAY include the free text provider.
  • Systems that need to know the activity has occurred SHOULD populate the activity.

Usage:

Formal Views of Profile Content

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

This structure is derived from Provenance

NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance 0..*ProvenanceUS Core Provenance
... target S1..*Reference(Resource)The Resource this Provenance record supports
.... reference S0..1stringLiteral reference, Relative, internal or absolute URL
... recorded S1..1instantTimestamp when the activity was recorded / updated
... Slices for agent SC1..*BackboneElementActor involved
Slice: Unordered, Open by pattern:type
provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
.... agent:All Slices Content/Rules for all slices
..... type S0..1CodeableConceptHow the agent participated
Binding: US Core Provenance Participant Type Codes (extensible)
..... who S1..1Reference(US Core Organization Profile S | US Core Practitioner Profile | US Core Patient Profile | US Core PractitionerRole Profile | US Core RelatedPerson Profile | Device)Who participated
..... onBehalfOf S0..1Reference(US Core Organization Profile)Who the agent is representing
.... agent:ProvenanceAuthor S0..*BackboneElementActor involved
..... type S1..1CodeableConceptHow the agent participated
Required Pattern: At least the following
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: author
.... agent:ProvenanceTransmitter S0..*BackboneElementActor involved
..... type S1..1CodeableConceptHow the agent participated
Required Pattern: At least the following
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... system1..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: transmitter

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Provenance.agent.typeextensibleUSCoreProvenancePaticipantTypeCodes

Constraints

IdGradePath(s)DetailsRequirements
provenance-1errorProvenance.agentonBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
: who.exists((resolve() is Practitioner) or (resolve() is Device)) implies onBehalfOf.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance 0..*ProvenanceUS Core Provenance
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... target SΣ1..*Reference(Resource)The Resource this Provenance record supports
.... reference SΣC0..1stringLiteral reference, Relative, internal or absolute URL
... recorded SΣ1..1instantTimestamp when the activity was recorded / updated
... Slices for agent SC1..*BackboneElementActor involved
Slice: Unordered, Open by pattern:type
provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
.... agent:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ0..1CodeableConceptHow the agent participated
Binding: US Core Provenance Participant Type Codes (extensible)
..... who SΣ1..1Reference(US Core Organization Profile)Who participated
..... onBehalfOf S0..1Reference(US Core Organization Profile)Who the agent is representing
.... agent:ProvenanceAuthor S0..*BackboneElementActor involved
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ1..1CodeableConceptHow the agent participated
Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity.


Required Pattern: At least the following
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: author
..... who Σ1..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who participated
.... agent:ProvenanceTransmitter S0..*BackboneElementActor involved
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ1..1CodeableConceptHow the agent participated
Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity.


Required Pattern: At least the following
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... system1..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: transmitter
..... who Σ1..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who participated

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Provenance.agent.typeextensibleUSCoreProvenancePaticipantTypeCodes
Provenance.agent:ProvenanceAuthor.typeextensiblePattern: author
Provenance.agent:ProvenanceTransmitter.typeextensiblePattern: transmitter

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorProvenanceIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorProvenanceIf 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-4errorProvenanceIf 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-5errorProvenanceIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceProvenanceA 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()
provenance-1errorProvenance.agentonBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
: who.exists((resolve() is Practitioner) or (resolve() is Device)) implies onBehalfOf.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance 0..*ProvenanceUS Core Provenance
... 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: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..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 SΣ1..*Reference(Resource)The Resource this Provenance record supports
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference SΣC0..1stringLiteral reference, Relative, internal or absolute URL
.... type Σ0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

.... identifier Σ0..1IdentifierLogical reference, when literal reference is not known
.... display Σ0..1stringText alternative for the resource
... occurred[x] 0..1When the activity occurred
.... occurredPeriodPeriod
.... occurredDateTimedateTime
... recorded SΣ1..1instantTimestamp when the activity was recorded / updated
... policy 0..*uriPolicy or plan the activity was defined by
... location 0..1Reference(Location)Where the activity occurred, if relevant
... reason 0..*CodeableConceptReason the activity is occurring
Binding: PurposeOfUse (extensible): The reason the activity took place.


... activity 0..1CodeableConceptActivity that occurred
Binding: ProvenanceActivityType (extensible): The activity that took place.

... Slices for agent SC1..*BackboneElementActor involved
Slice: Unordered, Open by pattern:type
provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
.... agent:All Slices Content/Rules for all slices
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ0..1CodeableConceptHow the agent participated
Binding: US Core Provenance Participant Type Codes (extensible)
..... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.


..... who SΣ1..1Reference(US Core Organization Profile S | US Core Practitioner Profile | US Core Patient Profile | US Core PractitionerRole Profile | US Core RelatedPerson Profile | Device)Who participated
..... onBehalfOf S0..1Reference(US Core Organization Profile)Who the agent is representing
.... agent:ProvenanceAuthor S0..*BackboneElementActor involved
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ1..1CodeableConceptHow the agent participated
Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity.


Required Pattern: At least the following
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... id0..1stringUnique id for inter-element referencing
....... extension0..*ExtensionAdditional content defined by implementations
....... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
....... version0..1stringVersion of the system - if relevant
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: author
....... display0..1stringRepresentation defined by the system
....... userSelected0..1booleanIf this coding was chosen directly by the user
...... text0..1stringPlain text representation of the concept
..... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.


..... who Σ1..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who participated
..... onBehalfOf 0..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who the agent is representing
.... agent:ProvenanceTransmitter S0..*BackboneElementActor involved
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ1..1CodeableConceptHow the agent participated
Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity.


Required Pattern: At least the following
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... id0..1stringUnique id for inter-element referencing
....... extension0..*ExtensionAdditional content defined by implementations
....... system1..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
....... version0..1stringVersion of the system - if relevant
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: transmitter
....... display0..1stringRepresentation defined by the system
....... userSelected0..1booleanIf this coding was chosen directly by the user
...... text0..1stringPlain text representation of the concept
..... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.


..... who Σ1..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who participated
..... onBehalfOf 0..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who the agent is representing
... entity 0..*BackboneElementAn entity used in this activity
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... role Σ1..1codederivation | revision | quotation | source | removal
Binding: ProvenanceEntityRole (required): How an entity was used in an activity.

.... what Σ1..1Reference(Resource)Identity of entity
.... agent 0..*See agent (Provenance)Entity is attributed to this agent
... signature 0..*SignatureSignature on target

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Provenance.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Provenance.target.typeextensibleResourceType
Provenance.reasonextensiblePurposeOfUse
Provenance.activityextensibleProvenanceActivityType
Provenance.agent.typeextensibleUSCoreProvenancePaticipantTypeCodes
Provenance.agent.roleexampleSecurityRoleType
Provenance.agent:ProvenanceAuthor.typeextensiblePattern: author
Provenance.agent:ProvenanceAuthor.roleexampleSecurityRoleType
Provenance.agent:ProvenanceTransmitter.typeextensiblePattern: transmitter
Provenance.agent:ProvenanceTransmitter.roleexampleSecurityRoleType
Provenance.entity.rolerequiredProvenanceEntityRole

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorProvenanceIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorProvenanceIf 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-4errorProvenanceIf 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-5errorProvenanceIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceProvenanceA 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()
provenance-1errorProvenance.agentonBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
: who.exists((resolve() is Practitioner) or (resolve() is Device)) implies onBehalfOf.exists()

Differential View

This structure is derived from Provenance

NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance 0..*ProvenanceUS Core Provenance
... target S1..*Reference(Resource)The Resource this Provenance record supports
.... reference S0..1stringLiteral reference, Relative, internal or absolute URL
... recorded S1..1instantTimestamp when the activity was recorded / updated
... Slices for agent SC1..*BackboneElementActor involved
Slice: Unordered, Open by pattern:type
provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
.... agent:All Slices Content/Rules for all slices
..... type S0..1CodeableConceptHow the agent participated
Binding: US Core Provenance Participant Type Codes (extensible)
..... who S1..1Reference(US Core Organization Profile S | US Core Practitioner Profile | US Core Patient Profile | US Core PractitionerRole Profile | US Core RelatedPerson Profile | Device)Who participated
..... onBehalfOf S0..1Reference(US Core Organization Profile)Who the agent is representing
.... agent:ProvenanceAuthor S0..*BackboneElementActor involved
..... type S1..1CodeableConceptHow the agent participated
Required Pattern: At least the following
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: author
.... agent:ProvenanceTransmitter S0..*BackboneElementActor involved
..... type S1..1CodeableConceptHow the agent participated
Required Pattern: At least the following
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... system1..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: transmitter

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Provenance.agent.typeextensibleUSCoreProvenancePaticipantTypeCodes

Constraints

IdGradePath(s)DetailsRequirements
provenance-1errorProvenance.agentonBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
: who.exists((resolve() is Practitioner) or (resolve() is Device)) implies onBehalfOf.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance 0..*ProvenanceUS Core Provenance
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... target SΣ1..*Reference(Resource)The Resource this Provenance record supports
.... reference SΣC0..1stringLiteral reference, Relative, internal or absolute URL
... recorded SΣ1..1instantTimestamp when the activity was recorded / updated
... Slices for agent SC1..*BackboneElementActor involved
Slice: Unordered, Open by pattern:type
provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
.... agent:All Slices Content/Rules for all slices
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ0..1CodeableConceptHow the agent participated
Binding: US Core Provenance Participant Type Codes (extensible)
..... who SΣ1..1Reference(US Core Organization Profile)Who participated
..... onBehalfOf S0..1Reference(US Core Organization Profile)Who the agent is representing
.... agent:ProvenanceAuthor S0..*BackboneElementActor involved
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ1..1CodeableConceptHow the agent participated
Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity.


Required Pattern: At least the following
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: author
..... who Σ1..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who participated
.... agent:ProvenanceTransmitter S0..*BackboneElementActor involved
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ1..1CodeableConceptHow the agent participated
Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity.


Required Pattern: At least the following
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... system1..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: transmitter
..... who Σ1..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who participated

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Provenance.agent.typeextensibleUSCoreProvenancePaticipantTypeCodes
Provenance.agent:ProvenanceAuthor.typeextensiblePattern: author
Provenance.agent:ProvenanceTransmitter.typeextensiblePattern: transmitter

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorProvenanceIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorProvenanceIf 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-4errorProvenanceIf 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-5errorProvenanceIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceProvenanceA 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()
provenance-1errorProvenance.agentonBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
: who.exists((resolve() is Practitioner) or (resolve() is Device)) implies onBehalfOf.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance 0..*ProvenanceUS Core Provenance
... 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: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..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 SΣ1..*Reference(Resource)The Resource this Provenance record supports
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference SΣC0..1stringLiteral reference, Relative, internal or absolute URL
.... type Σ0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

.... identifier Σ0..1IdentifierLogical reference, when literal reference is not known
.... display Σ0..1stringText alternative for the resource
... occurred[x] 0..1When the activity occurred
.... occurredPeriodPeriod
.... occurredDateTimedateTime
... recorded SΣ1..1instantTimestamp when the activity was recorded / updated
... policy 0..*uriPolicy or plan the activity was defined by
... location 0..1Reference(Location)Where the activity occurred, if relevant
... reason 0..*CodeableConceptReason the activity is occurring
Binding: PurposeOfUse (extensible): The reason the activity took place.


... activity 0..1CodeableConceptActivity that occurred
Binding: ProvenanceActivityType (extensible): The activity that took place.

... Slices for agent SC1..*BackboneElementActor involved
Slice: Unordered, Open by pattern:type
provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
.... agent:All Slices Content/Rules for all slices
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ0..1CodeableConceptHow the agent participated
Binding: US Core Provenance Participant Type Codes (extensible)
..... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.


..... who SΣ1..1Reference(US Core Organization Profile S | US Core Practitioner Profile | US Core Patient Profile | US Core PractitionerRole Profile | US Core RelatedPerson Profile | Device)Who participated
..... onBehalfOf S0..1Reference(US Core Organization Profile)Who the agent is representing
.... agent:ProvenanceAuthor S0..*BackboneElementActor involved
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ1..1CodeableConceptHow the agent participated
Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity.


Required Pattern: At least the following
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... id0..1stringUnique id for inter-element referencing
....... extension0..*ExtensionAdditional content defined by implementations
....... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
....... version0..1stringVersion of the system - if relevant
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: author
....... display0..1stringRepresentation defined by the system
....... userSelected0..1booleanIf this coding was chosen directly by the user
...... text0..1stringPlain text representation of the concept
..... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.


..... who Σ1..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who participated
..... onBehalfOf 0..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who the agent is representing
.... agent:ProvenanceTransmitter S0..*BackboneElementActor involved
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ1..1CodeableConceptHow the agent participated
Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity.


Required Pattern: At least the following
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... id0..1stringUnique id for inter-element referencing
....... extension0..*ExtensionAdditional content defined by implementations
....... system1..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
....... version0..1stringVersion of the system - if relevant
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: transmitter
....... display0..1stringRepresentation defined by the system
....... userSelected0..1booleanIf this coding was chosen directly by the user
...... text0..1stringPlain text representation of the concept
..... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.


..... who Σ1..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who participated
..... onBehalfOf 0..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who the agent is representing
... entity 0..*BackboneElementAn entity used in this activity
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... role Σ1..1codederivation | revision | quotation | source | removal
Binding: ProvenanceEntityRole (required): How an entity was used in an activity.

.... what Σ1..1Reference(Resource)Identity of entity
.... agent 0..*See agent (Provenance)Entity is attributed to this agent
... signature 0..*SignatureSignature on target

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Provenance.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Provenance.target.typeextensibleResourceType
Provenance.reasonextensiblePurposeOfUse
Provenance.activityextensibleProvenanceActivityType
Provenance.agent.typeextensibleUSCoreProvenancePaticipantTypeCodes
Provenance.agent.roleexampleSecurityRoleType
Provenance.agent:ProvenanceAuthor.typeextensiblePattern: author
Provenance.agent:ProvenanceAuthor.roleexampleSecurityRoleType
Provenance.agent:ProvenanceTransmitter.typeextensiblePattern: transmitter
Provenance.agent:ProvenanceTransmitter.roleexampleSecurityRoleType
Provenance.entity.rolerequiredProvenanceEntityRole

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorProvenanceIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorProvenanceIf 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-4errorProvenanceIf 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-5errorProvenanceIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceProvenanceA 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()
provenance-1errorProvenance.agentonBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
: who.exists((resolve() is Practitioner) or (resolve() is Device)) implies onBehalfOf.exists()

 

Other representations of profile: CSV, Excel, Schematron

Notes:


Quick Start


Below is an overview of the required Server RESTful FHIR interactions for this profile - for example, search and read operations - when supporting the US Core interactions to access this profile’s information (Profile Support + Interaction Support). Note that systems that support only US Core Profiles (Profile Only Support) are not required to support these interactions. See the US Core Server CapabilityStatement for a complete list of supported RESTful interactions for this IG.

  • The syntax used to describe the interactions is described here.
  • See the General Requirements section for additional rules and expectations when a server requires status parameters.
  • See the General Guidance section for additional guidance on searching for multiple patients.

US Core Scopes

Servers providing access to provenance data SHALL support these US Core SMART Scopes:

Mandatory Search Parameters:

The following search parameters, search parameter combinations SHALL be supported. Any listed search parameter modifiers, comparators, chains and composites SHALL also be supported UNLESS they are listed as “optional” in which case theySHOULD be supported:

  1. SHALL support searching for all US Core Profile resource types listed above for a patient and all the Provenance records for those resources using a combination of the patient and [_revinclude] search parameters:

    GET [base]/[Resource]?patient=[id]&_revinclude=Provenance:target

    Example:

    1. GET [base]/AllergyIntolerance?patient=[id]5&_revinclude=Provenance:target

    Implementation Notes: Fetches a bundle of all resources of a particular type for the specified patient (how to search by reference) and any corresponding Provenance resources.

  2. SHALL support searching for a particular instance of a US Core Profile resource type listed above and all its Provenance resources using combination of the _id and the [_revinclude] search parameters:

    GET [base]/[Resource]?_id=[id]&_revinclude=Provenance:target

    Example:

    1. GET [base]/AllergyIntolerance?_id=[id]&_revinclude=Provenance:target

    Implementation Notes: Fetches a bundle of a resource of a particular type (within the clients authorization scope) and any corresponding Provenance resources. (how to search by token)