Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
INSERT INTO webapi.sec_permission(id, value, description)
VALUES
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'tag:get', 'List tags'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'tag:search:get', 'Search tags by name'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'tag:post', 'Create tag'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'tag:*:put', 'Update tag'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'tag:*:get', 'Get tag'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'tag:*:delete', 'Delete tag'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'cohortdefinition:*:tag:post', 'Assign tag to cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'cohortdefinition:*:tag:*:delete', 'Unassign tag from cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'cohortdefinition:*:protectedtag:post','Assign tag to cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'cohortdefinition:*:protectedtag:*:delete','Unassign tag from cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'conceptset:*:tag:post','Assign tag to cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'conceptset:*:tag:*:delete','Unassign tag from cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'conceptset:*:protectedtag:post','Assign tag to cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'conceptset:*:protectedtag:*:delete','Unassign tag from cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'conceptset:check:post','Unassign tag from cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'cohort-characterization:*:tag:post','Assign tag to cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'cohort-characterization:*:tag:*:delete','Unassign tag from cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'cohort-characterization:*:protectedtag:post','Assign tag to cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'cohort-characterization:*:protectedtag:*:delete','Unassign tag from cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'ir:*:tag:post','Assign tag to cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'ir:*:tag:*:delete','Unassign tag from cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'ir:*:protectedtag:post','Assign tag to cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'ir:*:protectedtag:*:delete','Unassign tag from cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'pathway-analysis:*:tag:post','Assign tag to cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'pathway-analysis:*:tag:*:delete','Unassign tag from cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'pathway-analysis:*:protectedtag:post','Assign tag to cohort definition'),
(NEXT VALUE FOR webapi.sec_permission_id_seq, 'pathway-analysis:*:protectedtag:*:delete','Unassign tag from cohort definition')
;


INSERT INTO webapi.sec_role_permission(role_id, permission_id)
SELECT sr.id, sp.id
FROM webapi.sec_permission sp,
webapi.sec_role sr
WHERE sp.value IN (
'tag:get',
'tag:search:get',
'tag:post',
'tag:*:put',
'tag:*:get',
'tag:*:delete',
'cohortdefinition:*:tag:post',
'cohortdefinition:*:tag:*:delete',
'conceptset:*:tag:post',
'conceptset:*:tag:*:delete',
'conceptset:check:post',
'cohort-characterization:*:tag:post',
'cohort-characterization:*:tag:*:delete',
'ir:*:tag:post',
'ir:*:tag:*:delete',
'pathway-analysis:*:tag:post',
'pathway-analysis:*:tag:*:delete')
AND sr.name IN ('Atlas users');

INSERT INTO webapi.sec_role_permission(role_id, permission_id)
SELECT sr.id, sp.id
FROM webapi.sec_permission sp,
webapi.sec_role sr
WHERE sp.value IN (
'cohortdefinition:*:protectedtag:post',
'cohortdefinition:*:protectedtag:*:delete',
'conceptset:*:protectedtag:post',
'conceptset:*:protectedtag:*:delete',
'cohort-characterization:*:protectedtag:post',
'cohort-characterization:*:protectedtag:*:delete',
'ir:*:protectedtag:post',
'ir:*:protectedtag:*:delete',
'pathway-analysis:*:protectedtag:post',
'pathway-analysis:*:protectedtag:*:delete')
AND sr.name IN ('admin');


CREATE SEQUENCE webapi.tags_seq;

-- Possible types are:
-- 0 - System (predefined) tags
-- 1 - Custom tags
-- 2 - Prizm tags
CREATE TABLE webapi.tags
(
id INTEGER DEFAULT NEXT VALUE FOR webapi.tags_seq,
name VARCHAR(50) NOT NULL,
type INT NOT NULL DEFAULT 0,
count INT NOT NULL DEFAULT 0,
show_group BIT NOT NULL DEFAULT 0,
icon VARCHAR(MAX) NULL,
color VARCHAR(MAX) NULL,
multi_selection BIT NOT NULL DEFAULT 0,
permission_protected BIT NOT NULL DEFAULT 0,
mandatory BIT NOT NULL DEFAULT 0,
allow_custom BIT NOT NULL DEFAULT 0,
description VARCHAR(MAX) NULL,
created_by_id INTEGER,
created_date DATETIME NOT NULL DEFAULT SYSDATETIMEOFFSET(),
modified_by_id INTEGER,
modified_date TIMESTAMP,
CONSTRAINT pk_tags_id PRIMARY KEY (id),
CONSTRAINT fk_tags_sec_user_creator FOREIGN KEY (created_by_id) REFERENCES webapi.sec_user (id),
CONSTRAINT fk_tags_sec_user_updater FOREIGN KEY (modified_by_id) REFERENCES webapi.sec_user (id)
);

