This table serves as the central identity management for all Persons
in the database. It contains records that uniquely identify each
person or patient, and some demographic information.
All Persons in a database needs one record in this table, unless they
fail data quality requirements specified in the ETL. Persons with no
Events should have a record nonetheless. If more than one data source
contributes Events to the database, Persons must be reconciled, if
possible, across the sources to create one single record per Person.
The content of the BIRTH_DATETIME must be equivalent to the content of
BIRTH_DAY, BIRTH_MONTH and BIRTH_YEAR.
CDM Field
|
User Guide
|
ETL Conventions
|
Datatype
|
Required
|
Primary Key
|
Foreign Key
|
FK Table
|
FK Domain
|
person_id
|
It is assumed that every person with a different unique identifier
is in fact a different person and should be treated independently.
|
Any person linkage that needs to occur to uniquely identify
Persons ought to be done prior to writing this table. This
identifier can be the original id from the source data provided if
it is an integer, otherwise it can be an autogenerated number.
|
integer
|
Yes
|
Yes
|
No
|
|
|
gender_concept_id
|
This field is meant to capture the biological sex at birth of the
Person. This field should not be used to study gender identity
issues.
|
Use the gender or sex value present in the data under the
assumption that it is the biological sex at birth. If the source
data captures gender identity it should be stored in the OBSERVATION table. Accepted
gender concepts
|
integer
|
Yes
|
No
|
Yes
|
CONCEPT
|
Gender
|
year_of_birth
|
Compute age using year_of_birth.
|
For data sources with date of birth, the year should be extracted.
For data sources where the year of birth is not available, the
approximate year of birth could be derived based on age group
categorization, if available.
|
integer
|
Yes
|
No
|
No
|
|
|
month_of_birth
|
|
For data sources that provide the precise date of birth, the month
should be extracted and stored in this field.
|
integer
|
No
|
No
|
No
|
|
|
day_of_birth
|
|
For data sources that provide the precise date of birth, the day
should be extracted and stored in this field.
|
integer
|
No
|
No
|
No
|
|
|
birth_datetime
|
|
This field is not required but highly encouraged. For data sources
that provide the precise datetime of birth, that value should be
stored in this field. If birth_datetime is not provided in the
source, use the following logic to infer the date: If day_of_birth
is null and month_of_birth is not null then use the first of the
month in that year. If month_of_birth is null or if day_of_birth
AND month_of_birth are both null and the person has records during
their year of birth then use the date of the earliest record,
otherwise use the 15th of June of that year. If time of birth is
not given use midnight (00:00:0000).
|
datetime
|
No
|
No
|
No
|
|
|
race_concept_id
|
This field captures race or ethnic background of the person.
|
Only use this field if you have information about race or ethnic
background. The Vocabulary contains Concepts about the main races
and ethnic backgrounds in a hierarchical system. Due to the
imprecise nature of human races and ethnic backgrounds, this is
not a perfect system. Mixed races are not supported. If a clear
race or ethnic background cannot be established, use Concept_Id 0. Accepted
Race Concepts.
|
integer
|
Yes
|
No
|
Yes
|
CONCEPT
|
Race
|
ethnicity_concept_id
|
This field captures Ethnicity as defined by the Office of
Management and Budget (OMB) of the US Government: it distinguishes
only between “Hispanic” and “Not Hispanic”. Races and ethnic
backgrounds are not stored here.
|
Only use this field if you have US-based data and a source of this
information. Do not attempt to infer Ethnicity from the race or
ethnic background of the Person. Accepted
ethnicity concepts
|
integer
|
Yes
|
No
|
Yes
|
CONCEPT
|
Ethnicity
|
location_id
|
The location refers to the physical address of the person. This
field should capture the last known location of the person.
|
Put the location_id from the LOCATION table
here that represents the most granular location information for
the person. This could represent anything from postal code or
parts thereof, state, or county for example. Since many databases
contain deidentified data, it is common that the precision of the
location is reduced to prevent re-identification. This field
should capture the last known location.
|
integer
|
No
|
No
|
Yes
|
LOCATION
|
|
provider_id
|
The Provider refers to the last known primary care provider
(General Practitioner).
|
Put the provider_id from the PROVIDER table
of the last known general practitioner of the person. If there are
multiple providers, it is up to the ETL to decide which to put
here.
|
integer
|
No
|
No
|
Yes
|
PROVIDER
|
|
care_site_id
|
The Care Site refers to where the Provider typically provides the
primary care.
|
|
integer
|
No
|
No
|
Yes
|
CARE_SITE
|
|
person_source_value
|
Use this field to link back to persons in the source data. This is
typically used for error checking of ETL logic.
|
Some use cases require the ability to link back to persons in the
source data. This field allows for the storing of the person value
as it appears in the source. This field is not required but
strongly recommended.
|
varchar(50)
|
No
|
No
|
No
|
|
|
gender_source_value
|
This field is used to store the biological sex of the person from
the source data. It is not intended for use in standard analytics
but for reference only.
|
Put the biological sex of the person as it appears in the source
data.
|
varchar(50)
|
No
|
No
|
No
|
|
|
gender_source_concept_id
|
Due to the small number of options, this tends to be zero.
|
If the source data codes biological sex in a non-standard
vocabulary, store the concept_id here.
|
integer
|
No
|
No
|
Yes
|
CONCEPT
|
|
race_source_value
|
This field is used to store the race of the person from the source
data. It is not intended for use in standard analytics but for
reference only.
|
Put the race of the person as it appears in the source data.
|
varchar(50)
|
No
|
No
|
No
|
|
|
race_source_concept_id
|
Due to the small number of options, this tends to be zero.
|
If the source data codes race in an OMOP supported vocabulary
store the concept_id here.
|
integer
|
No
|
No
|
Yes
|
CONCEPT
|
|
ethnicity_source_value
|
This field is used to store the ethnicity of the person from the
source data. It is not intended for use in standard analytics but
for reference only.
|
If the person has an ethnicity other than the OMB standard of
“Hispanic” or “Not Hispanic” store that value from the source data
here.
|
varchar(50)
|
No
|
No
|
No
|
|
|
ethnicity_source_concept_id
|
Due to the small number of options, this tends to be zero.
|
If the source data codes ethnicity in an OMOP supported
vocabulary, store the concept_id here.
|
integer
|
No
|
No
|
Yes
|
CONCEPT
|
|