Addressing bugs from PostgreSQL/Oracle testing

This commit is contained in:
Anthony Sena 2015-07-06 08:44:31 -04:00
parent 4cb7558572
commit 386793b101
5 changed files with 862 additions and 800 deletions

View File

@ -55,7 +55,8 @@ INSTRUCTIONS
2. Run the resulting script on your target RDBDMS. 2. Run the resulting script on your target RDBDMS.
*********************************************************************************/ *********************************************************************************/
USE [TARGET_CDMV5] --USE [TARGET_CDMV5]
USE [CDMV5_Conversion_Target]
GO GO
IF OBJECT_ID('tempdb..#v5_stats', 'U') IS NOT NULL IF OBJECT_ID('tempdb..#v5_stats', 'U') IS NOT NULL
@ -83,7 +84,8 @@ GROUP BY
ORDER BY ORDER BY
object_name(i.object_id) object_name(i.object_id)
USE [SOURCE_CDMV4] --USE [SOURCE_CDMV4]
USE [CDM_TRUVEN_CCAE_6k]
GO GO
IF OBJECT_ID('tempdb..#v4_stats', 'U') IS NOT NULL IF OBJECT_ID('tempdb..#v4_stats', 'U') IS NOT NULL

View File

@ -77,10 +77,30 @@ TemplateSQL File Instructions
*********************************************************************************/ *********************************************************************************/
/* SCRIPT PARAMETERS */ /* SCRIPT PARAMETERS */
{DEFAULT @SOURCE_CDMV4 = '[SOURCE_CDMV4]'} -- The CDMv4 database name --{DEFAULT @SOURCE_CDMV4 = '[SOURCE_CDMV4]'} -- The CDMv4 database name
{DEFAULT @SOURCE_CDMV4_SCHEMA = '[SOURCE_CDMV4].[SCHEMA]'} -- The CDMv4 database plus schema --{DEFAULT @SOURCE_CDMV4_SCHEMA = '[SOURCE_CDMV4].[SCHEMA]'} -- The CDMv4 database plus schema
{DEFAULT @TARGET_CDMV5 = '[TARGET_CDMV5]'} -- The target CDMv5 database name --{DEFAULT @TARGET_CDMV5 = '[TARGET_CDMV5]'} -- The target CDMv5 database name
{DEFAULT @TARGET_CDMV5_SCHEMA = '[TARGET_CDMV5].[SCHEMA]'} -- the target CDMv5 database plus schema --{DEFAULT @TARGET_CDMV5_SCHEMA = '[TARGET_CDMV5].[SCHEMA]'} -- the target CDMv5 database plus schema
/* LOCAL SQL Server */
--{DEFAULT @SOURCE_CDMV4 = '[CDMV4]'} -- The CDMv4 database name
--{DEFAULT @SOURCE_CDMV4_SCHEMA = '[CDMV4].[dbo]'} -- The CDMv4 database plus schema
--{DEFAULT @TARGET_CDMV5 = '[CDMV5]'} -- The target CDMv5 database name
--{DEFAULT @TARGET_CDMV5_SCHEMA = '[CDMV5].[dbo]'} -- the target CDMv5 database plus schema
/* QA Settings */
--{DEFAULT @SOURCE_CDMV4 = 'CDM_TRUVEN_CCAE_6k'} -- The CDMv4 database name
--{DEFAULT @SOURCE_CDMV4_SCHEMA = 'CDM_TRUVEN_CCAE_6k.dbo'} -- The CDMv4 database plus schema
--{DEFAULT @TARGET_CDMV5 = 'CDMV5_Conversion_Target'} -- The target CDMv5 database name
--{DEFAULT @TARGET_CDMV5_SCHEMA = 'CDMV5_Conversion_Target.dbo'} -- the target CDMv5 database plus schema
/* PostgreSQL Settings */
--{DEFAULT @SOURCE_CDMV4 = 'sandbox'} -- The CDMv4 database name
--{DEFAULT @SOURCE_CDMV4_SCHEMA = 'sandbox.cdmv4'} -- The CDMv4 database plus schema
--{DEFAULT @TARGET_CDMV5 = 'sandbox'} -- The target CDMv5 database name
--{DEFAULT @TARGET_CDMV5_SCHEMA = 'sandbox.cdmv5'} -- the target CDMv5 database plus schema
/* Oracle Settings */
{DEFAULT @SOURCE_CDMV4 = 'sandbox'} -- The CDMv4 database name
{DEFAULT @SOURCE_CDMV4_SCHEMA = 'sandbox.cdmv4'} -- The CDMv4 database plus schema
{DEFAULT @TARGET_CDMV5 = 'sandbox'} -- The target CDMv5 database name
{DEFAULT @TARGET_CDMV5_SCHEMA = 'sandbox.cdmv5'} -- the target CDMv5 database plus schema
USE @TARGET_CDMV5; USE @TARGET_CDMV5;
@ -117,7 +137,7 @@ select concept_id as source_concept_id,
domain_id, domain_id,
NULL as source_concept_mapping_occurrence NULL as source_concept_mapping_occurrence
into #concept_map into #concept_map
from dbo.concept from @TARGET_CDMV5_SCHEMA.concept
where standard_concept = 'S' where standard_concept = 'S'
and invalid_reason is null and invalid_reason is null
@ -131,16 +151,16 @@ select distinct c1.concept_id as source_concept_id,
from from
( (
select concept_id select concept_id
from dbo.concept from @TARGET_CDMV5_SCHEMA.concept
where ((standard_concept <> 'S' or standard_concept is null) where ((standard_concept <> 'S' or standard_concept is null)
or invalid_reason is not null or invalid_reason is not null
) )
) c1 ) c1
inner join inner join
dbo.concept_relationship cr1 @TARGET_CDMV5_SCHEMA.concept_relationship cr1
on c1.concept_id = cr1.concept_id_1 on c1.concept_id = cr1.concept_id_1
inner join inner join
dbo.concept c2 @TARGET_CDMV5_SCHEMA.concept c2
on cr1.concept_id_2 = c2.concept_id on cr1.concept_id_2 = c2.concept_id
where c2.standard_concept = 'S' where c2.standard_concept = 'S'
and c2.invalid_reason is null and c2.invalid_reason is null
@ -158,7 +178,7 @@ select distinct c1.concept_id as source_concept_id,
from from
( (
select concept_id select concept_id
from dbo.concept from @TARGET_CDMV5_SCHEMA.concept
where ((standard_concept <> 'S' or standard_concept is null) where ((standard_concept <> 'S' or standard_concept is null)
or invalid_reason is not null or invalid_reason is not null
) )
@ -167,16 +187,16 @@ and concept_id not in (
from from
( (
select concept_id select concept_id
from dbo.concept from @TARGET_CDMV5_SCHEMA.concept
where ((standard_concept <> 'S' or standard_concept is null) where ((standard_concept <> 'S' or standard_concept is null)
or invalid_reason is not null or invalid_reason is not null
) )
) c1 ) c1
inner join inner join
dbo.concept_relationship cr1 @TARGET_CDMV5_SCHEMA.concept_relationship cr1
on c1.concept_id = cr1.concept_id_1 on c1.concept_id = cr1.concept_id_1
inner join inner join
dbo.concept c2 @TARGET_CDMV5_SCHEMA.concept c2
on cr1.concept_id_2 = c2.concept_id on cr1.concept_id_2 = c2.concept_id
where c2.standard_concept = 'S' where c2.standard_concept = 'S'
and c2.invalid_reason is null and c2.invalid_reason is null
@ -186,10 +206,10 @@ and concept_id not in (
) c1 ) c1
inner join inner join
dbo.concept_relationship cr1 @TARGET_CDMV5_SCHEMA.concept_relationship cr1
on c1.concept_id = cr1.concept_id_1 on c1.concept_id = cr1.concept_id_1
inner join inner join
dbo.concept c2 @TARGET_CDMV5_SCHEMA.concept c2
on cr1.concept_id_2 = c2.concept_id on cr1.concept_id_2 = c2.concept_id
where c2.standard_concept = 'S' where c2.standard_concept = 'S'
and c2.invalid_reason is null and c2.invalid_reason is null
@ -214,7 +234,7 @@ select distinct c1.concept_id as source_concept_id,
from from
( (
select concept_id select concept_id
from dbo.concept from @TARGET_CDMV5_SCHEMA.concept
where ((standard_concept <> 'S' or standard_concept is null) where ((standard_concept <> 'S' or standard_concept is null)
or invalid_reason is not null or invalid_reason is not null
) )
@ -223,16 +243,16 @@ and concept_id not in (
from from
( (
select concept_id select concept_id
from dbo.concept from @TARGET_CDMV5_SCHEMA.concept
where ((standard_concept <> 'S' or standard_concept is null) where ((standard_concept <> 'S' or standard_concept is null)
or invalid_reason is not null or invalid_reason is not null
) )
) c1 ) c1
inner join inner join
dbo.concept_relationship cr1 @TARGET_CDMV5_SCHEMA.concept_relationship cr1
on c1.concept_id = cr1.concept_id_1 on c1.concept_id = cr1.concept_id_1
inner join inner join
dbo.concept c2 @TARGET_CDMV5_SCHEMA.concept c2
on cr1.concept_id_2 = c2.concept_id on cr1.concept_id_2 = c2.concept_id
where c2.standard_concept = 'S' where c2.standard_concept = 'S'
and c2.invalid_reason is null and c2.invalid_reason is null
@ -251,10 +271,10 @@ and concept_id not in (
) c1 ) c1
inner join inner join
dbo.concept_relationship cr1 @TARGET_CDMV5_SCHEMA.concept_relationship cr1
on c1.concept_id = cr1.concept_id_1 on c1.concept_id = cr1.concept_id_1
inner join inner join
dbo.concept c2 @TARGET_CDMV5_SCHEMA.concept c2
on cr1.concept_id_2 = c2.concept_id on cr1.concept_id_2 = c2.concept_id
where c2.standard_concept = 'S' where c2.standard_concept = 'S'
and c2.invalid_reason is null and c2.invalid_reason is null
@ -267,31 +287,31 @@ and cr1.invalid_reason is null;
-- the script to ensure that we generate new primary keys -- the script to ensure that we generate new primary keys
-- for the target tables when applicable -- for the target tables when applicable
UPDATE #concept_map UPDATE #concept_map
SET #concept_map.source_concept_mapping_occurrence = A.[Rowcount] SET #concept_map.source_concept_mapping_occurrence = A.CountOfRows
FROM FROM
#concept_map, #concept_map,
( (
select source_concept_id, domain_id, count(*) as "rowcount" select source_concept_id, domain_id, count(*) as "CountOfRows"
from #concept_map from #concept_map
group by source_concept_id, domain_id group by source_concept_id, domain_id
) AS A ) AS A
WHERE #concept_map.source_concept_id = A.source_concept_id AND #concept_map.domain_id = A.domain_id WHERE #concept_map.source_concept_id = A.source_concept_id AND #concept_map.domain_id = A.domain_id;
IF OBJECT_ID('tempdb..#concept_map_distinct', 'U') IS NOT NULL IF OBJECT_ID('tempdb..#concept_map_distinct', 'U') IS NOT NULL
DROP TABLE #concept_map_distinct; DROP TABLE #concept_map_distinct;
SELECT DISTINCT source_concept_id, domain_id, COUNT(*) as "rowcount" SELECT DISTINCT source_concept_id, domain_id, COUNT(*) as "rowcount"
INTO #concept_map_distinct INTO #concept_map_distinct
FROM #concept_map FROM #concept_map
GROUP BY source_concept_id, domain_id GROUP BY source_concept_id, domain_id;
IF OBJECT_ID('@TARGET_CDMV5_SCHEMA.ETL_WARNINGS') IS NOT NULL IF OBJECT_ID('ETL_WARNINGS', 'U') IS NOT NULL
DROP TABLE @TARGET_CDMV5_SCHEMA.ETL_WARNINGS DROP TABLE ETL_WARNINGS;
CREATE TABLE @TARGET_CDMV5_SCHEMA.ETL_WARNINGS CREATE TABLE ETL_WARNINGS
( (
WARNING_MESSAGE varchar(8000) WARNING_MESSAGE varchar(8000)
); );
/**** /****
@ -300,9 +320,9 @@ CDM_SOURCE
****/ ****/
INSERT INTO dbo.cdm_source (cdm_source_name, cdm_version, vocabulary_version, cdm_release_date) INSERT INTO @TARGET_CDMV5_SCHEMA.cdm_source (cdm_source_name, cdm_version, vocabulary_version, cdm_release_date)
select '@TARGET_CDMV5', 'V5', v.vocabulary_version, getDate() select '@TARGET_CDMV5', 'V5', v.vocabulary_version, getDate()
from dbo.vocabulary v from @TARGET_CDMV5_SCHEMA.vocabulary v
where vocabulary_id = 'Vocabulary'; where vocabulary_id = 'Vocabulary';
/**** /****
@ -311,7 +331,7 @@ LOCATION
****/ ****/
insert into dbo.location insert into @TARGET_CDMV5_SCHEMA.location
select location_id, address_1, address_2, city, state, zip, county, location_source_value select location_id, address_1, address_2, city, state, zip, county, location_source_value
from @SOURCE_CDMV4_SCHEMA.LOCATION; from @SOURCE_CDMV4_SCHEMA.LOCATION;
@ -321,7 +341,7 @@ CARE_SITE
****/ ****/
insert into dbo.care_site insert into @TARGET_CDMV5_SCHEMA.care_site
select care_site_id, cast(null as varchar(255)) as care_site_name, place_of_service_concept_id, location_id, care_site_source_value, place_of_service_source_value select care_site_id, cast(null as varchar(255)) as care_site_name, place_of_service_concept_id, location_id, care_site_source_value, place_of_service_source_value
from @SOURCE_CDMV4_SCHEMA.CARE_SITE; from @SOURCE_CDMV4_SCHEMA.CARE_SITE;
@ -331,7 +351,7 @@ Provider
****/ ****/
insert dbo.provider insert into @TARGET_CDMV5_SCHEMA.provider
select provider_id, cast(null as varchar(255)) as provider_name, NPI, DEA, specialty_concept_id, care_site_id, cast(null as integer) as year_of_birth, select provider_id, cast(null as varchar(255)) as provider_name, NPI, DEA, specialty_concept_id, care_site_id, cast(null as integer) as year_of_birth,
cast(null as integer) as gender_concept_id, provider_source_value, specialty_source_value, 0 as specialty_source_concept_id, cast(null as integer) as gender_concept_id, provider_source_value, specialty_source_value, 0 as specialty_source_concept_id,
cast(null as varchar(50)) as gender_source_value, cast(null as integer) as gender_source_concept_id cast(null as varchar(50)) as gender_source_value, cast(null as integer) as gender_source_concept_id
@ -345,7 +365,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
****/ ****/
INSERT dbo.person INSERT into @TARGET_CDMV5_SCHEMA.person
SELECT SELECT
person_id, person_id,
coalesce(gender.target_concept_id, 0) as gender_concept_id, coalesce(gender.target_concept_id, 0) as gender_concept_id,
@ -371,7 +391,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
LEFT JOIN #concept_map ethnicity on LOWER(ethnicity.DOMAIN_ID) IN ('ethnicity') and p.ETHNICITY_CONCEPT_ID = ethnicity.source_concept_id; LEFT JOIN #concept_map ethnicity on LOWER(ethnicity.DOMAIN_ID) IN ('ethnicity') and p.ETHNICITY_CONCEPT_ID = ethnicity.source_concept_id;
INSERT ETL_WARNINGS (WARNING_MESSAGE) INSERT INTO ETL_WARNINGS (WARNING_MESSAGE)
SELECT 'PERSON: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid GENDER_CONCEPT_ID' SELECT 'PERSON: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid GENDER_CONCEPT_ID'
FROM FROM
( (
@ -379,7 +399,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
FROM @SOURCE_CDMV4_SCHEMA.PERSON FROM @SOURCE_CDMV4_SCHEMA.PERSON
WHERE GENDER_CONCEPT_ID NOT IN ( WHERE GENDER_CONCEPT_ID NOT IN (
SELECT CONCEPT_ID SELECT CONCEPT_ID
FROM CONCEPT FROM @TARGET_CDMV5_SCHEMA.CONCEPT
WHERE CONCEPT_ID = 0 WHERE CONCEPT_ID = 0
OR OR
(STANDARD_CONCEPT = 'S' (STANDARD_CONCEPT = 'S'
@ -390,7 +410,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
) warn ) warn
; ;
INSERT ETL_WARNINGS (WARNING_MESSAGE) INSERT INTO ETL_WARNINGS (WARNING_MESSAGE)
SELECT 'PERSON: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid RACE_CONCEPT_ID' SELECT 'PERSON: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid RACE_CONCEPT_ID'
FROM FROM
( (
@ -399,7 +419,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
WHERE RACE_CONCEPT_ID IS NOT NULL WHERE RACE_CONCEPT_ID IS NOT NULL
AND RACE_CONCEPT_ID NOT IN ( AND RACE_CONCEPT_ID NOT IN (
SELECT CONCEPT_ID SELECT CONCEPT_ID
FROM CONCEPT FROM @TARGET_CDMV5_SCHEMA.CONCEPT
WHERE CONCEPT_ID = 0 WHERE CONCEPT_ID = 0
OR OR
(STANDARD_CONCEPT = 'S' (STANDARD_CONCEPT = 'S'
@ -410,7 +430,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
; ;
INSERT ETL_WARNINGS (WARNING_MESSAGE) INSERT INTO ETL_WARNINGS (WARNING_MESSAGE)
SELECT 'PERSON: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid ETHNICITY_CONCEPT_ID' SELECT 'PERSON: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid ETHNICITY_CONCEPT_ID'
FROM FROM
( (
@ -419,7 +439,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
WHERE ETHNICITY_CONCEPT_ID IS NOT NULL WHERE ETHNICITY_CONCEPT_ID IS NOT NULL
AND ETHNICITY_CONCEPT_ID NOT IN ( AND ETHNICITY_CONCEPT_ID NOT IN (
SELECT CONCEPT_ID SELECT CONCEPT_ID
FROM CONCEPT FROM @TARGET_CDMV5_SCHEMA.CONCEPT
WHERE CONCEPT_ID = 0 WHERE CONCEPT_ID = 0
OR OR
(STANDARD_CONCEPT = 'S' (STANDARD_CONCEPT = 'S'
@ -435,7 +455,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
****/ ****/
INSERT dbo.observation_period INSERT INTO @TARGET_CDMV5_SCHEMA.observation_period
SELECT observation_period_id, person_id, observation_period_start_date, observation_period_end_date, 44814722 as period_type_concept_id SELECT observation_period_id, person_id, observation_period_start_date, observation_period_end_date, 44814722 as period_type_concept_id
FROM @SOURCE_CDMV4_SCHEMA.OBSERVATION_PERIOD; FROM @SOURCE_CDMV4_SCHEMA.OBSERVATION_PERIOD;
@ -445,7 +465,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
****/ ****/
INSERT dbo.death INSERT INTO @TARGET_CDMV5_SCHEMA.death
SELECT person_id, SELECT person_id,
death_date, death_date,
COALESCE(death_type_concept_id,0) AS death_type_concept_id, COALESCE(death_type_concept_id,0) AS death_type_concept_id,
@ -458,7 +478,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
AND LOWER(DOMAIN_ID) IN ('death type'); AND LOWER(DOMAIN_ID) IN ('death type');
INSERT ETL_WARNINGS (WARNING_MESSAGE) INSERT INTO ETL_WARNINGS (WARNING_MESSAGE)
SELECT 'DEATH: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid DEATH_TYPE_CONCEPT_ID' SELECT 'DEATH: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid DEATH_TYPE_CONCEPT_ID'
FROM FROM
( (
@ -466,7 +486,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
FROM @SOURCE_CDMV4_SCHEMA.DEATH FROM @SOURCE_CDMV4_SCHEMA.DEATH
WHERE DEATH_TYPE_CONCEPT_ID NOT IN ( WHERE DEATH_TYPE_CONCEPT_ID NOT IN (
SELECT CONCEPT_ID SELECT CONCEPT_ID
FROM CONCEPT FROM @TARGET_CDMV5_SCHEMA.CONCEPT
WHERE CONCEPT_ID = 0 WHERE CONCEPT_ID = 0
OR OR
(STANDARD_CONCEPT = 'S' (STANDARD_CONCEPT = 'S'
@ -483,7 +503,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
****/ ****/
INSERT dbo.visit_occurrence INSERT INTO @TARGET_CDMV5_SCHEMA.visit_occurrence
SELECT visit_occurrence_id, person_id, SELECT visit_occurrence_id, person_id,
COALESCE(cm1.target_concept_id,0) as visit_concept_id, COALESCE(cm1.target_concept_id,0) as visit_concept_id,
visit_start_date, CAST(null as varchar(10)) visit_start_time, visit_start_date, CAST(null as varchar(10)) visit_start_time,
@ -497,7 +517,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
ON VISIT_OCCURRENCE.PLACE_OF_SERVICE_CONCEPT_ID = cm1.source_concept_id ON VISIT_OCCURRENCE.PLACE_OF_SERVICE_CONCEPT_ID = cm1.source_concept_id
AND LOWER(cm1.domain_id) IN ('visit'); AND LOWER(cm1.domain_id) IN ('visit');
INSERT ETL_WARNINGS (WARNING_MESSAGE) INSERT INTO ETL_WARNINGS (WARNING_MESSAGE)
SELECT 'VISIT_OCCURRENCE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid VISIT_CONCEPT_ID (from the CDMv4 PLACE_OF_SERVICE_CONCEPT_ID field)' SELECT 'VISIT_OCCURRENCE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid VISIT_CONCEPT_ID (from the CDMv4 PLACE_OF_SERVICE_CONCEPT_ID field)'
FROM FROM
( (
@ -505,7 +525,7 @@ from @SOURCE_CDMV4_SCHEMA.provider
FROM @SOURCE_CDMV4_SCHEMA.VISIT_OCCURRENCE FROM @SOURCE_CDMV4_SCHEMA.VISIT_OCCURRENCE
WHERE PLACE_OF_SERVICE_CONCEPT_ID NOT IN ( WHERE PLACE_OF_SERVICE_CONCEPT_ID NOT IN (
SELECT CONCEPT_ID SELECT CONCEPT_ID
FROM CONCEPT FROM @TARGET_CDMV5_SCHEMA.CONCEPT
WHERE CONCEPT_ID = 0 WHERE CONCEPT_ID = 0
OR OR
(STANDARD_CONCEPT = 'S' (STANDARD_CONCEPT = 'S'
@ -710,37 +730,37 @@ UNION ALL
) OTHERS,(SELECT MAX(PROCEDURE_OCCURRENCE_ID) AS MAXROWID FROM @SOURCE_CDMV4_SCHEMA.PROCEDURE_OCCURRENCE) MAXROW ) OTHERS,(SELECT MAX(PROCEDURE_OCCURRENCE_ID) AS MAXROWID FROM @SOURCE_CDMV4_SCHEMA.PROCEDURE_OCCURRENCE) MAXROW
; ;
INSERT INTO [dbo].[procedure_occurrence] INSERT INTO procedure_occurrence
([procedure_occurrence_id] (procedure_occurrence_id
,[person_id] ,person_id
,[procedure_concept_id] ,procedure_concept_id
,[procedure_date] ,procedure_date
,[procedure_type_concept_id] ,procedure_type_concept_id
,[modifier_concept_id] ,modifier_concept_id
,[quantity] ,quantity
,[provider_id] ,provider_id
,[visit_occurrence_id] ,visit_occurrence_id
,[procedure_source_value] ,procedure_source_value
,[procedure_source_concept_id] ,procedure_source_concept_id
,[qualifier_source_value]) ,qualifier_source_value)
SELECT SELECT
[procedure_occurrence_id] procedure_occurrence_id
,[person_id] ,person_id
,[procedure_concept_id] ,procedure_concept_id
,[procedure_date] ,procedure_date
,[procedure_type_concept_id] ,procedure_type_concept_id
,[modifier_concept_id] ,modifier_concept_id
,[quantity] ,quantity
,[provider_id] ,provider_id
,[visit_occurrence_id] ,visit_occurrence_id
,[procedure_source_value] ,procedure_source_value
,[procedure_source_concept_id] ,procedure_source_concept_id
,[qualifier_source_value] ,qualifier_source_value
FROM #procedure_occurrence_map FROM #procedure_occurrence_map;
--warnings of invalid records --warnings of invalid records
INSERT ETL_WARNINGS (WARNING_MESSAGE) INSERT INTO ETL_WARNINGS (WARNING_MESSAGE)
SELECT 'PROCEDURE_OCCURRENCE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid PROCOEDURE_CONCEPT_ID' SELECT 'PROCEDURE_OCCURRENCE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid PROCOEDURE_CONCEPT_ID'
FROM FROM
( (
@ -748,7 +768,7 @@ FROM #procedure_occurrence_map
FROM @SOURCE_CDMV4_SCHEMA.PROCEDURE_OCCURRENCE FROM @SOURCE_CDMV4_SCHEMA.PROCEDURE_OCCURRENCE
WHERE PROCEDURE_CONCEPT_ID NOT IN ( WHERE PROCEDURE_CONCEPT_ID NOT IN (
SELECT CONCEPT_ID SELECT CONCEPT_ID
FROM CONCEPT FROM @TARGET_CDMV5_SCHEMA.CONCEPT
WHERE CONCEPT_ID = 0 WHERE CONCEPT_ID = 0
OR OR
STANDARD_CONCEPT = 'S' STANDARD_CONCEPT = 'S'
@ -758,7 +778,7 @@ FROM #procedure_occurrence_map
; ;
INSERT ETL_WARNINGS (WARNING_MESSAGE) INSERT INTO ETL_WARNINGS (WARNING_MESSAGE)
SELECT 'PROCEDURE_OCCURRENCE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid PROCOEDURE_TYPE_CONCEPT_ID' SELECT 'PROCEDURE_OCCURRENCE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid PROCOEDURE_TYPE_CONCEPT_ID'
FROM FROM
( (
@ -766,7 +786,7 @@ FROM #procedure_occurrence_map
FROM @SOURCE_CDMV4_SCHEMA.PROCEDURE_OCCURRENCE FROM @SOURCE_CDMV4_SCHEMA.PROCEDURE_OCCURRENCE
WHERE PROCEDURE_TYPE_CONCEPT_ID NOT IN ( WHERE PROCEDURE_TYPE_CONCEPT_ID NOT IN (
SELECT CONCEPT_ID SELECT CONCEPT_ID
FROM CONCEPT FROM @TARGET_CDMV5_SCHEMA.CONCEPT
WHERE CONCEPT_ID = 0 WHERE CONCEPT_ID = 0
OR OR
(STANDARD_CONCEPT = 'S' (STANDARD_CONCEPT = 'S'
@ -970,55 +990,55 @@ FROM
AND LOWER(cm1.domain_id) IN ('drug') AND LOWER(cm1.domain_id) IN ('drug')
) OTHERS,(SELECT MAX(DRUG_EXPOSURE_ID) AS MAXROWID FROM @SOURCE_CDMV4_SCHEMA.DRUG_EXPOSURE) MAXROW ) OTHERS,(SELECT MAX(DRUG_EXPOSURE_ID) AS MAXROWID FROM @SOURCE_CDMV4_SCHEMA.DRUG_EXPOSURE) MAXROW
; ;
INSERT INTO [dbo].[drug_exposure] INSERT INTO drug_exposure
([drug_exposure_id] (drug_exposure_id
,[person_id] ,person_id
,[drug_concept_id] ,drug_concept_id
,[drug_exposure_start_date] ,drug_exposure_start_date
,[drug_exposure_end_date] ,drug_exposure_end_date
,[drug_type_concept_id] ,drug_type_concept_id
,[stop_reason] ,stop_reason
,[refills] ,refills
,[quantity] ,quantity
,[days_supply] ,days_supply
,[sig] ,sig
,[route_concept_id] ,route_concept_id
,[effective_drug_dose] ,effective_drug_dose
,[dose_unit_concept_id] ,dose_unit_concept_id
,[lot_number] ,lot_number
,[provider_id] ,provider_id
,[visit_occurrence_id] ,visit_occurrence_id
,[drug_source_value] ,drug_source_value
,[drug_source_concept_id] ,drug_source_concept_id
,[route_source_value] ,route_source_value
,[dose_unit_source_value]) ,dose_unit_source_value)
SELECT SELECT
[drug_exposure_id] drug_exposure_id
,[person_id] ,person_id
,[drug_concept_id] ,drug_concept_id
,[drug_exposure_start_date] ,drug_exposure_start_date
,[drug_exposure_end_date] ,drug_exposure_end_date
,[drug_type_concept_id] ,drug_type_concept_id
,[stop_reason] ,stop_reason
,[refills] ,refills
,[quantity] ,quantity
,[days_supply] ,days_supply
,[sig] ,sig
,[route_concept_id] ,route_concept_id
,[effective_drug_dose] ,effective_drug_dose
,[dose_unit_concept_id] ,dose_unit_concept_id
,[lot_number] ,lot_number
,[provider_id] ,provider_id
,[visit_occurrence_id] ,visit_occurrence_id
,[drug_source_value] ,drug_source_value
,[drug_source_concept_id] ,drug_source_concept_id
,[route_source_value] ,route_source_value
,[dose_unit_source_value] ,dose_unit_source_value
FROM #drug_exposure_map FROM #drug_exposure_map;
--warnings of invalid records --warnings of invalid records
INSERT ETL_WARNINGS (WARNING_MESSAGE) INSERT INTO ETL_WARNINGS (WARNING_MESSAGE)
SELECT 'DRUG_EXPOSURE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid DRUG_CONCEPT_ID' SELECT 'DRUG_EXPOSURE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid DRUG_CONCEPT_ID'
FROM FROM
( (
@ -1026,7 +1046,7 @@ FROM #drug_exposure_map
FROM @SOURCE_CDMV4_SCHEMA.DRUG_EXPOSURE FROM @SOURCE_CDMV4_SCHEMA.DRUG_EXPOSURE
WHERE DRUG_CONCEPT_ID NOT IN ( WHERE DRUG_CONCEPT_ID NOT IN (
SELECT CONCEPT_ID SELECT CONCEPT_ID
FROM CONCEPT FROM @TARGET_CDMV5_SCHEMA.CONCEPT
WHERE CONCEPT_ID = 0 WHERE CONCEPT_ID = 0
OR OR
STANDARD_CONCEPT = 'S' STANDARD_CONCEPT = 'S'
@ -1036,7 +1056,7 @@ FROM #drug_exposure_map
; ;
INSERT ETL_WARNINGS (WARNING_MESSAGE) INSERT INTO ETL_WARNINGS (WARNING_MESSAGE)
SELECT 'DRUG_EXPOSURE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid DRUG_TYPE_CONCEPT_ID' SELECT 'DRUG_EXPOSURE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid DRUG_TYPE_CONCEPT_ID'
FROM FROM
( (
@ -1044,7 +1064,7 @@ FROM #drug_exposure_map
FROM @SOURCE_CDMV4_SCHEMA.DRUG_EXPOSURE FROM @SOURCE_CDMV4_SCHEMA.DRUG_EXPOSURE
WHERE DRUG_TYPE_CONCEPT_ID NOT IN ( WHERE DRUG_TYPE_CONCEPT_ID NOT IN (
SELECT CONCEPT_ID SELECT CONCEPT_ID
FROM CONCEPT FROM @TARGET_CDMV5_SCHEMA.CONCEPT
WHERE CONCEPT_ID = 0 WHERE CONCEPT_ID = 0
OR OR
(STANDARD_CONCEPT = 'S' (STANDARD_CONCEPT = 'S'
@ -1062,7 +1082,7 @@ FROM #drug_exposure_map
****/ ****/
--find valid conditions from condition_occurrence table --find valid conditions from condition_occurrence table
INSERT dbo.condition_occurrence INSERT INTO @TARGET_CDMV5_SCHEMA.condition_occurrence
SELECT condition_occurrence_id, SELECT condition_occurrence_id,
person_id, person_id,
COALESCE(cm1.target_concept_id, 0) AS condition_concept_id, COALESCE(cm1.target_concept_id, 0) AS condition_concept_id,
@ -1136,7 +1156,8 @@ FROM (
condition_end_date, condition_end_date,
COALESCE(cm2.target_concept_id,0) AS condition_type_concept_id, COALESCE(cm2.target_concept_id,0) AS condition_type_concept_id,
stop_reason, associated_provider_id as provider_id, visit_occurrence_id, stop_reason, associated_provider_id as provider_id, visit_occurrence_id,
condition_source_value, CAST(null as integer) condition_source_concept_id condition_source_value, CAST(null as integer) condition_source_concept_id,
NULL as OCCURRENCE_ID
FROM @SOURCE_CDMV4_SCHEMA.CONDITION_OCCURRENCE FROM @SOURCE_CDMV4_SCHEMA.CONDITION_OCCURRENCE
INNER JOIN #concept_map cm1 INNER JOIN #concept_map cm1
ON condition_occurrence.condition_concept_id = cm1.source_concept_id ON condition_occurrence.condition_concept_id = cm1.source_concept_id
@ -1192,7 +1213,7 @@ FROM (
--warnings of invalid records --warnings of invalid records
INSERT ETL_WARNINGS (WARNING_MESSAGE) INSERT INTO ETL_WARNINGS (WARNING_MESSAGE)
SELECT 'CONDITION_OCCURRENCE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid CONDITION_CONCEPT_ID' SELECT 'CONDITION_OCCURRENCE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid CONDITION_CONCEPT_ID'
FROM FROM
( (
@ -1200,7 +1221,7 @@ FROM (
FROM @SOURCE_CDMV4_SCHEMA.CONDITION_OCCURRENCE FROM @SOURCE_CDMV4_SCHEMA.CONDITION_OCCURRENCE
WHERE CONDITION_CONCEPT_ID NOT IN ( WHERE CONDITION_CONCEPT_ID NOT IN (
SELECT CONCEPT_ID SELECT CONCEPT_ID
FROM CONCEPT FROM @TARGET_CDMV5_SCHEMA.CONCEPT
WHERE CONCEPT_ID = 0 WHERE CONCEPT_ID = 0
OR OR
STANDARD_CONCEPT = 'S' STANDARD_CONCEPT = 'S'
@ -1210,7 +1231,7 @@ FROM (
; ;
INSERT ETL_WARNINGS (WARNING_MESSAGE) INSERT INTO ETL_WARNINGS (WARNING_MESSAGE)
SELECT 'CONDIITON_OCCURRENCE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid CONDITION_TYPE_CONCEPT_ID' SELECT 'CONDIITON_OCCURRENCE: ' + CAST(NUM_INVALID_RECORDS AS VARCHAR) + ' records in the source CDMv4 database have invalid CONDITION_TYPE_CONCEPT_ID'
FROM FROM
( (
@ -1218,7 +1239,7 @@ FROM (
FROM @SOURCE_CDMV4_SCHEMA.CONDITION_OCCURRENCE FROM @SOURCE_CDMV4_SCHEMA.CONDITION_OCCURRENCE
WHERE CONDITION_TYPE_CONCEPT_ID NOT IN ( WHERE CONDITION_TYPE_CONCEPT_ID NOT IN (
SELECT CONCEPT_ID SELECT CONCEPT_ID
FROM CONCEPT FROM @TARGET_CDMV5_SCHEMA.CONCEPT
WHERE CONCEPT_ID = 0 WHERE CONCEPT_ID = 0
OR OR
(STANDARD_CONCEPT = 'S' (STANDARD_CONCEPT = 'S'
@ -1237,7 +1258,7 @@ FROM (
****/ ****/
INSERT dbo.device_exposure INSERT INTO @TARGET_CDMV5_SCHEMA.device_exposure
select row_number() over (order by OCCURRENCE_ID) AS device_exposure_id, select row_number() over (order by OCCURRENCE_ID) AS device_exposure_id,
person_id, device_concept_id, device_exposure_start_date, device_exposure_end_date, device_type_concept_id, person_id, device_concept_id, device_exposure_start_date, device_exposure_end_date, device_type_concept_id,
unique_device_id, quantity, provider_id, visit_occurrence_id, device_source_value, device_source_concept_id unique_device_id, quantity, provider_id, visit_occurrence_id, device_source_value, device_source_concept_id
@ -1308,7 +1329,7 @@ FROM
****/ ****/
--find valid measurements from observation table --find valid measurements from observation table
INSERT dbo.measurement INSERT INTO @TARGET_CDMV5_SCHEMA.measurement
SELECT row_number() over (order by occurrence_id) AS measurement_id, SELECT row_number() over (order by occurrence_id) AS measurement_id,
person_id, measurement_concept_id, measurement_date, measurement_time, measurement_type_concept_id, operator_concept_id, value_as_number, value_as_concept_id, unit_concept_id, range_low, range_high, person_id, measurement_concept_id, measurement_date, measurement_time, measurement_type_concept_id, operator_concept_id, value_as_number, value_as_concept_id, unit_concept_id, range_low, range_high,
provider_id, visit_occurrence_id, measurement_source_value, measurement_source_concept_id, unit_source_value, value_source_value provider_id, visit_occurrence_id, measurement_source_value, measurement_source_concept_id, unit_source_value, value_source_value
@ -1426,7 +1447,7 @@ from
--find valid observation from observation table --find valid observation from observation table
INSERT dbo.observation INSERT INTO @TARGET_CDMV5_SCHEMA.observation
SELECT observation_id, person_id, observation_concept_id, observation_date, observation_time, observation_type_concept_id, SELECT observation_id, person_id, observation_concept_id, observation_date, observation_time, observation_type_concept_id,
value_as_number, value_as_string, value_as_concept_id, CAST(null as integer) qualifier_concept_id, value_as_number, value_as_string, value_as_concept_id, CAST(null as integer) qualifier_concept_id,
unit_concept_id, associated_provider_id as provider_id, unit_concept_id, associated_provider_id as provider_id,
@ -1498,7 +1519,7 @@ FROM
****/ ****/
INSERT dbo.payer_plan_period INSERT INTO @TARGET_CDMV5_SCHEMA.payer_plan_period
SELECT payer_plan_period_id, person_id, payer_plan_period_start_date, payer_plan_period_end_date, SELECT payer_plan_period_id, person_id, payer_plan_period_start_date, payer_plan_period_end_date,
payer_source_value, plan_source_value, family_source_value payer_source_value, plan_source_value, family_source_value
FROM @SOURCE_CDMV4_SCHEMA.PAYER_PLAN_PERIOD; FROM @SOURCE_CDMV4_SCHEMA.PAYER_PLAN_PERIOD;
@ -1511,7 +1532,7 @@ FROM @SOURCE_CDMV4_SCHEMA.PAYER_PLAN_PERIOD;
****/ ****/
INSERT dbo.drug_cost INSERT INTO @TARGET_CDMV5_SCHEMA.drug_cost
SELECT drug_cost_id, dc.drug_exposure_id, cast(null as integer) currency_concept_id, paid_copay, paid_coinsurance, paid_toward_deductible, paid_by_payer, SELECT drug_cost_id, dc.drug_exposure_id, cast(null as integer) currency_concept_id, paid_copay, paid_coinsurance, paid_toward_deductible, paid_by_payer,
paid_by_coordination_benefits, total_out_of_pocket, total_paid, ingredient_cost, dispensing_fee, paid_by_coordination_benefits, total_out_of_pocket, total_paid, ingredient_cost, dispensing_fee,
average_wholesale_price, payer_plan_period_id average_wholesale_price, payer_plan_period_id
@ -1519,7 +1540,7 @@ FROM @SOURCE_CDMV4_SCHEMA.DRUG_COST dc
; ;
-- insert procedure costs for procedures that were inserted into the drug_exposure table -- insert procedure costs for procedures that were inserted into the drug_exposure table
INSERT INTO dbo.drug_cost INSERT INTO @TARGET_CDMV5_SCHEMA.drug_cost
select CASE WHEN MAXROW.MAXROWID IS NULL THEN 0 ELSE MAXROW.MAXROWID END + row_number() over (order by OCCURRENCE_ID) AS drug_cost_id, select CASE WHEN MAXROW.MAXROWID IS NULL THEN 0 ELSE MAXROW.MAXROWID END + row_number() over (order by OCCURRENCE_ID) AS drug_cost_id,
drug_exposure_id, cast(null as integer) currency_concept_id, paid_copay, paid_coinsurance, paid_toward_deductible, paid_by_payer, drug_exposure_id, cast(null as integer) currency_concept_id, paid_copay, paid_coinsurance, paid_toward_deductible, paid_by_payer,
paid_by_coordination_benefits, total_out_of_pocket, total_paid, ingredient_cost, dispensing_fee, paid_by_coordination_benefits, total_out_of_pocket, total_paid, ingredient_cost, dispensing_fee,
@ -1544,7 +1565,7 @@ FROM (
****/ ****/
INSERT INTO dbo.procedure_cost INSERT INTO @TARGET_CDMV5_SCHEMA.procedure_cost
SELECT procedure_cost_id, procedure_occurrence_id, cast(null as integer) currency_concept_id, paid_copay, paid_coinsurance, paid_toward_deductible, SELECT procedure_cost_id, procedure_occurrence_id, cast(null as integer) currency_concept_id, paid_copay, paid_coinsurance, paid_toward_deductible,
paid_by_payer, paid_by_coordination_benefits, total_out_of_pocket, total_paid, paid_by_payer, paid_by_coordination_benefits, total_out_of_pocket, total_paid,
payer_plan_period_id, revenue_code_concept_id, revenue_code_source_value payer_plan_period_id, revenue_code_concept_id, revenue_code_source_value
@ -1552,7 +1573,7 @@ FROM @SOURCE_CDMV4_SCHEMA.PROCEDURE_COST;
-- insert drug costs for drugs that were inserted into the procedure_occurrence table -- insert drug costs for drugs that were inserted into the procedure_occurrence table
INSERT INTO dbo.procedure_cost INSERT INTO @TARGET_CDMV5_SCHEMA.procedure_cost
SELECT CASE WHEN MAXROW.MAXROWID IS NULL THEN 0 ELSE MAXROW.MAXROWID END + row_number() over (order by OCCURRENCE_ID) AS procedure_cost_id, SELECT CASE WHEN MAXROW.MAXROWID IS NULL THEN 0 ELSE MAXROW.MAXROWID END + row_number() over (order by OCCURRENCE_ID) AS procedure_cost_id,
procedure_occurrence_id, cast(null as integer) currency_concept_id, paid_copay, paid_coinsurance, paid_toward_deductible, procedure_occurrence_id, cast(null as integer) currency_concept_id, paid_copay, paid_coinsurance, paid_toward_deductible,
paid_by_payer, paid_by_coordination_benefits, total_out_of_pocket, total_paid, paid_by_payer, paid_by_coordination_benefits, total_out_of_pocket, total_paid,
@ -1583,8 +1604,8 @@ with cteDrugTarget (DRUG_EXPOSURE_ID, PERSON_ID, DRUG_CONCEPT_ID, DRUG_TYPE_CONC
COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE, COALESCE(DRUG_EXPOSURE_END_DATE, DATEADD(day,DAYS_SUPPLY,DRUG_EXPOSURE_START_DATE), DATEADD(day,1,DRUG_EXPOSURE_START_DATE)) as DRUG_EXPOSURE_END_DATE,
c.CONCEPT_ID as INGREDIENT_CONCEPT_ID c.CONCEPT_ID as INGREDIENT_CONCEPT_ID
FROM @TARGET_CDMV5_SCHEMA.DRUG_EXPOSURE d FROM @TARGET_CDMV5_SCHEMA.DRUG_EXPOSURE d
join dbo.CONCEPT_ANCESTOR ca on ca.DESCENDANT_CONCEPT_ID = d.DRUG_CONCEPT_ID join @TARGET_CDMV5_SCHEMA.CONCEPT_ANCESTOR ca on ca.DESCENDANT_CONCEPT_ID = d.DRUG_CONCEPT_ID
join dbo.CONCEPT c on ca.ANCESTOR_CONCEPT_ID = c.CONCEPT_ID join @TARGET_CDMV5_SCHEMA.CONCEPT c on ca.ANCESTOR_CONCEPT_ID = c.CONCEPT_ID
where c.VOCABULARY_ID = 'RxNorm' where c.VOCABULARY_ID = 'RxNorm'
and c.CONCEPT_CLASS_ID = 'Ingredient' and c.CONCEPT_CLASS_ID = 'Ingredient'
), ),
@ -1634,7 +1655,7 @@ GROUP BY d.PERSON_ID,
d.DRUG_TYPE_CONCEPT_ID, d.DRUG_TYPE_CONCEPT_ID,
d.DRUG_EXPOSURE_START_DATE d.DRUG_EXPOSURE_START_DATE
) )
insert into dbo.drug_era insert into @TARGET_CDMV5_SCHEMA.drug_era
select row_number() over (order by person_id) as drug_era_id, person_id, drug_concept_id, min(DRUG_EXPOSURE_START_DATE) as drug_era_start_date, drug_era_end_date, COUNT(*) as DRUG_EXPOSURE_COUNT, 30 as gap_days select row_number() over (order by person_id) as drug_era_id, person_id, drug_concept_id, min(DRUG_EXPOSURE_START_DATE) as drug_era_start_date, drug_era_end_date, COUNT(*) as DRUG_EXPOSURE_COUNT, 30 as gap_days
from cteDrugExposureEnds from cteDrugExposureEnds
GROUP BY person_id, drug_concept_id, drug_type_concept_id, DRUG_ERA_END_DATE GROUP BY person_id, drug_concept_id, drug_type_concept_id, DRUG_ERA_END_DATE
@ -1708,13 +1729,13 @@ from cteConditionEnds
GROUP BY person_id, CONDITION_CONCEPT_ID, ERA_END_DATE GROUP BY person_id, CONDITION_CONCEPT_ID, ERA_END_DATE
; ;
INSERT INTO [dbo].[condition_era] INSERT INTO condition_era
([condition_era_id] (condition_era_id
,[person_id] ,person_id
,[condition_concept_id] ,condition_concept_id
,[condition_era_start_date] ,condition_era_start_date
,[condition_era_end_date] ,condition_era_end_date
,[condition_occurrence_count]) ,condition_occurrence_count)
SELECT SELECT
condition_era_id, condition_era_id,
PERSON_ID, PERSON_ID,