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
| Official URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-practitionerrole | Version: 0.2.0-preview | |||
| Standards status: Draft | Computable Name: HCPractitionerRole | |||
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 defines a practitioner in role for an organisation at a location providing a healthcare service.
Extensions introduced in this profile:
Registration Identifiers (exactly one required for the role):
These registration identifiers must match corresponding registration identifiers held by the referenced Practitioner and should represent the professional credentials that authorize the practitioner to perform this specific role.
HC Practitioner Role resources may also have additional identifiers specific to other business partners, with identifier systems that may or may not match other identifier slices defined in AU Core Practitioner Role.
The HC Preferred Name extension allows a practitioner to specify a preferred name for use in the context of a specific role. This name may differ from their registered name and allows practitioners to be known by their preferred name when delivering healthcare services in this role.
Only the main role or job of the clinician should be provided, using a code from the SNOMED-CT-AU code system. The preferred value set is Practitioner Role 1. Publishing systems must supply a single code representing the clinician’s primary practitioner role. Any additional codes or roles will be ignored. When a PractitionerRole is provided to a subscribing system, only the primary role (as defined by the SNOMED-CT-AU code from the specified value set) will be included.
The SNOMED code is the authoritative, machine-readable representation and should be used for searching, filtering, and interoperability; the display is the user-facing label and may be normalised by subscribing systems. Additional codes MUST NOT be used to represent multiple roles and will be ignored by the HC service.
The PractitionerRole.specialty element is marked as Must Support (MS) because this requirement is inherited from AU Core, which also imposes obligations on defined roles. None of the AU Core roles or obligations are relevant to this specification. There is no requirement for implementers of this specification to do anything this this data element.
This profile includes invariants to ensure data consistency and integrity between PractitionerRole and the referenced Practitioner resources.
The inv-02-identifier-registration-match invariant ensures that registration identifiers on the PractitionerRole match those of the referenced Practitioner. This validation prevents data inconsistencies where a PractitionerRole might reference registration numbers that don't belong to the associated Practitioner.
Requirements:
Business Logic: This ensures referential integrity in provider directory implementations where:
The invariant inv-01-identifier-registration-required ensures that at least one of the Professional Registration Number identifier types are present, either:
While a practitioner can have more than one professional registration and professions (e.g. nurse and midwife), the relevant registration that is applicable for this role only is captured.
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| 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.0.0 | tx.hl7.org.au |
| PractitionerRole.telecom.system | Base | required | ContactPointSystem | 📍4.0.1 | FHIR Std. |
| PractitionerRole.telecom.use | Base | required | ContactPointUse | 📍4.0.1 | FHIR Std. |
| PractitionerRole.availableTime.daysOfWeek | Base | required | DaysOfWeek | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| au-core-prarol-01 | error | PractitionerRole.practitioner | At least a reference, identifier or display shall be present, or, if neither is available, the Data Absent Reason extension shall be present |
(reference.exists() or identifier.exists() or display.exists()) xor extension('http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists()
|
| 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 | PractitionerRole.implicitRules, PractitionerRole.extension, PractitionerRole.extension:hc-practitioner-role-communication, PractitionerRole.extension:hc-preferred-name, PractitionerRole.modifierExtension, PractitionerRole.identifier, PractitionerRole.identifier:medicareProvider, PractitionerRole.identifier:peakbodyregistrationnumber, PractitionerRole.identifier:ahpraregistrationnumber, PractitionerRole.period, PractitionerRole.practitioner, PractitionerRole.organization, PractitionerRole.code, PractitionerRole.specialty, PractitionerRole.location, PractitionerRole.healthcareService, PractitionerRole.telecom, PractitionerRole.telecom.system, PractitionerRole.telecom.value, PractitionerRole.telecom.use, PractitionerRole.availableTime, PractitionerRole.availableTime.modifierExtension, PractitionerRole.availableTime.daysOfWeek, PractitionerRole.availableTime.allDay, PractitionerRole.availableTime.availableStartTime, PractitionerRole.availableTime.availableStartTime.extension:timeZone, PractitionerRole.availableTime.availableEndTime, PractitionerRole.availableTime.availableEndTime.extension:timeZone, PractitionerRole.endpoint | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | PractitionerRole.extension, PractitionerRole.extension:hc-practitioner-role-communication, PractitionerRole.extension:hc-preferred-name, PractitionerRole.modifierExtension, PractitionerRole.availableTime.modifierExtension, PractitionerRole.availableTime.availableStartTime.extension:timeZone, PractitionerRole.availableTime.availableEndTime.extension:timeZone | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| inv-01-identifier-registration-required | error | PractitionerRole | Either Ahpra or PRN identifier SHALL exist, but not both. While a practitioner can have more than one professional registration and professions (e.g. nurse and midwife), the relevant registration that is applicable for this role only is captured. |
(identifier.type.coding.where(code = 'AHPRA').exists() and identifier.type.coding.where(code = 'PRN').exists().not()) or (identifier.type.coding.where(code = 'PRN').exists() and identifier.type.coding.where(code = 'AHPRA').exists().not())
|
| inv-02-identifier-registration-match | warning | PractitionerRole | PractitionerRole registration identifiers SHOULD match with the referenced Practitioner's registration identifiers in qualifications |
practitioner.resolve().qualification.identifier.where(type.coding.where(code = 'AHPRA').exists()).value.intersect(identifier.where(type.coding.where(code = 'AHPRA').exists()).value).exists() or practitioner.resolve().qualification.identifier.where(type.coding.where(code = 'PRN').exists()).value.intersect(identifier.where(type.coding.where(code = 'PRN').exists()).value).exists()
|
This structure is derived from AUCorePractitionerRole
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | AUCorePractitionerRole(2.0.0-ballot) | A person with formal responsibility in a role providing one or more services | ||||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||||
![]() ![]() ![]() |
SO | 0..* | CodeableConcept | Practitioner role communication preferences URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-practitioner-role-communication Binding: Common Languages in Australia (required)
| ||||||
![]() ![]() ![]() |
SO | 0..1 | HumanName | Preferred name for this practitioner role URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-name
| ||||||
![]() ![]() |
O | 1..* | Identifier(4.0.1), AUMedicareProviderNumber(6.0.0), AUNationalProviderIdentifierAtOrganisation(6.0.0), AUEmployeeNumber(6.0.0) | Business Identifiers that are specific to a role/location Slice: Unordered, Open by pattern:type
| ||||||
![]() ![]() ![]() |
O | 0..1 | AUMedicareProviderNumber(6.0.0) | Medicare provider number
| ||||||
![]() ![]() ![]() |
S | 0..1 | HCPeakBodyRegistrationNumber(0.2.0-preview) | Professional association / Peak body association (for non-Ahpra registered practitioners), as recorded against the HPI-I record | ||||||
![]() ![]() ![]() |
S | 0..1 | AUAhpraRegistrationNumber(6.0.0) | Ahpra Registration Number | ||||||
![]() ![]() |
SO | 1..1 | Period | The period during which the practitioner is active in this role.
| ||||||
![]() ![]() |
1..1 | Reference(HC Practitioner(0.2.0-preview)) | Practitioner in the role | |||||||
![]() ![]() |
1..1 | Reference(HC Organization(0.2.0-preview)) | Organisation providing this role. Reference to be the same organisation as the referenced HealthcareService for this role. | |||||||
![]() ![]() |
O | 1..1 | CodeableConcept | The primary role of the practitioner
| ||||||
![]() ![]() |
SO | 1..1 | Reference(HC Location(0.2.0-preview)) | Location at which this role is provided. Reference to be the same Location as the referenced HealthcareService for this role.
| ||||||
![]() ![]() |
SO | 1..1 | Reference(HC HealthcareService(0.2.0-preview)) | Healthcare service at which this role is provided.
| ||||||
![]() ![]() |
0..* | ContactPoint | Contact details for the practitioner in this role. | |||||||
![]() ![]() |
SO | 0..* | BackboneElement | Times that the practitioner provides the healthcare service in this role at this location.
| ||||||
![]() ![]() ![]() |
SO | 0..* | code | mon | tue | wed | thu | fri | sat | sun
| ||||||
![]() ![]() ![]() |
SO | 0..1 | boolean | Always available? e.g. 24 hour service
| ||||||
![]() ![]() ![]() |
SO | 0..1 | time | Opening time of day (ignored if allDay = true)
| ||||||
![]() ![]() ![]() |
SO | 0..1 | time | Closing time of day (ignored if allDay = true)
| ||||||
![]() ![]() |
SO | 0..* | Reference(HC Endpoint(0.2.0-preview)) | Technical endpoints for this practitioner role.
| ||||||
Documentation for this format | ||||||||||
| Id | Grade | Path(s) | Description | Expression |
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | AUCorePractitionerRole(2.0.0-ballot) | A person with formal responsibility in a role providing one or more services Constraints: inv-01-identifier-registration-required, inv-02-identifier-registration-match | ||||||
![]() ![]() |
Σ | 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: CommonLanguages (preferred): A human language.
| |||||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() |
SO | 0..* | CodeableConcept | Practitioner role communication preferences URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-practitioner-role-communication Binding: Common Languages in Australia (required)Constraints: ext-1
| ||||||
![]() ![]() ![]() |
SO | 0..1 | HumanName | Preferred name for this practitioner role URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-name Constraints: ext-1
| ||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1 | ||||||
![]() ![]() |
SOΣ | 1..* | Identifier(4.0.1), AUMedicareProviderNumber(6.0.0), AUNationalProviderIdentifierAtOrganisation(6.0.0), AUEmployeeNumber(6.0.0) | Business Identifiers that are specific to a role/location Slice: Unordered, Open by pattern:type
| ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | AUMedicareProviderNumber(6.0.0) | Medicare provider number
| ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | HCPeakBodyRegistrationNumber(0.2.0-preview) | Professional association / Peak body association (for non-Ahpra registered practitioners), as recorded against the HPI-I record | ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | AUAhpraRegistrationNumber(6.0.0) | Ahpra Registration Number | ||||||
![]() ![]() |
Σ | 0..1 | boolean | Whether this practitioner role record is in active use | ||||||
![]() ![]() |
SOΣ | 1..1 | Period | The period during which the practitioner is active in this role.
| ||||||
![]() ![]() |
SOΣC | 1..1 | Reference(HC Practitioner(0.2.0-preview)) | Practitioner in the role Constraints: au-core-prarol-01 | ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(HC Organization(0.2.0-preview)) | Organisation providing this role. Reference to be the same organisation as the referenced HealthcareService for this role. | ||||||
![]() ![]() |
SOΣ | 1..1 | CodeableConcept | The primary role of the practitioner Binding: Practitioner Role (preferred)
| ||||||
![]() ![]() |
SOΣ | 0..* | CodeableConcept | Specific specialty of the practitioner Binding: Clinical Specialty (preferred) | ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(HC Location(0.2.0-preview)) | Location at which this role is provided. Reference to be the same Location as the referenced HealthcareService for this role.
| ||||||
![]() ![]() |
SO | 1..1 | Reference(HC HealthcareService(0.2.0-preview)) | Healthcare service at which this role is provided.
| ||||||
![]() ![]() |
SOΣ | 0..* | ContactPoint | Contact details for the practitioner in this role. | ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() |
SOΣC | 0..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point. | ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | string | The actual contact point details | ||||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | home | work | temp | old | mobile - purpose of this contact point Binding: ContactPointUse (required): Use of contact point. | ||||||
![]() ![]() ![]() |
Σ | 0..1 | positiveInt | Specify preferred order of use (1 = highest) | ||||||
![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when the contact point was/is in use | ||||||
![]() ![]() |
SO | 0..* | BackboneElement | Times that the practitioner provides the healthcare service in this role at this location.
| ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Constraints: ext-1 | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
SO | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required): The days of the week.
| ||||||
![]() ![]() ![]() |
SO | 0..1 | boolean | Always available? e.g. 24 hour service
| ||||||
![]() ![]() ![]() |
SO | 0..1 | time | Opening time of day (ignored if allDay = true)
| ||||||
![]() ![]() ![]() ![]() |
0..1 | string | xml:id (or equivalent in JSON) | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175) Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() |
0..1 | time | Primitive value for time | |||||||
![]() ![]() ![]() |
SO | 0..1 | time | Closing time of day (ignored if allDay = true)
| ||||||
![]() ![]() ![]() ![]() |
0..1 | string | xml:id (or equivalent in JSON) | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175) Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() |
0..1 | time | Primitive value for time | |||||||
![]() ![]() |
0..* | BackboneElement | Not available during this time due to provided reason | |||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Constraints: ext-1 | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
1..1 | string | Reason presented to the user explaining why time not available | |||||||
![]() ![]() ![]() |
0..1 | Period | Service not available from this date | |||||||
![]() ![]() |
0..1 | string | Description of availability exceptions | |||||||
![]() ![]() |
SO | 0..* | Reference(HC Endpoint(0.2.0-preview)) | Technical endpoints for this practitioner role.
| ||||||
Documentation for this format | ||||||||||
| 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.0.0 | tx.hl7.org.au |
| PractitionerRole.telecom.system | Base | required | ContactPointSystem | 📍4.0.1 | FHIR Std. |
| PractitionerRole.telecom.use | Base | required | ContactPointUse | 📍4.0.1 | FHIR Std. |
| PractitionerRole.availableTime.daysOfWeek | Base | required | DaysOfWeek | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| au-core-prarol-01 | error | PractitionerRole.practitioner | At least a reference, identifier or display shall be present, or, if neither is available, the Data Absent Reason extension shall be present |
(reference.exists() or identifier.exists() or display.exists()) xor extension('http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists()
|
| 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 | PractitionerRole.meta, PractitionerRole.implicitRules, PractitionerRole.language, PractitionerRole.text, PractitionerRole.extension, PractitionerRole.extension:hc-practitioner-role-communication, PractitionerRole.extension:hc-preferred-name, PractitionerRole.modifierExtension, PractitionerRole.identifier, PractitionerRole.identifier:medicareProvider, PractitionerRole.identifier:peakbodyregistrationnumber, PractitionerRole.identifier:ahpraregistrationnumber, PractitionerRole.active, PractitionerRole.period, PractitionerRole.practitioner, PractitionerRole.organization, PractitionerRole.code, PractitionerRole.specialty, PractitionerRole.location, PractitionerRole.healthcareService, PractitionerRole.telecom, PractitionerRole.telecom.extension, PractitionerRole.telecom.system, PractitionerRole.telecom.value, PractitionerRole.telecom.use, PractitionerRole.telecom.rank, PractitionerRole.telecom.period, PractitionerRole.availableTime, PractitionerRole.availableTime.extension, PractitionerRole.availableTime.modifierExtension, PractitionerRole.availableTime.daysOfWeek, PractitionerRole.availableTime.allDay, PractitionerRole.availableTime.availableStartTime, PractitionerRole.availableTime.availableStartTime.extension, PractitionerRole.availableTime.availableStartTime.extension:timeZone, PractitionerRole.availableTime.availableEndTime, PractitionerRole.availableTime.availableEndTime.extension, PractitionerRole.availableTime.availableEndTime.extension:timeZone, PractitionerRole.notAvailable, PractitionerRole.notAvailable.extension, PractitionerRole.notAvailable.modifierExtension, PractitionerRole.notAvailable.description, PractitionerRole.notAvailable.during, PractitionerRole.availabilityExceptions, PractitionerRole.endpoint | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | PractitionerRole.extension, PractitionerRole.extension:hc-practitioner-role-communication, PractitionerRole.extension:hc-preferred-name, PractitionerRole.modifierExtension, PractitionerRole.telecom.extension, PractitionerRole.availableTime.extension, PractitionerRole.availableTime.modifierExtension, PractitionerRole.availableTime.availableStartTime.extension, PractitionerRole.availableTime.availableStartTime.extension:timeZone, PractitionerRole.availableTime.availableEndTime.extension, PractitionerRole.availableTime.availableEndTime.extension:timeZone, PractitionerRole.notAvailable.extension, PractitionerRole.notAvailable.modifierExtension | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| inv-01-identifier-registration-required | error | PractitionerRole | Either Ahpra or PRN identifier SHALL exist, but not both. While a practitioner can have more than one professional registration and professions (e.g. nurse and midwife), the relevant registration that is applicable for this role only is captured. |
(identifier.type.coding.where(code = 'AHPRA').exists() and identifier.type.coding.where(code = 'PRN').exists().not()) or (identifier.type.coding.where(code = 'PRN').exists() and identifier.type.coding.where(code = 'AHPRA').exists().not())
|
| inv-02-identifier-registration-match | warning | PractitionerRole | PractitionerRole registration identifiers SHOULD match with the referenced Practitioner's registration identifiers in qualifications |
practitioner.resolve().qualification.identifier.where(type.coding.where(code = 'AHPRA').exists()).value.intersect(identifier.where(type.coding.where(code = 'AHPRA').exists()).value).exists() or practitioner.resolve().qualification.identifier.where(type.coding.where(code = 'PRN').exists()).value.intersect(identifier.where(type.coding.where(code = 'PRN').exists()).value).exists()
|
This structure is derived from AUCorePractitionerRole
Summary
Mandatory: 6 elements
Must-Support: 13 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Slices
This structure defines the following Slices:
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | AUCorePractitionerRole(2.0.0-ballot) | A person with formal responsibility in a role providing one or more services Constraints: inv-01-identifier-registration-required, inv-02-identifier-registration-match | ||||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() |
SO | 0..* | CodeableConcept | Practitioner role communication preferences URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-practitioner-role-communication Binding: Common Languages in Australia (required)Constraints: ext-1
| ||||||
![]() ![]() ![]() |
SO | 0..1 | HumanName | Preferred name for this practitioner role URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-name Constraints: ext-1
| ||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1 | ||||||
![]() ![]() |
SOΣ | 1..* | Identifier(4.0.1), AUMedicareProviderNumber(6.0.0), AUNationalProviderIdentifierAtOrganisation(6.0.0), AUEmployeeNumber(6.0.0) | Business Identifiers that are specific to a role/location Slice: Unordered, Open by pattern:type
| ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | AUMedicareProviderNumber(6.0.0) | Medicare provider number
| ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | HCPeakBodyRegistrationNumber(0.2.0-preview) | Professional association / Peak body association (for non-Ahpra registered practitioners), as recorded against the HPI-I record | ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | AUAhpraRegistrationNumber(6.0.0) | Ahpra Registration Number | ||||||
![]() ![]() |
SOΣ | 1..1 | Period | The period during which the practitioner is active in this role.
| ||||||
![]() ![]() |
SOΣC | 1..1 | Reference(HC Practitioner(0.2.0-preview)) | Practitioner in the role Constraints: au-core-prarol-01 | ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(HC Organization(0.2.0-preview)) | Organisation providing this role. Reference to be the same organisation as the referenced HealthcareService for this role. | ||||||
![]() ![]() |
SOΣ | 1..1 | CodeableConcept | The primary role of the practitioner Binding: Practitioner Role (preferred)
| ||||||
![]() ![]() |
SOΣ | 0..* | CodeableConcept | Specific specialty of the practitioner Binding: Clinical Specialty (preferred) | ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(HC Location(0.2.0-preview)) | Location at which this role is provided. Reference to be the same Location as the referenced HealthcareService for this role.
| ||||||
![]() ![]() |
SO | 1..1 | Reference(HC HealthcareService(0.2.0-preview)) | Healthcare service at which this role is provided.
| ||||||
![]() ![]() |
SOΣ | 0..* | ContactPoint | Contact details for the practitioner in this role. | ||||||
![]() ![]() ![]() |
SOΣC | 0..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point. | ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | string | The actual contact point details | ||||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | home | work | temp | old | mobile - purpose of this contact point Binding: ContactPointUse (required): Use of contact point. | ||||||
![]() ![]() |
SO | 0..* | BackboneElement | Times that the practitioner provides the healthcare service in this role at this location.
| ||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
SO | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required): The days of the week.
| ||||||
![]() ![]() ![]() |
SO | 0..1 | boolean | Always available? e.g. 24 hour service
| ||||||
![]() ![]() ![]() |
SO | 0..1 | time | Opening time of day (ignored if allDay = true)
| ||||||
![]() ![]() ![]() ![]() |
Content/Rules for all slices | |||||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175) Constraints: ext-1 | |||||||
![]() ![]() ![]() |
SO | 0..1 | time | Closing time of day (ignored if allDay = true)
| ||||||
![]() ![]() ![]() ![]() |
Content/Rules for all slices | |||||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175) Constraints: ext-1 | |||||||
![]() ![]() |
SO | 0..* | Reference(HC Endpoint(0.2.0-preview)) | Technical endpoints for this practitioner role.
| ||||||
Documentation for this format | ||||||||||
| 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.0.0 | tx.hl7.org.au |
| PractitionerRole.telecom.system | Base | required | ContactPointSystem | 📍4.0.1 | FHIR Std. |
| PractitionerRole.telecom.use | Base | required | ContactPointUse | 📍4.0.1 | FHIR Std. |
| PractitionerRole.availableTime.daysOfWeek | Base | required | DaysOfWeek | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| au-core-prarol-01 | error | PractitionerRole.practitioner | At least a reference, identifier or display shall be present, or, if neither is available, the Data Absent Reason extension shall be present |
(reference.exists() or identifier.exists() or display.exists()) xor extension('http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists()
|
| 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 | PractitionerRole.implicitRules, PractitionerRole.extension, PractitionerRole.extension:hc-practitioner-role-communication, PractitionerRole.extension:hc-preferred-name, PractitionerRole.modifierExtension, PractitionerRole.identifier, PractitionerRole.identifier:medicareProvider, PractitionerRole.identifier:peakbodyregistrationnumber, PractitionerRole.identifier:ahpraregistrationnumber, PractitionerRole.period, PractitionerRole.practitioner, PractitionerRole.organization, PractitionerRole.code, PractitionerRole.specialty, PractitionerRole.location, PractitionerRole.healthcareService, PractitionerRole.telecom, PractitionerRole.telecom.system, PractitionerRole.telecom.value, PractitionerRole.telecom.use, PractitionerRole.availableTime, PractitionerRole.availableTime.modifierExtension, PractitionerRole.availableTime.daysOfWeek, PractitionerRole.availableTime.allDay, PractitionerRole.availableTime.availableStartTime, PractitionerRole.availableTime.availableStartTime.extension:timeZone, PractitionerRole.availableTime.availableEndTime, PractitionerRole.availableTime.availableEndTime.extension:timeZone, PractitionerRole.endpoint | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | PractitionerRole.extension, PractitionerRole.extension:hc-practitioner-role-communication, PractitionerRole.extension:hc-preferred-name, PractitionerRole.modifierExtension, PractitionerRole.availableTime.modifierExtension, PractitionerRole.availableTime.availableStartTime.extension:timeZone, PractitionerRole.availableTime.availableEndTime.extension:timeZone | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| inv-01-identifier-registration-required | error | PractitionerRole | Either Ahpra or PRN identifier SHALL exist, but not both. While a practitioner can have more than one professional registration and professions (e.g. nurse and midwife), the relevant registration that is applicable for this role only is captured. |
(identifier.type.coding.where(code = 'AHPRA').exists() and identifier.type.coding.where(code = 'PRN').exists().not()) or (identifier.type.coding.where(code = 'PRN').exists() and identifier.type.coding.where(code = 'AHPRA').exists().not())
|
| inv-02-identifier-registration-match | warning | PractitionerRole | PractitionerRole registration identifiers SHOULD match with the referenced Practitioner's registration identifiers in qualifications |
practitioner.resolve().qualification.identifier.where(type.coding.where(code = 'AHPRA').exists()).value.intersect(identifier.where(type.coding.where(code = 'AHPRA').exists()).value).exists() or practitioner.resolve().qualification.identifier.where(type.coding.where(code = 'PRN').exists()).value.intersect(identifier.where(type.coding.where(code = 'PRN').exists()).value).exists()
|
Differential View
This structure is derived from AUCorePractitionerRole
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | AUCorePractitionerRole(2.0.0-ballot) | A person with formal responsibility in a role providing one or more services | ||||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||||
![]() ![]() ![]() |
SO | 0..* | CodeableConcept | Practitioner role communication preferences URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-practitioner-role-communication Binding: Common Languages in Australia (required)
| ||||||
![]() ![]() ![]() |
SO | 0..1 | HumanName | Preferred name for this practitioner role URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-name
| ||||||
![]() ![]() |
O | 1..* | Identifier(4.0.1), AUMedicareProviderNumber(6.0.0), AUNationalProviderIdentifierAtOrganisation(6.0.0), AUEmployeeNumber(6.0.0) | Business Identifiers that are specific to a role/location Slice: Unordered, Open by pattern:type
| ||||||
![]() ![]() ![]() |
O | 0..1 | AUMedicareProviderNumber(6.0.0) | Medicare provider number
| ||||||
![]() ![]() ![]() |
S | 0..1 | HCPeakBodyRegistrationNumber(0.2.0-preview) | Professional association / Peak body association (for non-Ahpra registered practitioners), as recorded against the HPI-I record | ||||||
![]() ![]() ![]() |
S | 0..1 | AUAhpraRegistrationNumber(6.0.0) | Ahpra Registration Number | ||||||
![]() ![]() |
SO | 1..1 | Period | The period during which the practitioner is active in this role.
| ||||||
![]() ![]() |
1..1 | Reference(HC Practitioner(0.2.0-preview)) | Practitioner in the role | |||||||
![]() ![]() |
1..1 | Reference(HC Organization(0.2.0-preview)) | Organisation providing this role. Reference to be the same organisation as the referenced HealthcareService for this role. | |||||||
![]() ![]() |
O | 1..1 | CodeableConcept | The primary role of the practitioner
| ||||||
![]() ![]() |
SO | 1..1 | Reference(HC Location(0.2.0-preview)) | Location at which this role is provided. Reference to be the same Location as the referenced HealthcareService for this role.
| ||||||
![]() ![]() |
SO | 1..1 | Reference(HC HealthcareService(0.2.0-preview)) | Healthcare service at which this role is provided.
| ||||||
![]() ![]() |
0..* | ContactPoint | Contact details for the practitioner in this role. | |||||||
![]() ![]() |
SO | 0..* | BackboneElement | Times that the practitioner provides the healthcare service in this role at this location.
| ||||||
![]() ![]() ![]() |
SO | 0..* | code | mon | tue | wed | thu | fri | sat | sun
| ||||||
![]() ![]() ![]() |
SO | 0..1 | boolean | Always available? e.g. 24 hour service
| ||||||
![]() ![]() ![]() |
SO | 0..1 | time | Opening time of day (ignored if allDay = true)
| ||||||
![]() ![]() ![]() |
SO | 0..1 | time | Closing time of day (ignored if allDay = true)
| ||||||
![]() ![]() |
SO | 0..* | Reference(HC Endpoint(0.2.0-preview)) | Technical endpoints for this practitioner role.
| ||||||
Documentation for this format | ||||||||||
| Id | Grade | Path(s) | Description | Expression |
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | AUCorePractitionerRole(2.0.0-ballot) | A person with formal responsibility in a role providing one or more services Constraints: inv-01-identifier-registration-required, inv-02-identifier-registration-match | ||||||
![]() ![]() |
Σ | 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: CommonLanguages (preferred): A human language.
| |||||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() |
SO | 0..* | CodeableConcept | Practitioner role communication preferences URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-practitioner-role-communication Binding: Common Languages in Australia (required)Constraints: ext-1
| ||||||
![]() ![]() ![]() |
SO | 0..1 | HumanName | Preferred name for this practitioner role URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-name Constraints: ext-1
| ||||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored Constraints: ext-1 | ||||||
![]() ![]() |
SOΣ | 1..* | Identifier(4.0.1), AUMedicareProviderNumber(6.0.0), AUNationalProviderIdentifierAtOrganisation(6.0.0), AUEmployeeNumber(6.0.0) | Business Identifiers that are specific to a role/location Slice: Unordered, Open by pattern:type
| ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | AUMedicareProviderNumber(6.0.0) | Medicare provider number
| ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | HCPeakBodyRegistrationNumber(0.2.0-preview) | Professional association / Peak body association (for non-Ahpra registered practitioners), as recorded against the HPI-I record | ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | AUAhpraRegistrationNumber(6.0.0) | Ahpra Registration Number | ||||||
![]() ![]() |
Σ | 0..1 | boolean | Whether this practitioner role record is in active use | ||||||
![]() ![]() |
SOΣ | 1..1 | Period | The period during which the practitioner is active in this role.
| ||||||
![]() ![]() |
SOΣC | 1..1 | Reference(HC Practitioner(0.2.0-preview)) | Practitioner in the role Constraints: au-core-prarol-01 | ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(HC Organization(0.2.0-preview)) | Organisation providing this role. Reference to be the same organisation as the referenced HealthcareService for this role. | ||||||
![]() ![]() |
SOΣ | 1..1 | CodeableConcept | The primary role of the practitioner Binding: Practitioner Role (preferred)
| ||||||
![]() ![]() |
SOΣ | 0..* | CodeableConcept | Specific specialty of the practitioner Binding: Clinical Specialty (preferred) | ||||||
![]() ![]() |
SOΣ | 1..1 | Reference(HC Location(0.2.0-preview)) | Location at which this role is provided. Reference to be the same Location as the referenced HealthcareService for this role.
| ||||||
![]() ![]() |
SO | 1..1 | Reference(HC HealthcareService(0.2.0-preview)) | Healthcare service at which this role is provided.
| ||||||
![]() ![]() |
SOΣ | 0..* | ContactPoint | Contact details for the practitioner in this role. | ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() |
SOΣC | 0..1 | code | phone | fax | email | pager | url | sms | other Binding: ContactPointSystem (required): Telecommunications form for contact point. | ||||||
![]() ![]() ![]() |
SOΣ | 0..1 | string | The actual contact point details | ||||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | home | work | temp | old | mobile - purpose of this contact point Binding: ContactPointUse (required): Use of contact point. | ||||||
![]() ![]() ![]() |
Σ | 0..1 | positiveInt | Specify preferred order of use (1 = highest) | ||||||
![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when the contact point was/is in use | ||||||
![]() ![]() |
SO | 0..* | BackboneElement | Times that the practitioner provides the healthcare service in this role at this location.
| ||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Constraints: ext-1 | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
SO | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required): The days of the week.
| ||||||
![]() ![]() ![]() |
SO | 0..1 | boolean | Always available? e.g. 24 hour service
| ||||||
![]() ![]() ![]() |
SO | 0..1 | time | Opening time of day (ignored if allDay = true)
| ||||||
![]() ![]() ![]() ![]() |
0..1 | string | xml:id (or equivalent in JSON) | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175) Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() |
0..1 | time | Primitive value for time | |||||||
![]() ![]() ![]() |
SO | 0..1 | time | Closing time of day (ignored if allDay = true)
| ||||||
![]() ![]() ![]() ![]() |
0..1 | string | xml:id (or equivalent in JSON) | |||||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | code | IANA Timezone Code per BCP 175 URL: http://hl7.org/fhir/StructureDefinition/timezone Binding: IANATimezones (required): IANA Timezones (BCP 175) Constraints: ext-1 | |||||||
![]() ![]() ![]() ![]() |
0..1 | time | Primitive value for time | |||||||
![]() ![]() |
0..* | BackboneElement | Not available during this time due to provided reason | |||||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Constraints: ext-1 | |||||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Constraints: ext-1 | ||||||
![]() ![]() ![]() |
1..1 | string | Reason presented to the user explaining why time not available | |||||||
![]() ![]() ![]() |
0..1 | Period | Service not available from this date | |||||||
![]() ![]() |
0..1 | string | Description of availability exceptions | |||||||
![]() ![]() |
SO | 0..* | Reference(HC Endpoint(0.2.0-preview)) | Technical endpoints for this practitioner role.
| ||||||
Documentation for this format | ||||||||||
| 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.0.0 | tx.hl7.org.au |
| PractitionerRole.telecom.system | Base | required | ContactPointSystem | 📍4.0.1 | FHIR Std. |
| PractitionerRole.telecom.use | Base | required | ContactPointUse | 📍4.0.1 | FHIR Std. |
| PractitionerRole.availableTime.daysOfWeek | Base | required | DaysOfWeek | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| au-core-prarol-01 | error | PractitionerRole.practitioner | At least a reference, identifier or display shall be present, or, if neither is available, the Data Absent Reason extension shall be present |
(reference.exists() or identifier.exists() or display.exists()) xor extension('http://hl7.org/fhir/StructureDefinition/data-absent-reason').exists()
|
| 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 | PractitionerRole.meta, PractitionerRole.implicitRules, PractitionerRole.language, PractitionerRole.text, PractitionerRole.extension, PractitionerRole.extension:hc-practitioner-role-communication, PractitionerRole.extension:hc-preferred-name, PractitionerRole.modifierExtension, PractitionerRole.identifier, PractitionerRole.identifier:medicareProvider, PractitionerRole.identifier:peakbodyregistrationnumber, PractitionerRole.identifier:ahpraregistrationnumber, PractitionerRole.active, PractitionerRole.period, PractitionerRole.practitioner, PractitionerRole.organization, PractitionerRole.code, PractitionerRole.specialty, PractitionerRole.location, PractitionerRole.healthcareService, PractitionerRole.telecom, PractitionerRole.telecom.extension, PractitionerRole.telecom.system, PractitionerRole.telecom.value, PractitionerRole.telecom.use, PractitionerRole.telecom.rank, PractitionerRole.telecom.period, PractitionerRole.availableTime, PractitionerRole.availableTime.extension, PractitionerRole.availableTime.modifierExtension, PractitionerRole.availableTime.daysOfWeek, PractitionerRole.availableTime.allDay, PractitionerRole.availableTime.availableStartTime, PractitionerRole.availableTime.availableStartTime.extension, PractitionerRole.availableTime.availableStartTime.extension:timeZone, PractitionerRole.availableTime.availableEndTime, PractitionerRole.availableTime.availableEndTime.extension, PractitionerRole.availableTime.availableEndTime.extension:timeZone, PractitionerRole.notAvailable, PractitionerRole.notAvailable.extension, PractitionerRole.notAvailable.modifierExtension, PractitionerRole.notAvailable.description, PractitionerRole.notAvailable.during, PractitionerRole.availabilityExceptions, PractitionerRole.endpoint | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| ext-1 | error | PractitionerRole.extension, PractitionerRole.extension:hc-practitioner-role-communication, PractitionerRole.extension:hc-preferred-name, PractitionerRole.modifierExtension, PractitionerRole.telecom.extension, PractitionerRole.availableTime.extension, PractitionerRole.availableTime.modifierExtension, PractitionerRole.availableTime.availableStartTime.extension, PractitionerRole.availableTime.availableStartTime.extension:timeZone, PractitionerRole.availableTime.availableEndTime.extension, PractitionerRole.availableTime.availableEndTime.extension:timeZone, PractitionerRole.notAvailable.extension, PractitionerRole.notAvailable.modifierExtension | Must have either extensions or value[x], not both |
extension.exists() != value.exists()
|
| inv-01-identifier-registration-required | error | PractitionerRole | Either Ahpra or PRN identifier SHALL exist, but not both. While a practitioner can have more than one professional registration and professions (e.g. nurse and midwife), the relevant registration that is applicable for this role only is captured. |
(identifier.type.coding.where(code = 'AHPRA').exists() and identifier.type.coding.where(code = 'PRN').exists().not()) or (identifier.type.coding.where(code = 'PRN').exists() and identifier.type.coding.where(code = 'AHPRA').exists().not())
|
| inv-02-identifier-registration-match | warning | PractitionerRole | PractitionerRole registration identifiers SHOULD match with the referenced Practitioner's registration identifiers in qualifications |
practitioner.resolve().qualification.identifier.where(type.coding.where(code = 'AHPRA').exists()).value.intersect(identifier.where(type.coding.where(code = 'AHPRA').exists()).value).exists() or practitioner.resolve().qualification.identifier.where(type.coding.where(code = 'PRN').exists()).value.intersect(identifier.where(type.coding.where(code = 'PRN').exists()).value).exists()
|
This structure is derived from AUCorePractitionerRole
Summary
Mandatory: 6 elements
Must-Support: 13 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Slices
This structure defines the following Slices:
Other representations of profile: CSV, Excel, Schematron
This IG defines and introduces several search parameters in addition to those inherited that make it easier to find and filter HC PractitionerRole resources in Health Connect implementations.
The following standard FHIR R4 search parameters are recommended for PractitionerRole searching:
identifier (PractitionerRole.identifier)GET /PractitionerRole?identifier=http://ns.electronichealth.net.au/id/medicare-provider-number|2426621BGET /PractitionerRole?identifier=http://hl7.org.au/id/ahpra-registration-number|MED0000932945GET /PractitionerRole?identifier=http://example.org/fhir/identifier/examplesystem|PRN-123456GET /PractitionerRole?identifier=PRN-123456The following search parameters are defined by this IG and SHOULD be supported:
languages (PractitionerRole.extension where url = HC practitioner role communication). Supports both :contains & :exact modifiers.:contains modifier for partial matching, :exact modifier for precise matching.Example: GET /PractitionerRole?languages=Italian
roletype (PractitionerRole.code.coding.display). Supports both :contains & :exact modifiers.GET /PractitionerRole?roletype=Medical%20pathologistallday (PractitionerRole.availableTime.allDay)GET /PractitionerRole?allday=trueExample (not all day): GET /PractitionerRole?allday=false
daysofweek (PractitionerRole.availableTime.daysOfWeek)GET /PractitionerRole?daysofweek=monGET /PractitionerRole?daysofweek=sat,sunAvailability (Start/End Time)
eq (=), ge (>=), gt (>), le (<=), lt (<), ne (!=). When no prefix is specified, eq is implied.Limitation: Combination in a query cannot guarantee the correct pairing of starttime and endtime from the same availableTime block. Use of daysofweek can help filter, but may still return mixed results when multiple blocks exist for a day. At an implementation layer further filtering may be needed to ensure correct pairing.
Note: Support for _id is mandatory for a responder and optional for a requester. Where the expectation for a search parameter differs between actors, the table below will reflect the stronger conformance requirement.
| Parameter(s) | Conformance | Type(s) | Requirements (when used alone or in combination) |
|---|---|---|---|
| _id | SHOULD | token |
|
| identifier | SHALL | token |
Requester Actors SHOULD support search using Medicare Provider Number or Ahpra number as defined in the profile. |
| roletype | SHOULD | string |
|
| languages | SHOULD | string |
|
| identifier+languages | SHOULD | token+string |
|
| allday | SHOULD | token |
Shared SearchParameter for availability across HealthcareService and PractitionerRole |
| daysofweek | SHOULD | token |
Shared SearchParameter for availability across HealthcareService and PractitionerRole |
| starttime | SHOULD | number |
Shared SearchParameter. Numeric HHMM format (e.g., 0800). |
| endtime | SHOULD | number |
Shared SearchParameter. Numeric HHMM format (e.g., 1700). |
| identifier+daysofweek | SHOULD | token+token |
|
| identifier+starttime | SHOULD | token+number |
|
| roletype+daysofweek | SHOULD | string+token |
|
| roletype+starttime | SHOULD | string+number |
|
| daysofweek+starttime+endtime | SHOULD | token+number+number |
This implementation supports the following _include parameters when searching for PractitionerRole resources:
_include=PractitionerRole:practitioner - Include Practitioner resources referenced by the practitioner element_include=PractitionerRole:healthcareService - Include HealthcareService resources referenced by the healthcareService element_include=PractitionerRole:organization - Include Organization resources referenced by the organization element_include=PractitionerRole:location - Include Location resources referenced by the location element_include=PractitionerRole:endpoint - Include Endpoint resources referenced by the endpoint elementThis implementation supports the following _revinclude parameters when searching for PractitionerRole resources:
_revinclude=Provenance:target - Include Provenance resources that track changes to this PractitionerRoleGET /PractitionerRole/101?_include=PractitionerRole:practitioner&_include=PractitionerRole:organization&_include=PractitionerRole:location
This query returns the PractitionerRole with the associated Practitioner, Organization, and Location details.