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 PractitionerRole

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

Extensions introduced in this profile:

Usage notes

Identifiers

Registration Identifiers (exactly one required for the role):

  • Ahpra Registration Number - The specific Ahpra registration credential relevant to this practitioner role
  • Professional Registration Number (PRN) - The specific professional registration credential relevant to this practitioner 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.

Preferred name in role context

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.

PractitionerRole code

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.

Guidance on PractitionerRole.specialty

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.

  • It SHOULD be ignored by Health Connect Provider Directory Requester Actors.
  • It SHALL NOT be populated by Health Connect Provider Directory Actors.

Data Integrity and Validation

This profile includes invariants to ensure data consistency and integrity between PractitionerRole and the referenced Practitioner resources.

Registration Identifier Matching

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:

  • If the PractitionerRole has an Ahpra registration identifier, it must match one of the referenced Practitioner's Ahpra registration identifiers.
  • If the PractitionerRole has a peak body registration identifier (PRN), it must match one of the referenced Practitioner's peak body registration identifiers.

Business Logic: This ensures referential integrity in provider directory implementations where:

  • A PractitionerRole represents a specific professional role.
  • The registration credentials for that role must be held by the actual Practitioner.
  • Prevents scenarios where role assignments reference incorrect or mismatched professional registrations.

Registration Identifier Requirements

The invariant inv-01-identifier-registration-required ensures that at least one of the Professional Registration Number identifier types are present, either:

  • an Ahpra registration number (AHPRA) OR
  • a non-Ahpra Peak Body Registration Number (PRN).

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

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. PractitionerRole 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
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:hc-practitioner-role-communication 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
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... extension:hc-preferred-name SO 0..1 HumanName Preferred name for this practitioner role
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-name
Constraints: ext-1
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
.... identifier:medicareProvider SOΣ 0..1 AUMedicareProviderNumber(6.0.0) Medicare provider number
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... identifier:peakbodyregistrationnumber 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
.... identifier:ahpraregistrationnumber SOΣ 0..1 AUAhpraRegistrationNumber(6.0.0) Ahpra Registration Number
... period SOΣ 1..1 Period The period during which the practitioner is active in this role.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... practitioner SOΣC 1..1 Reference(HC Practitioner(0.2.0-preview)) Practitioner in the role
Constraints: au-core-prarol-01
... organization 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.
... code SOΣ 1..1 CodeableConcept The primary role of the practitioner
Binding: Practitioner Role . (preferred)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... specialty SOΣ 0..* CodeableConcept Specific specialty of the practitioner
Binding: Clinical Specialty . (preferred)
... location 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.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... healthcareService SO 1..1 Reference(HC HealthcareService(0.2.0-preview)) Healthcare service at which this role is provided.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... telecom SOΣ 0..* ContactPoint Contact details for the practitioner in this role.
.... system SOΣC 0..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.
.... value SOΣ 0..1 string The actual contact point details
.... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.
... availableTime SO 0..* BackboneElement Times that the practitioner provides the healthcare service in this role at this location.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... daysOfWeek SO 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required): The days of the week.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... allDay SO 0..1 boolean Always available? e.g. 24 hour service
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... availableStartTime SO 0..1 time Opening time of day (ignored if allDay = true)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
..... 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)
Constraints: ext-1
.... availableEndTime SO 0..1 time Closing time of day (ignored if allDay = true)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
..... 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)
Constraints: ext-1
... endpoint SO 0..* Reference(HC Endpoint(0.2.0-preview)) Technical endpoints for this practitioner role.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor

doco 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.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.

