US Core Implementation Guide
8.0.1 - STU 8

US Core Implementation Guide, published by HL7 International / Cross-Group Projects. This guide is not an authorized publication; it is the continuous build for version 8.0.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/US-Core/ and changes regularly. 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: 8.0.1
Standards status: Trial-use | Maturity Level: 3 | Computable Name: USCoreProvenance
Other Identifiers: OID:2.16.840.1.113883.4.642.40.2.42.54
Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

The US Core Provenance Profile inherits from the FHIR Provenance resource; refer to it for scope and usage definitions. This profile sets minimum expectations for the Provenance resource to record, search, and fetch provenance information associated with a record. It covers the minimal (basic) information to support lineage of information. It specifies which core elements, extensions, vocabularies, and value sets SHALL be present and constrains how the elements are used. Before reviewing this profile, implementers are encouraged to read the Basic Provenance guidance page, which documents several key use cases, specifically, the organization 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 resource types:
  - 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.

Usages:

- CapabilityStatements using this Profile: US Core Client CapabilityStatement and US Core Server CapabilityStatement
- This Profile is not used by any profiles in this Implementation Guide

You can also check for usages in the FHIR IG Statistics

Changes since version 7.0.0:

- New Content

### Formal Views of Profile Content

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

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Provenance |  | 0..* | Provenance | US Core Provenance
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
target | S Σ | 1..* | Reference(Resource) | The Resource this Provenance record supports
reference | S Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
recorded | S Σ | 1..1 | instant | Timestamp when the activity was recorded / updated
Slices for agent | S C | 1..* | BackboneElement | Actor involved Slice: Unordered, Open by value:type Constraints: provenance-1
agent:All Slices |  |  |  | Content/Rules for all slices
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | S Σ | 0..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible)
who | S Σ | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
agent:ProvenanceAuthor | S | 0..* | BackboneElement | Actor involved
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | S Σ | 1..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible) Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: author
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
who | S Σ | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
agent:ProvenanceTransmitter | S | 0..* | BackboneElement | Actor involved
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | S Σ | 1..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible) Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: transmitter
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
who | S Σ | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Provenance.agent.type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | This IG
Provenance.agent:ProvenanceAuthor.​type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | This IG
Provenance.agent:ProvenanceTransmitter.​type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | 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()`
provenance-1 | error | Provenance.agent | onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device | `who.exists((resolve() is Practitioner) or (resolve() is Device)) implies onBehalfOf.exists()`

This structure is derived from Provenance

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Provenance |  | 0..* | Provenance | US Core Provenance
target | S | 1..* | Reference(Resource) | The Resource this Provenance record supports
reference | S | 0..1 | string | Literal reference, Relative, internal or absolute URL
recorded | S | 1..1 | instant | Timestamp when the activity was recorded / updated
Slices for agent | S C | 1..* | BackboneElement | Actor involved Slice: Unordered, Open by value:type Constraints: provenance-1
agent:All Slices |  |  |  | Content/Rules for all slices
type | S | 0..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible)
who | S | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
agent:ProvenanceAuthor | S | 0..* | BackboneElement | Actor involved
type | S | 1..1 | CodeableConcept | How the agent participated Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: author
agent:ProvenanceTransmitter | S | 0..* | BackboneElement | Actor involved
type | S | 1..1 | CodeableConcept | How the agent participated Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: transmitter
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Provenance.agent.type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
provenance-1 | error | Provenance.agent | onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device | `who.exists((resolve() is Practitioner) or (resolve() is Device)) implies onBehalfOf.exists()`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Provenance |  | 0..* | Provenance | US Core Provenance
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 Bindings | Purpose
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
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
target | S Σ | 1..* | Reference(Resource) | The Resource this Provenance record supports
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | S Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
display | Σ | 0..1 | string | Text alternative for the resource
occurred[x] |  | 0..1 |  | When the activity occurred
occurredPeriod |  |  | Period |
occurredDateTime |  |  | dateTime |
recorded | S Σ | 1..1 | instant | Timestamp when the activity was recorded / updated
policy |  | 0..* | uri | Policy or plan the activity was defined by
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.
Slices for agent | S C | 1..* | BackboneElement | Actor involved Slice: Unordered, Open by value:type Constraints: provenance-1
agent:All Slices |  |  |  | Content/Rules for all slices
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 | S Σ | 0..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible)
role |  | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.
who | S Σ | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
agent:ProvenanceAuthor | S | 0..* | 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 | S Σ | 1..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible) Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: author
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
role |  | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.
who | S Σ | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
agent:ProvenanceTransmitter | S | 0..* | 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 | S Σ | 1..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible) Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: transmitter
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
role |  | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.
who | S Σ | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
entity |  | 0..* | BackboneElement | An entity used in this activity
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
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
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Provenance.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Provenance.target.type | Base | extensible | ResourceType | 📍4.0.1 | FHIR Std.
Provenance.reason | Base | extensible | PurposeOfUse | 📦3.1.0 | THO v7.0
Provenance.activity | Base | extensible | Provenance activity type | 📍4.0.1 | FHIR Std.
Provenance.agent.type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | This IG
Provenance.agent.role | Base | example | SecurityRoleType | 📍4.0.1 | FHIR Std.
Provenance.agent:ProvenanceAuthor.​type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | This IG
Provenance.agent:ProvenanceAuthor.​role | Base | example | SecurityRoleType | 📍4.0.1 | FHIR Std.
Provenance.agent:ProvenanceTransmitter.​type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | This IG
Provenance.agent:ProvenanceTransmitter.​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()`
provenance-1 | error | Provenance.agent | onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device | `who.exists((resolve() is Practitioner) or (resolve() is Device)) implies onBehalfOf.exists()`