CREATE UNIQUE INDEX tags_name_idx ON webapi.tags (name);

CREATE TABLE webapi.tag_groups
(
tag_id INT NOT NULL,
group_id INT NOT NULL,
CONSTRAINT tag_groups_group_fk FOREIGN KEY (group_id) REFERENCES webapi.tags (id) ON DELETE CASCADE,
CONSTRAINT tag_groups_tag_fk FOREIGN KEY (tag_id) REFERENCES webapi.tags (id) ON DELETE CASCADE
);

CREATE TABLE webapi.concept_set_tags
(
asset_id INT NOT NULL,
tag_id INT NOT NULL,
CONSTRAINT pk_concept_set_tags_id PRIMARY KEY (asset_id, tag_id),
CONSTRAINT concept_set_tags_fk_sets FOREIGN KEY (asset_id) REFERENCES webapi.concept_set (concept_set_id) ON DELETE NO ACTION, --CHANGE ON DELETE ACTION BECAUSE OF ERROR
CONSTRAINT concept_set_tags_fk_tags FOREIGN KEY (tag_id) REFERENCES webapi.tags (id) ON DELETE CASCADE
);

CREATE INDEX concept_set_tags_concept_id_idx ON webapi.concept_set_tags (asset_id);
CREATE INDEX concept_set_tags_tag_id_idx ON webapi.concept_set_tags (tag_id);

CREATE TABLE webapi.cohort_tags
(
asset_id INT NOT NULL,
tag_id INT NOT NULL,
CONSTRAINT pk_cohort_tags_id PRIMARY KEY (asset_id, tag_id),
CONSTRAINT cohort_tags_fk_definitions FOREIGN KEY (asset_id) REFERENCES webapi.cohort_definition (id) ON DELETE CASCADE,
CONSTRAINT cohort_tags_fk_tags FOREIGN KEY (tag_id) REFERENCES webapi.tags (id) ON DELETE CASCADE
);

CREATE INDEX cohort_tags_cohort_id_idx ON webapi.cohort_tags (asset_id);
CREATE INDEX cohort_tags_tag_id_idx ON webapi.cohort_tags (tag_id);

CREATE TABLE webapi.cohort_characterization_tags
(
asset_id bigint NOT NULL,
tag_id INT NOT NULL,
CONSTRAINT pk_cc_tags_id PRIMARY KEY (asset_id, tag_id),
CONSTRAINT cc_tags_fk_ccs FOREIGN KEY (asset_id) REFERENCES webapi.cohort_characterization (id) ON DELETE CASCADE,
CONSTRAINT cc_tags_fk_tags FOREIGN KEY (tag_id) REFERENCES webapi.tags (id) ON DELETE CASCADE
);

CREATE INDEX cc_tags_cc_id_idx ON webapi.cohort_characterization_tags (asset_id);
CREATE INDEX cc_tags_tag_id_idx ON webapi.cohort_characterization_tags (tag_id);

CREATE TABLE webapi.ir_tags
(
asset_id INT NOT NULL,
tag_id INT NOT NULL,
CONSTRAINT pk_ir_tags_id PRIMARY KEY (asset_id, tag_id),
CONSTRAINT ir_tags_fk_irs FOREIGN KEY (asset_id) REFERENCES webapi.ir_analysis (id) ON DELETE CASCADE,
CONSTRAINT ir_tags_fk_tags FOREIGN KEY (tag_id) REFERENCES webapi.tags (id) ON DELETE CASCADE
);

CREATE INDEX ir_tags_ir_id_idx ON webapi.ir_tags (asset_id);
CREATE INDEX ir_tags_tag_id_idx ON webapi.ir_tags (tag_id);

CREATE TABLE webapi.pathway_tags
(
asset_id INT NOT NULL,
tag_id INT NOT NULL,
CONSTRAINT pk_pathway_tags_id PRIMARY KEY (asset_id, tag_id),
CONSTRAINT pathway_tags_fk_irs FOREIGN KEY (asset_id) REFERENCES webapi.pathway_analysis (id) ON DELETE CASCADE,
CONSTRAINT pathway_tags_fk_tags FOREIGN KEY (tag_id) REFERENCES webapi.tags (id) ON DELETE CASCADE
);

