Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 87 additions & 1 deletion src/omop_etl/omop/models/rows.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ class ConditionOccurrenceRow:
condition_type_concept_id: int
condition_start_datetime: dt.datetime | None = None
condition_end_date: dt.date | None = None
condition_end_datetime: str | None = None
condition_end_datetime: dt.datetime | None = None
condition_status_concept_id: int | None = None
stop_reason: str | None = pd_field(None, max_length=20)
provider_id: int | None = None
Expand All @@ -146,3 +146,89 @@ class ConditionOccurrenceRow:
condition_source_value: str | None = pd_field(None, max_length=50)
condition_source_concept_id: int | None = None
condition_status_source_value: str | None = pd_field(None, max_length=50)


@pd_dataclass(frozen=True, slots=True)
class DrugExposureRow:
"""
https://ohdsi.github.io/CommonDataModel/cdm54.html#drug_exposure
"""

drug_exposure_id: int
person_id: int
drug_concept_id: int
drug_exposure_start_date: dt.date
drug_exposure_end_date: dt.date
drug_type_concept_id: int
drug_exposure_start_datetime: dt.datetime | None = None
drug_exposure_end_datetime: dt.datetime | None = None
verbatim_end_date: dt.date | None = None
stop_reason: str | None = pd_field(None, max_length=20)
refills: int | None = None
quantity: float | None = None
days_supply: int | None = None
sig: str | None = pd_field(None, max_length=10000)
route_concept_id: int | None = None
lot_number: str | None = pd_field(None, max_length=50)
provider_id: int | None = None
visit_ocurrence_id: int | None = None
visit_detail_id: int | None = None
drug_source_value: int | None = None
drug_source_concept_id: int | None = None
route_source_value: str | None = pd_field(None, max_length=50)
dose_unit_source_value: str | None = pd_field(None, max_length=50)


@pd_dataclass(frozen=True, slots=True)
class ProcedureOcurrenceRow:
"""
https://ohdsi.github.io/CommonDataModel/cdm54.html#procedure_occurrence
"""

procedure_occurrence_id: int
person_id: int
procedure_concept_id: int
procedure_date: dt.date
procedure_type_concept_id: int
procedure_datetime: dt.datetime | None = None
procedure_end_date: dt.date | None = None
procedure_end_datetime: dt.datetime | None = None
modifier_concept_id: int | None = None
quantity: int | None = None
provider_id: int | None = None
visit_occurrence_id: int | None = None
visit_detail_id: int | None = None
procedure_source_value: str | None = pd_field(None, max_length=50)
procedure_source_concept_id: int | None = None
modifier_source_value: str | None = pd_field(None, max_length=50)


@pd_dataclass(frozen=True, slots=True)
class MeasurementRow:
"""
https://ohdsi.github.io/CommonDataModel/cdm54.html#measurement
"""

measurement_id: int
person_id: int
measurement_concept_id: int
measurement_date: dt.date
measurement_type_concept_id: int
measurement_datetime: dt.datetime | None = None
measurement_time: str | None = pd_field(None, max_length=10)
operator_concept_id: int | None = None
value_as_number: float | None = None
value_as_concept_id: int | None = None
unit_concept_id: int | None = None
range_low: float | None = None
range_high: float | None = None
provider_id: int | None = None
visit_occurrence_id: int | None = None
visit_detail_id: int | None = None
measurement_source_value: str | None = pd_field(None, max_length=50)
measurement_source_concept_id: int | None = None
unit_source_value: str | None = pd_field(None, max_length=50)
unit_source_concept_id: int | None = None
value_source_value: str | None = pd_field(None, max_length=50)
measurement_event_id: int | None = None
meas_event_field_concept_id: int | None = None