practitioner
The US Core Practitioner Profile inherits from the FHIR [Practitioner](https://hl7.org/fhir/R4/practitioner.html) resource; refer to it for scope and usage definitions.
The US Core Practitioner Profile inherits from the FHIR Practitioner resource; refer to it for scope and usage definitions. This profile sets minimum expectations for the Practitioner resource to record, search, and fetch basic demographics and administrative information about an individual practitioner. 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.
Source
| Model | Leg | Role |
|---|---|---|
us-core-practitioner | FHIR | defines this table |
openEHR-EHR-CLUSTER.address.v1 | openEHR | merged in — Address |
openEHR-EHR-CLUSTER.electronic_communication.v1 | openEHR | merged in — Electronic communication |
This table is the union of 3 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 | Practitioner.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. | — | — |
npi | text | yes | An identifier for the person as this agent | — | Practitioner.identifier |
ncsbnid | text | yes | An identifier for the person as this agent | — | Practitioner.identifier |
identifier_valueidentifier_system | text, texttext, text | yes | An identifier for the person as this agent | — | Practitioner.identifier |
name_textname_prefixname_familyname_givenname_suffix | text, text, text, text, texttext, text, text, text, text | yes | The name(s) associated with the practitioner | — | Practitioner.name |
phone_numberphone_use_codeemailemail_use_code | text, text, text, texttext, text, text, text | yes | A contact detail for the practitioner (that apply to all roles) | — | Practitioner.telecom |
address_lineaddress_cityaddress_districtaddress_stateaddress_postal_codeaddress_countryaddress_use_codeaddress_type_code | text, text, text, text, text, text, text, texttext, text, text, text, text, text, text, text | yes | Address(es) of the practitioner | — | Practitioner.address |
address_latitude_magnitudeaddress_latitude_units | quantitynumeric, text | yes | Latitude | openEHR-EHR-CLUSTER.address.v1 | /items[at0007] |
address_longitude_magnitudeaddress_longitude_units | quantitynumeric, text | yes | Longitude | openEHR-EHR-CLUSTER.address.v1 | /items[at0008] |
address_altitude_magnitudeaddress_altitude_units | quantitynumeric, text | yes | Altitude | openEHR-EHR-CLUSTER.address.v1 | /items[at0009] |
address_comment | text | yes | Comment | openEHR-EHR-CLUSTER.address.v1 | /items[at0018] |
address_map_url | text | yes | Map URL | openEHR-EHR-CLUSTER.address.v1 | /items[at0019] |
address_geolocation_code | text | yes | Geolocation code | openEHR-EHR-CLUSTER.address.v1 | /items[at0021] |
phone_commentemail_comment | text, texttext, text | yes | Comment | openEHR-EHR-CLUSTER.electronic_communication.v1 | /items[at0004] |
Constraints
check (identifier_system is null or identifier_value is not null)
check ((address_latitude_magnitude is null and address_latitude_units is null) or (address_latitude_magnitude is not null and address_latitude_units is not null))
check (address_latitude_magnitude is null or (address_latitude_units = 'deg' and address_latitude_magnitude between -90 and 90))
check ((address_longitude_magnitude is null and address_longitude_units is null) or (address_longitude_magnitude is not null and address_longitude_units is not null))
check (address_longitude_magnitude is null or (address_longitude_units = 'deg' and address_longitude_magnitude between -180 and 180))
check ((address_altitude_magnitude is null and address_altitude_units is null) or (address_altitude_magnitude is not null and address_altitude_units is not null))Unique
npi
Referenced by
care_team_participantviamember_practitioner_iddocument_referenceviasubject_practitioner_iddocument_referenceviaauthenticator_practitioner_iddocument_reference_authorviapractitioner_idencounter_participantviaindividual_practitioner_idperson_linkviatarget_practitioner_idpractitioner_other_identifierviapractitioner_idpractitioner_other_nameviapractitioner_idpractitioner_other_telecomviapractitioner_idpractitioner_other_addressviapractitioner_idpractitioner_roleviapractitioner_id
Child tables
4 tables hang off practitioner, one row per repetition.
practitioner_other_identifier
Child table — one row per repetition, deleted with its parent.
| Column | Type | Null | Description | From | Source |
|---|---|---|---|---|---|
id | uuid primary key | no | Primary key. | — | — |
practitioner_id | uuid → practitioner | no | — | — | — |
identifier_value | text | no | — | — | — |
identifier_system | text | yes | — | — | — |
identifier_use | text | yes | — | — | — |
valid_from | timestamptz | yes | — | — | — |
valid_until | timestamptz | yes | — | — | — |
Unique
practitioner_id, identifier_system, identifier_value
References
| Columns | Target | On delete |
|---|---|---|
practitioner_id | practitioner | cascade |
practitioner_other_name
Child table — one row per repetition, deleted with its parent.
| Column | Type | Null | Description | From | Source |
|---|---|---|---|---|---|
id | uuid primary key | no | Primary key. | — | — |
practitioner_id | uuid → practitioner | no | — | — | — |
use_code | text | yes | — | — | — |
name_text | text | yes | — | — | — |
name_prefix | text | yes | — | — | — |
name_family | text | yes | — | — | — |
name_given | text | yes | — | — | — |
name_suffix | text | yes | — | — | — |
valid_from | timestamptz | yes | — | — | — |
valid_until | timestamptz | yes | — | — | — |
References
| Columns | Target | On delete |
|---|---|---|
practitioner_id | practitioner | cascade |
Indexes
practitioner_other_name_practitioner_id_idxonpractitioner_id
practitioner_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_id | uuid → practitioner | 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_id | practitioner | cascade |
Indexes
practitioner_other_telecom_practitioner_id_idxonpractitioner_id
practitioner_other_address
Child table — one row per repetition, deleted with its parent.
| Column | Type | Null | Description | From | Source |
|---|---|---|---|---|---|
id | uuid primary key | no | Primary key. | — | — |
practitioner_id | uuid → practitioner | no | — | — | — |
address_line | text | yes | newline-delimited for multiple lines | — | — |
address_city | text | yes | — | — | — |
address_district | text | yes | — | — | — |
address_state | text | yes | — | — | — |
address_postal_code | text | yes | — | — | — |
address_country | text | yes | — | — | — |
use_code | text | yes | — | — | — |
type_code | text | yes | — | — | — |
valid_from | timestamptz | yes | — | — | — |
valid_until | timestamptz | yes | — | — | — |
address_latitude_magnitudeaddress_latitude_units | quantitynumeric, text | yes | Latitude | openEHR-EHR-CLUSTER.address.v1 | /items[at0007] |
address_longitude_magnitudeaddress_longitude_units | quantitynumeric, text | yes | Longitude | openEHR-EHR-CLUSTER.address.v1 | /items[at0008] |
address_altitude_magnitudeaddress_altitude_units | quantitynumeric, text | yes | Altitude | openEHR-EHR-CLUSTER.address.v1 | /items[at0009] |
address_comment | text | yes | Comment | openEHR-EHR-CLUSTER.address.v1 | /items[at0018] |
address_map_url | text | yes | Map URL | openEHR-EHR-CLUSTER.address.v1 | /items[at0019] |
address_geolocation_code | text | yes | Geolocation code | openEHR-EHR-CLUSTER.address.v1 | /items[at0021] |
Constraints
check ((address_latitude_magnitude is null and address_latitude_units is null) or (address_latitude_magnitude is not null and address_latitude_units is not null))
check (address_latitude_magnitude is null or (address_latitude_units = 'deg' and address_latitude_magnitude between -90 and 90))
check ((address_longitude_magnitude is null and address_longitude_units is null) or (address_longitude_magnitude is not null and address_longitude_units is not null))
check (address_longitude_magnitude is null or (address_longitude_units = 'deg' and address_longitude_magnitude between -180 and 180))
check ((address_altitude_magnitude is null and address_altitude_units is null) or (address_altitude_magnitude is not null and address_altitude_units is not null))References
| Columns | Target | On delete |
|---|---|---|
practitioner_id | practitioner | cascade |
Indexes
practitioner_other_address_practitioner_id_idxonpractitioner_id