PractitionerRole
Introduction
[%stu-note dstu%] The display property has been added as a denormalized representation of the various core properties of this resource. The expected usage would be for easily populating the display field in references to this resource. We request feedback on whether implementers have a need for this property and if that need aligns with the proposed element definition.
Feedback is welcome here. [%end-note%]
Scope and Usage
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:
- Provider Registries where it indicates what a practitioner can perform for an organization (may indicate multiple healthcareservices, locations, and roles)
- In a Clinical system where it indicates the role, healthcareservice and location details associated with a practitioner that are applicable to the healthcare event (e.g. Observation, Appointment, Condition, CarePlan)
- In a Clinical system as a point of reference rather than an event, such as a patient's preferred general practitioner (at a specific clinic)
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.
Boundaries and Relationships
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.
Background and Context
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.
Notes
Notes
- There is no address on the PractitionerRole as the location that is defined here contains the address.
This prevents having to duplicate the address values across multiple resources. - As briefly noted in the boundaries and relationships section the PractitionerRole resource can be used to represent multiple locations in the one resource instance, however this should be done with care. When representing multiple locations in an instance, and/or multiple specialties, all details apply to all locations. Using that approach you cannot differentiate a different contact number, different availabilities, or different services at each location.
Hence maintaining these records needs to ensure that when changing a value, such as availability, it applies to all locations. If different values are required for the different locations, then a new instance will need to be created, and then split as appropriate. Existing resources referencing the original PractitionerRole instance will need to be updated to refer to the appropriate record.
For this reason we expect that it will be common to profile the location element down to a single location, simplifying overall usage, and the availabilities are clear that they apply to this location, and any referenced healthcare services.
StructureDefinition
Elements (Simplified)
- PractitionerRole [0..*]: - Roles/organizations the practitioner is associated with
- PractitionerRole.identifier [0..*]: Identifier Identifiers for a role/location
- PractitionerRole.active [0..1]: boolean Whether this practitioner role record is in active use
- PractitionerRole.period [0..1]: Period The period during which the practitioner is authorized to perform in these role(s)
- PractitionerRole.practitioner [0..1]: Reference(Practitioner) Practitioner that provides services for the organization
- PractitionerRole.organization [0..1]: Reference(Organization) Organization where the role is available
- PractitionerRole.network [0..*]: Reference(Organization) The network in which the PractitionerRole provides the role's services (if defined) at the indicated locations (if defined)
- PractitionerRole.code [0..*]: CodeableConcept example:practitioner-role Roles which this practitioner may perform
- PractitionerRole.display [0..1]: string Denormalized practitioner name, role, organization and location
- PractitionerRole.specialty [0..*]: CodeableConcept example:c80-practice-codes Specific specialty of the practitioner
- PractitionerRole.location [0..*]: Reference(Location) Location(s) where the practitioner provides care
- PractitionerRole.healthcareService [0..*]: Reference(HealthcareService) Healthcare services provided for this role's Organization/Location(s)
- PractitionerRole.contact [0..*]: ExtendedContactDetail Official contact details relating to this PractitionerRole
- PractitionerRole.characteristic [0..*]: CodeableConcept example:service-mode Collection of characteristics (attributes)
- PractitionerRole.communication [0..*]: CodeableConcept required:all-languages A language the practitioner (in this role) can use in patient communication
- PractitionerRole.availability [0..1]: Availability Times the Practitioner is available at this location and/or healthcare service (including exceptions)
- PractitionerRole.endpoint [0..*]: Reference(Endpoint) Endpoints for interacting with the practitioner in this role
Mappings
- PractitionerRole Mappings — 36 mapping entries
Implementation Guide
implementationguide-PractitionerRole-core.xml
<?xml version="1.0" encoding="UTF-8"?>
<ImplementationGuide xmlns="http://hl7.org/fhir">
<id value="PractitionerRole-core"/>
<version value="0.01"/>
<name value="PractitionerRoleHL7Extensions"/>
<title value="Practitioner Role H L7 Extensions"/>
<status value="draft"/>
<date value="1970-01-01T10:00:00+10:00"/>
<publisher value="HL7"/>
<description value="Defines common extensions used with or related to the PractitionerRole resource"/>
</ImplementationGuide>
Resource Packs
list-PractitionerRole-packs.xml
<?xml version="1.0" encoding="UTF-8"?>
<List xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../publish/List.xsd">
<id value="PractitionerRole-packs"/>
<status value="current"/>
<mode value="working"/>
<entry>
<item>
<reference value="ImplementationGuide/PractitionerRole-core"/>
</item>
</entry>
</List>
Search Parameters
- active — token — Whether this practitioner role record is in active use —
PractitionerRole.active - characteristic — token — One of the PractitionerRole's characteristics —
PractitionerRole.characteristic - date — date — The period during which the practitioner is authorized to perform in these role(s) —
PractitionerRole.period - email — 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 - identifier — token — A practitioner's Identifier —
PractitionerRole.identifier - location — reference — One of the locations at which this practitioner provides care —
PractitionerRole.location - organization — reference — The identity of the organization the practitioner represents / acts on behalf of —
PractitionerRole.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 - 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 - specialty — token — The practitioner has this specialty at an organization —
PractitionerRole.specialty - telecom — token — The value in any kind of contact —
PractitionerRole.contact.telecom - communication — token — One of the languages that the practitioner can communicate with —
PractitionerRole.communication - network — reference — Health insurance provider network in which the PractitionerRole provides the role's services (if defined) at the indicated locations (if defined) —
PractitionerRole.network
Examples
- 3ad0687e-f477-468c-afd5-fcc2bf897808 — practitionerrole-examples-general — HL7 Defined Practitioner Role examples
- example — practitionerrole-example — Dr Adam Careful's role at the Acme Hospital
- practitionerrole-example — practitionerrole-example
- practitionerrole-examples-general — practitionerrole-examples-general
- practitionerrole-examples-header — practitionerrole-examples-header
Mapping Exceptions
practitionerrole-fivews-mapping-exceptions.xml
Divergent Elements
- FiveWs.status → PractitionerRole.active
Unmapped Elements
- FiveWs.what — Unknown
- FiveWs.recorded — Unknown
- FiveWs.author — Unknown
- FiveWs.actor — Unknown
- FiveWs.cause — Unknown
- FiveWs.version — Unknown
- FiveWs.witness — Unknown
- FiveWs.class — Unknown
- FiveWs.context — Unknown
- FiveWs.init — Unknown
- FiveWs.why — Unknown
- FiveWs.source — Unknown
- FiveWs.who — Unknown
- FiveWs.grade — Unknown
- FiveWs.planned — Unknown
- FiveWs.subject — Unknown
practitionerrole-participant-mapping-exceptions.xml
Divergent Elements
- Participant.identifier → PractitionerRole.identifier
- shortUnmatched | reason=Unknown | pattern=Business Identifier for practitioner role | resource=Identifiers for a role/location
- definitionUnmatched | reason=Unknown | pattern=Business identifiers assigned to this practitioner role by one of the applications involved. These identifiers remain constant as the resource is updated and propagates from server to server. | resource=Business Identifiers that are specific to a role/location.
- commentsUnmatched | reason=Unknown | pattern=Note: This is a business identifier, not a resource identifier (see discussion). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and a Person resource instance might share the same social insurance number. | resource=A specific identifier value (e.g. Minnesota Registration ID) may appear on multiple PractitionerRole instances which could be for different periods, or different Roles (or other reasons). A specific identifier may be included multiple times in the same PractitionerRole instance with different identifier validity periods.
- requirementsUnmatched | reason=Unknown | pattern=Allows identification of the practitioner role as it is known by various participating systems and in a way that remains consistent across servers. | resource=Often, specific identities are assigned for the agent.
- Participant.active → PractitionerRole.active
- shortUnmatched | reason=Unknown | pattern=Whether the practitioner role is currently active | resource=Whether this practitioner role record is in active use
- Participant.name → PractitionerRole.code
- missingTypes | reason=Unknown | pattern=string
- extraTypes | reason=Unknown
- shortUnmatched | reason=Unknown | pattern=A name for the practitioner role | resource=Roles which this practitioner may perform
- definitionUnmatched | reason=Unknown | pattern=Description of the practitioner role as presented to a consumer while searching. | resource=Roles which this practitioner is authorized to perform for the organization.