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
6 changes: 6 additions & 0 deletions extras/migration/v52_to_v53/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# v5.2 to v5.3 CDM conversion

The *_migration.sql scripts in this folder migrate a v5.2 CDM to a v5.3 CDM.
These scripts follow the migration pattern already used in this repository and cover
the structural deltas reflected by the historical v5.2 DDLs and the v5.3 DDLs under inst/ddl.
Please replace @cdmDatabaseSchema with your schema name.
96 changes: 96 additions & 0 deletions extras/migration/v52_to_v53/bigquery_migration.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
-- Derived from the OMOP CDM v5.2 and v5.3 BigQuery-compatible schema deltas in this repository.
-- BigQuery SQL references:
-- https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language
--
-- VISIT_DETAIL

create table @cdmDatabaseSchema.visit_detail (
visit_detail_id INT64 not null,
person_id INT64 not null,
visit_detail_concept_id INT64 not null,
visit_detail_start_date date not null,
visit_detail_start_datetime DATETIME,
visit_detail_end_date date not null,
visit_detail_end_datetime DATETIME,
visit_detail_type_concept_id INT64 not null,
provider_id INT64,
care_site_id INT64,
visit_detail_source_value STRING,
visit_detail_source_concept_id INT64,
admitting_source_value STRING,
admitting_source_concept_id INT64,
discharge_to_source_value STRING,
discharge_to_concept_id INT64,
preceding_visit_detail_id INT64,
visit_detail_parent_id INT64,
visit_occurrence_id INT64 not null
);

-- CONDITION_OCCURRENCE
alter table @cdmDatabaseSchema.condition_occurrence alter column condition_start_datetime drop not null;
alter table @cdmDatabaseSchema.condition_occurrence add column visit_detail_id int64;

-- DRUG_EXPOSURE
alter table @cdmDatabaseSchema.drug_exposure alter column drug_exposure_start_datetime drop not null;
alter table @cdmDatabaseSchema.drug_exposure add column visit_detail_id int64;

-- PROCEDURE_OCCURRENCE
alter table @cdmDatabaseSchema.procedure_occurrence rename to procedure_occurrence_v52;
create table @cdmDatabaseSchema.procedure_occurrence as
select
* except(qualifier_source_value),
cast(null as int64) as visit_detail_id,
qualifier_source_value as modifier_source_value
from @cdmDatabaseSchema.procedure_occurrence_v52;

-- DEVICE_EXPOSURE
alter table @cdmDatabaseSchema.device_exposure alter column device_exposure_start_datetime drop not null;
alter table @cdmDatabaseSchema.device_exposure add column visit_detail_id int64;

-- MEASUREMENT
alter table @cdmDatabaseSchema.measurement add column measurement_time string;
alter table @cdmDatabaseSchema.measurement add column visit_detail_id int64;

-- OBSERVATION
alter table @cdmDatabaseSchema.observation add column visit_detail_id int64;

-- DEATH
alter table @cdmDatabaseSchema.death alter column death_type_concept_id drop not null;

-- NOTE
alter table @cdmDatabaseSchema.note add column visit_detail_id int64;

-- PAYER_PLAN_PERIOD
alter table @cdmDatabaseSchema.payer_plan_period add column payer_concept_id int64;
alter table @cdmDatabaseSchema.payer_plan_period add column payer_source_concept_id int64;
alter table @cdmDatabaseSchema.payer_plan_period add column plan_concept_id int64;
alter table @cdmDatabaseSchema.payer_plan_period add column plan_source_concept_id int64;
alter table @cdmDatabaseSchema.payer_plan_period add column sponsor_concept_id int64;
alter table @cdmDatabaseSchema.payer_plan_period add column sponsor_source_value string;
alter table @cdmDatabaseSchema.payer_plan_period add column sponsor_source_concept_id int64;
alter table @cdmDatabaseSchema.payer_plan_period add column stop_reason_concept_id int64;
alter table @cdmDatabaseSchema.payer_plan_period add column stop_reason_source_value string;
alter table @cdmDatabaseSchema.payer_plan_period add column stop_reason_source_concept_id int64;

-- COST
alter table @cdmDatabaseSchema.cost rename to cost_v52;
create table @cdmDatabaseSchema.cost as
select
* except(reveue_code_source_value),
reveue_code_source_value as revenue_code_source_value
from @cdmDatabaseSchema.cost_v52;

-- METADATA
create table @cdmDatabaseSchema.metadata (
metadata_concept_id INT64 not null,
metadata_type_concept_id INT64 not null,
name STRING not null,
value_as_string STRING,
value_as_concept_id INT64,
metadata_date DATE,
metadata_datetime DATETIME
);