Constraints

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. PractitionerRole C 0..* AUCorePractitionerRole(2.0.0-ballot) A person with formal responsibility in a role providing one or more services
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:hc-practitioner-role-communication 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)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... extension:hc-preferred-name SO 0..1 HumanName Preferred name for this practitioner role
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-name
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... Slices for identifier 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
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... identifier:medicareProvider O 0..1 AUMedicareProviderNumber(6.0.0) Medicare provider number
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... identifier:peakbodyregistrationnumber 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
.... identifier:ahpraregistrationnumber S 0..1 AUAhpraRegistrationNumber(6.0.0) Ahpra Registration Number
... period SO 1..1 Period The period during which the practitioner is active in this role.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... organization 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.
... code O 1..1 CodeableConcept The primary role of the practitioner
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... location 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.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... healthcareService SO 1..1 Reference(HC HealthcareService(0.2.0-preview)) Healthcare service at which this role is provided.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... telecom 0..* ContactPoint Contact details for the practitioner in this role.
... availableTime SO 0..* BackboneElement Times that the practitioner provides the healthcare service in this role at this location.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... daysOfWeek SO 0..* code mon | tue | wed | thu | fri | sat | sun
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... allDay SO 0..1 boolean Always available? e.g. 24 hour service
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... availableStartTime SO 0..1 time Opening time of day (ignored if allDay = true)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... availableEndTime SO 0..1 time Closing time of day (ignored if allDay = true)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... endpoint SO 0..* Reference(HC Endpoint(0.2.0-preview)) Technical endpoints for this practitioner role.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. PractitionerRole 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
... 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
... 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
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:hc-practitioner-role-communication 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
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... extension:hc-preferred-name SO 0..1 HumanName Preferred name for this practitioner role
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-name
Constraints: ext-1
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... Slices for identifier 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
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... identifier:medicareProvider SOΣ 0..1 AUMedicareProviderNumber(6.0.0) Medicare provider number
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... identifier:peakbodyregistrationnumber 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
.... identifier:ahpraregistrationnumber SOΣ 0..1 AUAhpraRegistrationNumber(6.0.0) Ahpra Registration Number
... active Σ 0..1 boolean Whether this practitioner role record is in active use
... period SOΣ 1..1 Period The period during which the practitioner is active in this role.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... practitioner SOΣC 1..1 Reference(HC Practitioner(0.2.0-preview)) Practitioner in the role
Constraints: au-core-prarol-01
... organization 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.
... code SOΣ 1..1 CodeableConcept The primary role of the practitioner
Binding: Practitioner Role . (preferred)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... specialty SOΣ 0..* CodeableConcept Specific specialty of the practitioner
Binding: Clinical Specialty . (preferred)
... location 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.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... healthcareService SO 1..1 Reference(HC HealthcareService(0.2.0-preview)) Healthcare service at which this role is provided.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... telecom SOΣ 0..* ContactPoint Contact details for the practitioner in this role.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
.... system SOΣC 0..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.
.... value SOΣ 0..1 string The actual contact point details
.... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.
.... rank Σ 0..1 positiveInt Specify preferred order of use (1 = highest)
.... period Σ 0..1 Period Time period when the contact point was/is in use
... availableTime SO 0..* BackboneElement Times that the practitioner provides the healthcare service in this role at this location.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... 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
.... daysOfWeek SO 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required): The days of the week.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... allDay SO 0..1 boolean Always available? e.g. 24 hour service
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... availableStartTime SO 0..1 time Opening time of day (ignored if allDay = true)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
..... id 0..1 string xml:id (or equivalent in JSON)
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
...... 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)
Constraints: ext-1
..... value 0..1 time Primitive value for time
.... availableEndTime SO 0..1 time Closing time of day (ignored if allDay = true)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
..... id 0..1 string xml:id (or equivalent in JSON)
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
...... 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)
Constraints: ext-1
..... 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
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... 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 SO 0..* Reference(HC Endpoint(0.2.0-preview)) Technical endpoints for this practitioner role.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor

doco 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.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.

Constraints

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()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. PractitionerRole 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
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:hc-practitioner-role-communication 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
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... extension:hc-preferred-name SO 0..1 HumanName Preferred name for this practitioner role
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-name
Constraints: ext-1
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
.... identifier:medicareProvider SOΣ 0..1 AUMedicareProviderNumber(6.0.0) Medicare provider number
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... identifier:peakbodyregistrationnumber 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
.... identifier:ahpraregistrationnumber SOΣ 0..1 AUAhpraRegistrationNumber(6.0.0) Ahpra Registration Number
... period SOΣ 1..1 Period The period during which the practitioner is active in this role.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... practitioner SOΣC 1..1 Reference(HC Practitioner(0.2.0-preview)) Practitioner in the role
Constraints: au-core-prarol-01
... organization 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.
... code SOΣ 1..1 CodeableConcept The primary role of the practitioner
Binding: Practitioner Role . (preferred)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... specialty SOΣ 0..* CodeableConcept Specific specialty of the practitioner
Binding: Clinical Specialty . (preferred)
... location 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.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... healthcareService SO 1..1 Reference(HC HealthcareService(0.2.0-preview)) Healthcare service at which this role is provided.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... telecom SOΣ 0..* ContactPoint Contact details for the practitioner in this role.
.... system SOΣC 0..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.
.... value SOΣ 0..1 string The actual contact point details
.... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.
... availableTime SO 0..* BackboneElement Times that the practitioner provides the healthcare service in this role at this location.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... daysOfWeek SO 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required): The days of the week.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... allDay SO 0..1 boolean Always available? e.g. 24 hour service
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... availableStartTime SO 0..1 time Opening time of day (ignored if allDay = true)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
..... 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)
Constraints: ext-1
.... availableEndTime SO 0..1 time Closing time of day (ignored if allDay = true)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
..... 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)
Constraints: ext-1
... endpoint SO 0..* Reference(HC Endpoint(0.2.0-preview)) Technical endpoints for this practitioner role.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor

