# Health Connect Australia Provider Directory FHIR Implementation Guide

0.2.0-preview - Preview

Health Connect Australia Provider Directory FHIR Implementation Guide, published by Australian Digital Health Agency. This guide is not an authorized publication; it is the continuous build for version 0.2.0-preview built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/steveswinsburg/HealthConnect/ and changes regularly. See the Directory of published versions

## Resource Profile: HC Provenance

Official URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-provenance | Version: 0.2.0-preview
Standards status: Draft | Computable Name: HCProvenance
Usage:Jurisdiction: Australia
Copyright/Legal: Copyright © 2025 Australian Digital Health Agency - All rights reserved. This content is licensed under a Creative Commons Attribution 4.0 International License. See https://creativecommons.org/licenses/by/4.0/.

This profile of Provenance is used to record an activity performed by the HC service (conditionally on behalf of a participating organisation when the target element references a HC Organization resource) whereby specific data elements of a HC Organization or HC Practitioner resource have been initially retrieved, updated or verified from an external system of record.

No data is entered directly into Health Connect; all Directory content is sourced from authoritative systems including PCA, HI-Service, and NHSD.

### Extensions

Extensions introduced in this profile:

- Provenance.target: Target path

### Usage notes

The guidance below is organised by system role to clarify the different responsibilities for systems that create provenance records versus those that consume them.

#### Provenance resource utilisation patterns

The HC Provenance profile supports two distinct patterns of use:

Resource-level provenance tracks changes to an entire FHIR resource. In this pattern:

- The `target` element references the complete resource that was created, updated, or verified (constrained to HC profile types: HCOrganization, HCPractitioner, etc.)
- The `activity` element categorizes the type of operation using codes from the Provenance Activity Type value set (CREATE, UPDATE, DELETE, VERIFY, etc.)
- The `recorded` element provides a timestamp indicating when the provenance event was recorded by the source system
- The `agent.who` element identifies the actor (organization, practitioner, or system) responsible for performing the activity
- The `entity` element, when present, references source records or systems that provided the data, with entity.role typically set to "source"

Atomic element-level provenance tracks changes to specific data elements within a resource. This more granular approach uses the Target path extension (introduced in this profile) to enable precise tracking:

- The `target` element to reference the resource containing the changed elements
- The `target.extension[targetPath]` to specify exactly which data elements were affected using FHIRPath expressions, enabling atomic-level tracking
- Multiple targetPath extensions can be included to track changes to multiple elements in a single provenance record
- The same `activity`, `recorded`, `agent.who`, and `entity` elements as resource-level provenance

The atomic element-level approach is particularly valuable in Health Connect's context where Directory data may be selectively updated from different authoritative sources. For example, a practitioner's contact details might be updated from one source while their qualifications are verified from another, with separate provenance records documenting each specific change.

#### Systems consuming/auditing Provenance resources (searching systems)

- Systems that query or audit Provenance resources can use the FHIRPath expressions in `target.extension[targetPath].valueString` to identify the exact data elements that were changed.
- When building reconciliation tools or audit trails, these FHIRPath expressions reference the changed elements in the target resource. For example, if a provenance record contains `target.extension[targetPath].valueString` = "telecom.where(system='phone').value", the consuming system knows that the practitioner's phone number was updated, and can use this path to highlight the specific changed field in an audit report.
- Note that the FHIRPath identifies which field changed but does not contain the actual values (old or new)
- To see the current value, the consuming system would need to evaluate the FHIRPath against the current target resource.
- When processing audit trails, ensure that FHIRPath expressions are valid and can be successfully evaluated against the referenced target resource.

##### Search include parameters

This implementation supports the following `_include` parameters when searching for Provenance resources:

- `_include=Provenance:target` - Include the target resources (Organization, Location, HealthcareService, PractitionerRole, Practitioner, or Endpoint) that this Provenance resource tracks

##### Example usage

    GET /Provenance?agent.who=Organization/12345&_include=Provenance:target

This query searches for all provenance records where Organization/12345 was the agent performing the activity, and includes the actual resources (practitioners, locations, etc.) whose changes are documented by these provenance records.

Usages:

