STU3 Candidate

This page is part of the FHIR Specification (v1.8.0: STU 3 Draft). 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

8.5 Resource PractitionerRole - Content

Patient Administration Work Group Maturity Level : 0 Compartments : Practitioner

A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time.

PractitionerRole covers the recording of the location and types of services that Practitioners are able to provide for an organization.

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 prepresenting this data.

STU Note: The Role BackboneElement on the Practitioner is to be deprecated if this resource is accepted.

The Qualifications are not a part of the PractitionerRole, as they may be appropriate for the role, however they are a property of the Practitioner, not the role they may perform for an Organization.

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 doco
. . PractitionerRole DomainResource Roles/organizations the practitioner is associated with
. . . identifier Σ 0..* Identifier Business Identifiers that are specific to a role/location
. . . active Σ 0..1 boolean Whether this practitioner's record is in active use
. . . practitioner Σ 0..1 Reference ( Practitioner ) Practitioner that is able to provide the defined services for the organation
. . . 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)
. . . telecom Σ 0..* ContactPoint Contact details that are specific to the role/location/service
. . . period Σ 0..1 Period The period during which the practitioner is authorized to perform in these role(s)
. . . availableTime 0..* BackboneElement Times the Service Site is available
. . . . daysOfWeek 0..* code mon | tue | wed | thu | fri | sat | sun
DaysOfWeek ( Required )
. . . . allDay 0..1 boolean Always available? e.g. 24 hour service
. . . . availableStartTime 0..1 time Opening time of day (ignored if allDay = true)
. . . . availableEndTime 0..1 time Closing time of day (ignored if allDay = true)
. . . notAvailable 0..* BackboneElement Not available during this time due to provided reason
. . . . description 1..1 string Reason presented to the user explaining why time not available
. . . . during 0..1 Period Service not availablefrom this date
. . . availabilityExceptions 0..1 string Description of availability exceptions
. . . endpoint 0..* Reference ( Endpoint ) Technical endpoints providing access to services operated for the practitioner with this role

doco Documentation for this format

UML Diagram ( Legend )

PractitionerRole ( DomainResource ) Business Identifiers that are specific to a role/location identifier : Identifier [0..*] Whether this practitioner's record is in active use active : boolean [0..1] Practitioner that is able to provide the defined services for the organation practitioner : Reference [0..1] « Practitioner » The organization where the Practitioner performs the roles associated organization : Reference [0..1] « Organization » Roles which this practitioner is authorized to perform for the organization code : CodeableConcept [0..*] « The role a person plays representing an organization (Strength=Example) PractitionerRole ?? » Specific specialty of the practitioner specialty : CodeableConcept [0..*] « Specific specialty associated with the agency (Strength=Preferred) Practice Setting Code Value S... ? » The location(s) at which this practitioner provides care location : Reference [0..*] « Location » The list of healthcare services that this worker provides for this role's Organization/Location(s) healthcareService : Reference [0..*] « HealthcareService » Contact details that are specific to the role/location/service telecom : ContactPoint [0..*] The period during which the person is authorized to act as a practitioner in these role(s) for the organization period : Period [0..1] A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times availabilityExceptions : string [0..1] Technical endpoints providing access to services operated for the practitioner with this role endpoint : Reference [0..*] « Endpoint » AvailableTime Indicates which days of the week are available between the start and end Times daysOfWeek : code [0..*] « The days of the week. (Strength=Required) DaysOfWeek ! » Is this always available? (hence times are irrelevant) e.g. 24 hour service allDay : boolean [0..1] The opening time of day. Note: If the AllDay flag is set, then this time is ignored availableStartTime : time [0..1] The closing time of day. Note: If the AllDay flag is set, then this time is ignored availableEndTime : time [0..1] NotAvailable The reason that can be presented to the user as to why this time is not available description : string [1..1] Service is not available (seasonally or for a public holiday) from this date during : Period [0..1] A collection of times that the Service Site is available availableTime [0..*] The HealthcareService is not available during this period of time due to the provided reason notAvailable [0..*]

XML Template

