conceptql 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +226 -117
  3. data/LICENSE +21 -0
  4. data/README.md +35 -83
  5. data/bin/conceptql +2 -1
  6. data/bin/conceptql_utils +6 -0
  7. data/config/multiple_vocabularies.csv +4 -0
  8. data/config/provenance.yml +489 -0
  9. data/config/race.yml +50 -0
  10. data/config/vocabularies.csv +87 -0
  11. data/lib/conceptql/behaviors/code_lister.rb +23 -0
  12. data/lib/conceptql/behaviors/drugish.rb +17 -0
  13. data/lib/conceptql/behaviors/labish.rb +19 -0
  14. data/lib/conceptql/behaviors/metadatable.rb +226 -73
  15. data/lib/conceptql/behaviors/provenanceable.rb +26 -0
  16. data/lib/conceptql/behaviors/single_event.rb +11 -0
  17. data/lib/conceptql/behaviors/timeless.rb +11 -0
  18. data/lib/conceptql/behaviors/utilizable.rb +206 -0
  19. data/lib/conceptql/behaviors/windowable.rb +27 -0
  20. data/lib/conceptql/cli.rb +117 -108
  21. data/lib/conceptql/columnizer.rb +75 -0
  22. data/lib/conceptql/data_model/base.rb +462 -0
  23. data/lib/conceptql/data_model/gdm.rb +155 -0
  24. data/lib/conceptql/data_model/gdm_wide.rb +42 -0
  25. data/lib/conceptql/data_model/omopv4_plus.rb +12 -0
  26. data/lib/conceptql/data_model.rb +30 -0
  27. data/lib/conceptql/database.rb +214 -0
  28. data/lib/conceptql/date_adjuster.rb +66 -18
  29. data/lib/conceptql/diagram.rb +243 -0
  30. data/lib/conceptql/lexicon/lexicon_gdm.rb +47 -0
  31. data/lib/conceptql/lexicon/lexicon_no_db.rb +49 -0
  32. data/lib/conceptql/lexicon/lexicon_ohdsi.rb +63 -0
  33. data/lib/conceptql/lexicon/lexicon_strategy.rb +116 -0
  34. data/lib/conceptql/lexicon.rb +111 -0
  35. data/lib/conceptql/nodifier.rb +65 -24
  36. data/lib/conceptql/operators/after.rb +34 -14
  37. data/lib/conceptql/operators/any_overlap.rb +8 -6
  38. data/lib/conceptql/operators/before.rb +34 -10
  39. data/lib/conceptql/operators/binary_operator_operator.rb +66 -23
  40. data/lib/conceptql/operators/casting_operator.rb +51 -36
  41. data/lib/conceptql/operators/co_reported.rb +111 -0
  42. data/lib/conceptql/operators/concurrent_within.rb +69 -0
  43. data/lib/conceptql/operators/contains.rb +12 -8
  44. data/lib/conceptql/operators/count.rb +17 -9
  45. data/lib/conceptql/operators/date_range.rb +48 -14
  46. data/lib/conceptql/operators/death.rb +14 -4
  47. data/lib/conceptql/operators/dedup.rb +31 -0
  48. data/lib/conceptql/operators/during.rb +7 -12
  49. data/lib/conceptql/operators/episode.rb +146 -0
  50. data/lib/conceptql/operators/equal.rb +9 -3
  51. data/lib/conceptql/operators/ethnicity.rb +49 -0
  52. data/lib/conceptql/operators/except.rb +19 -12
  53. data/lib/conceptql/operators/filter.rb +23 -8
  54. data/lib/conceptql/operators/first.rb +16 -3
  55. data/lib/conceptql/operators/from.rb +52 -4
  56. data/lib/conceptql/operators/gender.rb +34 -11
  57. data/lib/conceptql/operators/hospice.rb +19 -0
  58. data/lib/conceptql/operators/hospitalization.rb +19 -0
  59. data/lib/conceptql/operators/information_periods.rb +36 -0
  60. data/lib/conceptql/operators/invalid.rb +35 -0
  61. data/lib/conceptql/operators/last.rb +16 -3
  62. data/lib/conceptql/operators/match.rb +91 -0
  63. data/lib/conceptql/operators/multiple_vocabularies.rb +172 -0
  64. data/lib/conceptql/operators/numeric.rb +65 -23
  65. data/lib/conceptql/operators/numeric_filter.rb +68 -0
  66. data/lib/conceptql/operators/occurrence.rb +153 -32
  67. data/lib/conceptql/operators/one_in_two_out.rb +237 -38
  68. data/lib/conceptql/operators/operator.rb +624 -178
  69. data/lib/conceptql/operators/pass_thru.rb +17 -3
  70. data/lib/conceptql/operators/person.rb +18 -6
  71. data/lib/conceptql/operators/person_filter.rb +9 -3
  72. data/lib/conceptql/operators/place_of_service_filter.rb +43 -0
  73. data/lib/conceptql/operators/provenance.rb +55 -0
  74. data/lib/conceptql/operators/provider_filter.rb +62 -0
  75. data/lib/conceptql/operators/race.rb +55 -7
  76. data/lib/conceptql/operators/read.rb +168 -0
  77. data/lib/conceptql/operators/recall.rb +49 -14
  78. data/lib/conceptql/operators/snf.rb +19 -0
  79. data/lib/conceptql/operators/sum.rb +29 -12
  80. data/lib/conceptql/operators/temporal_operator.rb +108 -16
  81. data/lib/conceptql/operators/time_window.rb +20 -32
  82. data/lib/conceptql/operators/trim_date.rb +71 -0
  83. data/lib/conceptql/operators/trim_date_end.rb +28 -40
  84. data/lib/conceptql/operators/trim_date_start.rb +28 -41
  85. data/lib/conceptql/operators/union.rb +67 -6
  86. data/lib/conceptql/operators/vocabulary.rb +151 -0
  87. data/lib/conceptql/paths.rb +41 -0
  88. data/lib/conceptql/query.rb +191 -26
  89. data/lib/conceptql/query_modifiers/gdm/admission_date_query_modifier.rb +46 -0
  90. data/lib/conceptql/query_modifiers/gdm/drug_query_modifier.rb +54 -0
  91. data/lib/conceptql/query_modifiers/gdm/lab_query_modifier.rb +57 -0
  92. data/lib/conceptql/query_modifiers/gdm/pos_query_modifier.rb +46 -0
  93. data/lib/conceptql/query_modifiers/gdm/provenance_query_modifier.rb +45 -0
  94. data/lib/conceptql/query_modifiers/gdm/provider_query_modifier.rb +53 -0
  95. data/lib/conceptql/query_modifiers/gdm_wide/admission_date_query_modifier.rb +42 -0
  96. data/lib/conceptql/query_modifiers/gdm_wide/drug_query_modifier.rb +52 -0
  97. data/lib/conceptql/query_modifiers/gdm_wide/lab_query_modifier.rb +55 -0
  98. data/lib/conceptql/query_modifiers/gdm_wide/pos_query_modifier.rb +37 -0
  99. data/lib/conceptql/query_modifiers/gdm_wide/provenance_query_modifier.rb +38 -0
  100. data/lib/conceptql/query_modifiers/omopv4_plus/admission_date_query_modifier.rb +45 -0
  101. data/lib/conceptql/query_modifiers/omopv4_plus/drug_query_modifier.rb +80 -0
  102. data/lib/conceptql/query_modifiers/omopv4_plus/pos_query_modifier.rb +47 -0
  103. data/lib/conceptql/query_modifiers/omopv4_plus/provenance_query_modifier.rb +45 -0
  104. data/lib/conceptql/query_modifiers/omopv4_plus/provider_query_modifier.rb +26 -0
  105. data/lib/conceptql/query_modifiers/query_modifier.rb +20 -0
  106. data/lib/conceptql/rdbms/duckdb.rb +25 -0
  107. data/lib/conceptql/rdbms/generic.rb +120 -0
  108. data/lib/conceptql/rdbms/postgres.rb +51 -0
  109. data/lib/conceptql/rdbms/spark.rb +22 -0
  110. data/lib/conceptql/rdbms.rb +22 -0
  111. data/lib/conceptql/scope.rb +481 -31
  112. data/lib/conceptql/sql_formatters/formatter.rb +25 -0
  113. data/lib/conceptql/sql_formatters.rb +22 -0
  114. data/lib/conceptql/utils.rb +113 -0
  115. data/lib/conceptql/utils_cli.rb +17 -0
  116. data/lib/conceptql/version.rb +3 -1
  117. data/lib/conceptql/visitors/metadata_extractor.rb +54 -0
  118. data/lib/conceptql/vocabularies/behaviors/costish.rb +24 -0
  119. data/lib/conceptql/vocabularies/behaviors/gdmish.rb +19 -0
  120. data/lib/conceptql/vocabularies/behaviors/omopish.rb +32 -0
  121. data/lib/conceptql/vocabularies/dynamic_vocabularies.rb +63 -0
  122. data/lib/conceptql/vocabularies/entry.rb +138 -0
  123. data/lib/conceptql/vocabularies/vocabulary_class_factory.rb +85 -0
  124. data/lib/conceptql/window/base.rb +26 -0
  125. data/lib/conceptql/window/date_range.rb +25 -0
  126. data/lib/conceptql/window/table.rb +116 -0
  127. data/lib/conceptql/window.rb +72 -0
  128. data/lib/conceptql.rb +65 -2
  129. data/lib/sequel/extensions/pg_ctas_explain.rb +22 -0
  130. data/lib/sequel/extensions/pg_vacuum_table.rb +23 -0
  131. data/schemas/gdm.yml +882 -0
  132. data/schemas/gdm_wide.yml +757 -0
  133. data/schemas/ohdsi_vocabs.yml +143 -0
  134. data/schemas/omopv4_plus.yml +729 -0
  135. data/schemas/omopv4_plus_more_ignorables.tsv +13 -0
  136. metadata +267 -207
  137. data/.gitignore +0 -23
  138. data/Gemfile +0 -4
  139. data/Guardfile +0 -56
  140. data/LICENSE.txt +0 -22
  141. data/Rakefile +0 -1
  142. data/conceptql.gemspec +0 -32
  143. data/doc/ConceptQL Specification (alpha).pdf +0 -0
  144. data/doc/diagram_0.png +0 -0
  145. data/doc/implementation_notes.md +0 -39
  146. data/doc/spec.md +0 -1344
  147. data/lib/conceptql/behaviors/debuggable.rb +0 -70
  148. data/lib/conceptql/behaviors/dottable.rb +0 -103
  149. data/lib/conceptql/behaviors/preppable.rb +0 -20
  150. data/lib/conceptql/converter.rb +0 -65
  151. data/lib/conceptql/debugger.rb +0 -48
  152. data/lib/conceptql/fake_grapher.rb +0 -20
  153. data/lib/conceptql/graph.rb +0 -52
  154. data/lib/conceptql/graph_nodifier.rb +0 -203
  155. data/lib/conceptql/logger.rb +0 -10
  156. data/lib/conceptql/operators/complement.rb +0 -38
  157. data/lib/conceptql/operators/concept.rb +0 -70
  158. data/lib/conceptql/operators/condition_type.rb +0 -71
  159. data/lib/conceptql/operators/cpt.rb +0 -25
  160. data/lib/conceptql/operators/drug_type_concept.rb +0 -21
  161. data/lib/conceptql/operators/from_seer_visits.rb +0 -23
  162. data/lib/conceptql/operators/hcpcs.rb +0 -25
  163. data/lib/conceptql/operators/icd10.rb +0 -28
  164. data/lib/conceptql/operators/icd9.rb +0 -28
  165. data/lib/conceptql/operators/icd9_procedure.rb +0 -25
  166. data/lib/conceptql/operators/intersect.rb +0 -34
  167. data/lib/conceptql/operators/loinc.rb +0 -25
  168. data/lib/conceptql/operators/medcode.rb +0 -28
  169. data/lib/conceptql/operators/medcode_procedure.rb +0 -27
  170. data/lib/conceptql/operators/ndc.rb +0 -29
  171. data/lib/conceptql/operators/observation_by_enttype.rb +0 -29
  172. data/lib/conceptql/operators/observation_period.rb +0 -30
  173. data/lib/conceptql/operators/overlapped_by.rb +0 -23
  174. data/lib/conceptql/operators/overlaps.rb +0 -19
  175. data/lib/conceptql/operators/place_of_service_code.rb +0 -24
  176. data/lib/conceptql/operators/procedure_occurrence.rb +0 -25
  177. data/lib/conceptql/operators/prodcode.rb +0 -29
  178. data/lib/conceptql/operators/rxnorm.rb +0 -24
  179. data/lib/conceptql/operators/snomed.rb +0 -24
  180. data/lib/conceptql/operators/snomed_condition.rb +0 -26
  181. data/lib/conceptql/operators/source_vocabulary_operator.rb +0 -58
  182. data/lib/conceptql/operators/standard_vocabulary_operator.rb +0 -45
  183. data/lib/conceptql/operators/started_by.rb +0 -22
  184. data/lib/conceptql/operators/to_seer_visits.rb +0 -24
  185. data/lib/conceptql/operators/visit.rb +0 -15
  186. data/lib/conceptql/operators/visit_occurrence.rb +0 -30
  187. data/lib/conceptql/tree.rb +0 -53
  188. data/lib/conceptql/utils/temp_table.rb +0 -72
  189. data/spec/conceptql/behaviors/dottable_spec.rb +0 -99
  190. data/spec/conceptql/converter_spec.rb +0 -51
  191. data/spec/conceptql/date_adjuster_spec.rb +0 -68
  192. data/spec/conceptql/operators/after_spec.rb +0 -16
  193. data/spec/conceptql/operators/before_spec.rb +0 -16
  194. data/spec/conceptql/operators/casting_operator_spec.rb +0 -68
  195. data/spec/conceptql/operators/complement_spec.rb +0 -15
  196. data/spec/conceptql/operators/concept_spec.rb +0 -40
  197. data/spec/conceptql/operators/condition_type_spec.rb +0 -128
  198. data/spec/conceptql/operators/contains_spec.rb +0 -19
  199. data/spec/conceptql/operators/cpt_spec.rb +0 -29
  200. data/spec/conceptql/operators/date_range_spec.rb +0 -33
  201. data/spec/conceptql/operators/death_spec.rb +0 -10
  202. data/spec/conceptql/operators/during_spec.rb +0 -30
  203. data/spec/conceptql/operators/except_spec.rb +0 -15
  204. data/spec/conceptql/operators/first_spec.rb +0 -35
  205. data/spec/conceptql/operators/from_spec.rb +0 -13
  206. data/spec/conceptql/operators/gender_spec.rb +0 -27
  207. data/spec/conceptql/operators/hcpcs_spec.rb +0 -29
  208. data/spec/conceptql/operators/icd10_spec.rb +0 -34
  209. data/spec/conceptql/operators/icd9_procedure_spec.rb +0 -29
  210. data/spec/conceptql/operators/icd9_spec.rb +0 -34
  211. data/spec/conceptql/operators/intersect_spec.rb +0 -28
  212. data/spec/conceptql/operators/last_spec.rb +0 -36
  213. data/spec/conceptql/operators/loinc_spec.rb +0 -29
  214. data/spec/conceptql/operators/medcode_procedure_spec.rb +0 -34
  215. data/spec/conceptql/operators/medcode_spec.rb +0 -34
  216. data/spec/conceptql/operators/observation_period_spec.rb +0 -10
  217. data/spec/conceptql/operators/occurrence_spec.rb +0 -87
  218. data/spec/conceptql/operators/overlapped_by_spec.rb +0 -32
  219. data/spec/conceptql/operators/overlaps_spec.rb +0 -21
  220. data/spec/conceptql/operators/person_filter_spec.rb +0 -15
  221. data/spec/conceptql/operators/person_spec.rb +0 -10
  222. data/spec/conceptql/operators/place_of_service_code_spec.rb +0 -24
  223. data/spec/conceptql/operators/procedure_occurrence_spec.rb +0 -10
  224. data/spec/conceptql/operators/prodcode_spec.rb +0 -35
  225. data/spec/conceptql/operators/query_double.rb +0 -20
  226. data/spec/conceptql/operators/query_double_spec.rb +0 -7
  227. data/spec/conceptql/operators/race_spec.rb +0 -21
  228. data/spec/conceptql/operators/rxnorm_spec.rb +0 -29
  229. data/spec/conceptql/operators/snomed_spec.rb +0 -29
  230. data/spec/conceptql/operators/source_vocabulary_operator_spec.rb +0 -35
  231. data/spec/conceptql/operators/standard_vocabulary_operator_spec.rb +0 -35
  232. data/spec/conceptql/operators/started_by_spec.rb +0 -22
  233. data/spec/conceptql/operators/temporal_operator_spec.rb +0 -51
  234. data/spec/conceptql/operators/time_window_spec.rb +0 -77
  235. data/spec/conceptql/operators/union_spec.rb +0 -21
  236. data/spec/conceptql/operators/visit_occurrence_spec.rb +0 -10
  237. data/spec/conceptql/query_spec.rb +0 -22
  238. data/spec/conceptql/tree_spec.rb +0 -50
  239. data/spec/doubles/stream_for_casting_double.rb +0 -9
  240. data/spec/doubles/stream_for_occurrence_double.rb +0 -25
  241. data/spec/doubles/stream_for_temporal_double.rb +0 -6
  242. data/spec/spec_helper.rb +0 -102
