Da Vinci Health Record Exchange (HRex), published by HL7 International / Clinical Interoperability Council. This guide is not an authorized publication; it is the continuous build for version 1.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/davinci-ehrx/ and changes regularly. See the Directory of published versions
Official URL: http://hl7.org/fhir/us/davinci-hrex/StructureDefinition/hrex-provenance | Version: 1.1.0 | |||
Standards status: Trial-use | Maturity Level: 2 | Computable Name: HRexProvenance | ||
Other Identifiers: OID:2.16.840.1.113883.4.642.40.19.42.14 |
Additional constraints on US Core Provenance to ensure it meets payer needs, including indicating when the event occurred and retaining signatures if present
Provenance is essential when sharing information in the payer space because any given record might have passed through multiple hands before it arrives at a payer. Provenance provides traceability as to where the data originated and helps in the evaluation of the information as well as rationalizing duplicate data acquired through multiple sources. Da Vinci makes a couple of improvements to the US Core Provenance profile that will hopefully be migrated into that profile in the future:
In addition, in Da Vinci, signatures on Provenances must be retained if present.
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from USCoreProvenance
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | 0..* | USCoreProvenance(7.0.0) | US Core Provenance This profile also complies with the profile US Core Provenance Profile (7.0.0) | |
target | ||||
reference | 1..1 | string | Literal reference, Relative, internal or absolute URL | |
occurred[x] | S | 0..1 | Period, dateTime | When the activity occurred |
signature | S | 0..* | Signature | Signature on target |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | 0..* | USCoreProvenance(7.0.0) | US Core Provenance This profile also complies with the profile US Core Provenance Profile (7.0.0) | |
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 | 1..1 | string | Literal reference, Relative, internal or absolute URL |
occurred[x] | S | 0..1 | When the activity occurred | |
occurredPeriod | Period | |||
occurredDateTime | dateTime | |||
recorded | SΣ | 1..1 | instant | Timestamp when the activity was recorded / updated |
Slices for agent | SC | 1..* | BackboneElement | Actor 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..* | 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(7.0.0)) | Who participated |
onBehalfOf | S | 0..1 | Reference(US Core Organization Profile(7.0.0)) | 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: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity. 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 | |
who | Σ | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated |
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: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity. 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 | |
who | Σ | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated |
signature | S | 0..* | Signature | Signature on target |
Documentation for this format |
Path | Conformance | ValueSet / Code | URI |
Provenance.agent.type | extensible | USCoreProvenancePaticipantTypeCodeshttp://hl7.org/fhir/us/core/ValueSet/us-core-provenance-participant-type | |
Provenance.agent:ProvenanceAuthor.type | extensible | Pattern: authorhttp://hl7.org/fhir/ValueSet/provenance-agent-type from the FHIR Standard | |
Provenance.agent:ProvenanceTransmitter.type | extensible | Pattern: transmitterhttp://hl7.org/fhir/ValueSet/provenance-agent-type from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
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() |
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Provenance | 0..* | USCoreProvenance(7.0.0) | US Core Provenance This profile also complies with the profile US Core Provenance Profile (7.0.0) | |||||
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.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
target | 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 | 1..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] | S | 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 | SC | 1..* | BackboneElement | Actor 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..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(7.0.0) S | US Core Practitioner Profile(7.0.0) | US Core Patient Profile(7.0.0) | US Core PractitionerRole Profile(7.0.0) | US Core RelatedPerson Profile(7.0.0) | Device) | Who participated | ||||
onBehalfOf | S | 0..1 | Reference(US Core Organization Profile(7.0.0)) | 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: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity. 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 | Σ | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated | ||||
onBehalfOf | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | 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: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity. 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 | Σ | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated | ||||
onBehalfOf | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | 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 | S | 0..* | Signature | Signature on target | ||||
Documentation for this format |
Path | Conformance | ValueSet / Code | URI | |||
Provenance.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
Provenance.target.type | extensible | ResourceTypehttp://hl7.org/fhir/ValueSet/resource-types from the FHIR Standard | ||||
Provenance.reason | extensible | PurposeOfUsehttp://terminology.hl7.org/ValueSet/v3-PurposeOfUse | ||||
Provenance.activity | extensible | ProvenanceActivityTypehttp://hl7.org/fhir/ValueSet/provenance-activity-type from the FHIR Standard | ||||
Provenance.agent.type | extensible | USCoreProvenancePaticipantTypeCodeshttp://hl7.org/fhir/us/core/ValueSet/us-core-provenance-participant-type | ||||
Provenance.agent.role | example | SecurityRoleTypehttp://hl7.org/fhir/ValueSet/security-role-type from the FHIR Standard | ||||
Provenance.agent:ProvenanceAuthor.type | extensible | Pattern: authorhttp://hl7.org/fhir/ValueSet/provenance-agent-type from the FHIR Standard | ||||
Provenance.agent:ProvenanceAuthor.role | example | SecurityRoleTypehttp://hl7.org/fhir/ValueSet/security-role-type from the FHIR Standard | ||||
Provenance.agent:ProvenanceTransmitter.type | extensible | Pattern: transmitterhttp://hl7.org/fhir/ValueSet/provenance-agent-type from the FHIR Standard | ||||
Provenance.agent:ProvenanceTransmitter.role | example | SecurityRoleTypehttp://hl7.org/fhir/ValueSet/security-role-type from the FHIR Standard | ||||
Provenance.entity.role | required | ProvenanceEntityRolehttp://hl7.org/fhir/ValueSet/provenance-entity-role|4.0.1 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
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 USCoreProvenance
Differential View
This structure is derived from USCoreProvenance
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | 0..* | USCoreProvenance(7.0.0) | US Core Provenance This profile also complies with the profile US Core Provenance Profile (7.0.0) | |
target | ||||
reference | 1..1 | string | Literal reference, Relative, internal or absolute URL | |
occurred[x] | S | 0..1 | Period, dateTime | When the activity occurred |
signature | S | 0..* | Signature | Signature on target |
Documentation for this format |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Provenance | 0..* | USCoreProvenance(7.0.0) | US Core Provenance This profile also complies with the profile US Core Provenance Profile (7.0.0) | |
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 | 1..1 | string | Literal reference, Relative, internal or absolute URL |
occurred[x] | S | 0..1 | When the activity occurred | |
occurredPeriod | Period | |||
occurredDateTime | dateTime | |||
recorded | SΣ | 1..1 | instant | Timestamp when the activity was recorded / updated |
Slices for agent | SC | 1..* | BackboneElement | Actor 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..* | 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(7.0.0)) | Who participated |
onBehalfOf | S | 0..1 | Reference(US Core Organization Profile(7.0.0)) | 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: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity. 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 | |
who | Σ | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated |
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: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity. 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 | |
who | Σ | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated |
signature | S | 0..* | Signature | Signature on target |
Documentation for this format |
Path | Conformance | ValueSet / Code | URI |
Provenance.agent.type | extensible | USCoreProvenancePaticipantTypeCodeshttp://hl7.org/fhir/us/core/ValueSet/us-core-provenance-participant-type | |
Provenance.agent:ProvenanceAuthor.type | extensible | Pattern: authorhttp://hl7.org/fhir/ValueSet/provenance-agent-type from the FHIR Standard | |
Provenance.agent:ProvenanceTransmitter.type | extensible | Pattern: transmitterhttp://hl7.org/fhir/ValueSet/provenance-agent-type from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
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() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Provenance | 0..* | USCoreProvenance(7.0.0) | US Core Provenance This profile also complies with the profile US Core Provenance Profile (7.0.0) | |||||
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.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
target | 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 | 1..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] | S | 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 | SC | 1..* | BackboneElement | Actor 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..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(7.0.0) S | US Core Practitioner Profile(7.0.0) | US Core Patient Profile(7.0.0) | US Core PractitionerRole Profile(7.0.0) | US Core RelatedPerson Profile(7.0.0) | Device) | Who participated | ||||
onBehalfOf | S | 0..1 | Reference(US Core Organization Profile(7.0.0)) | 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: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity. 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 | Σ | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated | ||||
onBehalfOf | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | 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: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity. 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 | Σ | 1..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who participated | ||||
onBehalfOf | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | 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 | S | 0..* | Signature | Signature on target | ||||
Documentation for this format |
Path | Conformance | ValueSet / Code | URI | |||
Provenance.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
Provenance.target.type | extensible | ResourceTypehttp://hl7.org/fhir/ValueSet/resource-types from the FHIR Standard | ||||
Provenance.reason | extensible | PurposeOfUsehttp://terminology.hl7.org/ValueSet/v3-PurposeOfUse | ||||
Provenance.activity | extensible | ProvenanceActivityTypehttp://hl7.org/fhir/ValueSet/provenance-activity-type from the FHIR Standard | ||||
Provenance.agent.type | extensible | USCoreProvenancePaticipantTypeCodeshttp://hl7.org/fhir/us/core/ValueSet/us-core-provenance-participant-type | ||||
Provenance.agent.role | example | SecurityRoleTypehttp://hl7.org/fhir/ValueSet/security-role-type from the FHIR Standard | ||||
Provenance.agent:ProvenanceAuthor.type | extensible | Pattern: authorhttp://hl7.org/fhir/ValueSet/provenance-agent-type from the FHIR Standard | ||||
Provenance.agent:ProvenanceAuthor.role | example | SecurityRoleTypehttp://hl7.org/fhir/ValueSet/security-role-type from the FHIR Standard | ||||
Provenance.agent:ProvenanceTransmitter.type | extensible | Pattern: transmitterhttp://hl7.org/fhir/ValueSet/provenance-agent-type from the FHIR Standard | ||||
Provenance.agent:ProvenanceTransmitter.role | example | SecurityRoleTypehttp://hl7.org/fhir/ValueSet/security-role-type from the FHIR Standard | ||||
Provenance.entity.role | required | ProvenanceEntityRolehttp://hl7.org/fhir/ValueSet/provenance-entity-role|4.0.1 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
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 USCoreProvenance
Other representations of profile: CSV, Excel, Schematron
The following guidance applies to the use of Providence across Da Vinci IGs. IGs can impose additional expectations with respect to the use of Provenance either across their whole use-case or in the context of specific events.
There is no expectation for support for querying Provenance except using _revinclude
using the 'target' parameter (to return Provenance instances associated with a returned resource).
Provenance should align with information present in the record. Where a Provenance deals with the creation of an instance, the author, performer and (if present) informer should align with the equivalent elements on the record. Similarly, Provenance.occurred
should align with the creation date for the record.
Provenance.agent
| transmitter | This could be Patient, RelatedPerson, Practitioner or PractitionerRole or Organization. A second transmitter could capture the specific Device used | | enterer | Patient, RelatedPerson, Practitioner or PractitionerRole | | performer | could be anything | | author | could be anything | | verifier | generally only Practitioner or PractitionerRole | | legal | Only Practitioner or PractitionerRole | | attester | Patient, RelatedPerson, Practitioner or PractitionerRole | | informant | Patient, RelatedPerson, Practitioner or PractitionerRole | | custodian | usually Organization, could also be Device, Practitioner or PractitionerRole | | assembler | usually a Device, could be Practitioner or PractitionerRole | ——————————————
In general, the most important role to capture is "author". If they are the only role present, the presumption is that they are also the enterer, performer, verifier, legal, attester, informant, etc. Specifying other roles is only necessary if they differ from the author. Not all systems will necessarily track all participants. Roles other than author only need to be shared if the system captures them and feels they might be relevant to downstream use of the information.
onBehalfOf
Provenance.agent.onBehalfOf
is only relevant in certain circumstances:
onBehalfOf
SHOULD NOT be populated if RelatedPerson is acting on behalf of the Patient. (Because that is the assumption and there is already a link to the Patient on that resource)onBehalfOf
SHOULD NOT be populated with an Organization if the agent is Practitioner - use PractitionerRole instead (even if it is a contained PractitionerRole)onBehalfOf
SHOULD NOT be populated with an Organization if the agent is PractitionerRole unless PractitionerRole is pointing to an organization and the onBehalfOf
is different (i.e. Dr. Smith for Clinic A did something on behalf of clinic B)onBehalfOf
to be populated if the agent is Patient or RelatedPersononBehalfOf
SHOULD NOT be populated with an Organization if it is the same as Device.owner