This page is part of the FHIR Specification (v5.0.0-ballot: FHIR R5 Ballot Preview). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3
Patient Administration Work Group | Maturity Level: 2 | Trial Use | Security Category: Individual | Compartments: Practitioner |
A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.
The PractitionerRole describes the types of services that practitioners provide for an organization at specific location(s).
The PractitionerRole resource can be used in multiple contexts including:
The role, specialty, Location telecom and HealthcareService properties can be repeated if required in other instances
of the PractitionerRole. Some systems record a collection of service values for a single location, others record the
single service and the list of locations it is available. Both are acceptable options for representing this data.
Where availability, telecom, or other details are not the same across all healthcareservices, or locations
a separate PractitionerRole instance should be created.
Many resource types have a choice of a reference to either a Practitioner resource or a PractitionerRole resource. The latter
provides organizational context for the practitioners participation when it is required, otherwise a direct reference to the
practitioner may be used.
Many implementations may choose to profile the PractitionerRole to a single location/role/healthcareservice for their specific usage.
As the property that references a PractitionerRole typically has a specific context, the code on the PractitionerRole having duplicate code values is not a big concern (and is used for discovery where required).
e.g. These references are all very context specific: Patient.GeneralPractitioner, CarePlan.reported, CarePlan.contributor, Appointment.participant (through the participant.role), Immunization.informationSource, Immunization.performer (through the performer.function property)
For use cases where an organization has activities where a practitioner is not defined/pre-allocated for a specific role (e.g. an un-named surgeon at XYZ Hospital), a PractitionerRole resource can be used with an empty Practitioner property, and the other relevant role properties populated - i.e. code, organization.
Qualifications (from the Practitioner resource) do not imply a Role, but might be considered when an Organization allocates practitioners to roles within their organization, and could provide useful information (such as expiry information) which could need to be tracked in some situations to ensure they continue to be eligible for a specific role.
The CareTeam resource is also often used to provide details of a role that a practitioner is allocated to perform, but is usually scoped to a much finer granularity of care, and often within the specific context of a Patient, or functional role (e.g. Crisis planning team). In contrast the PractitionerRole is used in a more general sense to cover all the places that the practitioner is allocated to work (and specific details relevant to that role - such as a specific contact number, or electronic services endpoint).
When referencing a practitioner from clinical (or other) content where the organization and role are important to the context of the reference to the practitioner, then a reference to the PractitionerRole should be used.
Practitioner performs different roles within the same or even different organizations. Depending on jurisdiction and custom, it may be necessary to maintain a specific Practitioner Resource for each such role or have a single Practitioner with multiple roles. The role can be limited to a specific period, after which authorization for this role ends. Note that the represented organization need not necessarily be the (direct) employer of a Practitioner.
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
PractitionerRole | TU | DomainResource | Roles/organizations the practitioner is associated with Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
identifier | Σ | 0..* | Identifier | Business Identifiers that are specific to a role/location |
active | Σ | 0..1 | boolean | Whether this practitioner role record is in active use |
period | Σ | 0..1 | Period | The period during which the practitioner is authorized to perform in these role(s) |
practitioner | Σ | 0..1 | Reference(Practitioner) | Practitioner that is able to provide the defined services for the organization |
organization | Σ | 0..1 | Reference(Organization) | Organization where the roles are available |
code | Σ | 0..* | CodeableConcept | Roles which this practitioner may perform PractitionerRole (Example) |
specialty | Σ | 0..* | CodeableConcept | Specific specialty of the practitioner Practice Setting Code Value Set (Preferred) |
location | Σ | 0..* | Reference(Location) | The location(s) at which this practitioner provides care |
healthcareService | 0..* | Reference(HealthcareService) | The list of healthcare services that this worker provides for this role's Organization/Location(s) | |
contact | 0..* | ExtendedContactDetail | Official contact details relating to this PractitionerRole | |
availability | 0..* | Availability | Times the Practitioner is available at this location and/or healthcare service (including exceptions) | |
endpoint | 0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the practitioner with this role | |
Documentation for this format |
See the Extensions for this resource
UML Diagram (Legend)
XML Template
<PractitionerRole xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Business Identifiers that are specific to a role/location --></identifier> <active value="[boolean]"/><!-- 0..1 Whether this practitioner role record is in active use --> <period><!-- 0..1 Period The period during which the practitioner is authorized to perform in these role(s) --></period> <practitioner><!-- 0..1 Reference(Practitioner) Practitioner that is able to provide the defined services for the organization --></practitioner> <organization><!-- 0..1 Reference(Organization) Organization where the roles are available --></organization> <code><!-- 0..* CodeableConcept Roles which this practitioner may perform --></code> <specialty><!-- 0..* CodeableConcept Specific specialty of the practitioner --></specialty> <location><!-- 0..* Reference(Location) The location(s) at which this practitioner provides care --></location> <healthcareService><!-- 0..* Reference(HealthcareService) The list of healthcare services that this worker provides for this role's Organization/Location(s) --></healthcareService> <contact><!-- 0..* ExtendedContactDetail Official contact details relating to this PractitionerRole --></contact> <availability><!-- 0..* Availability Times the Practitioner is available at this location and/or healthcare service (including exceptions) --></availability> <endpoint><!-- 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the practitioner with this role --></endpoint> </PractitionerRole>
JSON Template
{ "resourceType" : "PractitionerRole", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // Business Identifiers that are specific to a role/location "active" : <boolean>, // Whether this practitioner role record is in active use "period" : { Period }, // The period during which the practitioner is authorized to perform in these role(s) "practitioner" : { Reference(Practitioner) }, // Practitioner that is able to provide the defined services for the organization "organization" : { Reference(Organization) }, // Organization where the roles are available "code" : [{ CodeableConcept }], // Roles which this practitioner may perform "specialty" : [{ CodeableConcept }], // Specific specialty of the practitioner "location" : [{ Reference(Location) }], // The location(s) at which this practitioner provides care "healthcareService" : [{ Reference(HealthcareService) }], // The list of healthcare services that this worker provides for this role's Organization/Location(s) "contact" : [{ ExtendedContactDetail }], // Official contact details relating to this PractitionerRole "availability" : [{ Availability }], // Times the Practitioner is available at this location and/or healthcare service (including exceptions) "endpoint" : [{ Reference(Endpoint) }] // Technical endpoints providing access to services operated for the practitioner with this role }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:PractitionerRole; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:PractitionerRole.identifier [ Identifier ], ... ; # 0..* Business Identifiers that are specific to a role/location fhir:PractitionerRole.active [ boolean ]; # 0..1 Whether this practitioner role record is in active use fhir:PractitionerRole.period [ Period ]; # 0..1 The period during which the practitioner is authorized to perform in these role(s) fhir:PractitionerRole.practitioner [ Reference(Practitioner) ]; # 0..1 Practitioner that is able to provide the defined services for the organization fhir:PractitionerRole.organization [ Reference(Organization) ]; # 0..1 Organization where the roles are available fhir:PractitionerRole.code [ CodeableConcept ], ... ; # 0..* Roles which this practitioner may perform fhir:PractitionerRole.specialty [ CodeableConcept ], ... ; # 0..* Specific specialty of the practitioner fhir:PractitionerRole.location [ Reference(Location) ], ... ; # 0..* The location(s) at which this practitioner provides care fhir:PractitionerRole.healthcareService [ Reference(HealthcareService) ], ... ; # 0..* The list of healthcare services that this worker provides for this role's Organization/Location(s) fhir:PractitionerRole.contact [ ExtendedContactDetail ], ... ; # 0..* Official contact details relating to this PractitionerRole fhir:PractitionerRole.availability [ Availability ], ... ; # 0..* Times the Practitioner is available at this location and/or healthcare service (including exceptions) fhir:PractitionerRole.endpoint [ Reference(Endpoint) ], ... ; # 0..* Technical endpoints providing access to services operated for the practitioner with this role ]
Changes since R4
PractitionerRole | |
PractitionerRole.contact |
|
PractitionerRole.availability |
|
PractitionerRole.telecom |
|
PractitionerRole.availableTime |
|
PractitionerRole.notAvailable |
|
PractitionerRole.availabilityExceptions |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R3 <--> R4 Conversion Maps (status = 1 test that all execute ok. All tests pass round-trip testing and all r3 resources are valid.)
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
PractitionerRole | TU | DomainResource | Roles/organizations the practitioner is associated with Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
identifier | Σ | 0..* | Identifier | Business Identifiers that are specific to a role/location |
active | Σ | 0..1 | boolean | Whether this practitioner role record is in active use |
period | Σ | 0..1 | Period | The period during which the practitioner is authorized to perform in these role(s) |
practitioner | Σ | 0..1 | Reference(Practitioner) | Practitioner that is able to provide the defined services for the organization |
organization | Σ | 0..1 | Reference(Organization) | Organization where the roles are available |
code | Σ | 0..* | CodeableConcept | Roles which this practitioner may perform PractitionerRole (Example) |
specialty | Σ | 0..* | CodeableConcept | Specific specialty of the practitioner Practice Setting Code Value Set (Preferred) |
location | Σ | 0..* | Reference(Location) | The location(s) at which this practitioner provides care |
healthcareService | 0..* | Reference(HealthcareService) | The list of healthcare services that this worker provides for this role's Organization/Location(s) | |
contact | 0..* | ExtendedContactDetail | Official contact details relating to this PractitionerRole | |
availability | 0..* | Availability | Times the Practitioner is available at this location and/or healthcare service (including exceptions) | |
endpoint | 0..* | Reference(Endpoint) | Technical endpoints providing access to services operated for the practitioner with this role | |
Documentation for this format |
See the Extensions for this resource
XML Template
<PractitionerRole xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Business Identifiers that are specific to a role/location --></identifier> <active value="[boolean]"/><!-- 0..1 Whether this practitioner role record is in active use --> <period><!-- 0..1 Period The period during which the practitioner is authorized to perform in these role(s) --></period> <practitioner><!-- 0..1 Reference(Practitioner) Practitioner that is able to provide the defined services for the organization --></practitioner> <organization><!-- 0..1 Reference(Organization) Organization where the roles are available --></organization> <code><!-- 0..* CodeableConcept Roles which this practitioner may perform --></code> <specialty><!-- 0..* CodeableConcept Specific specialty of the practitioner --></specialty> <location><!-- 0..* Reference(Location) The location(s) at which this practitioner provides care --></location> <healthcareService><!-- 0..* Reference(HealthcareService) The list of healthcare services that this worker provides for this role's Organization/Location(s) --></healthcareService> <contact><!-- 0..* ExtendedContactDetail Official contact details relating to this PractitionerRole --></contact> <availability><!-- 0..* Availability Times the Practitioner is available at this location and/or healthcare service (including exceptions) --></availability> <endpoint><!-- 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the practitioner with this role --></endpoint> </PractitionerRole>
JSON Template
{ "resourceType" : "PractitionerRole", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // Business Identifiers that are specific to a role/location "active" : <boolean>, // Whether this practitioner role record is in active use "period" : { Period }, // The period during which the practitioner is authorized to perform in these role(s) "practitioner" : { Reference(Practitioner) }, // Practitioner that is able to provide the defined services for the organization "organization" : { Reference(Organization) }, // Organization where the roles are available "code" : [{ CodeableConcept }], // Roles which this practitioner may perform "specialty" : [{ CodeableConcept }], // Specific specialty of the practitioner "location" : [{ Reference(Location) }], // The location(s) at which this practitioner provides care "healthcareService" : [{ Reference(HealthcareService) }], // The list of healthcare services that this worker provides for this role's Organization/Location(s) "contact" : [{ ExtendedContactDetail }], // Official contact details relating to this PractitionerRole "availability" : [{ Availability }], // Times the Practitioner is available at this location and/or healthcare service (including exceptions) "endpoint" : [{ Reference(Endpoint) }] // Technical endpoints providing access to services operated for the practitioner with this role }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:PractitionerRole; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:PractitionerRole.identifier [ Identifier ], ... ; # 0..* Business Identifiers that are specific to a role/location fhir:PractitionerRole.active [ boolean ]; # 0..1 Whether this practitioner role record is in active use fhir:PractitionerRole.period [ Period ]; # 0..1 The period during which the practitioner is authorized to perform in these role(s) fhir:PractitionerRole.practitioner [ Reference(Practitioner) ]; # 0..1 Practitioner that is able to provide the defined services for the organization fhir:PractitionerRole.organization [ Reference(Organization) ]; # 0..1 Organization where the roles are available fhir:PractitionerRole.code [ CodeableConcept ], ... ; # 0..* Roles which this practitioner may perform fhir:PractitionerRole.specialty [ CodeableConcept ], ... ; # 0..* Specific specialty of the practitioner fhir:PractitionerRole.location [ Reference(Location) ], ... ; # 0..* The location(s) at which this practitioner provides care fhir:PractitionerRole.healthcareService [ Reference(HealthcareService) ], ... ; # 0..* The list of healthcare services that this worker provides for this role's Organization/Location(s) fhir:PractitionerRole.contact [ ExtendedContactDetail ], ... ; # 0..* Official contact details relating to this PractitionerRole fhir:PractitionerRole.availability [ Availability ], ... ; # 0..* Times the Practitioner is available at this location and/or healthcare service (including exceptions) fhir:PractitionerRole.endpoint [ Reference(Endpoint) ], ... ; # 0..* Technical endpoints providing access to services operated for the practitioner with this role ]
Changes since Release 4
PractitionerRole | |
PractitionerRole.contact |
|
PractitionerRole.availability |
|
PractitionerRole.telecom |
|
PractitionerRole.availableTime |
|
PractitionerRole.notAvailable |
|
PractitionerRole.availabilityExceptions |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R3 <--> R4 Conversion Maps (status = 1 test that all execute ok. All tests pass round-trip testing and all r3 resources are valid.)
Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis
Path | Definition | Type | Reference |
---|---|---|---|
PractitionerRole.code | This example value set defines a set of codes that can be used to indicate the role of a Practitioner. | Example | PractitionerRole |
PractitionerRole.specialty | This is the code representing the clinical specialty of the clinician or provider who interacted with, treated, or provided a service to/for the patient. The value set used for clinical specialty has been limited by HITSP to the value set reproduced from HITSP C80 Table 2-149 Clinical Specialty Value Set Definition. | Preferred | PracticeSettingCodeValueSet |
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Expression | In Common |
active N | token | Whether this practitioner role record is in active use | PractitionerRole.active | |
date | date | The period during which the practitioner is authorized to perform in these role(s) | PractitionerRole.period | |
token | A value in an email contact | PractitionerRole.contact.telecom.where(system='email') | ||
endpoint | reference | Technical endpoints providing access to services operated for the practitioner with this role | PractitionerRole.endpoint (Endpoint) | |
identifier | token | A practitioner's Identifier | PractitionerRole.identifier | |
location | reference | One of the locations at which this practitioner provides care | PractitionerRole.location (Location) | |
organization | reference | The identity of the organization the practitioner represents / acts on behalf of | PractitionerRole.organization (Organization) | |
phone | token | A value in a phone contact | PractitionerRole.contact.telecom.where(system='phone') | |
practitioner | reference | Practitioner that is able to provide the defined services for the organization | PractitionerRole.practitioner (Practitioner) | |
role | token | The practitioner can perform this role at for the organization | PractitionerRole.code | |
service | reference | The list of healthcare services that this worker provides for this role's Organization/Location(s) | PractitionerRole.healthcareService (HealthcareService) | |
specialty | token | The practitioner has this specialty at an organization | PractitionerRole.specialty | |
telecom | token | The value in any kind of contact | PractitionerRole.contact.telecom |