John Moehrke Correction Example
0.1.0 - ci-build
John Moehrke Correction Example, published by John Moehrke (Moehrke Research LLC). This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/JohnMoehrke/correction/ and changes regularly. See the Directory of published versions
| Official URL: http://johnmoehrke.github.io/correction/StructureDefinition/CorrectionProvenanceProfile | Version: 0.1.0 | |||
| Draft as of 2026-01-06 | Computable Name: CorrectionProvenanceProfile | |||
A profile of the Provenance resource to document corrections made to FHIR data.
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| 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..* | Resource | Contained, inline Resources | |
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
SΣ | 1..* | Reference(Resource) | Target Reference(s) (usually version specific) |
![]() ![]() |
SΣ | 1..1 | instant | When the activity was recorded / updated |
![]() ![]() |
S | 0..* | CodeableReference() | Authorization (purposeOfUse) related to the event Binding: Correction Purposes ValueSet (required) |
![]() ![]() |
S | 1..1 | markdown | Why was the event performed? |
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Activity that occurred Binding: ProvenanceActivityType (example): The activity that took place. Required Pattern: At least the following |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActReason | |
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: FIXDATA | |
![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |
![]() ![]() |
S | 0..* | Reference(Resource) | Workflow authorization within which this event occurred |
![]() ![]() |
SΣC | 1..* | BackboneElement | Actor involved Constraints: prov-1, prov-2, prov-3, prov-4 |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
ΣC | 1..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Device | RelatedPerson | Group | HealthcareService) | The agent that participated in the event |
![]() ![]() ![]() |
C | 0..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Group | HealthcareService) | The agent that delegated |
![]() ![]() |
SΣ | 0..* | BackboneElement | An entity used in this activity Slice: Unordered, Open by value:role |
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | revision | quotation | source | instantiates | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Reference(Resource) | Identity of entity |
![]() ![]() ![]() |
SΣ | 0..* | BackboneElement | An entity used in this activity |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | revision | quotation | source | instantiates | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. Required Pattern: removal |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | Reference(Resource) | Identity of entity |
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Literal reference, Relative, internal or absolute URL |
![]() ![]() ![]() ![]() ![]() |
SC | 0..1 | Identifier | Logical reference, when literal reference is not known |
![]() ![]() ![]() |
SΣ | 0..* | BackboneElement | An entity used in this activity |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | revision | quotation | source | instantiates | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. Required Pattern: revision |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | Reference(Resource) | Identity of entity |
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Literal reference, Relative, internal or absolute URL |
![]() ![]() ![]() ![]() ![]() |
SC | 0..1 | Identifier | Logical reference, when literal reference is not known |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Provenance.authorization | Base | required | Correction Purposes ValueSet | 📦0.1.0 | This IG |
| Provenance.activity | Base | example | ValueSet of sample of representative activity type codes. | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity.role | Base | required | Provenance Entity Role | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity:removalEntry.role | Base | required | Provenance Entity Role | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity:revisionEntry.role | Base | required | Provenance Entity Role | 📍6.0.0-ballot3 | 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())
|
| prov-1 | error | Provenance.agent | Who and onBehalfOf cannot be the same |
who.resolve().exists() and onBehalfOf.resolve().exists() implies who.resolve() != onBehalfOf.resolve()
|
| prov-2 | error | Provenance.agent | If who is a PractitionerRole, onBehalfOf can't reference the same Practitioner |
who.resolve().ofType(PractitionerRole).practitioner.resolve().exists() and onBehalfOf.resolve().ofType(Practitioner).exists() implies who.resolve().practitioner.resolve() != onBehalfOf.resolve()
|
| prov-3 | error | Provenance.agent | If who is an organization, onBehalfOf can't be a PractitionerRole within that organization |
who.resolve().ofType(Organization).exists() and onBehalfOf.resolve().ofType(PractitionerRole).organization.resolve().exists() implies who.resolve() != onBehalfOf.resolve().organization.resolve()
|
| prov-4 | error | Provenance.agent | If who is an organization, onBehalfOf can't be a healthcare service within that organization |
who.resolve().ofType(Organization).exists() and onBehalfOf.resolve().ofType(HealthcareService).providedBy.resolve().exists() implies who.resolve() != onBehalfOf.resolve().ofType(HealthcareService).providedBy.resolve()
|
This structure is derived from Provenance
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Provenance | Who, What, When for a set of resources | |
![]() ![]() |
S | 1..* | Reference(Resource) | Target Reference(s) (usually version specific) |
![]() ![]() |
S | 1..1 | instant | When the activity was recorded / updated |
![]() ![]() |
S | 0..* | CodeableReference() | Authorization (purposeOfUse) related to the event Binding: Correction Purposes ValueSet (required) |
![]() ![]() |
S | 1..1 | markdown | Why was the event performed? |
![]() ![]() |
S | 1..1 | CodeableConcept | Activity that occurred Required Pattern: At least the following |
![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActReason | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: FIXDATA | |
![]() ![]() |
S | 0..* | Reference(Resource) | Workflow authorization within which this event occurred |
![]() ![]() |
S | 1..* | BackboneElement | Actor involved |
![]() ![]() |
S | 0..* | BackboneElement | An entity used in this activity Slice: Unordered, Open by value:role |
![]() ![]() ![]() |
S | 0..* | BackboneElement | An entity used in this activity |
![]() ![]() ![]() ![]() |
1..1 | code | revision | quotation | source | instantiates | removal Required Pattern: removal | |
![]() ![]() ![]() ![]() |
S | 1..1 | Reference(Resource) | Identity of entity |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | Identifier | Logical reference, when literal reference is not known |
![]() ![]() ![]() |
S | 0..* | BackboneElement | An entity used in this activity |
![]() ![]() ![]() ![]() |
1..1 | code | revision | quotation | source | instantiates | removal Required Pattern: revision | |
![]() ![]() ![]() ![]() |
S | 1..1 | Reference(Resource) | Identity of entity |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | Identifier | Logical reference, when literal reference is not known |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Provenance.authorization | Base | required | Correction Purposes ValueSet | 📦0.1.0 | This IG |
| 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 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for 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 | ||||
![]() ![]() |
SΣ | 1..* | Reference(Resource) | Target Reference(s) (usually version specific) | ||||
![]() ![]() |
Σ | 0..1 | When the activity occurred | |||||
![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() |
SΣ | 1..1 | instant | When the activity was recorded / updated | ||||
![]() ![]() |
0..* | uri | Policy or plan the activity was defined by | |||||
![]() ![]() |
0..1 | Reference(Location) | Where the activity occurred | |||||
![]() ![]() |
S | 0..* | CodeableReference() | Authorization (purposeOfUse) related to the event Binding: Correction Purposes ValueSet (required) | ||||
![]() ![]() |
S | 1..1 | markdown | Why was the event performed? | ||||
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Activity that occurred Binding: ProvenanceActivityType (example): The activity that took place. Required Pattern: At least the following | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActReason | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: FIXDATA | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() |
S | 0..* | Reference(Resource) | Workflow authorization within which this event occurred | ||||
![]() ![]() |
Σ | 0..1 | Reference(Patient) | The patient is the subject of the data created/updated (.target) by the activity | ||||
![]() ![]() |
0..1 | Reference(Encounter) | Encounter within which this event occurred or which the event is tightly associated | |||||
![]() ![]() |
SΣC | 1..* | BackboneElement | Actor involved Constraints: prov-1, prov-2, prov-3, prov-4 | ||||
![]() ![]() ![]() |
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: ParticipationRoleType (example): The type of participation that a provenance agent played with respect to the activity. | ||||
![]() ![]() ![]() |
0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity. | |||||
![]() ![]() ![]() |
ΣC | 1..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Device | RelatedPerson | Group | HealthcareService) | The agent that participated in the event | ||||
![]() ![]() ![]() |
C | 0..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Group | HealthcareService) | The agent that delegated | ||||
![]() ![]() |
SΣ | 0..* | BackboneElement | An entity used in this activity Slice: Unordered, Open by value:role | ||||
![]() ![]() ![]() |
Content/Rules for all slices | |||||||
![]() ![]() ![]() ![]() |
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 | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | revision | quotation | source | instantiates | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Reference(Resource) | Identity of entity | ||||
![]() ![]() ![]() ![]() |
0..* | See agent (Provenance) | Entity is attributed to this agent | |||||
![]() ![]() ![]() |
SΣ | 0..* | BackboneElement | An entity used in this activity | ||||
![]() ![]() ![]() ![]() |
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 | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | revision | quotation | source | instantiates | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. Required Pattern: removal | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | Reference(Resource) | Identity of entity | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Literal reference, Relative, internal or absolute URL | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | uri | Type the reference refers to (e.g. "Patient") - must be a resource in resources Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model). | |||||
![]() ![]() ![]() ![]() ![]() |
SC | 0..1 | Identifier | Logical reference, when literal reference is not known | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Text alternative for the resource | ||||
![]() ![]() ![]() ![]() |
0..* | See agent (Provenance) | Entity is attributed to this agent | |||||
![]() ![]() ![]() |
SΣ | 0..* | BackboneElement | An entity used in this activity | ||||
![]() ![]() ![]() ![]() |
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 | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | revision | quotation | source | instantiates | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. Required Pattern: revision | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | Reference(Resource) | Identity of entity | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Literal reference, Relative, internal or absolute URL | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | uri | Type the reference refers to (e.g. "Patient") - must be a resource in resources Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model). | |||||
![]() ![]() ![]() ![]() ![]() |
SC | 0..1 | Identifier | Logical reference, when literal reference is not known | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Text alternative for the resource | ||||
![]() ![]() ![]() ![]() |
0..* | See agent (Provenance) | Entity is attributed to this agent | |||||
![]() ![]() |
0..* | Signature | Signature on target | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Provenance.language | Base | required | All Languages | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.authorization | Base | required | Correction Purposes ValueSet | 📦0.1.0 | This IG |
| Provenance.activity | Base | example | ValueSet of sample of representative activity type codes. | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.agent.type | Base | example | Participation Role Type | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.agent.role | Base | example | Security Role Type | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity.role | Base | required | Provenance Entity Role | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity:removalEntry.role | Base | required | Provenance Entity Role | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity:removalEntry.what.type | Base | extensible | Resource Types | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity:revisionEntry.role | Base | required | Provenance Entity Role | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity:revisionEntry.what.type | Base | extensible | Resource Types | 📍6.0.0-ballot3 | 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())
|
| prov-1 | error | Provenance.agent | Who and onBehalfOf cannot be the same |
who.resolve().exists() and onBehalfOf.resolve().exists() implies who.resolve() != onBehalfOf.resolve()
|
| prov-2 | error | Provenance.agent | If who is a PractitionerRole, onBehalfOf can't reference the same Practitioner |
who.resolve().ofType(PractitionerRole).practitioner.resolve().exists() and onBehalfOf.resolve().ofType(Practitioner).exists() implies who.resolve().practitioner.resolve() != onBehalfOf.resolve()
|
| prov-3 | error | Provenance.agent | If who is an organization, onBehalfOf can't be a PractitionerRole within that organization |
who.resolve().ofType(Organization).exists() and onBehalfOf.resolve().ofType(PractitionerRole).organization.resolve().exists() implies who.resolve() != onBehalfOf.resolve().organization.resolve()
|
| prov-4 | error | Provenance.agent | If who is an organization, onBehalfOf can't be a healthcare service within that organization |
who.resolve().ofType(Organization).exists() and onBehalfOf.resolve().ofType(HealthcareService).providedBy.resolve().exists() implies who.resolve() != onBehalfOf.resolve().ofType(HealthcareService).providedBy.resolve()
|
This structure is derived from Provenance
Summary
Mandatory: 3 elements
Must-Support: 14 elements
Slices
This structure defines the following Slices:
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..* | Resource | Contained, inline Resources | |
![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
SΣ | 1..* | Reference(Resource) | Target Reference(s) (usually version specific) |
![]() ![]() |
SΣ | 1..1 | instant | When the activity was recorded / updated |
![]() ![]() |
S | 0..* | CodeableReference() | Authorization (purposeOfUse) related to the event Binding: Correction Purposes ValueSet (required) |
![]() ![]() |
S | 1..1 | markdown | Why was the event performed? |
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Activity that occurred Binding: ProvenanceActivityType (example): The activity that took place. Required Pattern: At least the following |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActReason | |
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: FIXDATA | |
![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |
![]() ![]() |
S | 0..* | Reference(Resource) | Workflow authorization within which this event occurred |
![]() ![]() |
SΣC | 1..* | BackboneElement | Actor involved Constraints: prov-1, prov-2, prov-3, prov-4 |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
ΣC | 1..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Device | RelatedPerson | Group | HealthcareService) | The agent that participated in the event |
![]() ![]() ![]() |
C | 0..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Group | HealthcareService) | The agent that delegated |
![]() ![]() |
SΣ | 0..* | BackboneElement | An entity used in this activity Slice: Unordered, Open by value:role |
![]() ![]() ![]() |
Content/Rules for all slices | |||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | revision | quotation | source | instantiates | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. |
![]() ![]() ![]() ![]() |
Σ | 1..1 | Reference(Resource) | Identity of entity |
![]() ![]() ![]() |
SΣ | 0..* | BackboneElement | An entity used in this activity |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | revision | quotation | source | instantiates | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. Required Pattern: removal |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | Reference(Resource) | Identity of entity |
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Literal reference, Relative, internal or absolute URL |
![]() ![]() ![]() ![]() ![]() |
SC | 0..1 | Identifier | Logical reference, when literal reference is not known |
![]() ![]() ![]() |
SΣ | 0..* | BackboneElement | An entity used in this activity |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | revision | quotation | source | instantiates | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. Required Pattern: revision |
![]() ![]() ![]() ![]() |
SΣ | 1..1 | Reference(Resource) | Identity of entity |
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Literal reference, Relative, internal or absolute URL |
![]() ![]() ![]() ![]() ![]() |
SC | 0..1 | Identifier | Logical reference, when literal reference is not known |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Provenance.authorization | Base | required | Correction Purposes ValueSet | 📦0.1.0 | This IG |
| Provenance.activity | Base | example | ValueSet of sample of representative activity type codes. | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity.role | Base | required | Provenance Entity Role | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity:removalEntry.role | Base | required | Provenance Entity Role | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity:revisionEntry.role | Base | required | Provenance Entity Role | 📍6.0.0-ballot3 | 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())
|
| prov-1 | error | Provenance.agent | Who and onBehalfOf cannot be the same |
who.resolve().exists() and onBehalfOf.resolve().exists() implies who.resolve() != onBehalfOf.resolve()
|
| prov-2 | error | Provenance.agent | If who is a PractitionerRole, onBehalfOf can't reference the same Practitioner |
who.resolve().ofType(PractitionerRole).practitioner.resolve().exists() and onBehalfOf.resolve().ofType(Practitioner).exists() implies who.resolve().practitioner.resolve() != onBehalfOf.resolve()
|
| prov-3 | error | Provenance.agent | If who is an organization, onBehalfOf can't be a PractitionerRole within that organization |
who.resolve().ofType(Organization).exists() and onBehalfOf.resolve().ofType(PractitionerRole).organization.resolve().exists() implies who.resolve() != onBehalfOf.resolve().organization.resolve()
|
| prov-4 | error | Provenance.agent | If who is an organization, onBehalfOf can't be a healthcare service within that organization |
who.resolve().ofType(Organization).exists() and onBehalfOf.resolve().ofType(HealthcareService).providedBy.resolve().exists() implies who.resolve() != onBehalfOf.resolve().ofType(HealthcareService).providedBy.resolve()
|
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 | |
![]() ![]() |
S | 1..* | Reference(Resource) | Target Reference(s) (usually version specific) |
![]() ![]() |
S | 1..1 | instant | When the activity was recorded / updated |
![]() ![]() |
S | 0..* | CodeableReference() | Authorization (purposeOfUse) related to the event Binding: Correction Purposes ValueSet (required) |
![]() ![]() |
S | 1..1 | markdown | Why was the event performed? |
![]() ![]() |
S | 1..1 | CodeableConcept | Activity that occurred Required Pattern: At least the following |
![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActReason | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: FIXDATA | |
![]() ![]() |
S | 0..* | Reference(Resource) | Workflow authorization within which this event occurred |
![]() ![]() |
S | 1..* | BackboneElement | Actor involved |
![]() ![]() |
S | 0..* | BackboneElement | An entity used in this activity Slice: Unordered, Open by value:role |
![]() ![]() ![]() |
S | 0..* | BackboneElement | An entity used in this activity |
![]() ![]() ![]() ![]() |
1..1 | code | revision | quotation | source | instantiates | removal Required Pattern: removal | |
![]() ![]() ![]() ![]() |
S | 1..1 | Reference(Resource) | Identity of entity |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | Identifier | Logical reference, when literal reference is not known |
![]() ![]() ![]() |
S | 0..* | BackboneElement | An entity used in this activity |
![]() ![]() ![]() ![]() |
1..1 | code | revision | quotation | source | instantiates | removal Required Pattern: revision | |
![]() ![]() ![]() ![]() |
S | 1..1 | Reference(Resource) | Identity of entity |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | Identifier | Logical reference, when literal reference is not known |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Provenance.authorization | Base | required | Correction Purposes ValueSet | 📦0.1.0 | This IG |
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 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for 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 | ||||
![]() ![]() |
SΣ | 1..* | Reference(Resource) | Target Reference(s) (usually version specific) | ||||
![]() ![]() |
Σ | 0..1 | When the activity occurred | |||||
![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() |
SΣ | 1..1 | instant | When the activity was recorded / updated | ||||
![]() ![]() |
0..* | uri | Policy or plan the activity was defined by | |||||
![]() ![]() |
0..1 | Reference(Location) | Where the activity occurred | |||||
![]() ![]() |
S | 0..* | CodeableReference() | Authorization (purposeOfUse) related to the event Binding: Correction Purposes ValueSet (required) | ||||
![]() ![]() |
S | 1..1 | markdown | Why was the event performed? | ||||
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Activity that occurred Binding: ProvenanceActivityType (example): The activity that took place. Required Pattern: At least the following | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ActReason | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: FIXDATA | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Representation defined by the system | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() |
S | 0..* | Reference(Resource) | Workflow authorization within which this event occurred | ||||
![]() ![]() |
Σ | 0..1 | Reference(Patient) | The patient is the subject of the data created/updated (.target) by the activity | ||||
![]() ![]() |
0..1 | Reference(Encounter) | Encounter within which this event occurred or which the event is tightly associated | |||||
![]() ![]() |
SΣC | 1..* | BackboneElement | Actor involved Constraints: prov-1, prov-2, prov-3, prov-4 | ||||
![]() ![]() ![]() |
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: ParticipationRoleType (example): The type of participation that a provenance agent played with respect to the activity. | ||||
![]() ![]() ![]() |
0..* | CodeableConcept | What the agents role was Binding: SecurityRoleType (example): The role that a provenance agent played with respect to the activity. | |||||
![]() ![]() ![]() |
ΣC | 1..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Device | RelatedPerson | Group | HealthcareService) | The agent that participated in the event | ||||
![]() ![]() ![]() |
C | 0..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Group | HealthcareService) | The agent that delegated | ||||
![]() ![]() |
SΣ | 0..* | BackboneElement | An entity used in this activity Slice: Unordered, Open by value:role | ||||
![]() ![]() ![]() |
Content/Rules for all slices | |||||||
![]() ![]() ![]() ![]() |
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 | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | revision | quotation | source | instantiates | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Reference(Resource) | Identity of entity | ||||
![]() ![]() ![]() ![]() |
0..* | See agent (Provenance) | Entity is attributed to this agent | |||||
![]() ![]() ![]() |
SΣ | 0..* | BackboneElement | An entity used in this activity | ||||
![]() ![]() ![]() ![]() |
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 | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | revision | quotation | source | instantiates | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. Required Pattern: removal | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | Reference(Resource) | Identity of entity | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Literal reference, Relative, internal or absolute URL | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | uri | Type the reference refers to (e.g. "Patient") - must be a resource in resources Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model). | |||||
![]() ![]() ![]() ![]() ![]() |
SC | 0..1 | Identifier | Logical reference, when literal reference is not known | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Text alternative for the resource | ||||
![]() ![]() ![]() ![]() |
0..* | See agent (Provenance) | Entity is attributed to this agent | |||||
![]() ![]() ![]() |
SΣ | 0..* | BackboneElement | An entity used in this activity | ||||
![]() ![]() ![]() ![]() |
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 | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | code | revision | quotation | source | instantiates | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. Required Pattern: revision | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..1 | Reference(Resource) | Identity of entity | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | id | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Literal reference, Relative, internal or absolute URL | ||||
![]() ![]() ![]() ![]() ![]() |
0..1 | uri | Type the reference refers to (e.g. "Patient") - must be a resource in resources Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model). | |||||
![]() ![]() ![]() ![]() ![]() |
SC | 0..1 | Identifier | Logical reference, when literal reference is not known | ||||
![]() ![]() ![]() ![]() ![]() |
C | 0..1 | string | Text alternative for the resource | ||||
![]() ![]() ![]() ![]() |
0..* | See agent (Provenance) | Entity is attributed to this agent | |||||
![]() ![]() |
0..* | Signature | Signature on target | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Provenance.language | Base | required | All Languages | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.authorization | Base | required | Correction Purposes ValueSet | 📦0.1.0 | This IG |
| Provenance.activity | Base | example | ValueSet of sample of representative activity type codes. | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.agent.type | Base | example | Participation Role Type | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.agent.role | Base | example | Security Role Type | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity.role | Base | required | Provenance Entity Role | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity:removalEntry.role | Base | required | Provenance Entity Role | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity:removalEntry.what.type | Base | extensible | Resource Types | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity:revisionEntry.role | Base | required | Provenance Entity Role | 📍6.0.0-ballot3 | FHIR Std. |
| Provenance.entity:revisionEntry.what.type | Base | extensible | Resource Types | 📍6.0.0-ballot3 | 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())
|
| prov-1 | error | Provenance.agent | Who and onBehalfOf cannot be the same |
who.resolve().exists() and onBehalfOf.resolve().exists() implies who.resolve() != onBehalfOf.resolve()
|
| prov-2 | error | Provenance.agent | If who is a PractitionerRole, onBehalfOf can't reference the same Practitioner |
who.resolve().ofType(PractitionerRole).practitioner.resolve().exists() and onBehalfOf.resolve().ofType(Practitioner).exists() implies who.resolve().practitioner.resolve() != onBehalfOf.resolve()
|
| prov-3 | error | Provenance.agent | If who is an organization, onBehalfOf can't be a PractitionerRole within that organization |
who.resolve().ofType(Organization).exists() and onBehalfOf.resolve().ofType(PractitionerRole).organization.resolve().exists() implies who.resolve() != onBehalfOf.resolve().organization.resolve()
|
| prov-4 | error | Provenance.agent | If who is an organization, onBehalfOf can't be a healthcare service within that organization |
who.resolve().ofType(Organization).exists() and onBehalfOf.resolve().ofType(HealthcareService).providedBy.resolve().exists() implies who.resolve() != onBehalfOf.resolve().ofType(HealthcareService).providedBy.resolve()
|
This structure is derived from Provenance
Summary
Mandatory: 3 elements
Must-Support: 14 elements
Slices
This structure defines the following Slices:
Other representations of profile: CSV, Excel, Schematron