-- TABLES REMOVED IN v5.3
drop table @cdmDatabaseSchema.cohort_attribute;
drop table @cdmDatabaseSchema.cohort;
85 changes: 85 additions & 0 deletions extras/migration/v52_to_v53/impala_migration.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
-- Derived from the OMOP CDM v5.2 and v5.3 Impala DDLs in this repository.
-- Impala SQL references:
-- https://docs.cloudera.com/documentation/enterprise/latest/topics/impala_alter_table.html
--
-- VISIT_DETAIL

create table @cdmDatabaseSchema.visit_detail (
visit_detail_id INT,
person_id INT,
visit_detail_concept_id INT,
visit_detail_start_date TIMESTAMP,
visit_detail_start_datetime TIMESTAMP,
visit_detail_end_date TIMESTAMP,
visit_detail_end_datetime TIMESTAMP,
visit_detail_type_concept_id INT,
provider_id integer NULL,
care_site_id integer NULL,
visit_detail_source_value VARCHAR(50),
visit_detail_source_concept_id integer NULL,
admitting_source_value VARCHAR(50),
admitting_source_concept_id integer NULL,
discharge_to_source_value VARCHAR(50),
discharge_to_concept_id integer NULL,
preceding_visit_detail_id integer NULL,
visit_detail_parent_id integer NULL,
visit_occurrence_id INT
);

-- CONDITION_OCCURRENCE
alter table @cdmDatabaseSchema.condition_occurrence add columns (visit_detail_id int);

-- DRUG_EXPOSURE
alter table @cdmDatabaseSchema.drug_exposure add columns (visit_detail_id int);

-- PROCEDURE_OCCURRENCE
alter table @cdmDatabaseSchema.procedure_occurrence change qualifier_source_value modifier_source_value varchar(50);
alter table @cdmDatabaseSchema.procedure_occurrence add columns (visit_detail_id int);

-- DEVICE_EXPOSURE
alter table @cdmDatabaseSchema.device_exposure change device_source_value device_source_value varchar(50);
alter table @cdmDatabaseSchema.device_exposure add columns (visit_detail_id int);

-- MEASUREMENT
alter table @cdmDatabaseSchema.measurement add columns (measurement_time varchar(10));
alter table @cdmDatabaseSchema.measurement add columns (visit_detail_id int);

-- OBSERVATION
alter table @cdmDatabaseSchema.observation add columns (visit_detail_id int);

-- NOTE
alter table @cdmDatabaseSchema.note add columns (visit_detail_id int);

-- NOTE_NLP
alter table @cdmDatabaseSchema.note_nlp change note_nlp_id note_nlp_id int;
alter table @cdmDatabaseSchema.note_nlp change `offset` `offset` varchar(50);

-- PAYER_PLAN_PERIOD
alter table @cdmDatabaseSchema.payer_plan_period add columns (payer_concept_id int);
alter table @cdmDatabaseSchema.payer_plan_period add columns (payer_source_concept_id int);
alter table @cdmDatabaseSchema.payer_plan_period add columns (plan_concept_id int);
alter table @cdmDatabaseSchema.payer_plan_period add columns (plan_source_concept_id int);
alter table @cdmDatabaseSchema.payer_plan_period add columns (sponsor_concept_id int);
alter table @cdmDatabaseSchema.payer_plan_period add columns (sponsor_source_value varchar(50));
alter table @cdmDatabaseSchema.payer_plan_period add columns (sponsor_source_concept_id int);
alter table @cdmDatabaseSchema.payer_plan_period add columns (stop_reason_concept_id int);
alter table @cdmDatabaseSchema.payer_plan_period add columns (stop_reason_source_value varchar(50));
alter table @cdmDatabaseSchema.payer_plan_period add columns (stop_reason_source_concept_id int);

-- COST
alter table @cdmDatabaseSchema.cost change reveue_code_source_value revenue_code_source_value varchar(50);

-- METADATA
create table @cdmDatabaseSchema.metadata (
metadata_concept_id INT,
metadata_type_concept_id INT,
name VARCHAR(250),
value_as_string VARCHAR(250),
value_as_concept_id integer NULL,
metadata_date TIMESTAMP,
metadata_datetime TIMESTAMP
);

-- TABLES REMOVED IN v5.3
drop table @cdmDatabaseSchema.cohort_attribute;
drop table @cdmDatabaseSchema.cohort;
99 changes: 99 additions & 0 deletions extras/migration/v52_to_v53/netezza_migration.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
-- Derived from the OMOP CDM v5.2 and v5.3 Netezza DDLs in this repository.
-- Netezza SQL references:
-- https://www.ibm.com/docs/en/psfa
--
-- VISIT_DETAIL

