Patient death documented

Mortality record. At most one death row per person. Only created when Patient.deceasedDateTime is present — deceasedBoolean=true without a date cannot produce a row because death_date is NOT NULL.

Conversion profile omop-patient-death
A FHIR instance converts to death iff it validates against this profile.
Path Card Type Binding / Fixed Comment
Patient.deceased[x] 1..1MS dateTime Must be dateTime — deceasedBoolean is excluded by this profile. This is the routing discriminator for Patient → death.
ViewDefinition (Stage 1 flattener) omop-patient-death
3 columns · resource Patient
column name FHIRPath type
id Patient.id id
death_date Patient.deceasedDateTime dateTime
death_datetime Patient.deceasedDateTime dateTime
Condition: Patient.deceasedDateTime is present
Implementation: src/mapper/patient.ts

Fields (7)

Vocabularies

death_type

Source Display Concept ID Concept Name
undefined 32817 EHR
undefined 32887 EHR record patient status Deceased
undefined 32815 Claim
undefined 32885 Death Certificate

Edge Cases

deceasedBoolean=true only
No row created; log warning. death_date is NOT NULL.
deceasedBoolean=false
No row — person is alive.
Partial deceasedDateTime (e.g. 2024-03)
Pad to last day of month per OMOP Themis. death_datetime left null.
Patient updated to alive (incremental)
Delete existing death row by person_id.
birthDate after deceasedDateTime
Data quality error — log and skip.
6 of 9 surveyed implementations silently lose mortality data
FhirToCdm, omopfhirmap, NACHC, fhir-to-omop-demo, fhir-x-omop do not create death rows.

Reference Implementations