@@ -69,12 +69,14 @@ def get_mapped_tables(self, con) -> Dict[str, PhenexTable]:
69
69
# OMOP Column Mappers
70
70
#
71
71
class OMOPPersonTable (PhenexPersonTable ):
72
+ NAME_TABLE = 'PERSON'
72
73
JOIN_KEYS = {
73
74
'OMOPConditionOccurenceTable' : ['PERSON_ID' ],
74
75
'OMOPVisitDetailTable' : ['PERSON_ID' ]
75
76
}
76
77
77
78
class OMOPVisitDetailTable (PhenexVisitDetailTable ):
79
+ NAME_TABLE = 'VISIT_DETAIL'
78
80
JOIN_KEYS = {
79
81
'OMOPPersonTable' : ['PERSON_ID' ],
80
82
'OMOPConditionOccurenceTable' : ['PERSON_ID' , 'VISIT_DETAIL_ID' ]
@@ -92,89 +94,119 @@ class OMOPConditionOccurenceTable(CodeTable):
92
94
'CODE' : "CONDITION_CONCEPT_ID" ,
93
95
}
94
96
97
+ class OMOPDeathTable (PhenexTable ):
98
+ NAME_TABLE = 'DEATH'
99
+ JOIN_KEYS = {
100
+ 'OMOPPersonTable' : ['PERSON_ID' ]
101
+ }
102
+ KNOWN_FIELDS = [
103
+ 'PERSON_ID' ,
104
+ 'DATE_OF_DEATH'
105
+ ]
106
+ DEFAULT_MAPPING = {
107
+ 'PERSON_ID' : "PERSON_ID" ,
108
+ 'DATE_OF_DEATH' : "DEATH_DATE"
109
+ }
110
+
111
+ class OMOPProcedureOccurrenceTable (CodeTable ):
112
+ NAME_TABLE = 'PROCEDURE_OCCURRENCE'
113
+ JOIN_KEYS = {
114
+ 'OMOPPersonTable' : ['PERSON_ID' ],
115
+ 'OMOPVisitDetailTable' : ['PERSON_ID' , 'VISIT_DETAIL_ID' ]
116
+ }
117
+ DEFAULT_MAPPING = {
118
+ 'PERSON_ID' : "PERSON_ID" ,
119
+ 'EVENT_DATE' : "PROCEDURE_DATE" ,
120
+ 'CODE' : "PROCEDURE_CONCEPT_ID" ,
121
+ }
122
+
123
+ class OMOPDrugExposureTable (CodeTable ):
124
+ NAME_TABLE = 'DRUG_EXPOSURE'
125
+ JOIN_KEYS = {
126
+ 'OMOPPersonTable' : ['PERSON_ID' ],
127
+ 'OMOPVisitDetailTable' : ['PERSON_ID' , 'VISIT_DETAIL_ID' ]
128
+ }
129
+ DEFAULT_MAPPING = {
130
+ 'PERSON_ID' : "PERSON_ID" ,
131
+ 'EVENT_DATE' : "DRUG_EXPOSURE_START_DATE" ,
132
+ 'CODE' : "DRUG_CONCEPT_ID" ,
133
+ }
134
+
135
+ class OMOPConditionOccurrenceSourceTable (CodeTable ):
136
+ NAME_TABLE = 'CONDITION_OCCURRENCE'
137
+ JOIN_KEYS = {
138
+ 'OMOPPersonTable' : ['PERSON_ID' ],
139
+ 'OMOPVisitDetailTable' : ['PERSON_ID' , 'VISIT_DETAIL_ID' ]
140
+ }
141
+ DEFAULT_MAPPING = {
142
+ 'PERSON_ID' : "PERSON_ID" ,
143
+ 'EVENT_DATE' : "CONDITION_START_DATE" ,
144
+ 'CODE' : "CONDITION_SOURCE_VALUE" ,
145
+ }
146
+
147
+ class OMOPProcedureOccurrenceSourceTable (CodeTable ):
148
+ NAME_TABLE = 'PROCEDURE_OCCURRENCE'
149
+ JOIN_KEYS = {
150
+ 'OMOPPersonTable' : ['PERSON_ID' ],
151
+ 'OMOPVisitDetailTable' : ['PERSON_ID' , 'VISIT_DETAIL_ID' ]
152
+ }
153
+ DEFAULT_MAPPING = {
154
+ 'PERSON_ID' : "PERSON_ID" ,
155
+ 'EVENT_DATE' : "PROCEDURE_DATE" ,
156
+ 'CODE' : "PROCEDURE_SOURCE_VALUE" ,
157
+ }
158
+
159
+ class OMOPDrugExposureSourceTable (CodeTable ):
160
+ NAME_TABLE = 'DRUG_EXPOSURE'
161
+ JOIN_KEYS = {
162
+ 'OMOPPersonTable' : ['PERSON_ID' ],
163
+ 'OMOPVisitDetailTable' : ['PERSON_ID' , 'VISIT_DETAIL_ID' ]
164
+ }
165
+ DEFAULT_MAPPING = {
166
+ 'PERSON_ID' : "PERSON_ID" ,
167
+ 'EVENT_DATE' : "DRUG_EXPOSURE_START_DATE" ,
168
+ 'CODE' : "DRUG_SOURCE_VALUE" ,
169
+ }
170
+
171
+ class OMOPPersonTableSource (PhenexPersonTable ):
172
+ NAME_TABLE = 'PERSON'
173
+ JOIN_KEYS = {
174
+ 'OMOPConditionOccurenceTable' : ['PERSON_ID' ],
175
+ 'OMOPVisitDetailTable' : ['PERSON_ID' ]
176
+ }
177
+ DEFAULT_MAPPING = {
178
+ 'PERSON_ID' : "PERSON_ID" ,
179
+ 'DATE_OF_BIRTH' : "BIRTH_DATETIME" ,
180
+ 'YEAR_OF_BIRTH' : "YEAR_OF_BIRTH" ,
181
+ 'SEX' : "GENDER_SOURCE_VALUE" ,
182
+ 'ETHNICITY' : "ETHNICITY_SOURCE_VALUE" ,
183
+ }
184
+
185
+ class OMOPObservationPeriodTable (PhenexObservationPeriodTable ):
186
+ NAME_TABLE = 'OBSERVATION_PERIOD'
187
+ JOIN_KEYS = {
188
+ 'OMOPPersonTable' : ['PERSON_ID' ]
189
+ }
190
+ DEFAULT_MAPPING = {
191
+ 'PERSON_ID' : "PERSON_ID" ,
192
+ 'OBSERVATION_PERIOD_START_DATE' : "OBSERVATION_PERIOD_START_DATE" ,
193
+ 'OBSERVATION_PERIOD_END_DATE' : 'OBSERVATION_PERIOD_END_DATE'
194
+ }
195
+
95
196
#
96
197
# Domains
97
198
#
98
199
OMOPs = {
99
200
"PERSON" : OMOPPersonTable ,
100
- "VISIT " : OMOPVisitDetailTable ,
201
+ "VISIT_DETAIL " : OMOPVisitDetailTable ,
101
202
"CONDITION_OCCURRENCE" : OMOPConditionOccurenceTable ,
102
- # "DEATH": OMOPDeathTable,
103
- # "CONDITION_OCCURRENCE": OMOPConditionOccurrence,
104
- # "PROCEDURE_OCCURRENCE": OMOPProcedureOccurrence,
105
- # "DRUG_EXPOSURE": OMOPDrugExposure,
106
- # "PERSON_SOURCE": OMOPPersonTableSource,
107
- # "CONDITION_OCCURRENCE_SOURCE": OMOPConditionOccurrenceSource,
108
- # "PROCEDURE_OCCURRENCE_SOURCE": OMOPProcedureOccurrenceSource,
109
- # "DRUG_EXPOSURE_SOURCE": OMOPDrugExposureSource,
110
- # "OBSERVATION_PERIOD": OMOPObservationPeriod,
203
+ "DEATH" : OMOPDeathTable ,
204
+ "PROCEDURE_OCCURRENCE" : OMOPProcedureOccurrenceTable ,
205
+ "DRUG_EXPOSURE" : OMOPDrugExposureTable ,
206
+ "CONDITION_OCCURRENCE_SOURCE" : OMOPConditionOccurrenceSourceTable ,
207
+ "PROCEDURE_OCCURRENCE_SOURCE" : OMOPProcedureOccurrenceSourceTable ,
208
+ "DRUG_EXPOSURE_SOURCE" : OMOPDrugExposureSourceTable ,
209
+ "PERSON_SOURCE" : OMOPPersonTableSource ,
210
+ "OBSERVATION_PERIOD" : OMOPObservationPeriodTable ,
111
211
}
112
- OMOPDomains = DomainsDictionary (OMOPs )
113
-
114
- #
115
- # OLD vvvvv
116
- #
117
- # OMOPPersonTable = PersonTable(
118
- # NAME_TABLE="PERSON",
119
- # PERSON_ID="PERSON_ID",
120
- # DATE_OF_BIRTH="BIRTH_DATETIME",
121
- # YEAR_OF_BIRTH="YEAR_OF_BIRTH",
122
- # SEX="GENDER_CONCEPT_ID",
123
- # ETHNICITY="ETHNICITY_CONCEPT_ID",
124
- # )
125
-
126
- # OMOPDeathTable = PersonTable(
127
- # NAME_TABLE="DEATH", PERSON_ID="PERSON_ID", DATE_OF_DEATH="DEATH_DATE"
128
- # )
129
-
130
- # OMOPPersonTableSource = PersonTable(
131
- # NAME_TABLE="PERSON",
132
- # PERSON_ID="PERSON_ID",
133
- # DATE_OF_BIRTH="BIRTH_DATETIME",
134
- # YEAR_OF_BIRTH="YEAR_OF_BIRTH",
135
- # SEX="GENDER_SOURCE_VALUE",
136
- # ETHNICITY="ETHNICITY_SOURCE_VALUE",
137
- # )
138
-
139
- # OMOPConditionOccurrence = CodeTable(
140
- # NAME_TABLE="CONDITION_OCCURRENCE",
141
- # EVENT_DATE="CONDITION_START_DATE",
142
- # CODE="CONDITION_CONCEPT_ID",
143
- # )
144
-
145
- # OMOPConditionOccurrenceSource = CodeTable(
146
- # NAME_TABLE="CONDITION_OCCURRENCE",
147
- # EVENT_DATE="CONDITION_START_DATE",
148
- # CODE="CONDITION_SOURCE_VALUE",
149
- # )
150
-
151
- # OMOPProcedureOccurrence = CodeTable(
152
- # NAME_TABLE="PROCEDURE_OCCURRENCE",
153
- # EVENT_DATE="PROCEDURE_DATE",
154
- # CODE="PROCEDURE_CONCEPT_ID",
155
- # )
156
-
157
- # OMOPProcedureOccurrenceSource = CodeTable(
158
- # NAME_TABLE="PROCEDURE_OCCURRENCE",
159
- # EVENT_DATE="PROCEDURE_DATE",
160
- # CODE="PROCEDURE_SOURCE_VALUE",
161
- # )
162
-
163
- # OMOPDrugExposure = CodeTable(
164
- # NAME_TABLE="DRUG_EXPOSURE",
165
- # EVENT_DATE="DRUG_EXPOSURE_START_DATE",
166
- # CODE="DRUG_CONCEPT_ID",
167
- # )
168
-
169
- # OMOPDrugExposureSource = CodeTable(
170
- # NAME_TABLE="DRUG_EXPOSURE",
171
- # EVENT_DATE="DRUG_EXPOSURE_START_DATE",
172
- # CODE="DRUG_SOURCE_VALUE",
173
- # )
174
-
175
- # OMOPObservationPeriod = PhenexObservationPeriodTable(
176
- # NAME_TABLE="OBSERVATION_PERIOD",
177
- # PERSON_ID="PERSON_ID",
178
- # OBSERVATION_PERIOD_START_DATE="OBSERVATION_PERIOD_START_DATE",
179
- # OBSERVATION_PERIOD_END_DATE="OBSERVATION_PERIOD_END_DATE",
180
- # )
212
+ OMOPDomains = DomainsDictionary (OMOPs )
0 commit comments