AU Base Implementation Guide
6.0.1-ci-build - CI Build

AU Base Implementation Guide, published by HL7 Australia. This guide is not an authorized publication; it is the continuous build for version 6.0.1-ci-build built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/AuDigitalHealth/au-fhir-base/ and changes regularly. See the Directory of published versions

## Resource Profile: AU Base PractitionerRole

Official URL: http://hl7.org.au/fhir/StructureDefinition/au-practitionerrole | Version: 6.0.1-ci-build
Standards status: Trial-use | Maturity Level: 3 | Computable Name: AUBasePractitionerRole
Copyright/Legal: HL7 Australia© 2018+; Licensed Under Creative Commons No Rights Reserved.

This profile defines a practitioner role structure that localises core concepts, including identifiers and terminology, for use in an Australian context. The purpose of this profile is to provide national level agreement on core localised concepts. This profile does not force conformance to core localised concepts. It enables implementers and modellers to make their own rules, i.e. profiling, about how to support these concepts for specific implementation needs.

### Usage Notes

Profile specific implementation guidance:

- If a system needs to differentiate contacts for a practitioner in a role by purpose:
  - contact information is sent in `PractitionerRole.telecom`
  - purpose for the contact is sent using the Contact Purpose extension in `PractitionerRole.telecom.extension`
- When selecting a code for `PractitionerRole.code`:
  - Where possible a code from the preferred Practitioner Role value set should be selected.
  - If a system is unable to provide a code from the preferred value set because the implementation context is not restricted to healthcare practitioner providers then it is recommended to select a suitable code from SNOMED CT.
  - If a suitable code from SNOMED CT is not available a code from the value set Australian and New Zealand Standard Classification of Occupations may be used.
- See each Identifier profile page for guidance related to that identifier type.
- When populating available times for a practitioner role, e.g. `PractitionerRole.availableTime.availableStartTime`, an Australian time zone offset is represented using the Timezone Code extension as profiled by Australian Time Zone Usage.

Potentially useful extensions:

- PractitionerRole.telecom: Contact Purpose

Usages:

- Examples for this Profile: PractitionerRole/example0, PractitionerRole/example1, PractitionerRole/example2, PractitionerRole/example3 and PractitionerRole/example4

You can also check for usages in the FHIR IG Statistics

Changes since version 5.0.0:

- The resource metadata has changed (title)
- The data elements list has changed
- One or more text definitions, invariants or bindings have changed

