forked from rohankhera/mimic-omop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
check_etl.sql
185 lines (169 loc) · 3.26 KB
/
check_etl.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
-- -----------------------------------------------------------------------------
-- File created - January-9-2018
-- ----------------------------------------------------------------------------
-- --------------------------------------------------
-- Need to install pgTAP
-- http://pgtap.org/
-- --------------------------------------------------
BEGIN;
SELECT plan ( 10 );
SELECT results_eq
(
'
SELECT CAST(value_as_string AS TEXT) as religion
, COUNT(1)
FROM omop.observation
WHERE observation_concept_id = 4052017
GROUP BY 1
ORDER BY 2, 1 DESC;
'
,
'
SELECT cast(religion as text), count(1)
FROM admissions
WHERE religion is not null
and religion != ''OTHER'' and religion != ''NOT SPECIFIED'' and religion != ''UNOBTAINABLE''
GROUP BY 1
ORDER BY 2, 1 desc;
'
,'OBSERVATION -- religion distribution matches (concept 4052017)'
);
SELECT results_eq
(
'
SELECT CAST(value_as_string AS TEXT) as language
, COUNT(1)
FROM omop.observation
WHERE observation_concept_id = 40758030
GROUP BY 1 ORDER BY 2, 1 DESC;
'
,
'
SELECT cast(language as TEXT), count(1)
FROM admissions
WHERE language is not null
GROUP BY 1 ORDER BY 2, 1 desc;
'
,'OBSERVATION -- language distribution matches (concept 40758030)'
);
SELECT results_eq
(
'
SELECT CAST(value_as_string AS TEXT) as marital_status
, COUNT(1)
FROM omop.observation
WHERE observation_concept_id = 40766231
GROUP BY 1 ORDER BY 2, 1 DESC;
'
,
'
SELECT CAST(marital_status AS TEXT), count(1)
FROM admissions
WHERE marital_status is not null
GROUP BY 1 ORDER BY 2, 1 desc;
'
,'OBSERVATION -- marital distribution matches (concept 40766231)'
);
SELECT results_eq
(
'
SELECT CAST(value_as_string AS TEXT) as insurance
, COUNT(1)
FROM omop.observation
WHERE observation_concept_id = 46235654
GROUP BY 1 ORDER BY 2, 1 DESC;
'
,
'
SELECT CAST(insurance AS TEXT), count(1)
FROM admissions
WHERE insurance is not null
GROUP BY 1 ORDER BY 2, 1 desc;
'
,'OBSERVATION -- insurance distribution matches (concept 46235654)'
);
SELECT results_eq
(
'
SELECT CAST(value_as_string AS TEXT) as ethnicity
, COUNT(1)
FROM omop.observation
WHERE observation_concept_id = 44803968
GROUP BY 1 ORDER BY 2, 1 DESC;
'
,
'
SELECT CAST(ethnicity AS TEXT), count(1)
FROM admissions
WHERE ethnicity is not null
GROUP BY 1 ORDER BY 2, 1 desc;
'
,'OBSERVATION -- ethnicity distribution matches (concept 44803968)'
);
SELECT results_eq
(
'
SELECT 0::INTEGER;
'
,
'
SELECT count(1)::integer
FROM omop.observation
where observation_source_concept_id = 0;
'
,
'OBSERVATION -- source concept described'
);
SELECT results_eq
(
'
select count(1)::integer
from
(
SELECT count(1)::integer
FROM omop.observation
group by observation_id
having count(1) > 1
) as t;
'
,
'
SELECT 0::INTEGER;
'
,
'OBSERVATION -- primary key is always unique'
);
SELECT results_eq
(
'
select count(1)::integer
from omop.observation
where observation_concept_id = 4085802;
'
,
'
select count(1)::integer
from datetimeevents
where error is null OR error = 0;
'
,
'OBSERVATION -- datetimeevents number'
);
SELECT results_eq
(
'
SELECT count(1)::integer
FROM omop.observation
LEFT JOIN omop.concept ON observation_concept_id = concept_id
WHERE observation_concept_id != 0
AND standard_concept != ''S'';
'
,
'
SELECT 0::INTEGER;
'
,
'OBSERVATION -- Standard concept checker'
);
SELECT * FROM finish();
ROLLBACK;