- Examples for this Profile: Provenance/provenance-practitioner-name-update and Provenance/provenance-practitioner-phone-update
- CapabilityStatements using this Profile: Health Connect Provider Directory Requester and Health Connect Provider Directory Responder

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

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

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

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Provenance |  | 0..* | Provenance(4.0.1) | Records an activity where specific data elements of a resource were retrieved/updated/verified from an external system of record
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
target | S Σ | 1..1 | Reference(HC Organization(0.2.0-preview) | HC Practitioner(0.2.0-preview) | HC PractitionerRole(0.2.0-preview) | HC Endpoint(0.2.0-preview) | HC HealthcareService(0.2.0-preview) | HC Location(0.2.0-preview)) | Target Reference(s) (usually version specific)
Slices for extension |  |  |  | Content/Rules for all slices
extension:targetPath | S | 0..* | (Complex) | FHIRPath of element(s) in the target resource affected by this provenance activity URL: http://hl7.org/fhir/StructureDefinition/targetPath Constraints: ext-1
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/targetPath"
value[x] |  | 1..1 | string | Value of extension Example Example: telecom.where(system='phone').value
recorded | S Σ | 1..1 | instant | When the activity was recorded / updated
activity | S | 0..1 | CodeableConcept | Type of provenance activity (e.g. create, update, verify) Binding: ProvenanceActivityType (extensible)
agent |  | 1..* | BackboneElement | Actor involved
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
who | S Σ | 1..1 | Reference(HC Organization(0.2.0-preview) | HC Practitioner(0.2.0-preview) | HC PractitionerRole(0.2.0-preview)) | Who participated
entity | S | 0..* | BackboneElement | An entity used in this activity
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
role | S Σ | 1..1 | code | derivation | revision | quotation | source | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. Required Pattern: source
what | Σ | 1..1 | Reference(Resource) | Identity of entity
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Provenance.activity | Base | extensible | Provenance activity type | 📍4.0.1 | FHIR Std.
Provenance.entity.role | Base | required | ProvenanceEntityRole | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Provenance | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Provenance | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Provenance | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | Provenance.implicitRules, Provenance.modifierExtension, Provenance.target, Provenance.target.extension:targetPath, Provenance.target.extension:targetPath.value[x], Provenance.recorded, Provenance.activity, Provenance.agent, Provenance.agent.modifierExtension, Provenance.agent.who, Provenance.entity, Provenance.entity.modifierExtension, Provenance.entity.role, Provenance.entity.what | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Provenance.modifierExtension, Provenance.target.extension:targetPath, Provenance.agent.modifierExtension, Provenance.entity.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Provenance

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Provenance |  | 0..* | Provenance(4.0.1) | Records an activity where specific data elements of a resource were retrieved/updated/verified from an external system of record
target | S | 1..1 | Reference(HC Organization(0.2.0-preview) | HC Practitioner(0.2.0-preview) | HC PractitionerRole(0.2.0-preview) | HC Endpoint(0.2.0-preview) | HC HealthcareService(0.2.0-preview) | HC Location(0.2.0-preview)) | Target Reference(s) (usually version specific)
Slices for extension |  |  |  | Content/Rules for all slices
extension:targetPath | S | 0..* | (Complex) | FHIRPath of element(s) in the target resource affected by this provenance activity URL: http://hl7.org/fhir/StructureDefinition/targetPath
value[x] |  | 1..1 | string | Value of extension Example Example: telecom.where(system='phone').value
recorded | S | 1..1 | instant | When the activity was recorded / updated
activity | S | 0..1 | CodeableConcept | Type of provenance activity (e.g. create, update, verify) Binding: ProvenanceActivityType (extensible)
agent |  |  |  |
who | S | 1..1 | Reference(HC Organization(0.2.0-preview) | HC Practitioner(0.2.0-preview) | HC PractitionerRole(0.2.0-preview)) | Who participated
entity | S | 0..* | BackboneElement | An entity used in this activity
role | S | 1..1 | code | derivation | revision | quotation | source | removal Required Pattern: source
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Provenance.activity | Base | extensible | Provenance activity type | 📍4.0.1 | FHIR Std.

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Provenance |  | 0..* | Provenance(4.0.1) | Records an activity where specific data elements of a resource were retrieved/updated/verified from an external system of record
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
target | S Σ | 1..1 | Reference(HC Organization(0.2.0-preview) | HC Practitioner(0.2.0-preview) | HC PractitionerRole(0.2.0-preview) | HC Endpoint(0.2.0-preview) | HC HealthcareService(0.2.0-preview) | HC Location(0.2.0-preview)) | Target Reference(s) (usually version specific)
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
extension:targetPath | S | 0..* | (Complex) | FHIRPath of element(s) in the target resource affected by this provenance activity URL: http://hl7.org/fhir/StructureDefinition/targetPath Constraints: ext-1
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/targetPath"
value[x] |  | 1..1 | string | Value of extension Example Example: telecom.where(system='phone').value
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
display | Σ | 0..1 | string | Text alternative for the resource
occurred[x] |  | 0..1 |  | When the activity occurred
occurredPeriod |  |  | Period |
occurredDateTime |  |  | dateTime |
recorded | S Σ | 1..1 | instant | 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 (3.1.0) (extensible): The reason the activity took place.
activity | S | 0..1 | CodeableConcept | Type of provenance activity (e.g. create, update, verify) Binding: ProvenanceActivityType (extensible)
agent |  | 1..* | BackboneElement | Actor involved
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
type | Σ | 0..1 | CodeableConcept | How the agent participated Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity.
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(HC Organization(0.2.0-preview) | HC Practitioner(0.2.0-preview) | HC PractitionerRole(0.2.0-preview)) | Who participated
onBehalfOf |  | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who the agent is representing
entity | S | 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 Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
role | S Σ | 1..1 | code | derivation | revision | quotation | source | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. Required Pattern: source
what | Σ | 1..1 | Reference(Resource) | Identity of entity
agent |  | 0..* | See agent (Provenance) | Entity is attributed to this agent
signature |  | 0..* | Signature | Signature on target
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Provenance.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Provenance.target.type | Base | extensible | ResourceType | 📍4.0.1 | FHIR Std.
Provenance.reason | Base | extensible | PurposeOfUse | 📍3.1.0 | THO v7.0
Provenance.activity | Base | extensible | Provenance activity type | 📍4.0.1 | FHIR Std.
Provenance.agent.type | Base | extensible | Provenance participant type | 📍4.0.1 | FHIR Std.
Provenance.agent.role | Base | example | SecurityRoleType | 📍4.0.1 | FHIR Std.
Provenance.entity.role | Base | required | ProvenanceEntityRole | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Provenance | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Provenance | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Provenance | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | Provenance.meta, Provenance.implicitRules, Provenance.language, Provenance.text, Provenance.extension, Provenance.modifierExtension, Provenance.target, Provenance.target.extension, Provenance.target.extension:targetPath, Provenance.target.extension:targetPath.value[x], Provenance.target.reference, Provenance.target.type, Provenance.target.identifier, Provenance.target.display, Provenance.occurred[x], Provenance.recorded, Provenance.policy, Provenance.location, Provenance.reason, Provenance.activity, Provenance.agent, Provenance.agent.extension, Provenance.agent.modifierExtension, Provenance.agent.type, Provenance.agent.role, Provenance.agent.who, Provenance.agent.onBehalfOf, Provenance.entity, Provenance.entity.extension, Provenance.entity.modifierExtension, Provenance.entity.role, Provenance.entity.what, Provenance.entity.agent, Provenance.signature | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Provenance.extension, Provenance.modifierExtension, Provenance.target.extension, Provenance.target.extension:targetPath, Provenance.agent.extension, Provenance.agent.modifierExtension, Provenance.entity.extension, Provenance.entity.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Provenance