create table @cdmDatabaseSchema.visit_detail (
visit_detail_id integer NOT NULL,
person_id integer NOT NULL,
visit_detail_concept_id integer NOT NULL,
visit_detail_start_date date NOT NULL,
visit_detail_start_datetime TIMESTAMP NULL,
visit_detail_end_date date NOT NULL,
visit_detail_end_datetime TIMESTAMP NULL,
visit_detail_type_concept_id integer NOT NULL,
provider_id integer NULL,
care_site_id integer NULL,
visit_detail_source_value varchar(50) NULL,
visit_detail_source_concept_id integer NULL,
admitting_source_value varchar(50) NULL,
admitting_source_concept_id integer NULL,
discharge_to_source_value varchar(50) NULL,
discharge_to_concept_id integer NULL,
preceding_visit_detail_id integer NULL,
visit_detail_parent_id integer NULL,
visit_occurrence_id integer NOT NULL
);

-- CONDITION_OCCURRENCE
alter table @cdmDatabaseSchema.condition_occurrence alter column condition_start_datetime drop not null;
alter table @cdmDatabaseSchema.condition_occurrence add column visit_detail_id integer null;

-- DRUG_EXPOSURE
alter table @cdmDatabaseSchema.drug_exposure alter column drug_exposure_start_datetime drop not null;
alter table @cdmDatabaseSchema.drug_exposure add column visit_detail_id integer null;

-- PROCEDURE_OCCURRENCE
alter table @cdmDatabaseSchema.procedure_occurrence alter column procedure_datetime drop not null;
alter table @cdmDatabaseSchema.procedure_occurrence rename column qualifier_source_value to modifier_source_value;
alter table @cdmDatabaseSchema.procedure_occurrence add column visit_detail_id integer null;

-- DEVICE_EXPOSURE
alter table @cdmDatabaseSchema.device_exposure alter column device_exposure_start_datetime drop not null;
alter table @cdmDatabaseSchema.device_exposure alter column device_source_value set data type varchar(50);
alter table @cdmDatabaseSchema.device_exposure add column visit_detail_id integer null;

-- MEASUREMENT
alter table @cdmDatabaseSchema.measurement add column measurement_time varchar(10) null;
alter table @cdmDatabaseSchema.measurement add column visit_detail_id integer null;

-- OBSERVATION
alter table @cdmDatabaseSchema.observation add column visit_detail_id integer null;

-- DEATH
alter table @cdmDatabaseSchema.death alter column death_type_concept_id drop not null;

-- NOTE
alter table @cdmDatabaseSchema.note add column visit_detail_id integer null;

-- NOTE_NLP
alter table @cdmDatabaseSchema.note_nlp alter column note_nlp_id set data type integer;
alter table @cdmDatabaseSchema.note_nlp alter column "offset" set data type varchar(50);

-- PAYER_PLAN_PERIOD
alter table @cdmDatabaseSchema.payer_plan_period add column payer_concept_id integer null;
alter table @cdmDatabaseSchema.payer_plan_period add column payer_source_concept_id integer null;
alter table @cdmDatabaseSchema.payer_plan_period add column plan_concept_id integer null;
alter table @cdmDatabaseSchema.payer_plan_period add column plan_source_concept_id integer null;
alter table @cdmDatabaseSchema.payer_plan_period add column sponsor_concept_id integer null;
alter table @cdmDatabaseSchema.payer_plan_period add column sponsor_source_value varchar(50) null;
alter table @cdmDatabaseSchema.payer_plan_period add column sponsor_source_concept_id integer null;
alter table @cdmDatabaseSchema.payer_plan_period add column stop_reason_concept_id integer null;
alter table @cdmDatabaseSchema.payer_plan_period add column stop_reason_source_value varchar(50) null;
alter table @cdmDatabaseSchema.payer_plan_period add column stop_reason_source_concept_id integer null;

-- COST
alter table @cdmDatabaseSchema.cost rename column reveue_code_source_value to revenue_code_source_value;

-- METADATA
create table @cdmDatabaseSchema.metadata (
metadata_concept_id integer NOT NULL,
metadata_type_concept_id integer NOT NULL,
name varchar(250) NOT NULL,
value_as_string varchar(250) NULL,
value_as_concept_id integer NULL,
metadata_date date NULL,
metadata_datetime TIMESTAMP NULL
);

-- VOCABULARY
update @cdmDatabaseSchema.vocabulary
set vocabulary_reference = ''
where vocabulary_reference is null;

alter table @cdmDatabaseSchema.vocabulary alter column vocabulary_reference set not null;

-- TABLES REMOVED IN v5.3
drop table @cdmDatabaseSchema.cohort_attribute;
drop table @cdmDatabaseSchema.cohort;
99 changes: 99 additions & 0 deletions extras/migration/v52_to_v53/oracle_migration.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
-- Derived from the OMOP CDM v5.2 and v5.3 Oracle DDLs in this repository.
-- Oracle SQL references:
-- https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ALTER-TABLE.html
--
-- VISIT_DETAIL