CREATE INDEX pathway_tags_pathway_id_idx ON webapi.pathway_tags (asset_id);
CREATE INDEX pathway_tags_tag_id_idx ON webapi.pathway_tags (tag_id);
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
INSERT INTO webapi.sec_permission(id, value, description)
VALUES
(NEXT VALUE for webapi.sec_permission_id_seq, 'cohortdefinition:*:version:get','Get list of cohort versions'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'cohortdefinition:*:version:*:get','Get cohort version'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'cohortdefinition:*:version:*:put','Update cohort version info'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'cohortdefinition:*:version:*:delete','Delete cohort version info'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'cohortdefinition:*:version:*:createAsset:put','Copy cohort version as new cohort'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'conceptset:*:version:get','Get list of concept set versions'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'conceptset:*:version:*:get','Get concept set version'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'conceptset:*:version:*:put','Update concept set version info'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'conceptset:*:version:*:delete','Delete concept set version info'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'conceptset:*:version:*:createAsset:put','Copy concept set version as new concept set'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'conceptset:*:version:*:expression:get','Get expression for concept set items for default source'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'conceptset:*:version:*:expression:*:get','Get expression for concept set items for certain source'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'cohort-characterization:*:version:get','Get list of characterization versions'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'cohort-characterization:*:version:*:get','Get characterization version'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'cohort-characterization:*:version:*:put','Update characterization version info'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'cohort-characterization:*:version:*:delete','Delete characterization version info'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'cohort-characterization:*:version:*:createAsset:put','Copy characterization version as new cohort'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'ir:*:version:get','Get list of incidence rate analysis versions'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'ir:*:version:*:get','Get incidence rate analysis version'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'ir:*:version:*:put','Update incidence rate analysis version info'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'ir:*:version:*:delete','Delete incidence rate analysis version info'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'ir:*:version:*:createAsset:put','Copy incidence rate analysis version as new cohort'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'pathway-analysis:*:version:get','Get list of pathway analysis versions'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'pathway-analysis:*:version:*:get','Get pathway analysis version'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'pathway-analysis:*:version:*:put','Update pathway analysis version info'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'pathway-analysis:*:version:*:delete','Delete pathway analysis version info'),
(NEXT VALUE for webapi.sec_permission_id_seq, 'pathway-analysis:*:version:*:createAsset:put','Copy pathway analysis version as new cohort');

INSERT INTO webapi.sec_role_permission(role_id, permission_id)
SELECT sr.id, sp.id
FROM webapi.sec_permission SP,
webapi.sec_role sr
WHERE sp.value IN (
'cohortdefinition:*:version:get',
'cohortdefinition:*:version:*:get',
'cohortdefinition:*:version:*:put',
'cohortdefinition:*:version:*:delete',
'cohortdefinition:*:version:*:createAsset:put',
'conceptset:*:version:get',
'conceptset:*:version:*:get',
'conceptset:*:version:*:put',
'conceptset:*:version:*:delete',
'conceptset:*:version:*:createAsset:put',
'conceptset:*:version:*:expression:get',
'conceptset:*:version:*:expression:*:get',
'cohort-characterization:*:version:get',
'cohort-characterization:*:version:*:get',
'cohort-characterization:*:version:*:put',
'cohort-characterization:*:version:*:delete',
'cohort-characterization:*:version:*:createAsset:put',
'ir:*:version:get',
'ir:*:version:*:get',
'ir:*:version:*:put',
'ir:*:version:*:delete',
'ir:*:version:*:createAsset:put',
'pathway-analysis:*:version:get',
'pathway-analysis:*:version:*:get',
'pathway-analysis:*:version:*:put',
'pathway-analysis:*:version:*:delete',
'pathway-analysis:*:version:*:createAsset:put')
AND sr.name IN ('Atlas users');

-- Cohorts
CREATE TABLE webapi.cohort_version
(
asset_id INT NOT NULL,
comment varchar NULL,
description varchar NULL,
version INT NOT NULL DEFAULT 1,
asset_json varchar NOT NULL,
archived BIT NOT NULL DEFAULT 0,
created_by_id INTEGER,
created_date DATETIME NOT NULL DEFAULT (SYSDATETIMEOFFSET()),
CONSTRAINT pk_cohort_version_id PRIMARY KEY (asset_id, version),
CONSTRAINT fk_cohort_version_sec_user_creator FOREIGN KEY (created_by_id) REFERENCES webapi.sec_user (id),
CONSTRAINT fk_cohort_version_asset_id FOREIGN KEY (asset_id) REFERENCES webapi.cohort_definition (id) ON DELETE CASCADE
);

CREATE INDEX cohort_version_asset_idx ON webapi.cohort_version (asset_id);

-- Cohort characterizations
CREATE TABLE webapi.cohort_characterization_version
(
asset_id bigint NOT NULL,
comment varchar NULL,
version INT NOT NULL DEFAULT 1,
asset_json varchar NOT NULL,
archived BIT NOT NULL DEFAULT 0,
created_by_id INTEGER,
created_date DATETIME NOT NULL DEFAULT (SYSDATETIMEOFFSET()),
CONSTRAINT pk_cc_version_id PRIMARY KEY (asset_id, version),
CONSTRAINT fk_cc_version_sec_user_creator FOREIGN KEY (created_by_id) REFERENCES webapi.sec_user (id),
CONSTRAINT fk_cc_version_asset_id FOREIGN KEY (asset_id) REFERENCES webapi.cohort_characterization (id) ON DELETE CASCADE
);