Summary

Must-Support: 7 elements

Structures

This structure refers to these other structures:

- HC Organization (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-organization|0.2.0-preview)
- HC Practitioner (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-practitioner|0.2.0-preview)
- HC PractitionerRole (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-practitionerrole|0.2.0-preview)
- HC Endpoint (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-endpoint|0.2.0-preview)
- HC HealthcareService (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-healthcareservice|0.2.0-preview)
- HC Location (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-location|0.2.0-preview)

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/targetPath|5.2.0

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Provenance |  | 0..* | Provenance(4.0.1) | Records an activity where specific data elements of a resource were retrieved/updated/verified from an external system of record
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
target | S Σ | 1..1 | Reference(HC Organization(0.2.0-preview) | HC Practitioner(0.2.0-preview) | HC PractitionerRole(0.2.0-preview) | HC Endpoint(0.2.0-preview) | HC HealthcareService(0.2.0-preview) | HC Location(0.2.0-preview)) | Target Reference(s) (usually version specific)
Slices for extension |  |  |  | Content/Rules for all slices
extension:targetPath | S | 0..* | (Complex) | FHIRPath of element(s) in the target resource affected by this provenance activity URL: http://hl7.org/fhir/StructureDefinition/targetPath Constraints: ext-1
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/targetPath"
value[x] |  | 1..1 | string | Value of extension Example Example: telecom.where(system='phone').value
recorded | S Σ | 1..1 | instant | When the activity was recorded / updated
activity | S | 0..1 | CodeableConcept | Type of provenance activity (e.g. create, update, verify) Binding: ProvenanceActivityType (extensible)
agent |  | 1..* | BackboneElement | Actor involved
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
who | S Σ | 1..1 | Reference(HC Organization(0.2.0-preview) | HC Practitioner(0.2.0-preview) | HC PractitionerRole(0.2.0-preview)) | Who participated
entity | S | 0..* | BackboneElement | An entity used in this activity
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
role | S Σ | 1..1 | code | derivation | revision | quotation | source | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. Required Pattern: source
what | Σ | 1..1 | Reference(Resource) | Identity of entity
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Provenance.activity | Base | extensible | Provenance activity type | 📍4.0.1 | FHIR Std.
Provenance.entity.role | Base | required | ProvenanceEntityRole | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Provenance | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Provenance | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Provenance | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | Provenance.implicitRules, Provenance.modifierExtension, Provenance.target, Provenance.target.extension:targetPath, Provenance.target.extension:targetPath.value[x], Provenance.recorded, Provenance.activity, Provenance.agent, Provenance.agent.modifierExtension, Provenance.agent.who, Provenance.entity, Provenance.entity.modifierExtension, Provenance.entity.role, Provenance.entity.what | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Provenance.modifierExtension, Provenance.target.extension:targetPath, Provenance.agent.modifierExtension, Provenance.entity.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

