This page is part of the US Core (v3.1.1: STU3) based on FHIR R4. The current version which supercedes this version is 5.0.1. For a full list of available versions, see the Directory of published versions
StructureDefinition-us-core-provenance
This profile sets minimum expectations for the Provenance resource to record, search, and fetch Provenance information associated with a record. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile. This FHIR Provenance profile here covers the minimal (basic) information to support lineage of information. Prior to reviewing this profile, implementers are encouraged to read the Basic Provenance guidance page which documents several key use cases.
Example Usage Scenarios:
The following are example usage scenarios for the US Core Provenance 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 Profile Definition below provides the formal summary, definitions, and terminology requirements.
Each Provenance must have:
- resource(s) the Provenance record is supporting (target)
- a date and time for the activity
Each Provenance must support:
- an author responsible for the update
- the author organization responsible for the information
- the transmitter that provided the information
- 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:
- US Core AllergyIntolerance Profile
- US Core CarePlan Profile
- US Core CareTeam Profile
- US Core Condition Profile
- US Core DiagnosticReport Profile for Laboratory Results Reporting
- US Core DiagnosticReport Profile for Report and Note exchange
- US Core DocumentReference Profile
- US Core Encounter Profile
- US Core Goal Profile
- US Core Immunization Profile
- US Core Implantable Device Profile
- US Core Laboratory Result Observation Profile
- US Core MedicationRequest Profile
- US Core Patient Profile
- US Core Pediatric BMI for Age Observation Profile
- US Core Pediatric Weight for Height Observation Profile
- US Core Procedure Profile
- US Core Pulse Oximetry Profile
- US Core Smoking Status Observation Profile
- The Vital Signs Profile from the FHIR Specification
- 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.
Examples
- Allergyintolerance Provenance Example: A
searchset
Bundle including both AllergyIntolerance and Provenance
Formal Views of Profile Content
Description of Profiles, Differentials, and Snapshots.
The official URL for this profile is:
http://hl7.org/fhir/us/core/StructureDefinition/us-core-provenance
Published on Mon Aug 05 00:00:00 AEST 2019 as active by the HL7 US Realm Steering Committee.
This profile builds on Provenance
Provenance
Summary of the Mandatory Requirements
- One or more Target References in
Provenance.target
- An instant in
Provenance.recorded
- One or more Agents in
Provenance.agent
- which should have a CodeableConcept value in
Provenance.agent.type
with an extensible binding to US Core Provenance Participant Type Codes - which must have a Who Reference value in
Provenance.agent.who
- which should have an Onbehalfof Reference value in
Provenance.agent.onBehalfOf
- which should have a CodeableConcept value in
Summary of the Must Support Requirements
- One or more Agents in
Provenance.agent
- which must have a
Provenance.agent.type
={"coding": [{"code": "author", "system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type"}]}
- which must have a
- An Agent in
Provenance.agent
- which must have a
Provenance.agent.type
={"coding": [{"code": "transmitter", "system": "http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type"}]}
- which must have a
Summary of Constraints
- onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | 0..* | Provenance | US Core Provenance | |
target | S | 1..* | Reference(Resource) | The Resource this Provenance record supports |
recorded | S | 1..1 | instant | Timestamp when the activity was recorded / updated |
agent | S | 1..* | (Slice Definition) | Actor involved Slice: Unordered, Open by pattern:type |
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 Practitioner Profile | US Core Patient Profile | US Core Organization Profile) | Who participated |
onBehalfOf | SI | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device |
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..1 | 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 |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | I | 0..* | Provenance | US Core Provenance |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | ΣI | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!ΣI | 0..1 | uri | A set of rules under which this content was created |
language | I | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!I | 0..* | Extension | Extensions that cannot be ignored |
target | SΣI | 1..* | Reference(Resource) | The Resource this Provenance record supports |
occurred[x] | I | 0..1 | When the activity occurred | |
occurredPeriod | Period | |||
occurredDateTime | dateTime | |||
recorded | SΣI | 1..1 | instant | Timestamp when the activity was recorded / updated |
policy | I | 0..* | uri | Policy or plan the activity was defined by |
location | I | 0..1 | Reference(Location) | Where the activity occurred, if relevant |
reason | I | 0..* | CodeableConcept | Reason the activity is occurring Binding: PurposeOfUse (extensible) |
activity | I | 0..1 | CodeableConcept | Activity that occurred Binding: ProvenanceActivityType (extensible) |
agent | SI | 1..* | (Slice Definition) | Actor involved Slice: Unordered, Open by pattern:type |
agent:All Slices | Content/Rules for all slices | |||
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
type | SΣI | 0..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible) |
role | I | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example) |
who | SΣI | 1..1 | Reference(US Core Practitioner Profile | US Core Patient Profile | US Core Organization Profile) | Who participated |
onBehalfOf | SI | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device |
agent:ProvenanceAuthor | SI | 0..* | BackboneElement | Actor involved |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
type | SΣI | 1..1 | CodeableConcept | How the agent participated Binding: ProvenanceParticipantType (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 | I | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example) |
who | ΣI | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated |
onBehalfOf | I | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who the agent is representing |
agent:ProvenanceTransmitter | SI | 0..1 | BackboneElement | Actor involved |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
type | SΣI | 1..1 | CodeableConcept | How the agent participated Binding: ProvenanceParticipantType (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 | I | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example) |
who | ΣI | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated |
onBehalfOf | I | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who the agent is representing |
entity | I | 0..* | BackboneElement | An entity used in this activity |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
role | ΣI | 1..1 | code | derivation | revision | quotation | source | removal Binding: ProvenanceEntityRole (required) |
what | ΣI | 1..1 | Reference(Resource) | Identity of entity |
agent | I | 0..* | See agent | Entity is attributed to this agent |
signature | I | 0..* | Signature | Signature on target |
Documentation for this format |
Provenance
Summary of the Mandatory Requirements
- One or more Target References in
Provenance.target
- An instant in
Provenance.recorded
- One or more Agents in
Provenance.agent
- which should have a CodeableConcept value in
Provenance.agent.type
with an extensible binding to US Core Provenance Participant Type Codes - which must have a Who Reference value in
Provenance.agent.who
- which should have an Onbehalfof Reference value in
Provenance.agent.onBehalfOf
- which should have a CodeableConcept value in
Summary of the Must Support Requirements
- One or more Agents in
Provenance.agent
- which must have a
Provenance.agent.type
={"coding": [{"code": "author", "system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type"}]}
- which must have a
- An Agent in
Provenance.agent
- which must have a
Provenance.agent.type
={"coding": [{"code": "transmitter", "system": "http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type"}]}
- which must have a
Summary of Constraints
- onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
Differential View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | 0..* | Provenance | US Core Provenance | |
target | S | 1..* | Reference(Resource) | The Resource this Provenance record supports |
recorded | S | 1..1 | instant | Timestamp when the activity was recorded / updated |
agent | S | 1..* | (Slice Definition) | Actor involved Slice: Unordered, Open by pattern:type |
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 Practitioner Profile | US Core Patient Profile | US Core Organization Profile) | Who participated |
onBehalfOf | SI | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device |
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..1 | 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 |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | I | 0..* | Provenance | US Core Provenance |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | ΣI | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!ΣI | 0..1 | uri | A set of rules under which this content was created |
language | I | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!I | 0..* | Extension | Extensions that cannot be ignored |
target | SΣI | 1..* | Reference(Resource) | The Resource this Provenance record supports |
occurred[x] | I | 0..1 | When the activity occurred | |
occurredPeriod | Period | |||
occurredDateTime | dateTime | |||
recorded | SΣI | 1..1 | instant | Timestamp when the activity was recorded / updated |
policy | I | 0..* | uri | Policy or plan the activity was defined by |
location | I | 0..1 | Reference(Location) | Where the activity occurred, if relevant |
reason | I | 0..* | CodeableConcept | Reason the activity is occurring Binding: PurposeOfUse (extensible) |
activity | I | 0..1 | CodeableConcept | Activity that occurred Binding: ProvenanceActivityType (extensible) |
agent | SI | 1..* | (Slice Definition) | Actor involved Slice: Unordered, Open by pattern:type |
agent:All Slices | Content/Rules for all slices | |||
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
type | SΣI | 0..1 | CodeableConcept | How the agent participated Binding: US Core Provenance Participant Type Codes (extensible) |
role | I | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example) |
who | SΣI | 1..1 | Reference(US Core Practitioner Profile | US Core Patient Profile | US Core Organization Profile) | Who participated |
onBehalfOf | SI | 0..1 | Reference(US Core Organization Profile) | Who the agent is representing provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device |
agent:ProvenanceAuthor | SI | 0..* | BackboneElement | Actor involved |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
type | SΣI | 1..1 | CodeableConcept | How the agent participated Binding: ProvenanceParticipantType (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 | I | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example) |
who | ΣI | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated |
onBehalfOf | I | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who the agent is representing |
agent:ProvenanceTransmitter | SI | 0..1 | BackboneElement | Actor involved |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
type | SΣI | 1..1 | CodeableConcept | How the agent participated Binding: ProvenanceParticipantType (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 | I | 0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example) |
who | ΣI | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated |
onBehalfOf | I | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who the agent is representing |
entity | I | 0..* | BackboneElement | An entity used in this activity |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
role | ΣI | 1..1 | code | derivation | revision | quotation | source | removal Binding: ProvenanceEntityRole (required) |
what | ΣI | 1..1 | Reference(Resource) | Identity of entity |
agent | I | 0..* | See agent | Entity is attributed to this agent |
signature | I | 0..* | Signature | Signature on target |
Documentation for this format |
Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron
Quick Start
Below is an overview of the required set of Server RESTful FHIR interactions - for example, search and read operations - for this profile. See the Conformance requirements for a complete list of supported RESTful interactions for this IG.
- See the General Guidance 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.
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 they SHOULD be supported.:
-
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:
- 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.
-
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:
- 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)