related_person
The US Core RelatedPerson Profile inherits from the FHIR [RelatedPerson](https://hl7.org/fhir/R4/relatedperson.html) resource; refer to it for scope and usage definitions.
The US Core RelatedPerson Profile inherits from the FHIR RelatedPerson resource; refer to it for scope and usage definitions. This profile sets minimum expectations for the RelatedPerson resource to record, search, and fetch basic administrative information about persons with a legal or familial relationship to a patient. 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-relatedperson | 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 | RelatedPerson.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. | — | — |
active | boolean | yes | Whether this related person's record is in active use | — | RelatedPerson.active |
patient_id | uuid | yes | The patient this person is related to | — | RelatedPerson.patient |
name_textname_prefixname_familyname_givenname_suffix | text, text, text, text, texttext, text, text, text, text | yes | A name associated with the person | — | RelatedPerson.name |
phone_numberphone_use_codeemailemail_use_code | text, text, text, texttext, text, text, text | yes | A contact detail for the person | — | RelatedPerson.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 where the related person can be contacted or visited | — | RelatedPerson.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 ((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 |
|---|---|---|
patient_id | patient | no action |
Referenced by
care_team_participantviamember_related_person_idcoverageviapayor_related_person_iddocument_reference_authorviarelated_person_idencounter_participantviaindividual_related_person_idperson_linkviatarget_related_person_idrelated_person_relationshipviarelated_person_idrelated_person_other_nameviarelated_person_idrelated_person_other_telecomviarelated_person_idrelated_person_other_addressviarelated_person_id
Indexes
related_person_patient_id_idxonpatient_id
Child tables
4 tables hang off related_person, one row per repetition.
related_person_relationship
Child table — one row per repetition, deleted with its parent.
| Column | Type | Null | Description | From | Source |
|---|---|---|---|---|---|
id | uuid primary key | no | Primary key. | — | — |
related_person_id | uuid → related_person | no | — | — | — |
relationshiprelationship_coderelationship_system | text, text, texttext, text, text | yes | The nature of the relationship | — | RelatedPerson.relationship |
Constraints
check ((relationship_code is null and relationship_system is null) or (relationship_code is not null and relationship_system is not null))References
| Columns | Target | On delete |
|---|---|---|
related_person_id | related_person | cascade |
Indexes
related_person_relationship_related_person_id_idxonrelated_person_id
related_person_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. | — | — |
related_person_id | uuid → related_person | 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 |
|---|---|---|
related_person_id | related_person | cascade |
Indexes
related_person_other_name_related_person_id_idxonrelated_person_id
related_person_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. | — | — |
related_person_id | uuid → related_person | 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 |
|---|---|---|
related_person_id | related_person | cascade |
Indexes
related_person_other_telecom_related_person_id_idxonrelated_person_id
related_person_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. | — | — |
related_person_id | uuid → related_person | 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 |
|---|---|---|
related_person_id | related_person | cascade |
Indexes
related_person_other_address_related_person_id_idxonrelated_person_id