@@ -0,0 +1,489 @@
1
+ ---
2
+ :carrier_claim:
3
+ - 45756835
4
+ - 45756836
5
+ - 45756837
6
+ - 45756838
7
+ - 45756839
8
+ - 45756840
9
+ - 45756841
10
+ - 45756842
11
+ - 45756843
12
+ - 45756844
13
+ - 45756845
14
+ - 45756846
15
+ - 45756847
16
+ - 45756848
17
+ - 45756849
18
+ - 45756850
19
+ - 45756851
20
+ - 45756852
21
+ - 45756853
22
+ - 45756854
23
+ - 45756855
24
+ - 45756900
25
+ - 45756901
26
+ - 45756902
27
+ - 45756903
28
+ - 45756904
29
+ - 45756905
30
+ - 45756906
31
+ - 45756907
32
+ - 45756908
33
+ - 45756909
34
+ - 45756910
35
+ - 45756911
36
+ - 45756912
37
+ - 100000062
38
+ - 100011039
39
+ - 100011036
40
+ :carrier_claim_detail:
41
+ - 45756843
42
+ - 45756844
43
+ - 45756845
44
+ - 45756846
45
+ - 45756847
46
+ - 45756848
47
+ - 45756849
48
+ - 45756850
49
+ - 45756851
50
+ - 45756852
51
+ - 45756853
52
+ - 45756854
53
+ - 45756855
54
+ - 45756900
55
+ - 45756901
56
+ - 45756902
57
+ - 45756903
58
+ - 45756904
59
+ - 45756905
60
+ - 45756906
61
+ - 45756907
62
+ - 45756908
63
+ - 45756909
64
+ - 45756910
65
+ - 45756911
66
+ - 45756912
67
+ - 100000062
68
+ - 100011039
69
+ - 100011036
70
+ :carrier_claim_header:
71
+ - 45756835
72
+ - 45756836
73
+ - 45756837
74
+ - 45756838
75
+ - 45756839
76
+ - 45756840
77
+ - 45756841
78
+ - 45756842
79
+ - 100000062
80
+ - 100011039
81
+ - 100011036
82
+ :carrier_claim_primary_or_first:
83
+ - 45756835
84
+ - 45756843
85
+ - 45756900
86
+ :claim:
87
+ - 45756835
88
+ - 45756836
89
+ - 45756837
90
+ - 45756838
91
+ - 45756839
92
+ - 45756840
93
+ - 45756841
94
+ - 45756842
95
+ - 45756843
96
+ - 45756844
97
+ - 45756845
98
+ - 45756846
99
+ - 45756847
100
+ - 45756848
101
+ - 45756849
102
+ - 45756850
103
+ - 45756851
104
+ - 45756852
105
+ - 45756853
106
+ - 45756854
107
+ - 45756855
108
+ - 38003566
109
+ - 38003567
110
+ - 38003568
111
+ - 44818705
112
+ - 45756900
113
+ - 45756901
114
+ - 45756902
115
+ - 45756903
116
+ - 45756904
117
+ - 45756905
118
+ - 45756906
119
+ - 45756907
120
+ - 45756908
121
+ - 45756909
122
+ - 45756910
123
+ - 45756911
124
+ - 45756912
125
+ - 44818517
126
+ - 100000062
127
+ - 100011039
128
+ - 100011036
129
+ :inpatient:
130
+ - 38000183
131
+ - 38000184
132
+ - 38000185
133
+ - 38000186
134
+ - 38000187
135
+ - 38000188
136
+ - 38000189
137
+ - 38000190
138
+ - 38000191
139
+ - 38000192
140
+ - 38000193
141
+ - 38000194
142
+ - 38000195
143
+ - 38000196
144
+ - 38000197
145
+ - 38000198
146
+ - 38000199
147
+ - 38000200
148
+ - 38000201
149
+ - 38000202
150
+ - 38000203
151
+ - 38000204
152
+ - 38000205
153
+ - 38000206
154
+ - 38000207
155
+ - 38000208
156
+ - 38000209
157
+ - 38000210
158
+ - 38000211
159
+ - 38000212
160
+ - 38000213
161
+ - 38000214
162
+ - 44818709
163
+ - 44818710
164
+ - 44818711
165
+ - 44818712
166
+ - 44818713
167
+ - 38000248
168
+ - 38000249
169
+ - 38000250
170
+ - 38000251
171
+ - 38000252
172
+ - 38000253
173
+ - 38000254
174
+ - 38000255
175
+ - 38000256
176
+ - 38000257
177
+ - 38000258
178
+ - 38000259
179
+ - 38000260
180
+ - 38000261
181
+ - 38000262
182
+ - 38000263
183
+ - 38000264
184
+ - 38000265
185
+ - 38000180
186
+ - 44814639
187
+ - 100000060
188
+ - 100011032
189
+ - 100011033
190
+ :inpatient_detail:
191
+ - 38000183
192
+ - 38000184
193
+ - 38000185
194
+ - 38000186
195
+ - 38000187
196
+ - 38000188
197
+ - 38000189
198
+ - 38000190
199
+ - 38000191
200
+ - 38000192
201
+ - 38000193
202
+ - 38000194
203
+ - 38000195
204
+ - 38000196
205
+ - 38000197
206
+ - 38000198
207
+ - 44818709
208
+ - 44818710
209
+ - 44818711
210
+ - 44818712
211
+ - 44818713
212
+ - 38000248
213
+ - 38000249
214
+ - 100000060
215
+ - 100011032
216
+ - 100011033
217
+ :inpatient_header:
218
+ - 38000199
219
+ - 38000200
220
+ - 38000201
221
+ - 38000202
222
+ - 38000203
223
+ - 38000204
224
+ - 38000205
225
+ - 38000206
226
+ - 38000207
227
+ - 38000208
228
+ - 38000209
229
+ - 38000210
230
+ - 38000211
231
+ - 38000212
232
+ - 38000213
233
+ - 38000214
234
+ - 38000250
235
+ - 38000251
236
+ - 38000252
237
+ - 38000253
238
+ - 38000254
239
+ - 38000255
240
+ - 38000256
241
+ - 38000257
242
+ - 38000258
243
+ - 38000259
244
+ - 38000260
245
+ - 38000261
246
+ - 38000262
247
+ - 38000263
248
+ - 38000264
249
+ - 38000265
250
+ - 100000060
251
+ - 100011032
252
+ - 100011033
253
+ :inpatient_primary:
254
+ - 38000183
255
+ - 38000199
256
+ - 38000248
257
+ - 38000250
258
+ - 100000060
259
+ - 100011032
260
+ - 100011033
261
+ :inpatient_primary_or_first:
262
+ - 38000183
263
+ - 38000184
264
+ - 38000199
265
+ - 38000200
266
+ - 38000248
267
+ - 38000249
268
+ - 38000250
269
+ - 38000251
270
+ - 100000060
271
+ - 100011032
272
+ - 100011033
273
+ :outpatient:
274
+ - 38000215
275
+ - 38000216
276
+ - 38000217
277
+ - 38000218
278
+ - 38000219
279
+ - 38000220
280
+ - 38000221
281
+ - 38000222
282
+ - 38000223
283
+ - 38000224
284
+ - 38000225
285
+ - 38000226
286
+ - 38000227
287
+ - 38000228
288
+ - 38000229
289
+ - 38000230
290
+ - 38000231
291
+ - 38000232
292
+ - 38000233
293
+ - 38000234
294
+ - 38000235
295
+ - 38000236
296
+ - 38000237
297
+ - 38000238
298
+ - 38000239
299
+ - 38000240
300
+ - 38000241
301
+ - 38000242
302
+ - 38000243
303
+ - 38000244
304
+ - 38000266
305
+ - 38000267
306
+ - 38000268
307
+ - 38000269
308
+ - 38000270
309
+ - 38000271
310
+ - 38000272
311
+ - 38000273
312
+ - 38000274
313
+ - 45756856
314
+ - 45756857
315
+ - 45756858
316
+ - 45756859
317
+ - 45756860
318
+ - 45756861
319
+ - 45756862
320
+ - 45756863
321
+ - 45756864
322
+ - 45756865
323
+ - 45756866
324
+ - 45756867
325
+ - 45756868
326
+ - 45756869
327
+ - 45756870
328
+ - 45756871
329
+ - 45756872
330
+ - 45756873
331
+ - 45756874
332
+ - 45756875
333
+ - 45756876
334
+ - 45756877
335
+ - 45756878
336
+ - 45756879
337
+ - 45756880
338
+ - 45756881
339
+ - 45756882
340
+ - 45756883
341
+ - 45756884
342
+ - 45756885
343
+ - 45756886
344
+ - 45756887
345
+ - 45756888
346
+ - 45756889
347
+ - 45756890
348
+ - 45756891
349
+ - 45756892
350
+ - 45756893
351
+ - 45756894
352
+ - 45756895
353
+ - 45756896
354
+ - 45756897
355
+ - 45756898
356
+ - 45756899
357
+ - 44814640
358
+ - 100000061
359
+ - 100011031
360
+ - 100011034
361
+ - 100011035
362
+ :outpatient_detail:
363
+ - 38000215
364
+ - 38000216
365
+ - 38000217
366
+ - 38000218
367
+ - 38000219
368
+ - 38000220
369
+ - 38000221
370
+ - 38000222
371
+ - 38000223
372
+ - 38000224
373
+ - 38000225
374
+ - 38000226
375
+ - 38000227
376
+ - 38000228
377
+ - 38000229
378
+ - 38000266
379
+ - 38000267
380
+ - 45756856
381
+ - 45756857
382
+ - 45756858
383
+ - 45756859
384
+ - 45756860
385
+ - 45756861
386
+ - 45756862
387
+ - 45756863
388
+ - 45756864
389
+ - 45756865
390
+ - 45756866
391
+ - 45756867
392
+ - 45756868
393
+ - 45756869
394
+ - 45756870
395
+ - 45756871
396
+ - 45756872
397
+ - 45756873
398
+ - 45756874
399
+ - 45756875
400
+ - 45756876
401
+ - 45756877
402
+ - 45756878
403
+ - 45756879
404
+ - 45756880
405
+ - 45756881
406
+ - 45756882
407
+ - 45756883
408
+ - 45756884
409
+ - 45756885
410
+ - 45756886
411
+ - 45756887
412
+ - 45756888
413
+ - 45756889
414
+ - 45756890
415
+ - 45756891
416
+ - 45756892
417
+ - 45756893
418
+ - 45756894
419
+ - 45756895
420
+ - 45756896
421
+ - 45756897
422
+ - 45756898
423
+ - 45756899
424
+ - 100000061
425
+ - 100011031
426
+ - 100011034
427
+ - 100011035
428
+ :outpatient_header:
429
+ - 38000230
430
+ - 38000231
431
+ - 38000232
432
+ - 38000233
433
+ - 38000234
434
+ - 38000235
435
+ - 38000236
436
+ - 38000237
437
+ - 38000238
438
+ - 38000239
439
+ - 38000240
440
+ - 38000241
441
+ - 38000242
442
+ - 38000243
443
+ - 38000244
444
+ - 38000268
445
+ - 38000269
446
+ - 38000270
447
+ - 38000271
448
+ - 38000272
449
+ - 38000273
450
+ - 38000274
451
+ - 100000061
452
+ - 100011031
453
+ - 100011034
454
+ - 100011035
455
+ :outpatient_primary:
456
+ - 38000266
457
+ - 38000268
458
+ :outpatient_primary_or_first:
459
+ - 38000215
460
+ - 38000230
461
+ - 38000266
462
+ - 38000267
463
+ - 38000268
464
+ - 38000269
465
+ :primary:
466
+ - 38000183
467
+ - 38000199
468
+ - 38000248
469
+ - 38000250
470
+ - 38000266
471
+ - 38000268
472
+ :primary_or_first:
473
+ - 38000183
474
+ - 38000184
475
+ - 38000199
476
+ - 38000200
477
+ - 38000215
478
+ - 38000230
479
+ - 45756835
480
+ - 45756843
481
+ - 38000248
482
+ - 38000249
483
+ - 38000250
484
+ - 38000251
485
+ - 38000266
486
+ - 38000267
487
+ - 38000268
488
+ - 38000269
489
+ - 45756900
data/config/race.yml ADDED
@@ -0,0 +1,50 @@
1
+ 8657:
2
+ - 38003572
3
+ - 38003573
4
+ 8515:
5
+ - 38003574
6
+ - 38003575
7
+ - 38003576
8
+ - 38003577
9
+ - 38003578
10
+ - 38003579
11
+ - 38003580
12
+ - 38003581
13
+ - 38003582
14
+ - 38003583
15
+ - 38003584
16
+ - 38003585
17
+ - 38003586
18
+ - 38003587
19
+ - 38003588
20
+ - 38003589
21
+ - 38003590
22
+ - 38003591
23
+ - 38003592
24
+ - 38003593
25
+ - 38003594
26
+ - 38003595
27
+ - 38003596
28
+ - 38003597
29
+ 8516:
30
+ - 38003598
31
+ - 38003599
32
+ - 38003600
33
+ - 38003601
34
+ - 38003602
35
+ - 38003603
36
+ - 38003604
37
+ - 38003605
38
+ - 38003606
39
+ - 38003607
40
+ - 38003608
41
+ - 38003609
42
+ 8557:
43
+ - 38003610
44
+ - 38003611
45
+ - 38003612
46
+ - 38003613
47
+ 8527:
48
+ - 38003614
49
+ - 38003615
50
+ - 38003616
@@ -0,0 +1,87 @@
1
+ id,omopv4_vocabulary_id,vocabulary_full_name,vocabulary_short_name,domain,hidden,format_regexp,aliases,requires_lexicon
2
+ ADMSRCE,1000000,ADMSRCE,,,,,,
3
+ ADMTYPE,1000001,ADMTYPE,,,,,,
4
+ ATC,21,WHO Anatomic Therapeutic Chemical Classification,WHO ATC,drug_exposure,,"^[ABCDGHJLMNPRSVabcdghjlmnprsv](\d{2}([A-Za-z]{1,2}(\d{2})?)?)?$",,
5
+ BETOS,1000002,BETOS,,,,,,
6
+ Clinical Code Type,1000004,Clinical Code Type,,,,,,
7
+ Concept Class,68,OMOP Concept Class,,,Y,,,
8
+ Condition Type,37,OMOP Condition Occurrence Type,,condition_occurrence,Y,,,
9
+ CPT4,4,Current Procedural Terminology version 4 (AMA),CPT,procedure_occurrence,,"^\w\d{3}\w$",cpt,
10
+ CPT4_HCPCS,,CPT4 and HCPCS merged (OI supplemental),CPT4/HCPCS,procedure_occurrence,,"^\w\d{3}\w$",,Y
11
+ CS_Schema,1000003,CS_Schema,,,,,,
12
+ Currency,65,International Currency Symbol (ISO 4217),,,Y,,,
13
+ Death Type,45,OMOP Death Type,,death,Y,,,
14
+ Device Type,63,OMOP Device Type,,observation,Y,,,
15
+ Domain,59,OMOP Domain,,,Y,,,
16
+ DRG,40,Diagnosis-related group (CMS),DRG,procedure_occurrence,,"^\d{3}$",,
17
+ DrugTextString,26400,Drug Text String,Drug Text String,drug_exposure,,,,
18
+ Drug Type,36,OMOP Drug Exposure Type,,drug_exposure,Y,,,
19
+ DURATION_UNIT,1000005,DURATION_UNIT,,,,,,
20
+ Ethnicity,44,OMOP Ethnicity,,person,Y,,,
21
+ Gemscript,56,,Gemscript,drug_exposure,,"^\d{8}$",,
22
+ Gender,12,OMOP Gender,,person,Y,,,
23
+ HCFASPEC,1000006,HCFASPEC,,,,,,
24
+ HCFATYPE,1000007,HCFATYPE,,,,,,
25
+ HCPCS,5,Healthcare Common Procedure Coding System (CMS),HCPCS,procedure_occurrence,,"^[A-Za-z]\d{4}$",,
26
+ ICD03_Morphology,1000008,ICD03_Morphology,,,,"^\d{4}/\d$",,
27
+ ICD03_Topography,1000009,ICD03_Topography,,,,"^[A-Za-z]\d{2}(\.\d{1,2})?$",,
28
+ ICD10,34,"International Classification of Diseases, Tenth Revision (WHO)",ICD-10 WHO,condition_occurrence,,"^([A-Za-z][0-9][0-9A-Za-z](\.\w{1,4})?|[A-Za-z][0-9][0-9A-Za-z]-[A-Za-z][0-9][0-9A-Za-z]|(?:I|II|III|IV|V|VI|VII|VIII|IX|X|XI|XII|XIII|XIV|XV|XVI|XVII|XVIII|XIX|XX|XXI|XXII))$",,
29
+ ICD10PCS,35,"ICD-10 Procedure Coding System (CMS)",ICD-10 PCS,procedure_occurrence,,"^[0-9BCDFGHX][0-9A-HJ-NP-Z]{6}$",icd10_pcs,
30
+ ICD10CM,70,"International Classification of Diseases, Tenth Revision, Clinical Modification (NCHS)",ICD-10 CM,condition_occurrence,,"^(?:QA[0-9]|[A-Za-z][0-9][0-9ABab])(\.[0-9A-Za-z]{1,4})?$",,
31
+ ICD9CM,2,"International Classification of Diseases, Ninth Revision, Clinical Modification, Volume 1 and 2 (NCHS)",ICD-9 CM,condition_occurrence,,"^(V\d{2}(\.\d{1,2})?|\d{3}(\.\d{1,2})?|E\d{3}(\.\d)?)$",icd9,
32
+ ICD9Proc,3,"International Classification of Diseases, Ninth Revision, Clinical Modification, Volume 3 (NCHS)",ICD-9 Proc,procedure_occurrence,,"^\d{2}(\.\d{1,2})?$",icd9_procedure,
33
+ LOINC,6,Logical Observation Identifiers Names and Codes (Regenstrief Institute),,observation,,"^\w{3,7}-\w$",,
34
+ GDM_CEN_TRACT_MEAS,0,Census Tract Measures from SEER,,observation,,,,
35
+ SEER_YOST_ACS_06_10,0,SEER's Yost Index calculated from ACS 2006-2010,,observation,,,,
36
+ SEER_YOST_ACS_10_14,0,SEER's Yost Index calculated from ACS 2010-2014,,observation,,,,
37
+ SEER_YOST_ACS_13_17,0,SEER's Yost Index calculated from ACS 2013-2017,,observation,,,,
38
+ MARCLA_OBS_TYPE,0,Market Clarity Observation Type,,observation,,,,
39
+ Meas Type,64,OMOP Measurement Type,,observation,Y,,,
40
+ NDC,9,National Drug Code (FDA and manufacturers),,drug_exposure,,"^(\d{5}\w{4}|\d{5}\w{6})$",,
41
+ Note Type,58,OMOP Note Type,,,Y,,,
42
+ NUCC,47,National Uniform Claim Committee Health Care Provider Taxonomy Code Set (NUCC),,,Y,,,
43
+ Observation Type,39,OMOP Observation Type,,observation,Y,,,
44
+ Obs Period Type,61,OMOP Observation Period Type,,observation_period,Y,,,
45
+ OI_FILE_TYPE,1000010,OI_FILE_TYPE,,,,,,
46
+ OI_INFORMATION_TYPE,1000011,OI_INFORMATION_TYPE,,,,,,
47
+ OI_PROV,1000012,OI_PROV,,,,,,
48
+ Place of Service,14,Place of Service Codes for Professional Claims (CMS),,visit_occurrence,Y,,,
49
+ PLCSRVC,1000013,PLCSRVC,,,,,,
50
+ Procedure Type,38,OMOP Procedure Occurrence Type,,procedure_occurrence,Y,,,
51
+ PROVIDER_FACILITY_TYPE,1000014,PROVIDER_FACILITY_TYPE,,,,,,
52
+ Race,13,Race and Ethnicity Code Set (USBC),,person,Y,,,
53
+ Relationship,66,OMOP Relationship,,,Y,,,
54
+ Revenue Code,43,UB04/CMS1450 Revenue Codes (CMS),Revenue Code,procedure_occurrence,,,revenue_code,
55
+ RxNorm,8,RxNorm (NLM),,drug_exposure,,"^\d{2,8}$",,
56
+ SEER_ADJAJC6M,1000015,SEER_ADJAJC6M,,,,,,
57
+ SEER_ADJAJC6N,1000016,SEER_ADJAJC6N,,,,,,
58
+ SEER_ADJAJC6T,1000017,SEER_ADJAJC6T,,,,,,
59
+ SEER_BEH,1000018,SEER_BEH,,,,,,
60
+ SEER_CENSUS_POV_IND,1000019,SEER_CENSUS_POV_IND,,,,,,
61
+ SEER_DAJCC7,1000020,SEER_DAJCC7,,,,,,
62
+ SEER_DAJCCSTG,1000021,SEER_DAJCCSTG,,,,,,
63
+ SEER_DXCONF,1000022,SEER_DXCONF,,,,,,
64
+ SEER_GRADE,1000023,SEER_GRADE,,,,,,
65
+ SEER_LAT,1000024,SEER_LAT,,,,,,
66
+ SEER_MARST,1000025,SEER_MARST,,,,,,
67
+ SEER_MSEX,1000026,SEER_MSEX,,,,,,
68
+ SEER_NHIADE,1000027,SEER_NHIADE,,,,,,
69
+ SEER_NOSRG,1000028,SEER_NOSRG,,,,,,
70
+ SEER_RAD,1000029,SEER_RAD,,,,,,
71
+ SEER_RADSURG,1000030,SEER_RADSURG,,,,,,
72
+ SEER_SEQ,1000031,SEER_SEQ,,,,,,
73
+ SEER_SITERWHO,1000032,SEER_SITERWHO,,,,,,
74
+ SEER_SRACE,1000033,SEER_SRACE,,,,,,
75
+ SEER_SRC,1000034,SEER_SRC,,,,,,
76
+ SEER_SXPRIF,1000035,SEER_SXPRIF,,,,,,
77
+ SEER_SXSITF,1000036,SEER_SXSITF,,,,,,
78
+ SEER_TYPEFU,1000037,SEER_TYPEFU,,,,,,
79
+ SEER_URBRUR,1000038,SEER_URBRUR,,,,,,
80
+ SNOMED,1,SNOMED-CT,SNOMED-CT,condition_occurrence,,"^\d{6,18}$",,
81
+ Specialty,48,Medicare provider/supplier specialty codes (CMS),,provider,Y,,,
82
+ STUS_CD,1000039,STUS_CD,,,,,,
83
+ TYPESRVC,1000040,TYPESRVC,,,,,,
84
+ UCUM,11,Unified Code for Units of Measure (Regenstrief Institute),,,Y,,,
85
+ Visit,24,OMOP Visit,,visit_occurrence,Y,,,
86
+ Visit Type,62,OMOP Visit Type,,visit_occurrence,Y,,,
87
+ Vocabulary,67,OMOP Vocabulary,,,Y,,,
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ConceptQL
4
+ module Behaviors
5
+ module CodeLister
6
+ ConceptCode = Struct.new(:vocabulary, :code, :description) do
7
+ def to_s
8
+ if description
9
+ "#{vocabulary} #{code}: #{description}"
10
+ else
11
+ "#{vocabulary} #{code}"
12
+ end
13
+ end
14
+ end
15
+
16
+ def code_list(db)
17
+ describe_codes(db, arguments).map do |code, desc|
18
+ ConceptCode.new(preferred_name, code, desc)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ConceptQL
4
+ module Behaviors
5
+ module Drugish
6
+ def self.included(base)
7
+ base.define_method(:column_family) { "drug" }
8
+ base.require_column(:drug_name)
9
+ base.require_column(:drug_amount)
10
+ base.require_column(:drug_amount_units)
11
+ base.require_column(:drug_quantity)
12
+ base.require_column(:drug_strength_source_value)
13
+ base.require_column(:drug_days_supply)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ConceptQL
4
+ module Behaviors
5
+ module Labish
6
+ def self.included(base)
7
+ base.define_method(:column_family) { "lab" }
8
+ base.require_column :value_as_number
9
+ base.require_column :value_as_string
10
+ base.require_column :value_as_concept_id
11
+ base.require_column :value_as_concept
12
+ base.require_column :unit_concept_id
13
+ base.require_column :unit_concept
14
+ base.require_column :range_low
15
+ base.require_column :range_high
16
+ end
17
+ end
18
+ end
19
+ end