This structure is derived from Provenance

Summary

Mandatory: 0 element(2 nested mandatory elements)
Must-Support: 11 elements

Structures

This structure refers to these other structures:

- US Core Organization Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization)
- US Core Practitioner Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner)
- US Core Patient Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient)
- US Core PractitionerRole Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole)
- US Core RelatedPerson Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-relatedperson)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Provenance.agent

Maturity: 3

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Provenance |  | 0..* | Provenance | US Core Provenance
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
target | S Σ | 1..* | Reference(Resource) | The Resource this Provenance record supports
reference | S Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
recorded | S Σ | 1..1 | instant | Timestamp when the activity was recorded / updated
Slices for agent | S C | 1..* | BackboneElement | Actor involved Slice: Unordered, Open by value:type Constraints: provenance-1
agent:All Slices |  |  |  | Content/Rules for all slices
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | S Σ | 0..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible)
who | S Σ | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
agent:ProvenanceAuthor | S | 0..* | BackboneElement | Actor involved
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | S Σ | 1..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible) Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: author
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
who | S Σ | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
agent:ProvenanceTransmitter | S | 0..* | BackboneElement | Actor involved
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
type | S Σ | 1..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible) Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: transmitter
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
who | S Σ | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Provenance.agent.type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | This IG
Provenance.agent:ProvenanceAuthor.​type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | This IG
Provenance.agent:ProvenanceTransmitter.​type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | 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()`
provenance-1 | error | Provenance.agent | onBehalfOf 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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Provenance |  | 0..* | Provenance | US Core Provenance
target | S | 1..* | Reference(Resource) | The Resource this Provenance record supports
reference | S | 0..1 | string | Literal reference, Relative, internal or absolute URL
recorded | S | 1..1 | instant | Timestamp when the activity was recorded / updated
Slices for agent | S C | 1..* | BackboneElement | Actor involved Slice: Unordered, Open by value:type Constraints: provenance-1
agent:All Slices |  |  |  | Content/Rules for all slices
type | S | 0..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible)
who | S | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
agent:ProvenanceAuthor | S | 0..* | BackboneElement | Actor involved
type | S | 1..1 | CodeableConcept | How the agent participated Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: author
agent:ProvenanceTransmitter | S | 0..* | BackboneElement | Actor involved
type | S | 1..1 | CodeableConcept | How the agent participated Required Pattern: At least the following
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: transmitter
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Provenance.agent.type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
provenance-1 | error | Provenance.agent | onBehalfOf 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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Provenance |  | 0..* | Provenance | US Core Provenance
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 Bindings | Purpose
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
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
target | S Σ | 1..* | Reference(Resource) | The Resource this Provenance record supports
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | S Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
display | Σ | 0..1 | string | Text alternative for the resource
occurred[x] |  | 0..1 |  | When the activity occurred
occurredPeriod |  |  | Period |
occurredDateTime |  |  | dateTime |
recorded | S Σ | 1..1 | instant | Timestamp when the activity was recorded / updated
policy |  | 0..* | uri | Policy or plan the activity was defined by
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.
Slices for agent | S C | 1..* | BackboneElement | Actor involved Slice: Unordered, Open by value:type Constraints: provenance-1
agent:All Slices |  |  |  | Content/Rules for all slices
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 | S Σ | 0..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible)
role |  | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.
who | S Σ | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
agent:ProvenanceAuthor | S | 0..* | 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 | S Σ | 1..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible) Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: author
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
role |  | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.
who | S Σ | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
agent:ProvenanceTransmitter | S | 0..* | 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 | S Σ | 1..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible) Required Pattern: At least the following
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
coding |  | 1..* | Coding | Code defined by a terminology system Fixed Value: (Complex)
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
system |  | 1..1 | uri | Identity of the terminology system Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
version |  | 0..1 | string | Version of the system - if relevant
code |  | 1..1 | code | Symbol in syntax defined by the system Fixed Value: transmitter
display |  | 0..1 | string | Representation defined by the system
userSelected |  | 0..1 | boolean | If this coding was chosen directly by the user
text |  | 0..1 | string | Plain text representation of the concept
role |  | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity.
who | S Σ | 1..1 | Reference(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 | S | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing
entity |  | 0..* | BackboneElement | An entity used in this activity
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
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
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Provenance.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Provenance.target.type | Base | extensible | ResourceType | 📍4.0.1 | FHIR Std.
Provenance.reason | Base | extensible | PurposeOfUse | 📦3.1.0 | THO v7.0
Provenance.activity | Base | extensible | Provenance activity type | 📍4.0.1 | FHIR Std.
Provenance.agent.type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | This IG
Provenance.agent.role | Base | example | SecurityRoleType | 📍4.0.1 | FHIR Std.
Provenance.agent:ProvenanceAuthor.​type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | This IG
Provenance.agent:ProvenanceAuthor.​role | Base | example | SecurityRoleType | 📍4.0.1 | FHIR Std.
Provenance.agent:ProvenanceTransmitter.​type | Base | extensible | US Core Provenance Participant Type Codes | 📦8.0.1 | This IG
Provenance.agent:ProvenanceTransmitter.​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()`
provenance-1 | error | Provenance.agent | onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device | `who.exists((resolve() is Practitioner) or (resolve() is Device)) implies onBehalfOf.exists()`

This structure is derived from Provenance

Summary

Mandatory: 0 element(2 nested mandatory elements)
Must-Support: 11 elements

Structures

This structure refers to these other structures:

- US Core Organization Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization)
- US Core Practitioner Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner)
- US Core Patient Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient)
- US Core PractitionerRole Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole)
- US Core RelatedPerson Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-relatedperson)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Provenance.agent

Maturity: 3

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.

- See the Scopes Format section for a description of the SMART scopes syntax.
- See the Search Syntax section for a description of the US Core search syntax.
- 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:

- resource level scopes: `<patient|user|system>/Provenance.rs`

#### 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.
   - The "inline" search result parameter `_revinclude` will return the last Provenance for the version named in the reference. To return all the Provenance resources associated with a resource irrespective of its version, search against Provenance using the `target` search parameter.
   - See the AllergyIntolerance Provenance Example 1 Bundle.

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)
   - The "inline" search result parameter `_revinclude` will return the last Provenance for the version named in the reference. To return all the Provenance resources associated with a resource irrespective of its version, search against Provenance using the `target` search parameter.
   - See the AllergyIntolerance Provenance Example 2 Bundle.