PractitionerRole

The FHIR R4 PractitionerRole resource defines the role, specialty, location, and organizational affiliation of a practitioner. It is used to represent a practitioner's position within an organization and to associate them with locations where they provide care. Health Gorilla supports reading, creating, updating, and deleting PractitionerRole records.

Use Cases

  • Associate a provider with their clinic, department, or healthcare organization
  • Identify specialties and available service locations for a practitioner
  • Filter practitioners by role, specialty, or managing organization

Base URLs

Authentication

All requests require OAuth 2.0 authentication using a Bearer Token. Unauthorized requests return 401 Unauthorized responses.

Required Scopes

  • practitionerrole.read for GET
  • practitionerrole.write for POST, PUT, DELETE

For more information, go to: OAuth 2.0 Authentication.

Supported Methods

MethodOperationDescription
GETRead PractitionerRoleRetrieves a specific PractitionerRole record by its FHIR ID.
GETSearch PractitionerRoleSearches for PractitionerRole records using supported parameters.
POSTCreate PractitionerRoleSubmits a new PractitionerRole record to the Health Gorilla FHIR server.
PUTUpdate PractitionerRoleUpdates an existing PractitionerRole record by full resource replacement.

Search Parameters

Every search needs one anchor. Supply exactly one of identifier, practitioner, or organization. The location, role, specialty, activated, and email filters are only available alongside organization.

ParameterRequiredDescription
identifierOne anchor requiredReturns the role carrying the given identifier.
practitionerOne anchor requiredReturns the roles held by the given practitioner, as Practitioner/{id}.
organizationOne anchor requiredReturns the roles at the given organization, as Organization/{id}.
locationNo, with organizationReturns the roles at the given location.
roleNo, with organizationFilters on the role.
specialtyNo, with organizationFilters on the specialty.
activatedNo, with organizationFilters on whether the role is activated.
emailNo, with organizationFilters on the email address on the role.
_tagNoFilters on meta.tag.
_securityNoFilters on meta.security.

The search also accepts _include=PractitionerRole:practitioner, _include=PractitionerRole:location, and _include=PractitionerRole:organization to return referenced resources.

Use specialty. The misspelling speciality is rejected with an error naming the correct parameter.

Searching by Organization and NPI

You can find a practitioner within a tenant by passing the organization and identifier parameters together in a single PractitionerRole search. The identifier parameter carries the practitioner's NPI in system|value form, and organization scopes the search to one tenant. Health Gorilla returns only the practitioner roles that match both parameters, so a single call replaces querying by one parameter and filtering the results yourself. You can still search by identifier or organization alone: combining them narrows the results to practitioners that match both.

Example

GET /fhir/R4/PractitionerRole?identifier=http://hl7.org/fhir/sid/us-npi|1234567893&organization=t-<tenant-id>

The response is a Bundle of type searchset, which lists the matching resources and reports how many matched in total. When a practitioner holds more than one role at the organization, the Bundle contains one entry per role, so read total and iterate the entry array rather than assuming a single result. When no practitioner matches both parameters, the Bundle is empty with total of 0.

The identifier value must include the NPI namespace, http://hl7.org/fhir/sid/us-npi. An identifier without a namespace returns 400 Bad Request, and an unsupported namespace also returns 400. You can search only within your own tenant: a request that scopes organization to a tenant other than your own returns 405 Method Not Allowed, which here signals a cross-tenant scope restriction rather than an unsupported HTTP method.

Resource Attributes

AttributeDescriptionExample ValuesFHIR Data TypeRequired
idUnique FHIR ID for the PractitionerRoleprrole-123456idYes
practitionerReference to the individual practitionerPractitioner/{id}Reference(Practitioner)Yes
organizationOrganization where the role is performedOrganization/{id}Reference(Organization)No
locationLocations where the practitioner provides servicesLocation/{id}Reference[]No
codeFunctional role within the organizationdoctorCodeableConcept[]No
specialtyPractitioner’s area of clinical focuscardiologyCodeableConcept[]No
telecomContact details for scheduling or inquiriesPhone, email, faxContactPoint[]No
periodTime period when the role is/was active2022-01-01 to 2023-12-31PeriodNo
activeWhether the practitioner currently holds this roletruebooleanNo
endpointReferences to scheduling, messaging, or other service endpointsEndpoint/{id}Reference[]No

Webhooks

PractitionerRole records are not directly webhook-triggered, but they may appear as references in payloads for events such as Encounter, Appointment, or MedicationRequest.

For more information, go to: Webhooks & Polling.

Error Handling

All PractitionerRole operations follow standard Health Gorilla error handling, including use of FHIR OperationOutcome for structured responses.
For more information, go to: Error Handling.

Additional Resources

HL7 FHIR PractitionerRole