### 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
--- | --- | --- | --- | ---
PractitionerRole |  | 0..* | PractitionerRole | A practitioner in a healthcare role in an Australian healthcare context
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier, AUMedicareProviderNumber, AUNationalProviderIdentifierAtOrganisation, AUEmployeeNumber | Business Identifiers that are specific to a role/location
code | Σ | 0..* | CodeableConcept | Roles which this practitioner may perform Binding: Practitioner Role (preferred)
specialty | Σ | 0..* | CodeableConcept | Specific specialty of the practitioner Binding: Clinical Specialty (preferred)
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
PractitionerRole.code | Base | preferred | Practitioner Role | ⏿1.0.2 | tx.hl7.org.au
PractitionerRole.specialty | Base | preferred | Clinical Specialty | ⏿1.1.0 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | PractitionerRole | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | PractitionerRole | 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 | PractitionerRole | 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 | PractitionerRole | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | PractitionerRole | 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 PractitionerRole

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PractitionerRole |  | 0..* | PractitionerRole | A practitioner in a healthcare role in an Australian healthcare context
identifier |  | 0..* | Identifier, AUMedicareProviderNumber, AUNationalProviderIdentifierAtOrganisation, AUEmployeeNumber | Business Identifiers that are specific to a role/location
code |  | 0..* | CodeableConcept | Roles which this practitioner may perform Binding: Practitioner Role (preferred)
specialty |  | 0..* | CodeableConcept | Specific specialty of the practitioner Binding: Clinical Specialty (preferred)
availableTime |  |  |  |
availableStartTime |  |  |  |
Slices for extension |  |  |  | Content/Rules for all slices
extension:timeZone |  | 0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175)
availableEndTime |  |  |  |
Slices for extension |  |  |  | Content/Rules for all slices
extension:timeZone |  | 0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175)
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
PractitionerRole.code | Base | preferred | Practitioner Role | ⏿1.0.2 | tx.hl7.org.au
PractitionerRole.specialty | Base | preferred | Clinical Specialty | ⏿1.1.0 | tx.hl7.org.au

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PractitionerRole |  | 0..* | PractitionerRole | A practitioner in a healthcare role in an Australian healthcare context
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
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier, AUMedicareProviderNumber, AUNationalProviderIdentifierAtOrganisation, AUEmployeeNumber | Business Identifiers that are specific to a role/location
active | Σ | 0..1 | boolean | Whether this practitioner role record is in active use
period | Σ | 0..1 | Period | The period during which the practitioner is authorized to perform in these role(s)
practitioner | Σ | 0..1 | Reference(Practitioner) | Practitioner that is able to provide the defined services for the organization
organization | Σ | 0..1 | Reference(Organization) | Organization where the roles are available
code | Σ | 0..* | CodeableConcept | Roles which this practitioner may perform Binding: Practitioner Role (preferred)
specialty | Σ | 0..* | CodeableConcept | Specific specialty of the practitioner Binding: Clinical Specialty (preferred)
location | Σ | 0..* | Reference(Location) | The location(s) at which this practitioner provides care
healthcareService |  | 0..* | Reference(HealthcareService) | The list of healthcare services that this worker provides for this role's Organization/Location(s)
telecom | Σ | 0..* | ContactPoint | Contact details that are specific to the role/location/service
availableTime |  | 0..* | BackboneElement | Times the Service Site is available
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
daysOfWeek |  | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required): The days of the week.
allDay |  | 0..1 | boolean | Always available? e.g. 24 hour service
availableStartTime |  | 0..1 | time | Opening time of day (ignored if allDay = true)
id |  | 0..1 | string | xml:id (or equivalent in JSON)
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:timeZone |  | 0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175)
value |  | 0..1 | time | Primitive value for time
availableEndTime |  | 0..1 | time | Closing time of day (ignored if allDay = true)
id |  | 0..1 | string | xml:id (or equivalent in JSON)
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:timeZone |  | 0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175)
value |  | 0..1 | time | Primitive value for time
notAvailable |  | 0..* | BackboneElement | Not available during this time due to provided reason
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
description |  | 1..1 | string | Reason presented to the user explaining why time not available
during |  | 0..1 | Period | Service not available from this date
availabilityExceptions |  | 0..1 | string | Description of availability exceptions
endpoint |  | 0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the practitioner with this role
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
PractitionerRole.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
PractitionerRole.code | Base | preferred | Practitioner Role | ⏿1.0.2 | tx.hl7.org.au
PractitionerRole.specialty | Base | preferred | Clinical Specialty | ⏿1.1.0 | tx.hl7.org.au
PractitionerRole.availableTime.​daysOfWeek | Base | required | DaysOfWeek | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | PractitionerRole | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | PractitionerRole | 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 | PractitionerRole | 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 | PractitionerRole | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | PractitionerRole | 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 PractitionerRole

Summary

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/timezone