This structure is derived from Provenance

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Provenance |  | 0..* | Provenance(4.0.1) | Records an activity where specific data elements of a resource were retrieved/updated/verified from an external system of record
target | S | 1..1 | Reference(HC Organization(0.2.0-preview) | HC Practitioner(0.2.0-preview) | HC PractitionerRole(0.2.0-preview) | HC Endpoint(0.2.0-preview) | HC HealthcareService(0.2.0-preview) | HC Location(0.2.0-preview)) | Target Reference(s) (usually version specific)
Slices for extension |  |  |  | Content/Rules for all slices
extension:targetPath | S | 0..* | (Complex) | FHIRPath of element(s) in the target resource affected by this provenance activity URL: http://hl7.org/fhir/StructureDefinition/targetPath
value[x] |  | 1..1 | string | Value of extension Example Example: telecom.where(system='phone').value
recorded | S | 1..1 | instant | When the activity was recorded / updated
activity | S | 0..1 | CodeableConcept | Type of provenance activity (e.g. create, update, verify) Binding: ProvenanceActivityType (extensible)
agent |  |  |  |
who | S | 1..1 | Reference(HC Organization(0.2.0-preview) | HC Practitioner(0.2.0-preview) | HC PractitionerRole(0.2.0-preview)) | Who participated
entity | S | 0..* | BackboneElement | An entity used in this activity
role | S | 1..1 | code | derivation | revision | quotation | source | removal Required Pattern: source
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Provenance.activity | Base | extensible | Provenance activity type | 📍4.0.1 | FHIR Std.

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Provenance |  | 0..* | Provenance(4.0.1) | Records an activity where specific data elements of a resource were retrieved/updated/verified from an external system of record
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1
target | S Σ | 1..1 | Reference(HC Organization(0.2.0-preview) | HC Practitioner(0.2.0-preview) | HC PractitionerRole(0.2.0-preview) | HC Endpoint(0.2.0-preview) | HC HealthcareService(0.2.0-preview) | HC Location(0.2.0-preview)) | Target Reference(s) (usually version specific)
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1
extension:targetPath | S | 0..* | (Complex) | FHIRPath of element(s) in the target resource affected by this provenance activity URL: http://hl7.org/fhir/StructureDefinition/targetPath Constraints: ext-1
id |  | 0..1 | id | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url Constraints: ext-1
url |  | 1..1 | uri | "http://hl7.org/fhir/StructureDefinition/targetPath"
value[x] |  | 1..1 | string | Value of extension Example Example: telecom.where(system='phone').value
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
display | Σ | 0..1 | string | Text alternative for the resource
occurred[x] |  | 0..1 |  | When the activity occurred
occurredPeriod |  |  | Period |
occurredDateTime |  |  | dateTime |
recorded | S Σ | 1..1 | instant | 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 (3.1.0) (extensible): The reason the activity took place.
activity | S | 0..1 | CodeableConcept | Type of provenance activity (e.g. create, update, verify) Binding: ProvenanceActivityType (extensible)
agent |  | 1..* | BackboneElement | Actor involved
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
type | Σ | 0..1 | CodeableConcept | How the agent participated Binding: ProvenanceParticipantType (extensible): The type of participation that a provenance agent played with respect to the activity.
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(HC Organization(0.2.0-preview) | HC Practitioner(0.2.0-preview) | HC PractitionerRole(0.2.0-preview)) | Who participated
onBehalfOf |  | 0..1 | Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization) | Who the agent is representing
entity | S | 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 Constraints: ext-1
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1
role | S Σ | 1..1 | code | derivation | revision | quotation | source | removal Binding: ProvenanceEntityRole (required): How an entity was used in an activity. Required Pattern: source
what | Σ | 1..1 | Reference(Resource) | Identity of entity
agent |  | 0..* | See agent (Provenance) | Entity is attributed to this agent
signature |  | 0..* | Signature | Signature on target
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Provenance.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
Provenance.target.type | Base | extensible | ResourceType | 📍4.0.1 | FHIR Std.
Provenance.reason | Base | extensible | PurposeOfUse | 📍3.1.0 | THO v7.0
Provenance.activity | Base | extensible | Provenance activity type | 📍4.0.1 | FHIR Std.
Provenance.agent.type | Base | extensible | Provenance participant type | 📍4.0.1 | FHIR Std.
Provenance.agent.role | Base | example | SecurityRoleType | 📍4.0.1 | FHIR Std.
Provenance.entity.role | Base | required | ProvenanceEntityRole | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Provenance | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Provenance | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Provenance | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Provenance | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | Provenance.meta, Provenance.implicitRules, Provenance.language, Provenance.text, Provenance.extension, Provenance.modifierExtension, Provenance.target, Provenance.target.extension, Provenance.target.extension:targetPath, Provenance.target.extension:targetPath.value[x], Provenance.target.reference, Provenance.target.type, Provenance.target.identifier, Provenance.target.display, Provenance.occurred[x], Provenance.recorded, Provenance.policy, Provenance.location, Provenance.reason, Provenance.activity, Provenance.agent, Provenance.agent.extension, Provenance.agent.modifierExtension, Provenance.agent.type, Provenance.agent.role, Provenance.agent.who, Provenance.agent.onBehalfOf, Provenance.entity, Provenance.entity.extension, Provenance.entity.modifierExtension, Provenance.entity.role, Provenance.entity.what, Provenance.entity.agent, Provenance.signature | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | Provenance.extension, Provenance.modifierExtension, Provenance.target.extension, Provenance.target.extension:targetPath, Provenance.agent.extension, Provenance.agent.modifierExtension, Provenance.entity.extension, Provenance.entity.modifierExtension | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

This structure is derived from Provenance

Summary

Must-Support: 7 elements

Structures

This structure refers to these other structures:

- HC Organization (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-organization|0.2.0-preview)
- HC Practitioner (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-practitioner|0.2.0-preview)
- HC PractitionerRole (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-practitionerrole|0.2.0-preview)
- HC Endpoint (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-endpoint|0.2.0-preview)
- HC HealthcareService (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-healthcareservice|0.2.0-preview)
- HC Location (http://ns.electronichealth.net.au/hc/StructureDefinition/hc-location|0.2.0-preview)

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/targetPath|5.2.0

Other representations of profile: CSV, Excel, Schematron