-
Notifications
You must be signed in to change notification settings - Fork 75
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
LOINC new concept_classes and relationships
- Loading branch information
Showing
1 changed file
with
185 additions
and
0 deletions.
There are no files selected for viewing
185 changes: 185 additions & 0 deletions
185
working/manual_changes/2019/manual_changes_06-Dec-2019.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,185 @@ | ||
--new relationships for LOINC | ||
DO $$ | ||
DECLARE | ||
z int; | ||
ex int; | ||
pRelationship_name constant varchar(100):='Has system'; | ||
pRelationship_id constant varchar(100):='Has system'; | ||
pIs_hierarchical constant int:=0; | ||
pDefines_ancestry constant int:=0; | ||
pReverse_relationship_id constant varchar(100):='System of'; | ||
pRelationship_name_rev constant varchar(100):='System of'; | ||
pIs_hierarchical_rev constant int:=0; | ||
pDefines_ancestry_rev constant int:=0; | ||
BEGIN | ||
DROP SEQUENCE IF EXISTS v5_concept; | ||
|
||
SELECT MAX (concept_id) + 1 INTO ex FROM concept | ||
--WHERE concept_id>=200 and concept_id<1000; --only for VIP concepts | ||
WHERE concept_id >= 31967 AND concept_id < 72245; | ||
|
||
EXECUTE 'CREATE SEQUENCE v5_concept INCREMENT BY 1 START WITH ' || ex || ' CACHE 20'; | ||
ALTER TABLE relationship DROP CONSTRAINT FPK_RELATIONSHIP_REVERSE; | ||
|
||
--direct | ||
SELECT nextval('v5_concept') INTO z; | ||
INSERT INTO concept (concept_id, concept_name, domain_id, vocabulary_id, concept_class_id, standard_concept, concept_code, valid_start_date, valid_end_date, invalid_reason) | ||
VALUES (z, pRelationship_name, 'Metadata', 'Relationship', 'Relationship', null, 'OMOP generated', TO_DATE ('19700101', 'YYYYMMDD'), TO_DATE ('20991231', 'YYYYMMDD'), null); | ||
INSERT INTO relationship (relationship_id, relationship_name, is_hierarchical, defines_ancestry, reverse_relationship_id, relationship_concept_id) | ||
VALUES (pRelationship_id, pRelationship_name, pIs_hierarchical, pDefines_ancestry, pReverse_relationship_id, z); | ||
|
||
--reverse | ||
SELECT nextval('v5_concept') INTO z; | ||
INSERT INTO concept (concept_id, concept_name, domain_id, vocabulary_id, concept_class_id, standard_concept, concept_code, valid_start_date, valid_end_date, invalid_reason) | ||
VALUES (z, pRelationship_name_rev, 'Metadata', 'Relationship', 'Relationship', null, 'OMOP generated', TO_DATE ('19700101', 'YYYYMMDD'), TO_DATE ('20991231', 'YYYYMMDD'), null); | ||
INSERT INTO relationship (relationship_id, relationship_name, is_hierarchical, defines_ancestry, reverse_relationship_id, relationship_concept_id) | ||
VALUES (pReverse_relationship_id, pRelationship_name_rev, pIs_hierarchical_rev, pDefines_ancestry_rev, pRelationship_id, z); | ||
|
||
ALTER TABLE relationship ADD CONSTRAINT fpk_relationship_reverse FOREIGN KEY (reverse_relationship_id) REFERENCES relationship (relationship_id); | ||
DROP SEQUENCE v5_concept; | ||
END $$; | ||
|
||
--new classes for LOINC | ||
DO $$ | ||
DECLARE | ||
z int; | ||
ex int; | ||
pConcept_class_id constant varchar(100):='LOINC System'; | ||
pConcept_class_name constant varchar(100):= 'LOINC System'; | ||
BEGIN | ||
DROP SEQUENCE IF EXISTS v5_concept; | ||
|
||
SELECT MAX (concept_id) + 1 INTO ex FROM concept | ||
--WHERE concept_id>=200 and concept_id<1000; --only for VIP concepts | ||
WHERE concept_id >= 31967 AND concept_id < 72245; | ||
|
||
EXECUTE 'CREATE SEQUENCE v5_concept INCREMENT BY 1 START WITH ' || ex || ' CACHE 20'; | ||
SELECT nextval('v5_concept') INTO z; | ||
|
||
INSERT INTO concept (concept_id, concept_name, domain_id, vocabulary_id, concept_class_id, standard_concept, concept_code, valid_start_date, valid_end_date, invalid_reason) | ||
VALUES (z, pConcept_class_name, 'Metadata', 'Concept Class', 'Concept Class', null, 'OMOP generated', TO_DATE ('19700101', 'YYYYMMDD'), TO_DATE ('20991231', 'YYYYMMDD'), null); | ||
INSERT INTO concept_class (concept_class_id, concept_class_name, concept_class_concept_id) | ||
VALUES (pConcept_class_id, pConcept_class_name, z); | ||
|
||
DROP SEQUENCE v5_concept; | ||
END $$; | ||
|
||
DO $$ | ||
DECLARE | ||
z int; | ||
ex int; | ||
pConcept_class_id constant varchar(100):='LOINC Component'; | ||
pConcept_class_name constant varchar(100):= 'LOINC Component'; | ||
BEGIN | ||
DROP SEQUENCE IF EXISTS v5_concept; | ||
|
||
SELECT MAX (concept_id) + 1 INTO ex FROM concept | ||
--WHERE concept_id>=200 and concept_id<1000; --only for VIP concepts | ||
WHERE concept_id >= 31967 AND concept_id < 72245; | ||
|
||
EXECUTE 'CREATE SEQUENCE v5_concept INCREMENT BY 1 START WITH ' || ex || ' CACHE 20'; | ||
SELECT nextval('v5_concept') INTO z; | ||
|
||
INSERT INTO concept (concept_id, concept_name, domain_id, vocabulary_id, concept_class_id, standard_concept, concept_code, valid_start_date, valid_end_date, invalid_reason) | ||
VALUES (z, pConcept_class_name, 'Metadata', 'Concept Class', 'Concept Class', null, 'OMOP generated', TO_DATE ('19700101', 'YYYYMMDD'), TO_DATE ('20991231', 'YYYYMMDD'), null); | ||
INSERT INTO concept_class (concept_class_id, concept_class_name, concept_class_concept_id) | ||
VALUES (pConcept_class_id, pConcept_class_name, z); | ||
|
||
DROP SEQUENCE v5_concept; | ||
END $$; | ||
|
||
DO $$ | ||
DECLARE | ||
z int; | ||
ex int; | ||
pConcept_class_id constant varchar(100):='LOINC Scale'; | ||
pConcept_class_name constant varchar(100):= 'LOINC Scale'; | ||
BEGIN | ||
DROP SEQUENCE IF EXISTS v5_concept; | ||
|
||
SELECT MAX (concept_id) + 1 INTO ex FROM concept | ||
--WHERE concept_id>=200 and concept_id<1000; --only for VIP concepts | ||
WHERE concept_id >= 31967 AND concept_id < 72245; | ||
|
||
EXECUTE 'CREATE SEQUENCE v5_concept INCREMENT BY 1 START WITH ' || ex || ' CACHE 20'; | ||
SELECT nextval('v5_concept') INTO z; | ||
|
||
INSERT INTO concept (concept_id, concept_name, domain_id, vocabulary_id, concept_class_id, standard_concept, concept_code, valid_start_date, valid_end_date, invalid_reason) | ||
VALUES (z, pConcept_class_name, 'Metadata', 'Concept Class', 'Concept Class', null, 'OMOP generated', TO_DATE ('19700101', 'YYYYMMDD'), TO_DATE ('20991231', 'YYYYMMDD'), null); | ||
INSERT INTO concept_class (concept_class_id, concept_class_name, concept_class_concept_id) | ||
VALUES (pConcept_class_id, pConcept_class_name, z); | ||
|
||
DROP SEQUENCE v5_concept; | ||
END $$; | ||
|
||
DO $$ | ||
DECLARE | ||
z int; | ||
ex int; | ||
pConcept_class_id constant varchar(100):='LOINC Time'; | ||
pConcept_class_name constant varchar(100):= 'LOINC Time'; | ||
BEGIN | ||
DROP SEQUENCE IF EXISTS v5_concept; | ||
|
||
SELECT MAX (concept_id) + 1 INTO ex FROM concept | ||
--WHERE concept_id>=200 and concept_id<1000; --only for VIP concepts | ||
WHERE concept_id >= 31967 AND concept_id < 72245; | ||
|
||
EXECUTE 'CREATE SEQUENCE v5_concept INCREMENT BY 1 START WITH ' || ex || ' CACHE 20'; | ||
SELECT nextval('v5_concept') INTO z; | ||
|
||
INSERT INTO concept (concept_id, concept_name, domain_id, vocabulary_id, concept_class_id, standard_concept, concept_code, valid_start_date, valid_end_date, invalid_reason) | ||
VALUES (z, pConcept_class_name, 'Metadata', 'Concept Class', 'Concept Class', null, 'OMOP generated', TO_DATE ('19700101', 'YYYYMMDD'), TO_DATE ('20991231', 'YYYYMMDD'), null); | ||
INSERT INTO concept_class (concept_class_id, concept_class_name, concept_class_concept_id) | ||
VALUES (pConcept_class_id, pConcept_class_name, z); | ||
|
||
DROP SEQUENCE v5_concept; | ||
END $$; | ||
|
||
DO $$ | ||
DECLARE | ||
z int; | ||
ex int; | ||
pConcept_class_id constant varchar(100):='LOINC Method'; | ||
pConcept_class_name constant varchar(100):= 'LOINC Method'; | ||
BEGIN | ||
DROP SEQUENCE IF EXISTS v5_concept; | ||
|
||
SELECT MAX (concept_id) + 1 INTO ex FROM concept | ||
--WHERE concept_id>=200 and concept_id<1000; --only for VIP concepts | ||
WHERE concept_id >= 31967 AND concept_id < 72245; | ||
|
||
EXECUTE 'CREATE SEQUENCE v5_concept INCREMENT BY 1 START WITH ' || ex || ' CACHE 20'; | ||
SELECT nextval('v5_concept') INTO z; | ||
|
||
INSERT INTO concept (concept_id, concept_name, domain_id, vocabulary_id, concept_class_id, standard_concept, concept_code, valid_start_date, valid_end_date, invalid_reason) | ||
VALUES (z, pConcept_class_name, 'Metadata', 'Concept Class', 'Concept Class', null, 'OMOP generated', TO_DATE ('19700101', 'YYYYMMDD'), TO_DATE ('20991231', 'YYYYMMDD'), null); | ||
INSERT INTO concept_class (concept_class_id, concept_class_name, concept_class_concept_id) | ||
VALUES (pConcept_class_id, pConcept_class_name, z); | ||
|
||
DROP SEQUENCE v5_concept; | ||
END $$; | ||
|
||
DO $$ | ||
DECLARE | ||
z int; | ||
ex int; | ||
pConcept_class_id constant varchar(100):='LOINC Property'; | ||
pConcept_class_name constant varchar(100):= 'LOINC Property'; | ||
BEGIN | ||
DROP SEQUENCE IF EXISTS v5_concept; | ||
|
||
SELECT MAX (concept_id) + 1 INTO ex FROM concept | ||
--WHERE concept_id>=200 and concept_id<1000; --only for VIP concepts | ||
WHERE concept_id >= 31967 AND concept_id < 72245; | ||
|
||
EXECUTE 'CREATE SEQUENCE v5_concept INCREMENT BY 1 START WITH ' || ex || ' CACHE 20'; | ||
SELECT nextval('v5_concept') INTO z; | ||
|
||
INSERT INTO concept (concept_id, concept_name, domain_id, vocabulary_id, concept_class_id, standard_concept, concept_code, valid_start_date, valid_end_date, invalid_reason) | ||
VALUES (z, pConcept_class_name, 'Metadata', 'Concept Class', 'Concept Class', null, 'OMOP generated', TO_DATE ('19700101', 'YYYYMMDD'), TO_DATE ('20991231', 'YYYYMMDD'), null); | ||
INSERT INTO concept_class (concept_class_id, concept_class_name, concept_class_concept_id) | ||
VALUES (pConcept_class_id, pConcept_class_name, z); | ||
|
||
DROP SEQUENCE v5_concept; | ||
END $$; |