<PractitionerRole xmlns="http://hl7.org/fhir"> doco
 <!-- 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's record is in active use -->
 <practitioner><!-- 0..1 Reference(Practitioner) Practitioner that is able to provide the defined services for the organation --></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>
 <telecom><!-- 0..* ContactPoint Contact details that are specific to the role/location/service --></telecom>
 <period><!-- 0..1 Period The period during which the practitioner is authorized to perform in these role(s) --></period>
 <availableTime>  <!-- 0..* Times the Service Site is available -->
  <daysOfWeek value="[code]"/><!-- 0..* mon | tue | wed | thu | fri | sat | sun -->
  <allDay value="[boolean]"/><!-- 0..1 Always available? e.g. 24 hour service -->
  <availableStartTime value="[time]"/><!-- 0..1 Opening time of day (ignored if allDay = true) -->
  <availableEndTime value="[time]"/><!-- 0..1 Closing time of day (ignored if allDay = true) -->
 </availableTime>
 <notAvailable>  <!-- 0..* Not available during this time due to provided reason -->
  <description value="[string]"/><!-- 1..1 Reason presented to the user explaining why time not available -->
  <during><!-- 0..1 Period Service not availablefrom this date --></during>
 </notAvailable>
 <availabilityExceptions value="[string]"/><!-- 0..1 Description of availability exceptions -->
 <endpoint><!-- 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the practitioner with this role --></endpoint>
</PractitionerRole>

JSON Template

{doco
  "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's record is in active use
  "practitioner" : { Reference(Practitioner) }, // Practitioner that is able to provide the defined services for the organation
  "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)
  "telecom" : [{ ContactPoint }], // Contact details that are specific to the role/location/service
  "period" : { Period }, // The period during which the practitioner is authorized to perform in these role(s)
  "availableTime" : [{ // Times the Service Site is available
    "daysOfWeek" : ["<code>"], // mon | tue | wed | thu | fri | sat | sun
    "allDay" : <boolean>, // Always available? e.g. 24 hour service
    "availableStartTime" : "<time>", // Opening time of day (ignored if allDay = true)
    "availableEndTime" : "<time>" // Closing time of day (ignored if allDay = true)
  }],
  "notAvailable" : [{ // Not available during this time due to provided reason
    "description" : "<string>", // R!  Reason presented to the user explaining why time not available
    "during" : { Period } // Service not availablefrom this date
  }],
  "availabilityExceptions" : "<string>", // Description of availability 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/> .doco


[ 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's record is in active use
  fhir:PractitionerRole.practitioner [ Reference(Practitioner) ]; # 0..1 Practitioner that is able to provide the defined services for the organation
  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.telecom [ ContactPoint ], ... ; # 0..* Contact details that are specific to the role/location/service
  fhir:PractitionerRole.period [ Period ]; # 0..1 The period during which the practitioner is authorized to perform in these role(s)
  fhir:PractitionerRole.availableTime [ # 0..* Times the Service Site is available
    fhir:PractitionerRole.availableTime.daysOfWeek [ code ], ... ; # 0..* mon | tue | wed | thu | fri | sat | sun
    fhir:PractitionerRole.availableTime.allDay [ boolean ]; # 0..1 Always available? e.g. 24 hour service
    fhir:PractitionerRole.availableTime.availableStartTime [ time ]; # 0..1 Opening time of day (ignored if allDay = true)
    fhir:PractitionerRole.availableTime.availableEndTime [ time ]; # 0..1 Closing time of day (ignored if allDay = true)
  ], ...;
  fhir:PractitionerRole.notAvailable [ # 0..* Not available during this time due to provided reason
    fhir:PractitionerRole.notAvailable.description [ string ]; # 1..1 Reason presented to the user explaining why time not available
    fhir:PractitionerRole.notAvailable.during [ Period ]; # 0..1 Service not availablefrom this date
  ], ...;
  fhir:PractitionerRole.availabilityExceptions [ string ]; # 0..1 Description of availability exceptions
  fhir:PractitionerRole.endpoint [ Reference(Endpoint) ], ... ; # 0..* Technical endpoints providing access to services operated for the practitioner with this role
]

Changes since DSTU2

This resource did not exist in Release 2

Structure

Name Flags Card. Type Description & Constraints doco
. . PractitionerRole DomainResource Roles/organizations the practitioner is associated with
. . . identifier Σ 0..* Identifier Business Identifiers that are specific to a role/location
. . . active Σ 0..1 boolean Whether this practitioner's record is in active use
. . . practitioner Σ 0..1 Reference ( Practitioner ) Practitioner that is able to provide the defined services for the organation
. . . 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)
. . . telecom Σ 0..* ContactPoint Contact details that are specific to the role/location/service
. . . period Σ 0..1 Period The period during which the practitioner is authorized to perform in these role(s)
. . . availableTime 0..* BackboneElement Times the Service Site is available
. . . . daysOfWeek 0..* code mon | tue | wed | thu | fri | sat | sun
DaysOfWeek ( Required )
. . . . allDay 0..1 boolean Always available? e.g. 24 hour service
. . . . availableStartTime 0..1 time Opening time of day (ignored if allDay = true)
. . . . availableEndTime 0..1 time Closing time of day (ignored if allDay = true)
. . . notAvailable 0..* BackboneElement Not available during this time due to provided reason
. . . . description 1..1 string Reason presented to the user explaining why time not available
. . . . during 0..1 Period Service not availablefrom this date
. . . availabilityExceptions 0..1 string Description of availability exceptions
. . . endpoint 0..* Reference ( Endpoint ) Technical endpoints providing access to services operated for the practitioner with this role