create table @cdmDatabaseSchema.visit_detail (
visit_detail_id integer NOT NULL,
person_id integer NOT NULL,
visit_detail_concept_id integer NOT NULL,
visit_detail_start_date date NOT NULL,
visit_detail_start_datetime TIMESTAMP NULL,
visit_detail_end_date date NOT NULL,
visit_detail_end_datetime TIMESTAMP NULL,
visit_detail_type_concept_id integer NOT NULL,
provider_id integer NULL,
care_site_id integer NULL,
visit_detail_source_value varchar2(50) NULL,
visit_detail_source_concept_id integer NULL,
admitting_source_value varchar2(50) NULL,
admitting_source_concept_id integer NULL,
discharge_to_source_value varchar2(50) NULL,
discharge_to_concept_id integer NULL,
preceding_visit_detail_id integer NULL,
visit_detail_parent_id integer NULL,
visit_occurrence_id integer NOT NULL
);

-- CONDITION_OCCURRENCE
alter table @cdmDatabaseSchema.condition_occurrence modify (condition_start_datetime timestamp null);
alter table @cdmDatabaseSchema.condition_occurrence add (visit_detail_id number default null);

-- DRUG_EXPOSURE
alter table @cdmDatabaseSchema.drug_exposure modify (drug_exposure_start_datetime timestamp null);
alter table @cdmDatabaseSchema.drug_exposure add (visit_detail_id number default null);

-- PROCEDURE_OCCURRENCE
alter table @cdmDatabaseSchema.procedure_occurrence modify (procedure_datetime timestamp null);
alter table @cdmDatabaseSchema.procedure_occurrence rename column qualifier_source_value to modifier_source_value;
alter table @cdmDatabaseSchema.procedure_occurrence add (visit_detail_id number default null);

-- DEVICE_EXPOSURE
alter table @cdmDatabaseSchema.device_exposure modify (device_exposure_start_datetime timestamp null);
alter table @cdmDatabaseSchema.device_exposure modify (device_source_value varchar2(50));
alter table @cdmDatabaseSchema.device_exposure add (visit_detail_id number default null);

-- MEASUREMENT
alter table @cdmDatabaseSchema.measurement add (measurement_time varchar2(10) default null);
alter table @cdmDatabaseSchema.measurement add (visit_detail_id number default null);

-- OBSERVATION
alter table @cdmDatabaseSchema.observation add (visit_detail_id number default null);

-- DEATH
alter table @cdmDatabaseSchema.death modify (death_type_concept_id number null);

-- NOTE
alter table @cdmDatabaseSchema.note add (visit_detail_id number default null);

-- NOTE_NLP
alter table @cdmDatabaseSchema.note_nlp modify (note_nlp_id number);
alter table @cdmDatabaseSchema.note_nlp modify ("offset" varchar2(50));

-- PAYER_PLAN_PERIOD
alter table @cdmDatabaseSchema.payer_plan_period add (payer_concept_id number default null);
alter table @cdmDatabaseSchema.payer_plan_period add (payer_source_concept_id number default null);
alter table @cdmDatabaseSchema.payer_plan_period add (plan_concept_id number default null);
alter table @cdmDatabaseSchema.payer_plan_period add (plan_source_concept_id number default null);
alter table @cdmDatabaseSchema.payer_plan_period add (sponsor_concept_id number default null);
alter table @cdmDatabaseSchema.payer_plan_period add (sponsor_source_value varchar2(50) default null);
alter table @cdmDatabaseSchema.payer_plan_period add (sponsor_source_concept_id number default null);
alter table @cdmDatabaseSchema.payer_plan_period add (stop_reason_concept_id number default null);
alter table @cdmDatabaseSchema.payer_plan_period add (stop_reason_source_value varchar2(50) default null);
alter table @cdmDatabaseSchema.payer_plan_period add (stop_reason_source_concept_id number default null);

-- COST
alter table @cdmDatabaseSchema.cost rename column reveue_code_source_value to revenue_code_source_value;

-- METADATA
create table @cdmDatabaseSchema.metadata (
metadata_concept_id integer NOT NULL,
metadata_type_concept_id integer NOT NULL,
name varchar2(250) NOT NULL,
value_as_string varchar2(250) NULL,
value_as_concept_id integer NULL,
metadata_date date NULL,
metadata_datetime TIMESTAMP NULL
);

-- VOCABULARY
update @cdmDatabaseSchema.vocabulary
set vocabulary_reference = ''
where vocabulary_reference is null;

alter table @cdmDatabaseSchema.vocabulary modify (vocabulary_reference varchar2(255) not null);

-- TABLES REMOVED IN v5.3
drop table @cdmDatabaseSchema.cohort_attribute;
drop table @cdmDatabaseSchema.cohort;
Loading
Loading