doco 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.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.

Constraints

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. PractitionerRole C 0..* AUCorePractitionerRole(2.0.0-ballot) A person with formal responsibility in a role providing one or more services
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... extension:hc-practitioner-role-communication 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)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... extension:hc-preferred-name SO 0..1 HumanName Preferred name for this practitioner role
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-name
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... Slices for identifier 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
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... identifier:medicareProvider O 0..1 AUMedicareProviderNumber(6.0.0) Medicare provider number
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... identifier:peakbodyregistrationnumber 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
.... identifier:ahpraregistrationnumber S 0..1 AUAhpraRegistrationNumber(6.0.0) Ahpra Registration Number
... period SO 1..1 Period The period during which the practitioner is active in this role.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... organization 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.
... code O 1..1 CodeableConcept The primary role of the practitioner
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... location 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.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... healthcareService SO 1..1 Reference(HC HealthcareService(0.2.0-preview)) Healthcare service at which this role is provided.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... telecom 0..* ContactPoint Contact details for the practitioner in this role.
... availableTime SO 0..* BackboneElement Times that the practitioner provides the healthcare service in this role at this location.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... daysOfWeek SO 0..* code mon | tue | wed | thu | fri | sat | sun
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... allDay SO 0..1 boolean Always available? e.g. 24 hour service
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... availableStartTime SO 0..1 time Opening time of day (ignored if allDay = true)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... availableEndTime SO 0..1 time Closing time of day (ignored if allDay = true)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... endpoint SO 0..* Reference(HC Endpoint(0.2.0-preview)) Technical endpoints for this practitioner role.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. PractitionerRole 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
... 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
... 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
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
.... extension:hc-practitioner-role-communication 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
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... extension:hc-preferred-name SO 0..1 HumanName Preferred name for this practitioner role
URL: http://ns.electronichealth.net.au/hc/StructureDefinition/hc-preferred-name
Constraints: ext-1
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Constraints: ext-1
... Slices for identifier 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
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... identifier:medicareProvider SOΣ 0..1 AUMedicareProviderNumber(6.0.0) Medicare provider number
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... identifier:peakbodyregistrationnumber 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
.... identifier:ahpraregistrationnumber SOΣ 0..1 AUAhpraRegistrationNumber(6.0.0) Ahpra Registration Number
... active Σ 0..1 boolean Whether this practitioner role record is in active use
... period SOΣ 1..1 Period The period during which the practitioner is active in this role.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... practitioner SOΣC 1..1 Reference(HC Practitioner(0.2.0-preview)) Practitioner in the role
Constraints: au-core-prarol-01
... organization 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.
... code SOΣ 1..1 CodeableConcept The primary role of the practitioner
Binding: Practitioner Role . (preferred)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... specialty SOΣ 0..* CodeableConcept Specific specialty of the practitioner
Binding: Clinical Specialty . (preferred)
... location 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.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... healthcareService SO 1..1 Reference(HC HealthcareService(0.2.0-preview)) Healthcare service at which this role is provided.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
... telecom SOΣ 0..* ContactPoint Contact details for the practitioner in this role.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Constraints: ext-1
.... system SOΣC 0..1 code phone | fax | email | pager | url | sms | other
Binding: ContactPointSystem (required): Telecommunications form for contact point.
.... value SOΣ 0..1 string The actual contact point details
.... use ?!Σ 0..1 code home | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required): Use of contact point.
.... rank Σ 0..1 positiveInt Specify preferred order of use (1 = highest)
.... period Σ 0..1 Period Time period when the contact point was/is in use
... availableTime SO 0..* BackboneElement Times that the practitioner provides the healthcare service in this role at this location.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... 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
.... daysOfWeek SO 0..* code mon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required): The days of the week.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... allDay SO 0..1 boolean Always available? e.g. 24 hour service
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
.... availableStartTime SO 0..1 time Opening time of day (ignored if allDay = true)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
..... id 0..1 string xml:id (or equivalent in JSON)
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
...... 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)
Constraints: ext-1
..... value 0..1 time Primitive value for time
.... availableEndTime SO 0..1 time Closing time of day (ignored if allDay = true)
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor
..... id 0..1 string xml:id (or equivalent in JSON)
..... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Constraints: ext-1
...... 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)
Constraints: ext-1
..... 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
Constraints: ext-1
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
Constraints: ext-1
.... 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 SO 0..* Reference(HC Endpoint(0.2.0-preview)) Technical endpoints for this practitioner role.
ObligationsActor
SHALL:populate-if-known Health Connect Provider Directory Responder Actor
SHOULD:handle Health Connect Provider Directory Requester Actor