Maturity: 3

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PractitionerRole |  | 0..* | PractitionerRole | A practitioner in a healthcare role in an Australian healthcare context
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier, AUMedicareProviderNumber, AUNationalProviderIdentifierAtOrganisation, AUEmployeeNumber | Business Identifiers that are specific to a role/location
code | Σ | 0..* | CodeableConcept | Roles which this practitioner may perform Binding: Practitioner Role (preferred)
specialty | Σ | 0..* | CodeableConcept | Specific specialty of the practitioner Binding: Clinical Specialty (preferred)
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
PractitionerRole.code | Base | preferred | Practitioner Role | ⏿1.0.2 | tx.hl7.org.au
PractitionerRole.specialty | Base | preferred | Clinical Specialty | ⏿1.1.0 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | PractitionerRole | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | PractitionerRole | 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 | PractitionerRole | 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 | PractitionerRole | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | PractitionerRole | 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()`

Differential View

This structure is derived from PractitionerRole

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PractitionerRole |  | 0..* | PractitionerRole | A practitioner in a healthcare role in an Australian healthcare context
identifier |  | 0..* | Identifier, AUMedicareProviderNumber, AUNationalProviderIdentifierAtOrganisation, AUEmployeeNumber | Business Identifiers that are specific to a role/location
code |  | 0..* | CodeableConcept | Roles which this practitioner may perform Binding: Practitioner Role (preferred)
specialty |  | 0..* | CodeableConcept | Specific specialty of the practitioner Binding: Clinical Specialty (preferred)
availableTime |  |  |  |
availableStartTime |  |  |  |
Slices for extension |  |  |  | Content/Rules for all slices
extension:timeZone |  | 0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175)
availableEndTime |  |  |  |
Slices for extension |  |  |  | Content/Rules for all slices
extension:timeZone |  | 0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175)
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
PractitionerRole.code | Base | preferred | Practitioner Role | ⏿1.0.2 | tx.hl7.org.au
PractitionerRole.specialty | Base | preferred | Clinical Specialty | ⏿1.1.0 | tx.hl7.org.au

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
PractitionerRole |  | 0..* | PractitionerRole | A practitioner in a healthcare role in an Australian healthcare context
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
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier, AUMedicareProviderNumber, AUNationalProviderIdentifierAtOrganisation, AUEmployeeNumber | Business Identifiers that are specific to a role/location
active | Σ | 0..1 | boolean | Whether this practitioner role record is in active use
period | Σ | 0..1 | Period | The period during which the practitioner is authorized to perform in these role(s)
practitioner | Σ | 0..1 | Reference(Practitioner) | Practitioner that is able to provide the defined services for the organization
organization | Σ | 0..1 | Reference(Organization) | Organization where the roles are available
code | Σ | 0..* | CodeableConcept | Roles which this practitioner may perform Binding: Practitioner Role (preferred)
specialty | Σ | 0..* | CodeableConcept | Specific specialty of the practitioner Binding: Clinical Specialty (preferred)
location | Σ | 0..* | Reference(Location) | The location(s) at which this practitioner provides care
healthcareService |  | 0..* | Reference(HealthcareService) | The list of healthcare services that this worker provides for this role's Organization/Location(s)
telecom | Σ | 0..* | ContactPoint | Contact details that are specific to the role/location/service
availableTime |  | 0..* | BackboneElement | Times the Service Site is available
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
daysOfWeek |  | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required): The days of the week.
allDay |  | 0..1 | boolean | Always available? e.g. 24 hour service
availableStartTime |  | 0..1 | time | Opening time of day (ignored if allDay = true)
id |  | 0..1 | string | xml:id (or equivalent in JSON)
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:timeZone |  | 0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175)
value |  | 0..1 | time | Primitive value for time
availableEndTime |  | 0..1 | time | Closing time of day (ignored if allDay = true)
id |  | 0..1 | string | xml:id (or equivalent in JSON)
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:timeZone |  | 0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175)
value |  | 0..1 | time | Primitive value for time
notAvailable |  | 0..* | BackboneElement | Not available during this time due to provided reason
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
description |  | 1..1 | string | Reason presented to the user explaining why time not available
during |  | 0..1 | Period | Service not available from this date
availabilityExceptions |  | 0..1 | string | Description of availability exceptions
endpoint |  | 0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the practitioner with this role
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
PractitionerRole.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
PractitionerRole.code | Base | preferred | Practitioner Role | ⏿1.0.2 | tx.hl7.org.au
PractitionerRole.specialty | Base | preferred | Clinical Specialty | ⏿1.1.0 | tx.hl7.org.au
PractitionerRole.availableTime.​daysOfWeek | Base | required | DaysOfWeek | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | PractitionerRole | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | PractitionerRole | 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 | PractitionerRole | 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 | PractitionerRole | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | PractitionerRole | 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 PractitionerRole

Summary

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/StructureDefinition/timezone

Maturity: 3

Other representations of profile: CSV, Excel, Schematron