CREATE INDEX cc_version_asset_idx ON webapi.cohort_characterization_version (asset_id);

-- Concept sets
CREATE TABLE webapi.concept_set_version
(
asset_id INT NOT NULL,
comment varchar NULL,
version INT NOT NULL DEFAULT 1,
asset_json varchar NOT NULL,
archived BIT NOT NULL DEFAULT 0,
created_by_id INTEGER,
created_date DATETIME NOT NULL DEFAULT (SYSDATETIMEOFFSET()),
CONSTRAINT pk_concept_set_version_id PRIMARY KEY (asset_id, version),
CONSTRAINT fk_concept_set_version_sec_user_creator FOREIGN KEY (created_by_id) REFERENCES webapi.sec_user (id),
CONSTRAINT fk_concept_set_version_asset_id FOREIGN KEY (asset_id) REFERENCES webapi.concept_set (concept_set_id) ON DELETE CASCADE
);

CREATE INDEX concept_set_version_asset_idx ON webapi.concept_set_version (asset_id);

-- Incidence rates
CREATE TABLE webapi.ir_version
(
asset_id INT NOT NULL,
comment varchar NULL,
description varchar NULL,
version INT NOT NULL DEFAULT 1,
asset_json varchar NOT NULL,
archived BIT NOT NULL DEFAULT 0,
created_by_id INTEGER,
created_date DATETIME NOT NULL DEFAULT (SYSDATETIMEOFFSET()),
CONSTRAINT pk_ir_version_id PRIMARY KEY (asset_id, version),
CONSTRAINT fk_ir_version_sec_user_creator FOREIGN KEY (created_by_id) REFERENCES webapi.sec_user (id),
CONSTRAINT fk_ir_version_asset_id FOREIGN KEY (asset_id) REFERENCES webapi.ir_analysis (id) ON DELETE CASCADE
);

CREATE INDEX ir_version_asset_idx ON webapi.ir_version (asset_id);

-- Pathways
CREATE TABLE webapi.pathway_version
(
asset_id INT NOT NULL,
comment varchar NULL,
version INT NOT NULL DEFAULT 1,
asset_json varchar NOT NULL,
archived BIT NOT NULL DEFAULT 0,
created_by_id INTEGER,
created_date DATETIME NOT NULL DEFAULT (SYSDATETIMEOFFSET()),
CONSTRAINT pk_pathway_version_id PRIMARY KEY (asset_id, version),
CONSTRAINT fk_pathway_version_sec_user_creator FOREIGN KEY (created_by_id) REFERENCES webapi.sec_user (id),
CONSTRAINT fk_pathway_version_asset_id FOREIGN KEY (asset_id) REFERENCES webapi.pathway_analysis (id) ON DELETE CASCADE
);

CREATE INDEX pathway_version_asset_idx ON webapi.pathway_version (asset_id);
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
CREATE SEQUENCE webapi.achilles_cache_seq START WITH 1;

CREATE TABLE webapi.achilles_cache
(
id bigint NOT NULL DEFAULT NEXT VALUE FOR webapi.achilles_cache_seq,
source_id INT NOT NULL,
cache_name varchar NOT NULL,
cache text,
CONSTRAINT achilles_cache_pk PRIMARY KEY (id),
CONSTRAINT achilles_cache_fk FOREIGN KEY (source_id) REFERENCES webapi."source" (source_id) ON DELETE CASCADE
);

CREATE UNIQUE INDEX achilles_cache_source_id_idx ON webapi.achilles_cache (source_id, cache_name);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
-- Rename sequence
EXEC sp_rename 'webapi.tags_seq', 'tag_seq';

-- Rename tables
EXEC sp_rename 'webapi.tags', 'tag', 'OBJECT';
EXEC sp_rename 'webapi.tag_groups', 'tag_group', 'OBJECT';
EXEC sp_rename 'webapi.concept_set_tags', 'concept_set_tag', 'OBJECT';
EXEC sp_rename 'webapi.cohort_tags', 'cohort_tag', 'OBJECT';
EXEC sp_rename 'webapi.cohort_characterization_tags', 'cohort_characterization_tag', 'OBJECT';
EXEC sp_rename 'webapi.ir_tags', 'ir_tag', 'OBJECT';
EXEC sp_rename 'webapi.pathway_tags', 'pathway_tag', 'OBJECT';