Skip to content

Commit f395715

Browse files
committed
feat: Add mimic-iv-note (v2.2) loading of postgres
1 parent 5dc6117 commit f395715

File tree

3 files changed

+96
-0
lines changed

3 files changed

+96
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Load MIMIC-IV-Note into a PostgreSQL database
2+
3+
The scripts in this folder create the schema for MIMIC-IV-Note and load the data into the appropriate tables for PostgreSQL v10+.
4+
5+
## Quickstart
6+
7+
```sh
8+
# clone repo
9+
git clone https://github.com/MIT-LCP/mimic-code.git
10+
cd mimic-code
11+
# download data
12+
wget -r -N -c -np --user <USERNAME> --ask-password https://physionet.org/files/mimiciv/2.2/
13+
mv physionet.org/files/mimiciv mimiciv && rmdir physionet.org/files && rm physionet.org/robots.txt && rmdir physionet.org
14+
# if mimiciv not exists
15+
# createdb mimiciv
16+
psql -d mimiciv -f mimic-iv-note/buildmimic/postgres/create.sql
17+
psql -d mimiciv -v ON_ERROR_STOP=1 -v mimic_data_dir=mimiciv/2.2 -f mimic-iv-note/buildmimic/postgres/load_gz.sql
18+
```
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
-------------------------------------------
2+
-- Create the tables and MIMIC-IV-Note schema --
3+
-------------------------------------------
4+
5+
----------------------
6+
-- Creating schemas --
7+
----------------------
8+
9+
DROP SCHEMA IF EXISTS mimiciv_note CASCADE;
10+
CREATE SCHEMA mimiciv_note;
11+
12+
---------------------
13+
-- Creating tables --
14+
---------------------
15+
16+
-- schema
17+
18+
DROP TABLE IF EXISTS mimiciv_note.discharge;
19+
CREATE TABLE mimiciv_note.discharge
20+
(
21+
note_id VARCHAR(25) NOT NULL,
22+
subject_id INTEGER NOT NULL,
23+
hadm_id INTEGER NOT NULL,
24+
note_type CHAR(2) NOT NULL,
25+
note_seq INTEGER NOT NULL,
26+
charttime TIMESTAMP NOT NULL,
27+
storetime TIMESTAMP,
28+
text TEXT NOT NULL
29+
);
30+
31+
DROP TABLE IF EXISTS mimiciv_note.radiology;
32+
CREATE TABLE mimiciv_note.radiology
33+
(
34+
note_id VARCHAR(25) NOT NULL,
35+
subject_id INTEGER NOT NULL,
36+
hadm_id INTEGER,
37+
note_type CHAR(2) NOT NULL,
38+
note_seq INTEGER NOT NULL,
39+
charttime TIMESTAMP NOT NULL,
40+
storetime TIMESTAMP,
41+
text TEXT NOT NULL
42+
);
43+
44+
DROP TABLE IF EXISTS mimiciv_note.discharge_detail;
45+
CREATE TABLE mimiciv_note.discharge_detail
46+
(
47+
note_id VARCHAR(25) NOT NULL,
48+
subject_id INTEGER NOT NULL,
49+
field_name VARCHAR(255) NOT NULL,
50+
field_value TEXT NOT NULL,
51+
field_ordinal INTEGER NOT NULL
52+
);
53+
54+
55+
DROP TABLE IF EXISTS mimiciv_note.radiology_detail;
56+
CREATE TABLE mimiciv_note.radiology_detail
57+
(
58+
note_id VARCHAR(25) NOT NULL,
59+
subject_id INTEGER NOT NULL,
60+
field_name VARCHAR(255) NOT NULL,
61+
field_value TEXT NOT NULL,
62+
field_ordinal INTEGER NOT NULL
63+
);
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
-----------------------------------------
2+
-- Load data into the MIMIC-IV-Note schemas --
3+
-----------------------------------------
4+
5+
-- To run from a terminal:
6+
-- psql "dbname=<DBNAME> user=<USER>" -v mimic_data_dir=<PATH TO DATA DIR> -f load_gz.sql
7+
\cd :mimic_data_dir
8+
9+
-- making sure that all tables are emtpy and correct encoding is defined -utf8-
10+
SET CLIENT_ENCODING TO 'utf8';
11+
12+
\COPY mimiciv_note.discharge FROM PROGRAM 'gzip -dc discharge.csv.gz' DELIMITER ',' CSV HEADER NULL '';
13+
\COPY mimiciv_note.radiology FROM PROGRAM 'gzip -dc radiology.csv.gz' DELIMITER ',' CSV HEADER NULL '';
14+
\COPY mimiciv_note.discharge_detail FROM PROGRAM 'gzip -dc discharge_detail.csv.gz' DELIMITER ',' CSV HEADER NULL '';
15+
\COPY mimiciv_note.radiology_detail FROM PROGRAM 'gzip -dc radiology_detail.csv.gz' DELIMITER ',' CSV HEADER NULL '';

0 commit comments

Comments
 (0)