patient

The US Core Patient Profile inherits from the FHIR [Patient](https://hl7.org/fhir/R4/patient.html) resource; refer to it for scope and usage definitions.

The US Core Patient Profile inherits from the FHIR Patient resource; refer to it for scope and usage definitions. This profile meets the requirements of the U.S. Core Data for Interoperability (USCDI) *Patient Demographics/Information* Data Class. It sets minimum expectations for the Patient resource to record, search, and fetch basic demographics and other administrative information about an individual 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

ModelLegRole
us-core-patientFHIRdefines this table
openEHR-EHR-CLUSTER.address.v1openEHRmerged in — Address
openEHR-EHR-CLUSTER.electronic_communication.v1openEHRmerged 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

ColumnTypeNullDescriptionFromSource
iduuid primary keynoPatient.id
created_attimestamptznoRow creation timestamp.
updated_attimestamptznoRow update timestamp; maintained by the application.
created_bytextnoActor who created the row.
updated_bytextnoActor who last updated the row.
race
race_code
race_system
race_valueset_id
race_text
coded text
text, text, text, text, text
yes𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: US Core Race Extension. (multiple races are supported in the extension)Patient.extension
ethnicity
ethnicity_code
ethnicity_system
ethnicity_valueset_id
ethnicity_text
coded text
text, text, text, text, text
yes𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: US Core ethnicity Extension (multiple ethnicities are supported in the extension)Patient.extension
sex
sex_code
sex_system
sex_valueset_id
coded text
text, text, text, text
yes𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Sex ExtensionPatient.extension
interpreter_required
interpreter_required_code
interpreter_required_system
interpreter_required_valueset_id
coded text
text, text, text, text
yes𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Whether the patient needs an interpreterPatient.extension
identifier_value
identifier_system
text, text
text, text
yesAn identifier for this patientPatient.identifier
name_text
name_prefix
name_family
name_given
name_suffix
text, text, text, text, text
text, text, text, text, text
yesA name associated with the patientPatient.name
phone_number
phone_use_code
email
email_use_code
text, text, text, text
text, text, text, text
yes𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: A contact detail for the individualPatient.telecom
birth_datedateyesThe date of birth for the individualPatient.birthDate
deceased_boolean
deceased_datetime
boolean, timestamptz
boolean, timestamptz
yes𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Indicates if the individual is deceased or notPatient.deceased[x]
address_line
address_city
address_district
address_state
address_postal_code
address_country
address_use_code
address_type_code
text, text, text, text, text, text, text, text
text, text, text, text, text, text, text, text
yesAn address for the individualPatient.address
address_latitude_magnitude
address_latitude_units
quantity
numeric, text
yesLatitudeopenEHR-EHR-CLUSTER.address.v1/items[at0007]
address_longitude_magnitude
address_longitude_units
quantity
numeric, text
yesLongitudeopenEHR-EHR-CLUSTER.address.v1/items[at0008]
address_altitude_magnitude
address_altitude_units
quantity
numeric, text
yesAltitudeopenEHR-EHR-CLUSTER.address.v1/items[at0009]
address_commenttextyesCommentopenEHR-EHR-CLUSTER.address.v1/items[at0018]
address_map_urltextyesMap URLopenEHR-EHR-CLUSTER.address.v1/items[at0019]
address_geolocation_codetextyesGeolocation codeopenEHR-EHR-CLUSTER.address.v1/items[at0021]
phone_comment
email_comment
text, text
text, text
yesCommentopenEHR-EHR-CLUSTER.electronic_communication.v1/items[at0004]

Constraints

check ((race is null and race_code is null and race_system is null and race_valueset_id is null) or (race is not null and race_code is not null and race_system is not null and race_valueset_id is not null))
check ((ethnicity is null and ethnicity_code is null and ethnicity_system is null and ethnicity_valueset_id is null) or (ethnicity is not null and ethnicity_code is not null and ethnicity_system is not null and ethnicity_valueset_id is not null))
check ((sex is null and sex_code is null and sex_system is null and sex_valueset_id is null) or (sex is not null and sex_code is not null and sex_system is not null and sex_valueset_id is not null))
check ((interpreter_required is null and interpreter_required_code is null and interpreter_required_system is null and interpreter_required_valueset_id is null) or (interpreter_required is not null and interpreter_required_code is not null and interpreter_required_system is not null and interpreter_required_valueset_id is not null))
check (identifier_system is null or identifier_value is not null)
check (num_nonnulls(deceased_boolean, deceased_datetime) <= 1)
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

ColumnsTargetOn delete
race_valueset_id, race_code, race_system, racevalueset_coderestrict
ethnicity_valueset_id, ethnicity_code, ethnicity_system, ethnicityvalueset_coderestrict
sex_valueset_id, sex_code, sex_system, sexvalueset_coderestrict
interpreter_required_valueset_id, interpreter_required_code, interpreter_required_system, interpreter_requiredvalueset_coderestrict

Referenced by

16 tables reference patient, via patient_id. The first 15 alphabetically:

Child tables

6 tables hang off patient, one row per repetition.

patient_tribal_affiliation

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

ColumnTypeNullDescriptionFromSource
iduuid primary keynoPrimary key.
patient_iduuidpatientno
tribal_affiliation
tribal_affiliation_code
tribal_affiliation_system
text, text, text
text, text, text
yes𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Tribal Affiliation ExtensionPatient.extension

Constraints

check ((tribal_affiliation_code is null and tribal_affiliation_system is null) or (tribal_affiliation_code is not null and tribal_affiliation_system is not null))

References

ColumnsTargetOn delete
patient_idpatientcascade

Indexes

patient_other_identifier

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

ColumnTypeNullDescriptionFromSource
iduuid primary keynoPrimary key.
patient_iduuidpatientno
identifier_valuetextno
identifier_systemtextyes
identifier_usetextyes
valid_fromtimestamptzyes
valid_untiltimestamptzyes

Unique

References

ColumnsTargetOn delete
patient_idpatientcascade

patient_other_name

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

ColumnTypeNullDescriptionFromSource
iduuid primary keynoPrimary key.
patient_iduuidpatientno
use_codetextyes
name_texttextyes
name_prefixtextyes
name_familytextyes
name_giventextyes
name_suffixtextyes
valid_fromtimestamptzyes
valid_untiltimestamptzyes

References

ColumnsTargetOn delete
patient_idpatientcascade

Indexes

patient_other_telecom

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

ColumnTypeNullDescriptionFromSource
iduuid primary keynoPrimary key.
patient_iduuidpatientno
systemtextno
valuetextno
use_codetextyes
rankintegeryes
valid_fromtimestamptzyes
valid_untiltimestamptzyes
commenttextyesCommentopenEHR-EHR-CLUSTER.electronic_communication.v1/items[at0004]

References

ColumnsTargetOn delete
patient_idpatientcascade

Indexes

patient_other_address

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

ColumnTypeNullDescriptionFromSource
iduuid primary keynoPrimary key.
patient_iduuidpatientno
address_linetextyesnewline-delimited for multiple lines
address_citytextyes
address_districttextyes
address_statetextyes
address_postal_codetextyes
address_countrytextyes
use_codetextyes
type_codetextyes
valid_fromtimestamptzyes
valid_untiltimestamptzyes
address_latitude_magnitude
address_latitude_units
quantity
numeric, text
yesLatitudeopenEHR-EHR-CLUSTER.address.v1/items[at0007]
address_longitude_magnitude
address_longitude_units
quantity
numeric, text
yesLongitudeopenEHR-EHR-CLUSTER.address.v1/items[at0008]
address_altitude_magnitude
address_altitude_units
quantity
numeric, text
yesAltitudeopenEHR-EHR-CLUSTER.address.v1/items[at0009]
address_commenttextyesCommentopenEHR-EHR-CLUSTER.address.v1/items[at0018]
address_map_urltextyesMap URLopenEHR-EHR-CLUSTER.address.v1/items[at0019]
address_geolocation_codetextyesGeolocation codeopenEHR-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

ColumnsTargetOn delete
patient_idpatientcascade

Indexes

patient_communication

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

ColumnTypeNullDescriptionFromSource
iduuid primary keynoPrimary key.
patient_iduuidpatientno
language
language_code
language_system
language_valueset_id
coded text
text, text, text, text
yesThe language which can be used to communicate with the patient about his or her healthPatient.communication.language

Constraints

check ((language is null and language_code is null and language_system is null and language_valueset_id is null) or (language is not null and language_code is not null and language_system is not null and language_valueset_id is not null))

References

ColumnsTargetOn delete
patient_idpatientcascade
language_valueset_id, language_code, language_system, languagevalueset_coderestrict

Indexes

Value sets

Value setCodes
http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1021.1210
http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1267.160
http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.4.642.2.5750
http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.4.642.40.2.48.30
http://terminology.hl7.org/ValueSet/Languages0