doco Documentation for this format

UML Diagram ( Legend )

PractitionerRole ( DomainResource ) Business Identifiers that are specific to a role/location identifier : Identifier [0..*] Whether this practitioner's record is in active use active : boolean [0..1] Practitioner that is able to provide the defined services for the organation practitioner : Reference [0..1] « Practitioner » The organization where the Practitioner performs the roles associated organization : Reference [0..1] « Organization » Roles which this practitioner is authorized to perform for the organization code : CodeableConcept [0..*] « The role a person plays representing an organization (Strength=Example) PractitionerRole ?? » Specific specialty of the practitioner specialty : CodeableConcept [0..*] « Specific specialty associated with the agency (Strength=Preferred) Practice Setting Code Value S... ? » The location(s) at which this practitioner provides care location : Reference [0..*] « Location » The list of healthcare services that this worker provides for this role's Organization/Location(s) healthcareService : Reference [0..*] « HealthcareService » Contact details that are specific to the role/location/service telecom : ContactPoint [0..*] The period during which the person is authorized to act as a practitioner in these role(s) for the organization period : Period [0..1] A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times availabilityExceptions : string [0..1] Technical endpoints providing access to services operated for the practitioner with this role endpoint : Reference [0..*] « Endpoint » AvailableTime Indicates which days of the week are available between the start and end Times daysOfWeek : code [0..*] « The days of the week. (Strength=Required) DaysOfWeek ! » Is this always available? (hence times are irrelevant) e.g. 24 hour service allDay : boolean [0..1] The opening time of day. Note: If the AllDay flag is set, then this time is ignored availableStartTime : time [0..1] The closing time of day. Note: If the AllDay flag is set, then this time is ignored availableEndTime : time [0..1] NotAvailable The reason that can be presented to the user as to why this time is not available description : string [1..1] Service is not available (seasonally or for a public holiday) from this date during : Period [0..1] A collection of times that the Service Site is available availableTime [0..*] The HealthcareService is not available during this period of time due to the provided reason notAvailable [0..*]

XML Template

<PractitionerRole xmlns="http://hl7.org/fhir"> doco
 <!-- 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's record is in active use -->
 <practitioner><!-- 0..1 Reference(Practitioner) Practitioner that is able to provide the defined services for the organation --></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>
 <telecom><!-- 0..* ContactPoint Contact details that are specific to the role/location/service --></telecom>
 <period><!-- 0..1 Period The period during which the practitioner is authorized to perform in these role(s) --></period>
 <availableTime>  <!-- 0..* Times the Service Site is available -->
  <daysOfWeek value="[code]"/><!-- 0..* mon | tue | wed | thu | fri | sat | sun -->
  <allDay value="[boolean]"/><!-- 0..1 Always available? e.g. 24 hour service -->
  <availableStartTime value="[time]"/><!-- 0..1 Opening time of day (ignored if allDay = true) -->
  <availableEndTime value="[time]"/><!-- 0..1 Closing time of day (ignored if allDay = true) -->
 </availableTime>
 <notAvailable>  <!-- 0..* Not available during this time due to provided reason -->
  <description value="[string]"/><!-- 1..1 Reason presented to the user explaining why time not available -->
  <during><!-- 0..1 Period Service not availablefrom this date --></during>
 </notAvailable>
 <availabilityExceptions value="[string]"/><!-- 0..1 Description of availability exceptions -->
 <endpoint><!-- 0..* Reference(Endpoint) Technical endpoints providing access to services operated for the practitioner with this role --></endpoint>
