Athena Core Implementation Guide
5.10.2 - release
Athena Core Implementation Guide - Local Development build (v5.10.2) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Official URL: https://fhir.athena.io/StructureDefinition/ah-provenance | Version: 5.10.2 | |||
| Active as of 2026-05-26 | Computable Name: AthenahealthProvenance | |||
| Keywords: Wire Format | ||||
Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. For example, a Provenance record could include the name of the organization, provider, or staff that created a FHIR Resource record and the timestamp of which it was created.
The Provenance resource tracks information about the activity that created, revised, deleted, or signed a version of a resource, describing the entities and agents involved. This information can be used to form assessments about its quality, reliability, trustworthiness, or to provide pointers for where to go to further investigate the origins of the resource and the information in it. While Provenance resources can be retrieved directly from athena’s systems by ID, it is generally unlikely for FHIR consumers to know the ID of a provenance resource ahead of time. Typically, Provenance resources are included in bundle reesponses using ‘_revinclude’ to search interactions for ‘other’ FHIR resources. As an example, to retrieve a patient’s Condition resources along with the Provenance resources for those conditions, the user would execute a search like ‘GET /Condition?patient={fhir patient id}&_revinclude=Provenance:target’
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Provenance
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Provenance | Who, What, When for a set of resources | |
![]() ![]() |
||||
![]() ![]() ![]() |
0..1 | instant | When the resource version last changed | |
![]() ![]() |
0..0 | When the activity occurred | ||
![]() ![]() |
0..0 | Policy or plan the activity was defined by | ||
![]() ![]() |
0..0 | Where the activity occurred, if relevant | ||
![]() ![]() |
0..0 | Reason the activity is occurring | ||
![]() ![]() |
0..0 | Activity that occurred | ||
![]() ![]() |
||||
![]() ![]() ![]() |
0..0 | What the agents role was | ||
![]() ![]() ![]() |
1..1 | Reference(Practitioner | Organization) | Who participated | |
![]() ![]() ![]() |
0..1 | Reference(Organization) | Who the agent is representing | |
![]() ![]() |
0..0 | An entity used in this activity | ||
![]() ![]() |
0..0 | Signature on target | ||
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Provenance | Who, What, When for a set of resources | |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
Σ | 1..* | Reference(Resource) | Target Reference(s) (usually version specific) |
![]() ![]() |
Σ | 1..1 | instant | When the activity was recorded / updated |
![]() ![]() |
1..* | BackboneElement | Actor involved | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
Σ | 1..1 | Reference(Practitioner | Organization) | Who participated |
![]() ![]() ![]() |
0..1 | Reference(Organization) | Who the agent is representing | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Provenance.entity.role | Base | required | ProvenanceEntityRole | 📍4.0.1 | FHIR Std. |
| 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()
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | Provenance | Who, What, When for a set of resources | |||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
Σ | 0..1 | id | Version specific identifier | ||||
![]() ![]() ![]() |
Σ | 0..1 | instant | When the resource version last changed | ||||
![]() ![]() ![]() |
Σ | 0..1 | uri | Identifies where the resource comes from | ||||
![]() ![]() ![]() |
Σ | 0..* | canonical(StructureDefinition) | Profiles this resource claims to conform to | ||||
![]() ![]() ![]() |
Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System. | ||||
![]() ![]() ![]() |
Σ | 0..* | Coding | Tags applied to this resource Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones". | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 1..* | Reference(Resource) | Target Reference(s) (usually version specific) | ||||
![]() ![]() |
Σ | 1..1 | instant | When the activity was recorded / updated | ||||
![]() ![]() |
1..* | BackboneElement | Actor involved | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | How the agent participated Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity. | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(Practitioner | Organization) | Who participated | ||||
![]() ![]() ![]() |
0..1 | Reference(Organization) | Who the agent is representing | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Provenance.meta.security | Base | extensible | SecurityLabels | 📍4.0.1 | FHIR Std. |
| Provenance.meta.tag | Base | example | Common Tags | 📍4.0.1 | FHIR Std. |
| Provenance.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Provenance.agent.type | Base | extensible | Provenance participant type | 📍4.0.1 | FHIR Std. |
| Provenance.entity.role | Base | required | ProvenanceEntityRole | 📍4.0.1 | FHIR Std. |
| 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()
|
This structure is derived from Provenance
Differential View
This structure is derived from Provenance
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Provenance | Who, What, When for a set of resources | |
![]() ![]() |
||||
![]() ![]() ![]() |
0..1 | instant | When the resource version last changed | |
![]() ![]() |
0..0 | When the activity occurred | ||
![]() ![]() |
0..0 | Policy or plan the activity was defined by | ||
![]() ![]() |
0..0 | Where the activity occurred, if relevant | ||
![]() ![]() |
0..0 | Reason the activity is occurring | ||
![]() ![]() |
0..0 | Activity that occurred | ||
![]() ![]() |
||||
![]() ![]() ![]() |
0..0 | What the agents role was | ||
![]() ![]() ![]() |
1..1 | Reference(Practitioner | Organization) | Who participated | |
![]() ![]() ![]() |
0..1 | Reference(Organization) | Who the agent is representing | |
![]() ![]() |
0..0 | An entity used in this activity | ||
![]() ![]() |
0..0 | Signature on target | ||
Documentation for this format | ||||
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Provenance | Who, What, When for a set of resources | |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
Σ | 1..* | Reference(Resource) | Target Reference(s) (usually version specific) |
![]() ![]() |
Σ | 1..1 | instant | When the activity was recorded / updated |
![]() ![]() |
1..* | BackboneElement | Actor involved | |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
Σ | 1..1 | Reference(Practitioner | Organization) | Who participated |
![]() ![]() ![]() |
0..1 | Reference(Organization) | Who the agent is representing | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Provenance.entity.role | Base | required | ProvenanceEntityRole | 📍4.0.1 | FHIR Std. |
| 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()
|
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | Provenance | Who, What, When for a set of resources | |||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
Σ | 0..1 | id | Version specific identifier | ||||
![]() ![]() ![]() |
Σ | 0..1 | instant | When the resource version last changed | ||||
![]() ![]() ![]() |
Σ | 0..1 | uri | Identifies where the resource comes from | ||||
![]() ![]() ![]() |
Σ | 0..* | canonical(StructureDefinition) | Profiles this resource claims to conform to | ||||
![]() ![]() ![]() |
Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System. | ||||
![]() ![]() ![]() |
Σ | 0..* | Coding | Tags applied to this resource Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones". | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 1..* | Reference(Resource) | Target Reference(s) (usually version specific) | ||||
![]() ![]() |
Σ | 1..1 | instant | When the activity was recorded / updated | ||||
![]() ![]() |
1..* | BackboneElement | Actor involved | |||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | How the agent participated Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity. | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(Practitioner | Organization) | Who participated | ||||
![]() ![]() ![]() |
0..1 | Reference(Organization) | Who the agent is representing | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Provenance.meta.security | Base | extensible | SecurityLabels | 📍4.0.1 | FHIR Std. |
| Provenance.meta.tag | Base | example | Common Tags | 📍4.0.1 | FHIR Std. |
| Provenance.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Provenance.agent.type | Base | extensible | Provenance participant type | 📍4.0.1 | FHIR Std. |
| Provenance.entity.role | Base | required | ProvenanceEntityRole | 📍4.0.1 | FHIR Std. |
| 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()
|
This structure is derived from Provenance
Other representations of profile: CSV, Excel, Schematron