Skip to content

Commit

Permalink
Merge pull request #271 from OHDSI/LOINC-new-concept_classes-and-rela…
Browse files Browse the repository at this point in the history
…tionships

LOINC new concept_classes and relationships
  • Loading branch information
hardhouse committed Dec 6, 2019
2 parents 8a1002c + 622c322 commit 1566a2f
Showing 1 changed file with 185 additions and 0 deletions.
185 changes: 185 additions & 0 deletions working/manual_changes/2019/manual_changes_06-Dec-2019.sql
@@ -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 $$;

0 comments on commit 1566a2f

Please sign in to comment.