-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add initial migration script to include TCR tables & custom query tab…
…les (#2462) * add initial migration script to include TCR tables & cutom query tables * update query columns to be correct ones * create primary and foreign key indexes
- Loading branch information
Showing
1 changed file
with
107 additions
and
0 deletions.
There are no files selected for viewing
107 changes: 107 additions & 0 deletions
107
containers/tefca-viewer/migrations/V01_01__tcr_custom_query_schema.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
BEGIN; | ||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; | ||
|
||
CREATE TABLE IF NOT EXISTS conditions ( | ||
id TEXT PRIMARY KEY, | ||
system TEXT, | ||
name TEXT, | ||
version TEXT | ||
); | ||
|
||
CREATE TABLE IF NOT EXISTS valuesets ( | ||
id TEXT PRIMARY KEY, | ||
oid TEXT, | ||
version TEXT, | ||
name TEXT, | ||
author TEXT, | ||
type TEXT | ||
); | ||
|
||
CREATE TABLE IF NOT EXISTS concepts ( | ||
id TEXT PRIMARY KEY, | ||
code TEXT, | ||
code_system TEXT, | ||
display TEXT, | ||
gem_formatted_code TEXT, | ||
version TEXT | ||
); | ||
|
||
CREATE TABLE IF NOT EXISTS condition_to_valueset ( | ||
id TEXT PRIMARY KEY, | ||
condition_id TEXT, | ||
valueset_id TEXT, | ||
source TEXT, | ||
FOREIGN KEY (condition_id) REFERENCES conditions(id), | ||
FOREIGN KEY (valueset_id) REFERENCES valuesets(id) | ||
); | ||
|
||
CREATE TABLE IF NOT EXISTS valueset_to_concept ( | ||
id TEXT PRIMARY KEY, | ||
valueset_id TEXT, | ||
concept_id TEXT, | ||
FOREIGN KEY (valueset_id) REFERENCES valuesets(id), | ||
FOREIGN KEY (concept_id) REFERENCES concepts(id) | ||
); | ||
|
||
CREATE TABLE IF NOT EXISTS icd_crosswalk ( | ||
id TEXT PRIMARY KEY, | ||
icd10_code TEXT, | ||
icd9_code TEXT, | ||
match_flags TEXT); | ||
|
||
|
||
CREATE TABLE IF NOT EXISTS query ( | ||
id UUID DEFAULT uuid_generate_v4 (), | ||
author VARCHAR(255), | ||
date_created TIMESTAMP, | ||
date_last_modified TIMESTAMP, | ||
time_window_number INT, | ||
time_window_unit VARCHAR(80), | ||
PRIMARY KEY (id)); | ||
|
||
CREATE TABLE IF NOT EXISTS query_to_valueset ( | ||
id TEXT PRIMARY KEY, | ||
query_id UUID, | ||
valueset_id TEXT, | ||
FOREIGN KEY (query_id) REFERENCES query(query_id), | ||
FOREIGN KEY (valueset_id) REFERENCES valuesets(id) | ||
); | ||
|
||
CREATE TABLE IF NOT EXISTS query_included_concepts ( | ||
id TEXT PRIMARY KEY, | ||
query_by_valueset_id TEXT, | ||
concept_id TEXT, | ||
include BOOLEAN, | ||
FOREIGN KEY (query_by_valueset_id) REFERENCES query_to_valueset(id), | ||
FOREIGN KEY (concept_id) REFERENCES concepts(id) | ||
); | ||
|
||
-- Create indexes for all primary and foreign keys | ||
|
||
CREATE INDEX IF NOT EXISTS conditions_id_index ON conditions (id); | ||
|
||
CREATE INDEX IF NOT EXISTS valuesets_id_index ON valuesets (id); | ||
|
||
CREATE INDEX IF NOT EXISTS concepts_id_index ON concepts (id); | ||
|
||
CREATE INDEX IF NOT EXISTS condition_to_valueset_id_index ON condition_to_valueset (id); | ||
CREATE INDEX IF NOT EXISTS condition_to_valueset_condition_id_index ON condition_to_valueset (condition_id); | ||
CREATE INDEX IF NOT EXISTS condition_to_valueset_valueset_id_index ON condition_to_valueset (valueset_id); | ||
|
||
CREATE INDEX IF NOT EXISTS valueset_to_concept_id_index ON valueset_to_concept (id); | ||
CREATE INDEX IF NOT EXISTS valueset_to_concept_valueset_id_index ON valueset_to_concept (valueset_id); | ||
CREATE INDEX IF NOT EXISTS valueset_to_concept_concept_id_index ON valueset_to_concept (concept_id); | ||
|
||
CREATE INDEX IF NOT EXISTS icd_crosswalk_id_index ON icd_crosswalk (id); | ||
|
||
CREATE INDEX IF NOT EXISTS query_id_index ON query (id); | ||
|
||
CREATE INDEX IF NOT EXISTS query_to_valueset_id_index ON query_to_valueset (id); | ||
CREATE INDEX IF NOT EXISTS query_to_valueset_query_id_index ON query_to_valueset (query_id); | ||
CREATE INDEX IF NOT EXISTS query_to_valueset_valueset_id_index ON query_to_valueset (valueset_id); | ||
|
||
CREATE INDEX IF NOT EXISTS query_included_concepts_id_index ON query_included_concepts (id); | ||
CREATE INDEX IF NOT EXISTS query_included_concepts_query_by_valueset_id_index ON query_included_concepts (query_by_valueset_id); | ||
CREATE INDEX IF NOT EXISTS query_included_concepts_concept_id_index ON query_included_concepts (concept_id); | ||
|
||
COMMIT; |