</PractitionerRole>

JSON Template

{doco
  "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's record is in active use
  "practitioner" : { Reference(Practitioner) }, // Practitioner that is able to provide the defined services for the organation
  "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)
  "telecom" : [{ ContactPoint }], // Contact details that are specific to the role/location/service
  "period" : { Period }, // The period during which the practitioner is authorized to perform in these role(s)
  "availableTime" : [{ // Times the Service Site is available
    "daysOfWeek" : ["<code>"], // mon | tue | wed | thu | fri | sat | sun
    "allDay" : <boolean>, // Always available? e.g. 24 hour service
    "availableStartTime" : "<time>", // Opening time of day (ignored if allDay = true)
    "availableEndTime" : "<time>" // Closing time of day (ignored if allDay = true)
  }],
  "notAvailable" : [{ // Not available during this time due to provided reason
    "description" : "<string>", // R!  Reason presented to the user explaining why time not available
    "during" : { Period } // Service not availablefrom this date
  }],
  "availabilityExceptions" : "<string>", // Description of availability 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/> .doco


[ 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's record is in active use
  fhir:PractitionerRole.practitioner [ Reference(Practitioner) ]; # 0..1 Practitioner that is able to provide the defined services for the organation
  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.telecom [ ContactPoint ], ... ; # 0..* Contact details that are specific to the role/location/service
  fhir:PractitionerRole.period [ Period ]; # 0..1 The period during which the practitioner is authorized to perform in these role(s)
  fhir:PractitionerRole.availableTime [ # 0..* Times the Service Site is available
    fhir:PractitionerRole.availableTime.daysOfWeek [ code ], ... ; # 0..* mon | tue | wed | thu | fri | sat | sun
    fhir:PractitionerRole.availableTime.allDay [ boolean ]; # 0..1 Always available? e.g. 24 hour service
    fhir:PractitionerRole.availableTime.availableStartTime [ time ]; # 0..1 Opening time of day (ignored if allDay = true)
    fhir:PractitionerRole.availableTime.availableEndTime [ time ]; # 0..1 Closing time of day (ignored if allDay = true)
  ], ...;
  fhir:PractitionerRole.notAvailable [ # 0..* Not available during this time due to provided reason
    fhir:PractitionerRole.notAvailable.description [ string ]; # 1..1 Reason presented to the user explaining why time not available
    fhir:PractitionerRole.notAvailable.during [ Period ]; # 0..1 Service not availablefrom this date
  ], ...;
  fhir:PractitionerRole.availabilityExceptions [ string ]; # 0..1 Description of availability exceptions
  fhir:PractitionerRole.endpoint [ Reference(Endpoint) ], ... ; # 0..* Technical endpoints providing access to services operated for the practitioner with this role
]

Changes since DSTU2

This resource did not exist in Release 2

 

Alternate definitions: Master Definition ( XML , JSON ), XML Schema / Schematron (for ) + JSON Schema , ShEx (for Turtle ), JSON-LD (for RDF as JSON-LD ),

Path Definition Type Reference
PractitionerRole.code The role a person plays representing an organization Example PractitionerRole
PractitionerRole.specialty Specific specialty associated with the agency Preferred Practice Setting Code Value Set
PractitionerRole.availableTime.daysOfWeek The days of the week. Required DaysOfWeek

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

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 Paths In Common
email token A value in an email contact PractitionerRole.telecom(system=email) 4 Resources
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.telecom(system=phone) 4 Resources
practitioner reference Practitioner that is able to provide the defined services for the organation PractitionerRole.practitioner
( Practitioner )
role token The practitioner can perform this role at for the organization PractitionerRole.code
specialty token The practitioner has this specialty at an organization PractitionerRole.specialty
telecom token The value in any kind of contact PractitionerRole.telecom 4 Resources