doco 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.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.

Constraints

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()

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Search parameters

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.

Search parameters defined in FHIR R4

The following standard FHIR R4 search parameters are recommended for PractitionerRole searching:

  • identifier (PractitionerRole.identifier)
  • This search parameter supports searching by any identifier including:
  • Medicare Provider Number (system defined in AU Base)
  • Ahpra Registration Number (system defined in AU Base)
  • Professional Registration Number (PRN) (peak body identifiers)
  • How search queries can be performed using Medicare Provider Number or Ahpra identifier are described in AU Core.
  • This search parameter supports the following query use cases where:
  • A peakbodyregistrationnumber OR Ahpra number value is supplied with or without an accompanying system. note that when a system is not supplied this may result in duplicate value matches, originating from multiple different issuing organizations.
  • Examples:
  • Medicare Provider Number: GET /PractitionerRole?identifier=http://ns.electronichealth.net.au/id/medicare-provider-number|2426621B
  • Ahpra Registration Number: GET /PractitionerRole?identifier=http://hl7.org.au/id/ahpra-registration-number|MED0000932945
  • PRN (with system): GET /PractitionerRole?identifier=http://example.org/fhir/identifier/examplesystem|PRN-123456
  • PRN (without system): GET /PractitionerRole?identifier=PRN-123456

Search parameters defined in this IG

The 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.
  • Find practitioner roles by the languages spoken by the practitioner in this role, stored in the HC communication extension. This is a shared SearchParameter that works across both HealthcareService and PractitionerRole resources.
  • Supports :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.
  • Search for PractitionerRoles by their role type display name (for example, "Medical pathologist"). Uses string matching for display text.
  • Example: GET /PractitionerRole?roletype=Medical%20pathologist
Availability
  • allday (PractitionerRole.availableTime.allDay)
  • Search for practitioner roles that are available all day, i.e. 24 hours. This shared SearchParameter works for both HealthcareService and PractitionerRole resources.
  • Example (all day): GET /PractitionerRole?allday=true
  • Example (not all day): GET /PractitionerRole?allday=false

  • daysofweek (PractitionerRole.availableTime.daysOfWeek)
  • Search for practitioner roles by days of the week they are available. This shared SearchParameter works for both HealthcareService and PractitionerRole resources.
  • Example (Monday): GET /PractitionerRole?daysofweek=mon
  • Example (weekend): GET /PractitionerRole?daysofweek=sat,sun

Availability (Start/End Time)

  • Shared parameters: starttime and endtime work for both HealthcareService and PractitionerRole.
  • Format: Numeric HHMM (e.g., 0800 for 8:00 AM, 1730 for 5:30 PM). Do not include colons in queries.
  • Matching: Numeric comparisons with prefix operators.
  • Prefix operators: eq (=), ge (>=), gt (>), le (<=), lt (<), ne (!=). When no prefix is specified, eq is implied.
  • Examples:
  • Exact start: GET /PractitionerRole?starttime=0900
  • Starts before 10 AM: GET /PractitionerRole?starttime=lt1000
  • Exact end: GET /PractitionerRole?endtime=1700
  • Ends after 6 PM: GET /PractitionerRole?endtime=gt1800

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

Search include parameters

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 element

Search reverse include parameters

This implementation supports the following _revinclude parameters when searching for PractitionerRole resources:

  • _revinclude=Provenance:target - Include Provenance resources that track changes to this PractitionerRole

Example usage

GET /PractitionerRole/101?_include=PractitionerRole:practitioner&_include=PractitionerRole:organization&_include=PractitionerRole:location

This query returns the PractitionerRole with the associated Practitioner, Organization, and Location details.