---
title: "practitioner_role"
description: "The US Core PractitionerRole Profile inherits from the FHIR [PractitionerRole](https://hl7.org/fhir/R4/practitionerrole.html) resource; refer to it for scope and usage definitions."
---

The US Core PractitionerRole Profile inherits from the FHIR [PractitionerRole](https://hl7.org/fhir/R4/practitionerrole.html) resource; refer to it for scope and usage definitions. This profile sets minimum expectations for the PractitionerRole Resource to record, search, and fetch the practitioner role information. It specifies which core elements, extensions, vocabularies, and value sets **SHALL** be present and constrains how the elements are used. Providing the floor for standards development for specific use cases promotes interoperability and adoption. The requirements for the US Core Practitioner were drawn from the [Argonaut Provider Directory](http://www.fhir.org/guides/argonaut/pd//release1/index.html),  [IHE Healthcare Provider Directory](http://ihe.net/uploadedFiles/Documents/ITI/IHE_ITI_Suppl_HPD.pdf)  and the [ONC Provider Directory Workshop](https://confluence.oncprojectracking.org/display/PDW/Workshop+Documents).

## Source

| Model | Leg | Role |
|---|---|---|
| `us-core-practitionerrole` | FHIR | defines this table |
| `openEHR-EHR-CLUSTER.electronic_communication.v1` | openEHR | merged in — Electronic communication |

> This table is the union of 2 source models. Columns carrying a **From** value came from a model that merged into it, so the same row satisfies both specifications.

## Columns

| Column | Type | Null | Description | From | Source |
|---|---|---|---|---|---|
| `id` | `uuid primary key` | no | PractitionerRole.id | — | — |
| `created_at` | `timestamptz` | no | Row creation timestamp. | — | — |
| `updated_at` | `timestamptz` | no | Row update timestamp; maintained by the application. | — | — |
| `created_by` | `text` | no | Actor who created the row. | — | — |
| `updated_by` | `text` | no | Actor who last updated the row. | — | — |
| `practitioner_id` | `uuid` | yes | Practitioner that is able to provide the defined services for the organization | — | `PractitionerRole.practitioner` |
| `organization_id` | `uuid` | yes | Organization where the roles are available | — | `PractitionerRole.organization` |
| `phone_number`<br />`phone_use_code`<br />`email`<br />`email_use_code` | text, text, text, text<br />`text`, `text`, `text`, `text` | yes | Contact details that are specific to the role/location/service | — | `PractitionerRole.telecom` |
| `phone_comment`<br />`email_comment` | text, text<br />`text`, `text` | yes | Comment | `openEHR-EHR-CLUSTER.electronic_communication.v1` | `/items[at0004]` |

## References

| Columns | Target | On delete |
|---|---|---|
| `practitioner_id` | [`practitioner`](/docs/tables/practitioner) | no action |
| `organization_id` | [`organization`](/docs/tables/organization) | no action |

## Referenced by

- [`care_team_participant`](/docs/tables/care_team_participant) via `member_practitioner_role_id`
- [`document_reference`](/docs/tables/document_reference) via `authenticator_practitioner_role_id`
- [`document_reference_author`](/docs/tables/document_reference_author) via `practitioner_role_id`
- [`encounter_participant`](/docs/tables/encounter_participant) via `individual_practitioner_role_id`
- [`practitioner_role_code`](/docs/tables/practitioner_role_code) via `practitioner_role_id`
- [`practitioner_role_specialty`](/docs/tables/practitioner_role_specialty) via `practitioner_role_id`
- [`practitioner_role_location`](/docs/tables/practitioner_role_location) via `practitioner_role_id`
- [`practitioner_role_other_telecom`](/docs/tables/practitioner_role_other_telecom) via `practitioner_role_id`

## Indexes

- `practitioner_role_practitioner_id_idx` on `practitioner_id`
- `practitioner_role_organization_id_idx` on `organization_id`

## Child tables

4 tables hang off `practitioner_role`, one row per repetition.

### `practitioner_role_code`

Child table — one row per repetition, deleted with its parent.

| Column | Type | Null | Description | From | Source |
|---|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — | — |
| `practitioner_role_id` | `uuid` → [`practitioner_role`](/docs/tables/practitioner_role) | no | — | — | — |
| `code`<br />`code_code`<br />`code_system`<br />`code_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Roles which this practitioner may perform | — | `PractitionerRole.code` |

#### Constraints

```sql
check ((code is null and code_code is null and code_system is null and code_valueset_id is null) or (code is not null and code_code is not null and code_system is not null and code_valueset_id is not null))
```

#### References

| Columns | Target | On delete |
|---|---|---|
| `practitioner_role_id` | [`practitioner_role`](/docs/tables/practitioner_role) | cascade |
| `code_valueset_id, code_code, code_system, code` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

#### Indexes

- `practitioner_role_code_practitioner_role_id_idx` on `practitioner_role_id`

### `practitioner_role_specialty`

Child table — one row per repetition, deleted with its parent.

| Column | Type | Null | Description | From | Source |
|---|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — | — |
| `practitioner_role_id` | `uuid` → [`practitioner_role`](/docs/tables/practitioner_role) | no | — | — | — |
| `specialty`<br />`specialty_code`<br />`specialty_system`<br />`specialty_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Specific specialty of the practitioner | — | `PractitionerRole.specialty` |

#### Constraints

```sql
check ((specialty is null and specialty_code is null and specialty_system is null and specialty_valueset_id is null) or (specialty is not null and specialty_code is not null and specialty_system is not null and specialty_valueset_id is not null))
```

#### References

| Columns | Target | On delete |
|---|---|---|
| `practitioner_role_id` | [`practitioner_role`](/docs/tables/practitioner_role) | cascade |
| `specialty_valueset_id, specialty_code, specialty_system, specialty` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

#### Indexes

- `practitioner_role_specialty_practitioner_role_id_idx` on `practitioner_role_id`

### `practitioner_role_location`

Child table — one row per repetition, deleted with its parent.

| Column | Type | Null | Description | From | Source |
|---|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — | — |
| `practitioner_role_id` | `uuid` → [`practitioner_role`](/docs/tables/practitioner_role) | no | — | — | — |
| `location_id` | `uuid` | no | The location(s) at which this practitioner provides care | — | `PractitionerRole.location` |

#### Unique

- `practitioner_role_id, location_id`

#### References

| Columns | Target | On delete |
|---|---|---|
| `practitioner_role_id` | [`practitioner_role`](/docs/tables/practitioner_role) | cascade |
| `location_id` | [`location`](/docs/tables/location) | no action |

#### Indexes

- `practitioner_role_location_location_id_idx` on `location_id`

### `practitioner_role_other_telecom`

Child table — one row per repetition, deleted with its parent.

| Column | Type | Null | Description | From | Source |
|---|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — | — |
| `practitioner_role_id` | `uuid` → [`practitioner_role`](/docs/tables/practitioner_role) | no | — | — | — |
| `system` | `text` | no | — | — | — |
| `value` | `text` | no | — | — | — |
| `use_code` | `text` | yes | — | — | — |
| `rank` | `integer` | yes | — | — | — |
| `valid_from` | `timestamptz` | yes | — | — | — |
| `valid_until` | `timestamptz` | yes | — | — | — |
| `comment` | `text` | yes | Comment | `openEHR-EHR-CLUSTER.electronic_communication.v1` | `/items[at0004]` |

#### References

| Columns | Target | On delete |
|---|---|---|
| `practitioner_role_id` | [`practitioner_role`](/docs/tables/practitioner_role) | cascade |

#### Indexes

- `practitioner_role_other_telecom_practitioner_role_id_idx` on `practitioner_role_id`

## Value sets

| Value set | Codes |
|---|---|
| `http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1099.30` | 0 |
| `http://hl7.org/fhir/us/core/ValueSet/us-core-practitionerrole-specialty` | 0 |

