Skip to main content

patient

One row per person per source system. This is the demographic spine of the warehouse: every clinical and financial fact ultimately hangs off a person_id found here. Because the grain includes data_source, a single real-world individual appears once per contributing system until identity resolution collapses them; use person_id_crosswalk to trace how source identifiers were mapped onto a person_id.

At a glance​

Schemadax_core
Tablepatient
LayerCore Data Model
Object typetable
Columns26
Grainperson_id, data_source
Tagscore

Columns​

ColumnTypeKeyTerminologyConstraintsDescription
person_idvarcharPK—not nullDax identifier for the individual. Stable across refreshes and the join key used by every other table in the core layer.
sexvarcharSex—Normalized administrative sex.
racevarcharRace—Normalized race value.
birth_datedate——Date of birth, used to derive age and age_group.
death_datedate——Date of death where reported by a source system.
death_flaginteger——Set when any source reported the person as deceased. Check this rather than testing death_date for null, since some sources report the fact of death without a date.
name_suffixvarchar———
first_namevarchar——Given name. Direct identifier.
middle_namevarchar———
last_namevarchar——Family name. Direct identifier.
social_security_numbervarchar——Direct identifier. Restrict access to this column; it is present to support identity resolution, not analytics.
addressvarchar———
cityvarchar———
statevarchar——State or province of residence.
zip_codevarchar——Postal code of residence, commonly used for geographic rollups.
countyvarchar——County of residence.
latitudefloat———
longitudefloat———
phonevarchar———
emailvarchar———
ethnicityvarcharEthnicity—Normalized ethnicity value.
ageinteger——Age in years as of the most recent warehouse build.
age_groupvarchar——Banded age, for cohorting and reporting without exposing exact age.
ingest_datetimetimestamp——When the source record was loaded into the input layer.
dax_last_runtimestamp——Timestamp of the warehouse build that produced this row. Present on every core table, so you can confirm you are reading current data.
data_sourcevarcharPK—not nullLabel for the contributing system. Part of the grain, so always include it when joining or de-duplicating across sources.

Querying​

select *
from dax_core.patient
limit 100;