From 9a3f57223e9243882cb0c8ef6e3704e3aeb47da8 Mon Sep 17 00:00:00 2001 From: Varshinee Date: Wed, 12 Mar 2025 07:57:20 -0500 Subject: [PATCH 1/4] CNDE-2346 d_disease_site postprocessing --- ...5-sp_nrt_d_disease_site_postprocessing.sql | 503 ++++++++++++++++++ ...-create_nrt_disease_site_group_key-001.sql | 15 + .../070-create_nrt_disease_site_key-001.sql | 16 + .../075-create_d_disease_site_group-001.sql | 15 + .../tables/080-create_d_disease_site-001.sql | 23 + .../db.rdb_modern.changelog-16.1.yaml | 50 ++ ..._nrt_d_disease_site_postprocessing-001.sql | 493 +++++++++++++++++ .../065-create_nrt_disease_site_group_key.sql | 15 + .../070-create_nrt_disease_site_key.sql | 16 + .../075-create_d_disease_site_group.sql | 15 + .../tables/080-create_d_disease_site.sql | 23 + .../repository/InvestigationRepository.java | 4 + .../postprocessingservice/service/Entity.java | 3 + .../service/PostProcessingService.java | 9 + .../src/main/resources/application.yaml | 1 + .../service/PostProcessingServiceTest.java | 14 +- 16 files changed, 1213 insertions(+), 2 deletions(-) create mode 100644 db/upgrade/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing.sql create mode 100644 db/upgrade/rdb_modern/tables/065-create_nrt_disease_site_group_key-001.sql create mode 100644 db/upgrade/rdb_modern/tables/070-create_nrt_disease_site_key-001.sql create mode 100644 db/upgrade/rdb_modern/tables/075-create_d_disease_site_group-001.sql create mode 100644 db/upgrade/rdb_modern/tables/080-create_d_disease_site-001.sql create mode 100644 liquibase-service/src/main/resources/db/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing-001.sql create mode 100644 liquibase-service/src/main/resources/db/rdb_modern/tables/065-create_nrt_disease_site_group_key.sql create mode 100644 liquibase-service/src/main/resources/db/rdb_modern/tables/070-create_nrt_disease_site_key.sql create mode 100644 liquibase-service/src/main/resources/db/rdb_modern/tables/075-create_d_disease_site_group.sql create mode 100644 liquibase-service/src/main/resources/db/rdb_modern/tables/080-create_d_disease_site.sql diff --git a/db/upgrade/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing.sql b/db/upgrade/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing.sql new file mode 100644 index 00000000..3d4a9dca --- /dev/null +++ b/db/upgrade/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing.sql @@ -0,0 +1,503 @@ +CREATE OR ALTER PROCEDURE dbo.sp_nrt_d_disease_site_postprocessing +@phc_uids nvarchar(max), +@debug bit = 'false' +AS +BEGIN + BEGIN TRY + /* Logging */ + + declare @RowCount_no bigint; + declare @proc_step_no float = 0; + declare @proc_step_name varchar(200) = ''; + declare @batch_id bigint; + declare @create_dttm datetime2(7) = current_timestamp ; + declare @update_dttm datetime2(7) = current_timestamp ; + declare @dataflow_name varchar(200) = 'DISEASE_SITE POST-Processing'; + declare @package_name varchar(200) = 'RDB_MODERN.sp_nrt_disease_site_postprocessing'; + + set @batch_id = cast((format(getdate(),'yyMMddHHmmss')) as bigint); + + SELECT @ROWCOUNT_NO = 0; + + BEGIN TRANSACTION + + INSERT INTO [DBO].[JOB_FLOW_LOG] + (BATCH_ID, [DATAFLOW_NAME], [PACKAGE_NAME], [STATUS_TYPE], [STEP_NUMBER], [STEP_NAME], [ROW_COUNT]) + VALUES (@BATCH_ID, @dataflow_name, @package_name, 'START', @PROC_STEP_NO, @PROC_STEP_NAME, @ROWCOUNT_NO); + + COMMIT TRANSACTION; + +-------------------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'GENERATING #S_DISEASE_SITE_CD_TRANSLATED'; + + IF OBJECT_ID('#S_DISEASE_SITE_CD_TRANSLATED', 'U') IS NOT NULL + drop table #S_DISEASE_SITE_CD_TRANSLATED; + + SELECT + CAST(TB.ACT_UID AS BIGINT) AS TB_PAM_UID, + TB.SEQ_NBR, + TB.DATAMART_COLUMN_NM, + TB.NBS_CASE_ANSWER_UID, + TB.ANSWER_TXT, + TB.CODE_SET_GROUP_ID, + TB.LAST_CHG_TIME, + METADATA.CODE_SET_NM, + CVG.CODE, + CVG.CODE_SHORT_DESC_TXT AS CODE_SHORT_DESC_TXT + INTO #S_DISEASE_SITE_CD_TRANSLATED + FROM DBO.NRT_PAGE_CASE_ANSWER TB with (nolock) + left join dbo.NRT_INVESTIGATION inv with(nolock) + on TB.act_uid = inv.public_health_case_uid + LEFT JOIN DBO.nrt_srte_Codeset_Group_Metadata METADATA with (nolock) + ON METADATA.CODE_SET_GROUP_ID = TB.CODE_SET_GROUP_ID + LEFT JOIN DBO.nrt_srte_CODE_VALUE_GENERAL CVG with (nolock) + ON CVG.CODE_SET_NM = METADATA.CODE_SET_NM + AND CVG.CODE = TB.ANSWER_TXT + WHERE TB.DATAMART_COLUMN_NM <> 'n/a' + and isnull(tb.batch_id, 1) = isnull(inv.batch_id, 1) + AND QUESTION_IDENTIFIER = 'TUB119' + and TB.ACT_UID in (SELECT value FROM STRING_SPLIT(@phc_uids, ',')) + option (MAXDOP 1); + + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #S_DISEASE_SITE_CD_TRANSLATED; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +--------------------------------------------------------------------------------------------------------------------- + + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'GENERATING #S_DISEASE_SITE'; + + IF OBJECT_ID('#S_DISEASE_SITE', 'U') IS NOT NULL + drop table #S_DISEASE_SITE; + + + SELECT + *, + CASE + WHEN CODE_SET_GROUP_ID IS NULL OR CODE_SET_GROUP_ID = '' + THEN ANSWER_TXT + WHEN CODE_SET_GROUP_ID<>'' THEN CODE_SHORT_DESC_TXT + ELSE ANSWER_TXT + END AS VALUE + INTO #S_DISEASE_SITE + FROM #S_DISEASE_SITE_CD_TRANSLATED with (nolock); + + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #S_DISEASE_SITE; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Delete old keys from nrt_disease_site_group_key'; + + DELETE FROM DBO.NRT_DISEASE_SITE_GROUP_KEY; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Delete old keys from nrt_disease_site_key '; + + DELETE FROM DBO.NRT_DISEASE_SITE_KEY; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Insert keys to nrt_disease_site_group_key '; + + INSERT INTO DBO.NRT_DISEASE_SITE_GROUP_KEY(TB_PAM_UID) + SELECT DISTINCT TB_PAM_UID FROM #S_DISEASE_SITE; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Insert keys to dbo.nrt_disease_site_key'; + + INSERT INTO DBO.NRT_DISEASE_SITE_KEY(TB_PAM_UID, NBS_CASE_ANSWER_UID) + SELECT DISTINCT TB_PAM_UID, NBS_CASE_ANSWER_UID FROM #S_DISEASE_SITE; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'GENERATING #D_TB_PAM_TEMP'; + + IF OBJECT_ID('#D_TB_PAM_TEMP', 'U') IS NOT NULL + drop table #D_TB_PAM_TEMP; + + + SELECT DISTINCT D_TB_PAM.TB_PAM_UID + INTO #D_TB_PAM_TEMP + FROM (SELECT DISTINCT TB_PAM_UID FROM DBO.D_TB_PAM WHERE TB_PAM_UID IN (SELECT VALUE FROM STRING_SPLIT(@phc_uids, ','))) D_TB_PAM + LEFT JOIN #S_DISEASE_SITE DISEASE_SITE with (nolock) + ON DISEASE_SITE.TB_PAM_UID = D_TB_PAM.TB_PAM_UID; + + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #D_TB_PAM_TEMP; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'GENERATING #L_DISEASE_SITE_GROUP'; + + IF OBJECT_ID('#L_DISEASE_SITE_GROUP', 'U') IS NOT NULL + drop table #L_DISEASE_SITE_GROUP; + + SELECT D_TB_PAM.TB_PAM_UID, NRT_GROUP_KEY.TB_PAM_UID AS D_DISEASE_SITE_UID , NRT_GROUP_KEY.D_DISEASE_SITE_GROUP_KEY + INTO #L_DISEASE_SITE_GROUP + FROM #D_TB_PAM_TEMP D_TB_PAM with (nolock) + LEFT OUTER JOIN DBO.NRT_DISEASE_SITE_GROUP_KEY NRT_GROUP_KEY with (nolock) + ON NRT_GROUP_KEY.TB_PAM_UID=D_TB_PAM.TB_PAM_UID; + + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #L_DISEASE_SITE_GROUP; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'GENERATING #L_DISEASE_SITE'; + + IF OBJECT_ID('#L_DISEASE_SITE', 'U') IS NOT NULL + drop table #L_DISEASE_SITE; + + SELECT LDSG.TB_PAM_UID, + NRT_DISEASE_SITE_KEY.NBS_CASE_ANSWER_UID, + CASE WHEN LDSG.D_DISEASE_SITE_GROUP_KEY IS NULL THEN 1 ELSE LDSG.D_DISEASE_SITE_GROUP_KEY END AS D_DISEASE_SITE_GROUP_KEY, + CASE WHEN NRT_DISEASE_SITE_KEY.D_DISEASE_SITE_KEY IS NULL THEN 1 ELSE NRT_DISEASE_SITE_KEY.D_DISEASE_SITE_KEY END AS D_DISEASE_SITE_KEY + INTO #L_DISEASE_SITE + FROM #L_DISEASE_SITE_GROUP LDSG with (nolock) + LEFT OUTER JOIN DBO.NRT_DISEASE_SITE_KEY NRT_DISEASE_SITE_KEY with (nolock) + ON NRT_DISEASE_SITE_KEY.TB_PAM_UID=LDSG.TB_PAM_UID; + + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #L_DISEASE_SITE; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'GENERATING #TEMP_D_DISEASE_SITE'; + + IF OBJECT_ID('#TEMP_D_DISEASE_SITE', 'U') IS NOT NULL + drop table #TEMP_D_DISEASE_SITE; + + SELECT LDS.TB_PAM_UID, + LDS.D_DISEASE_SITE_KEY, + SDS.SEQ_NBR, + LDS.D_DISEASE_SITE_GROUP_KEY, + SDS.LAST_CHG_TIME, + SDS.VALUE + INTO #TEMP_D_DISEASE_SITE + FROM #L_DISEASE_SITE LDS with (nolock) + LEFT OUTER JOIN #S_DISEASE_SITE SDS with (nolock) + ON SDS.TB_PAM_UID=LDS.TB_PAM_UID + AND SDS.NBS_CASE_ANSWER_UID= LDS.NBS_CASE_ANSWER_UID; + + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #TEMP_D_DISEASE_SITE; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Insert records to d_disease_site_group'; + + INSERT INTO DBO.D_DISEASE_SITE_GROUP + ([D_DISEASE_SITE_GROUP_KEY]) + SELECT + DISTINCT + T.D_DISEASE_SITE_GROUP_KEY + FROM #TEMP_D_DISEASE_SITE T with (nolock) + LEFT JOIN DBO.D_DISEASE_SITE_GROUP DSG with (nolock) + ON DSG.D_DISEASE_SITE_GROUP_KEY= T.D_DISEASE_SITE_GROUP_KEY + WHERE DSG.D_DISEASE_SITE_GROUP_KEY IS NULL; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Update d_disease_site'; + + UPDATE DBO.D_DISEASE_SITE + SET + TB_PAM_UID = T.TB_PAM_UID, + SEQ_NBR = T.SEQ_NBR, + LAST_CHG_TIME = T.SEQ_NBR, + VALUE = T.SEQ_NBR + FROM #TEMP_D_DISEASE_SITE T with (nolock) + INNER JOIN DBO.D_DISEASE_SITE D_DISEASE_SITE with (nolock) + ON D_DISEASE_SITE.TB_PAM_UID= T.TB_PAM_UID + WHERE D_DISEASE_SITE.D_DISEASE_SITE_KEY IS NOT NULL; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Insert records to d_disease_site'; + + INSERT INTO DBO.D_DISEASE_SITE + ([TB_PAM_UID] + ,[D_DISEASE_SITE_KEY] + ,[SEQ_NBR] + ,[D_DISEASE_SITE_GROUP_KEY] + ,[LAST_CHG_TIME] + ,[VALUE]) + SELECT + T.TB_PAM_UID, + T.D_DISEASE_SITE_KEY, + T.SEQ_NBR, + T.D_DISEASE_SITE_GROUP_KEY, + T.LAST_CHG_TIME, + T.VALUE + FROM #TEMP_D_DISEASE_SITE T with (nolock) + LEFT JOIN DBO.D_DISEASE_SITE D_DISEASE_SITE with (nolock) + ON D_DISEASE_SITE.TB_PAM_UID= T.TB_PAM_UID + WHERE D_DISEASE_SITE.TB_PAM_UID IS NULL; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET @Proc_Step_no = 999; + + SET @Proc_Step_Name = 'SP_COMPLETE'; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'COMPLETE', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + END TRY + + BEGIN CATCH + + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END; + + DECLARE @ErrorNumber INT = ERROR_NUMBER(); + DECLARE @ErrorLine INT = ERROR_LINE(); + DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE(); + DECLARE @ErrorSeverity INT = ERROR_SEVERITY(); + DECLARE @ErrorState INT = ERROR_STATE(); + + + INSERT INTO dbo.[job_flow_log] ( + batch_id + ,[Dataflow_Name] + ,[package_Name] + ,[Status_Type] + ,[step_number] + ,[step_name] + ,[Error_Description] + ,[row_count] + ) + VALUES ( + @batch_id + ,@dataflow_name + ,@package_name + ,'ERROR' + ,@Proc_Step_no + ,'ERROR - '+ @Proc_Step_name + , 'Step -' +CAST(@Proc_Step_no AS VARCHAR(3))+' -' +CAST(@ErrorMessage AS VARCHAR(500)) + ,0 + ); + + return -1 ; + + END CATCH + +END; + +---------------------------------------------------END OF PROCEDURE--------------------------------------------------------------------- + + + + + + + + + + diff --git a/db/upgrade/rdb_modern/tables/065-create_nrt_disease_site_group_key-001.sql b/db/upgrade/rdb_modern/tables/065-create_nrt_disease_site_group_key-001.sql new file mode 100644 index 00000000..25d9172a --- /dev/null +++ b/db/upgrade/rdb_modern/tables/065-create_nrt_disease_site_group_key-001.sql @@ -0,0 +1,15 @@ +IF NOT EXISTS (SELECT 1 FROM sysobjects WHERE name = 'nrt_disease_site_group_key' and xtype = 'U') + BEGIN + CREATE TABLE dbo.nrt_disease_site_group_key ( + D_DISEASE_SITE_GROUP_KEY bigint IDENTITY (2,1) NOT NULL, + TB_PAM_UID bigint NOT NULL + + ); + + declare @max bigint; + select @max=max(D_DISEASE_SITE_GROUP_KEY)+1 from dbo.nrt_disease_site_group_key ; + select @max; + if @max IS NULL --check when max is returned as null + SET @max = 2; -- default to 2 + DBCC CHECKIDENT ('dbo.nrt_disease_site_group_key', RESEED, @max); + END diff --git a/db/upgrade/rdb_modern/tables/070-create_nrt_disease_site_key-001.sql b/db/upgrade/rdb_modern/tables/070-create_nrt_disease_site_key-001.sql new file mode 100644 index 00000000..f6a65f78 --- /dev/null +++ b/db/upgrade/rdb_modern/tables/070-create_nrt_disease_site_key-001.sql @@ -0,0 +1,16 @@ +IF NOT EXISTS (SELECT 1 FROM sysobjects WHERE name = 'nrt_disease_site_key' and xtype = 'U') + BEGIN + CREATE TABLE dbo.nrt_disease_site_key ( + D_DISEASE_SITE_KEY bigint IDENTITY (2,1) NOT NULL, + NBS_Case_Answer_UID bigint NOT NULL, + TB_PAM_UID bigint NOT NULL + + ); + + declare @max bigint; + select @max=max(D_DISEASE_SITE_KEY)+1 from dbo.nrt_disease_site_key ; + select @max; + if @max IS NULL --check when max is returned as null + SET @max = 2; -- default to 2 + DBCC CHECKIDENT ('dbo.nrt_disease_site_key', RESEED, @max); + END diff --git a/db/upgrade/rdb_modern/tables/075-create_d_disease_site_group-001.sql b/db/upgrade/rdb_modern/tables/075-create_d_disease_site_group-001.sql new file mode 100644 index 00000000..75834632 --- /dev/null +++ b/db/upgrade/rdb_modern/tables/075-create_d_disease_site_group-001.sql @@ -0,0 +1,15 @@ +--CNDE-2346 +IF NOT EXISTS (SELECT 1 + FROM sysobjects + WHERE name = 'D_DISEASE_SITE_GROUP' + and xtype = 'U') + +BEGIN + CREATE TABLE DBO.D_DISEASE_SITE_GROUP ( + D_DISEASE_SITE_GROUP_KEY BIGINT NOT NULL , + PRIMARY KEY + ( + D_DISEASE_SITE_GROUP_KEY + ) + ); +END; diff --git a/db/upgrade/rdb_modern/tables/080-create_d_disease_site-001.sql b/db/upgrade/rdb_modern/tables/080-create_d_disease_site-001.sql new file mode 100644 index 00000000..e05a8ddc --- /dev/null +++ b/db/upgrade/rdb_modern/tables/080-create_d_disease_site-001.sql @@ -0,0 +1,23 @@ +--CNDE-2346 Foreign key constraints will be added after the completion of TB Datamart migration.*/ +IF NOT EXISTS (SELECT 1 + FROM sysobjects + WHERE name = 'D_DISEASE_SITE' + and xtype = 'U') + +BEGIN + CREATE TABLE DBO.D_DISEASE_SITE ( + TB_PAM_UID BIGINT NOT NULL , + D_DISEASE_SITE_KEY BIGINT NOT NULL , + SEQ_NBR INT NULL , + D_DISEASE_SITE_GROUP_KEY BIGINT NOT NULL , + LAST_CHG_TIME DATETIME NULL , + VALUE VARCHAR (250) NULL , + PRIMARY KEY + ( + D_DISEASE_SITE_KEY, + TB_PAM_UID + ) + ); +END; + + diff --git a/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml b/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml index 9cca6bb9..8566c654 100644 --- a/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml +++ b/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml @@ -1159,4 +1159,54 @@ databaseChangeLog: changes: - sqlFile: path: 047-sp_nrt_treatment_postprocessing-001.sql + splitStatements: false + + + - changeSet: + id: 185 + author: liquibase + runOnChange: true + changes: + - sqlFile: + path: 065-create_nrt_disease_site_group_key-001.sql + splitStatements: false + + + - changeSet: + id: 190 + author: liquibase + runOnChange: true + changes: + - sqlFile: + path: 070-create_nrt_disease_site_key-001.sql + splitStatements: false + + + - changeSet: + id: 195 + author: liquibase + runOnChange: true + changes: + - sqlFile: + path: 075-create_d_disease_site_group.sql + splitStatements: false + + + - changeSet: + id: 200 + author: liquibase + runOnChange: true + changes: + - sqlFile: + path: 080-create_d_disease_site.sql + splitStatements: false + + + - changeSet: + id: 205 + author: liquibase + runOnChange: true + changes: + - sqlFile: + path: 145-sp_nrt_d_disease_site_postprocessing.sql splitStatements: false \ No newline at end of file diff --git a/liquibase-service/src/main/resources/db/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing-001.sql b/liquibase-service/src/main/resources/db/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing-001.sql new file mode 100644 index 00000000..69b73b39 --- /dev/null +++ b/liquibase-service/src/main/resources/db/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing-001.sql @@ -0,0 +1,493 @@ +CREATE OR ALTER PROCEDURE dbo.sp_nrt_d_disease_site_postprocessing +@phc_uids nvarchar(max), +@debug bit = 'false' +AS +BEGIN + BEGIN TRY + /* Logging */ + + declare @RowCount_no bigint; + declare @proc_step_no float = 0; + declare @proc_step_name varchar(200) = ''; + declare @batch_id bigint; + declare @create_dttm datetime2(7) = current_timestamp ; + declare @update_dttm datetime2(7) = current_timestamp ; + declare @dataflow_name varchar(200) = 'DISEASE_SITE POST-Processing'; + declare @package_name varchar(200) = 'RDB_MODERN.sp_nrt_disease_site_postprocessing'; + + set @batch_id = cast((format(getdate(),'yyMMddHHmmss')) as bigint); + + SELECT @ROWCOUNT_NO = 0; + + BEGIN TRANSACTION + + INSERT INTO [DBO].[JOB_FLOW_LOG] + (BATCH_ID, [DATAFLOW_NAME], [PACKAGE_NAME], [STATUS_TYPE], [STEP_NUMBER], [STEP_NAME], [ROW_COUNT]) + VALUES (@BATCH_ID, @dataflow_name, @package_name, 'START', @PROC_STEP_NO, @PROC_STEP_NAME, @ROWCOUNT_NO); + + COMMIT TRANSACTION; + +-------------------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'GENERATING #S_DISEASE_SITE_CD_TRANSLATED'; + + IF OBJECT_ID('#S_DISEASE_SITE_CD_TRANSLATED', 'U') IS NOT NULL + drop table #S_DISEASE_SITE_CD_TRANSLATED; + + SELECT + CAST(TB.ACT_UID AS BIGINT) AS TB_PAM_UID, + TB.SEQ_NBR, + TB.DATAMART_COLUMN_NM, + TB.NBS_CASE_ANSWER_UID, + TB.ANSWER_TXT, + TB.CODE_SET_GROUP_ID, + TB.LAST_CHG_TIME, + METADATA.CODE_SET_NM, + CVG.CODE, + CVG.CODE_SHORT_DESC_TXT AS CODE_SHORT_DESC_TXT + INTO #S_DISEASE_SITE_CD_TRANSLATED + FROM DBO.NRT_PAGE_CASE_ANSWER TB with (nolock) + left join dbo.NRT_INVESTIGATION inv with(nolock) + on TB.act_uid = inv.public_health_case_uid + LEFT JOIN DBO.nrt_srte_Codeset_Group_Metadata METADATA with (nolock) + ON METADATA.CODE_SET_GROUP_ID = TB.CODE_SET_GROUP_ID + LEFT JOIN DBO.nrt_srte_CODE_VALUE_GENERAL CVG with (nolock) + ON CVG.CODE_SET_NM = METADATA.CODE_SET_NM + AND CVG.CODE = TB.ANSWER_TXT + WHERE TB.DATAMART_COLUMN_NM <> 'n/a' + and isnull(tb.batch_id, 1) = isnull(inv.batch_id, 1) + AND QUESTION_IDENTIFIER = 'TUB119' + and TB.ACT_UID in (SELECT value FROM STRING_SPLIT(@phc_uids, ',')) + option (MAXDOP 1); + + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #S_DISEASE_SITE_CD_TRANSLATED; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +--------------------------------------------------------------------------------------------------------------------- + + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'GENERATING #S_DISEASE_SITE'; + + IF OBJECT_ID('#S_DISEASE_SITE', 'U') IS NOT NULL + drop table #S_DISEASE_SITE; + + + SELECT + *, + CASE + WHEN CODE_SET_GROUP_ID IS NULL OR CODE_SET_GROUP_ID = '' + THEN ANSWER_TXT + WHEN CODE_SET_GROUP_ID<>'' THEN CODE_SHORT_DESC_TXT + ELSE ANSWER_TXT + END AS VALUE + INTO #S_DISEASE_SITE + FROM #S_DISEASE_SITE_CD_TRANSLATED with (nolock); + + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #S_DISEASE_SITE; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Delete old keys from nrt_disease_site_group_key'; + + DELETE FROM DBO.NRT_DISEASE_SITE_GROUP_KEY; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Delete old keys from nrt_disease_site_key '; + + DELETE FROM DBO.NRT_DISEASE_SITE_KEY; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Insert keys to nrt_disease_site_group_key '; + + INSERT INTO DBO.NRT_DISEASE_SITE_GROUP_KEY(TB_PAM_UID) + SELECT DISTINCT TB_PAM_UID FROM #S_DISEASE_SITE; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Insert keys to dbo.nrt_disease_site_key'; + + INSERT INTO DBO.NRT_DISEASE_SITE_KEY(TB_PAM_UID, NBS_CASE_ANSWER_UID) + SELECT DISTINCT TB_PAM_UID, NBS_CASE_ANSWER_UID FROM #S_DISEASE_SITE; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'GENERATING #D_TB_PAM_TEMP'; + + IF OBJECT_ID('#D_TB_PAM_TEMP', 'U') IS NOT NULL + drop table #D_TB_PAM_TEMP; + + + SELECT DISTINCT D_TB_PAM.TB_PAM_UID + INTO #D_TB_PAM_TEMP + FROM (SELECT DISTINCT TB_PAM_UID FROM DBO.D_TB_PAM WHERE TB_PAM_UID IN (SELECT VALUE FROM STRING_SPLIT(@phc_uids, ','))) D_TB_PAM + LEFT JOIN #S_DISEASE_SITE DISEASE_SITE with (nolock) + ON DISEASE_SITE.TB_PAM_UID = D_TB_PAM.TB_PAM_UID; + + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #D_TB_PAM_TEMP; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'GENERATING #L_DISEASE_SITE_GROUP'; + + IF OBJECT_ID('#L_DISEASE_SITE_GROUP', 'U') IS NOT NULL + drop table #L_DISEASE_SITE_GROUP; + + SELECT D_TB_PAM.TB_PAM_UID, NRT_GROUP_KEY.TB_PAM_UID AS D_DISEASE_SITE_UID , NRT_GROUP_KEY.D_DISEASE_SITE_GROUP_KEY + INTO #L_DISEASE_SITE_GROUP + FROM #D_TB_PAM_TEMP D_TB_PAM with (nolock) + LEFT OUTER JOIN DBO.NRT_DISEASE_SITE_GROUP_KEY NRT_GROUP_KEY with (nolock) + ON NRT_GROUP_KEY.TB_PAM_UID=D_TB_PAM.TB_PAM_UID; + + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #L_DISEASE_SITE_GROUP; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'GENERATING #L_DISEASE_SITE'; + + IF OBJECT_ID('#L_DISEASE_SITE', 'U') IS NOT NULL + drop table #L_DISEASE_SITE; + + SELECT LDSG.TB_PAM_UID, + NRT_DISEASE_SITE_KEY.NBS_CASE_ANSWER_UID, + CASE WHEN LDSG.D_DISEASE_SITE_GROUP_KEY IS NULL THEN 1 ELSE LDSG.D_DISEASE_SITE_GROUP_KEY END AS D_DISEASE_SITE_GROUP_KEY, + CASE WHEN NRT_DISEASE_SITE_KEY.D_DISEASE_SITE_KEY IS NULL THEN 1 ELSE NRT_DISEASE_SITE_KEY.D_DISEASE_SITE_KEY END AS D_DISEASE_SITE_KEY + INTO #L_DISEASE_SITE + FROM #L_DISEASE_SITE_GROUP LDSG with (nolock) + LEFT OUTER JOIN DBO.NRT_DISEASE_SITE_KEY NRT_DISEASE_SITE_KEY with (nolock) + ON NRT_DISEASE_SITE_KEY.TB_PAM_UID=LDSG.TB_PAM_UID; + + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #L_DISEASE_SITE; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'GENERATING #TEMP_D_DISEASE_SITE'; + + IF OBJECT_ID('#TEMP_D_DISEASE_SITE', 'U') IS NOT NULL + drop table #TEMP_D_DISEASE_SITE; + + SELECT LDS.TB_PAM_UID, + LDS.D_DISEASE_SITE_KEY, + SDS.SEQ_NBR, + LDS.D_DISEASE_SITE_GROUP_KEY, + SDS.LAST_CHG_TIME, + SDS.VALUE + INTO #TEMP_D_DISEASE_SITE + FROM #L_DISEASE_SITE LDS with (nolock) + LEFT OUTER JOIN #S_DISEASE_SITE SDS with (nolock) + ON SDS.TB_PAM_UID=LDS.TB_PAM_UID + AND SDS.NBS_CASE_ANSWER_UID= LDS.NBS_CASE_ANSWER_UID; + + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #TEMP_D_DISEASE_SITE; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Insert records to d_disease_site_group'; + + INSERT INTO DBO.D_DISEASE_SITE_GROUP + ([D_DISEASE_SITE_GROUP_KEY]) + SELECT + DISTINCT + T.D_DISEASE_SITE_GROUP_KEY + FROM #TEMP_D_DISEASE_SITE T with (nolock) + LEFT JOIN DBO.D_DISEASE_SITE_GROUP DSG with (nolock) + ON DSG.D_DISEASE_SITE_GROUP_KEY= T.D_DISEASE_SITE_GROUP_KEY + WHERE DSG.D_DISEASE_SITE_GROUP_KEY IS NULL; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Update d_disease_site'; + + UPDATE DBO.D_DISEASE_SITE + SET + TB_PAM_UID = T.TB_PAM_UID, + SEQ_NBR = T.SEQ_NBR, + LAST_CHG_TIME = T.SEQ_NBR, + VALUE = T.SEQ_NBR + FROM #TEMP_D_DISEASE_SITE T with (nolock) + INNER JOIN DBO.D_DISEASE_SITE D_DISEASE_SITE with (nolock) + ON D_DISEASE_SITE.TB_PAM_UID= T.TB_PAM_UID + WHERE D_DISEASE_SITE.D_DISEASE_SITE_KEY IS NOT NULL; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET + @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET + @PROC_STEP_NAME = 'Insert records to d_disease_site'; + + INSERT INTO DBO.D_DISEASE_SITE + ([TB_PAM_UID] + ,[D_DISEASE_SITE_KEY] + ,[SEQ_NBR] + ,[D_DISEASE_SITE_GROUP_KEY] + ,[LAST_CHG_TIME] + ,[VALUE]) + SELECT + T.TB_PAM_UID, + T.D_DISEASE_SITE_KEY, + T.SEQ_NBR, + T.D_DISEASE_SITE_GROUP_KEY, + T.LAST_CHG_TIME, + T.VALUE + FROM #TEMP_D_DISEASE_SITE T with (nolock) + LEFT JOIN DBO.D_DISEASE_SITE D_DISEASE_SITE with (nolock) + ON D_DISEASE_SITE.TB_PAM_UID= T.TB_PAM_UID + WHERE D_DISEASE_SITE.TB_PAM_UID IS NULL; + + SELECT @RowCount_no = @@ROWCOUNT; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; +------------------------------------------------------------------------------------------- + + BEGIN TRANSACTION + + SET @Proc_Step_no = 999; + + SET @Proc_Step_Name = 'SP_COMPLETE'; + + INSERT INTO [dbo].[job_flow_log] + (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) + VALUES (@batch_id, @dataflow_name, @package_name, 'COMPLETE', @Proc_Step_no, @Proc_Step_Name, + @RowCount_no); + + COMMIT TRANSACTION; + +------------------------------------------------------------------------------------------- + END TRY + + BEGIN CATCH + + IF @@TRANCOUNT > 0 + BEGIN + ROLLBACK TRANSACTION; + END; + + DECLARE @ErrorNumber INT = ERROR_NUMBER(); + DECLARE @ErrorLine INT = ERROR_LINE(); + DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE(); + DECLARE @ErrorSeverity INT = ERROR_SEVERITY(); + DECLARE @ErrorState INT = ERROR_STATE(); + + + INSERT INTO dbo.[job_flow_log] ( + batch_id + ,[Dataflow_Name] + ,[package_Name] + ,[Status_Type] + ,[step_number] + ,[step_name] + ,[Error_Description] + ,[row_count] + ) + VALUES ( + @batch_id + ,@dataflow_name + ,@package_name + ,'ERROR' + ,@Proc_Step_no + ,'ERROR - '+ @Proc_Step_name + , 'Step -' +CAST(@Proc_Step_no AS VARCHAR(3))+' -' +CAST(@ErrorMessage AS VARCHAR(500)) + ,0 + ); + + return -1 ; + + END CATCH + +END; + +---------------------------------------------------END OF PROCEDURE--------------------------------------------------------------------- diff --git a/liquibase-service/src/main/resources/db/rdb_modern/tables/065-create_nrt_disease_site_group_key.sql b/liquibase-service/src/main/resources/db/rdb_modern/tables/065-create_nrt_disease_site_group_key.sql new file mode 100644 index 00000000..25d9172a --- /dev/null +++ b/liquibase-service/src/main/resources/db/rdb_modern/tables/065-create_nrt_disease_site_group_key.sql @@ -0,0 +1,15 @@ +IF NOT EXISTS (SELECT 1 FROM sysobjects WHERE name = 'nrt_disease_site_group_key' and xtype = 'U') + BEGIN + CREATE TABLE dbo.nrt_disease_site_group_key ( + D_DISEASE_SITE_GROUP_KEY bigint IDENTITY (2,1) NOT NULL, + TB_PAM_UID bigint NOT NULL + + ); + + declare @max bigint; + select @max=max(D_DISEASE_SITE_GROUP_KEY)+1 from dbo.nrt_disease_site_group_key ; + select @max; + if @max IS NULL --check when max is returned as null + SET @max = 2; -- default to 2 + DBCC CHECKIDENT ('dbo.nrt_disease_site_group_key', RESEED, @max); + END diff --git a/liquibase-service/src/main/resources/db/rdb_modern/tables/070-create_nrt_disease_site_key.sql b/liquibase-service/src/main/resources/db/rdb_modern/tables/070-create_nrt_disease_site_key.sql new file mode 100644 index 00000000..f6a65f78 --- /dev/null +++ b/liquibase-service/src/main/resources/db/rdb_modern/tables/070-create_nrt_disease_site_key.sql @@ -0,0 +1,16 @@ +IF NOT EXISTS (SELECT 1 FROM sysobjects WHERE name = 'nrt_disease_site_key' and xtype = 'U') + BEGIN + CREATE TABLE dbo.nrt_disease_site_key ( + D_DISEASE_SITE_KEY bigint IDENTITY (2,1) NOT NULL, + NBS_Case_Answer_UID bigint NOT NULL, + TB_PAM_UID bigint NOT NULL + + ); + + declare @max bigint; + select @max=max(D_DISEASE_SITE_KEY)+1 from dbo.nrt_disease_site_key ; + select @max; + if @max IS NULL --check when max is returned as null + SET @max = 2; -- default to 2 + DBCC CHECKIDENT ('dbo.nrt_disease_site_key', RESEED, @max); + END diff --git a/liquibase-service/src/main/resources/db/rdb_modern/tables/075-create_d_disease_site_group.sql b/liquibase-service/src/main/resources/db/rdb_modern/tables/075-create_d_disease_site_group.sql new file mode 100644 index 00000000..75834632 --- /dev/null +++ b/liquibase-service/src/main/resources/db/rdb_modern/tables/075-create_d_disease_site_group.sql @@ -0,0 +1,15 @@ +--CNDE-2346 +IF NOT EXISTS (SELECT 1 + FROM sysobjects + WHERE name = 'D_DISEASE_SITE_GROUP' + and xtype = 'U') + +BEGIN + CREATE TABLE DBO.D_DISEASE_SITE_GROUP ( + D_DISEASE_SITE_GROUP_KEY BIGINT NOT NULL , + PRIMARY KEY + ( + D_DISEASE_SITE_GROUP_KEY + ) + ); +END; diff --git a/liquibase-service/src/main/resources/db/rdb_modern/tables/080-create_d_disease_site.sql b/liquibase-service/src/main/resources/db/rdb_modern/tables/080-create_d_disease_site.sql new file mode 100644 index 00000000..e05a8ddc --- /dev/null +++ b/liquibase-service/src/main/resources/db/rdb_modern/tables/080-create_d_disease_site.sql @@ -0,0 +1,23 @@ +--CNDE-2346 Foreign key constraints will be added after the completion of TB Datamart migration.*/ +IF NOT EXISTS (SELECT 1 + FROM sysobjects + WHERE name = 'D_DISEASE_SITE' + and xtype = 'U') + +BEGIN + CREATE TABLE DBO.D_DISEASE_SITE ( + TB_PAM_UID BIGINT NOT NULL , + D_DISEASE_SITE_KEY BIGINT NOT NULL , + SEQ_NBR INT NULL , + D_DISEASE_SITE_GROUP_KEY BIGINT NOT NULL , + LAST_CHG_TIME DATETIME NULL , + VALUE VARCHAR (250) NULL , + PRIMARY KEY + ( + D_DISEASE_SITE_KEY, + TB_PAM_UID + ) + ); +END; + + diff --git a/post-processing-service/src/main/java/gov/cdc/etldatapipeline/postprocessingservice/repository/InvestigationRepository.java b/post-processing-service/src/main/java/gov/cdc/etldatapipeline/postprocessingservice/repository/InvestigationRepository.java index 44c969de..9b582d58 100644 --- a/post-processing-service/src/main/java/gov/cdc/etldatapipeline/postprocessingservice/repository/InvestigationRepository.java +++ b/post-processing-service/src/main/java/gov/cdc/etldatapipeline/postprocessingservice/repository/InvestigationRepository.java @@ -61,4 +61,8 @@ public interface InvestigationRepository extends JpaRepository processInvestigation(String keyTopic, Entity entity, processTopic(keyTopic, CASE_COUNT, ids, investigationRepository::executeStoredProcForCaseCount); + + if(diseaseSiteEnable){ + processTopic(keyTopic, D_DISEASE_SITE, ids, investigationRepository::executeStoredProcForDDiseaseSite); + } + return dmData; } @@ -546,3 +554,4 @@ private void completeLog(String sp) { logger.info(SP_EXECUTION_COMPLETED, sp); } } +// TODO diff --git a/post-processing-service/src/main/resources/application.yaml b/post-processing-service/src/main/resources/application.yaml index 890c095c..c6522633 100644 --- a/post-processing-service/src/main/resources/application.yaml +++ b/post-processing-service/src/main/resources/application.yaml @@ -39,6 +39,7 @@ spring: javax.persistence.query.timeout: -1 featureFlag: event-metric-enable: ${FF_EVENT_METRIC_ENABLE:false} + disease-site-enable: ${FF_D_DISEASE_SITE_ENABLE:false} service: fixed-delay: cached-ids: ${FIXED_DELAY_ID:20000} diff --git a/post-processing-service/src/test/java/gov/cdc/etldatapipeline/postprocessingservice/service/PostProcessingServiceTest.java b/post-processing-service/src/test/java/gov/cdc/etldatapipeline/postprocessingservice/service/PostProcessingServiceTest.java index 63fde0e6..c2709a28 100644 --- a/post-processing-service/src/test/java/gov/cdc/etldatapipeline/postprocessingservice/service/PostProcessingServiceTest.java +++ b/post-processing-service/src/test/java/gov/cdc/etldatapipeline/postprocessingservice/service/PostProcessingServiceTest.java @@ -137,6 +137,10 @@ void testPostProcessOrganizationMessage() { void testPostProcessInvestigationMessage() { String topic = "dummy_investigation"; String key = "{\"payload\":{\"public_health_case_uid\":123}}"; + boolean diseaseSiteEnable = true; + + // DISEASE SITE ENABLED + postProcessingServiceMock.setDiseaseSiteEnable(diseaseSiteEnable); postProcessingServiceMock.postProcessMessage(topic, key, key); postProcessingServiceMock.processCachedIds(); @@ -144,11 +148,16 @@ void testPostProcessInvestigationMessage() { String expectedPublicHealthCaseIdsString = "123"; verify(investigationRepositoryMock).executeStoredProcForPublicHealthCaseIds(expectedPublicHealthCaseIdsString); verify(investigationRepositoryMock).executeStoredProcForFPageCase(expectedPublicHealthCaseIdsString); + + if(diseaseSiteEnable) + verify(investigationRepositoryMock).executeStoredProcForDDiseaseSite(expectedPublicHealthCaseIdsString); + verify(investigationRepositoryMock).executeStoredProcForCaseCount(expectedPublicHealthCaseIdsString); verify(investigationRepositoryMock, never()).executeStoredProcForPageBuilder(anyLong(), anyString()); + List logs = listAppender.list; - assertEquals(8, logs.size()); + assertEquals(10, logs.size()); assertTrue(logs.get(2).getFormattedMessage().contains(INVESTIGATION.getStoredProcedure())); assertTrue(logs.get(5).getMessage().contains(PostProcessingService.SP_EXECUTION_COMPLETED)); } @@ -993,4 +1002,5 @@ static class DatamartTestCase { this.verificationStep = verificationStep; } } -} \ No newline at end of file +} +// TODO \ No newline at end of file From 646826d6f795f38043db3048edc95ef1794cc43c Mon Sep 17 00:00:00 2001 From: Varshinee Date: Wed, 12 Mar 2025 08:10:36 -0500 Subject: [PATCH 2/4] Renamed file names for naming convention --- .../tables/065-create_nrt_disease_site_group_key.sql | 0 .../rdb_modern/tables/070-create_nrt_disease_site_key.sql | 0 .../rdb_modern/tables/075-create_d_disease_site_group.sql | 0 .../rdb_modern/tables/080-create_d_disease_site.sql | 0 .../db/changelog/db.rdb_modern.changelog-16.1.yaml | 6 +++--- .../tables/065-create_nrt_disease_site_group_key-001.sql | 0 .../tables/070-create_nrt_disease_site_key-001.sql | 0 .../tables/075-create_d_disease_site_group-001.sql | 0 .../db}/rdb_modern/tables/080-create_d_disease_site-001.sql | 0 .../service/PostProcessingService.java | 1 - .../service/PostProcessingServiceTest.java | 3 +-- 11 files changed, 4 insertions(+), 6 deletions(-) rename {liquibase-service/src/main/resources/db => db/upgrade}/rdb_modern/tables/065-create_nrt_disease_site_group_key.sql (100%) rename {liquibase-service/src/main/resources/db => db/upgrade}/rdb_modern/tables/070-create_nrt_disease_site_key.sql (100%) rename {liquibase-service/src/main/resources/db => db/upgrade}/rdb_modern/tables/075-create_d_disease_site_group.sql (100%) rename {liquibase-service/src/main/resources/db => db/upgrade}/rdb_modern/tables/080-create_d_disease_site.sql (100%) rename {db/upgrade => liquibase-service/src/main/resources/db}/rdb_modern/tables/065-create_nrt_disease_site_group_key-001.sql (100%) rename {db/upgrade => liquibase-service/src/main/resources/db}/rdb_modern/tables/070-create_nrt_disease_site_key-001.sql (100%) rename {db/upgrade => liquibase-service/src/main/resources/db}/rdb_modern/tables/075-create_d_disease_site_group-001.sql (100%) rename {db/upgrade => liquibase-service/src/main/resources/db}/rdb_modern/tables/080-create_d_disease_site-001.sql (100%) diff --git a/liquibase-service/src/main/resources/db/rdb_modern/tables/065-create_nrt_disease_site_group_key.sql b/db/upgrade/rdb_modern/tables/065-create_nrt_disease_site_group_key.sql similarity index 100% rename from liquibase-service/src/main/resources/db/rdb_modern/tables/065-create_nrt_disease_site_group_key.sql rename to db/upgrade/rdb_modern/tables/065-create_nrt_disease_site_group_key.sql diff --git a/liquibase-service/src/main/resources/db/rdb_modern/tables/070-create_nrt_disease_site_key.sql b/db/upgrade/rdb_modern/tables/070-create_nrt_disease_site_key.sql similarity index 100% rename from liquibase-service/src/main/resources/db/rdb_modern/tables/070-create_nrt_disease_site_key.sql rename to db/upgrade/rdb_modern/tables/070-create_nrt_disease_site_key.sql diff --git a/liquibase-service/src/main/resources/db/rdb_modern/tables/075-create_d_disease_site_group.sql b/db/upgrade/rdb_modern/tables/075-create_d_disease_site_group.sql similarity index 100% rename from liquibase-service/src/main/resources/db/rdb_modern/tables/075-create_d_disease_site_group.sql rename to db/upgrade/rdb_modern/tables/075-create_d_disease_site_group.sql diff --git a/liquibase-service/src/main/resources/db/rdb_modern/tables/080-create_d_disease_site.sql b/db/upgrade/rdb_modern/tables/080-create_d_disease_site.sql similarity index 100% rename from liquibase-service/src/main/resources/db/rdb_modern/tables/080-create_d_disease_site.sql rename to db/upgrade/rdb_modern/tables/080-create_d_disease_site.sql diff --git a/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml b/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml index 8566c654..23fc4905 100644 --- a/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml +++ b/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml @@ -1188,7 +1188,7 @@ databaseChangeLog: runOnChange: true changes: - sqlFile: - path: 075-create_d_disease_site_group.sql + path: 075-create_d_disease_site_group-001.sql splitStatements: false @@ -1198,7 +1198,7 @@ databaseChangeLog: runOnChange: true changes: - sqlFile: - path: 080-create_d_disease_site.sql + path: 080-create_d_disease_site-001.sql splitStatements: false @@ -1208,5 +1208,5 @@ databaseChangeLog: runOnChange: true changes: - sqlFile: - path: 145-sp_nrt_d_disease_site_postprocessing.sql + path: 145-sp_nrt_d_disease_site_postprocessing-001.sql splitStatements: false \ No newline at end of file diff --git a/db/upgrade/rdb_modern/tables/065-create_nrt_disease_site_group_key-001.sql b/liquibase-service/src/main/resources/db/rdb_modern/tables/065-create_nrt_disease_site_group_key-001.sql similarity index 100% rename from db/upgrade/rdb_modern/tables/065-create_nrt_disease_site_group_key-001.sql rename to liquibase-service/src/main/resources/db/rdb_modern/tables/065-create_nrt_disease_site_group_key-001.sql diff --git a/db/upgrade/rdb_modern/tables/070-create_nrt_disease_site_key-001.sql b/liquibase-service/src/main/resources/db/rdb_modern/tables/070-create_nrt_disease_site_key-001.sql similarity index 100% rename from db/upgrade/rdb_modern/tables/070-create_nrt_disease_site_key-001.sql rename to liquibase-service/src/main/resources/db/rdb_modern/tables/070-create_nrt_disease_site_key-001.sql diff --git a/db/upgrade/rdb_modern/tables/075-create_d_disease_site_group-001.sql b/liquibase-service/src/main/resources/db/rdb_modern/tables/075-create_d_disease_site_group-001.sql similarity index 100% rename from db/upgrade/rdb_modern/tables/075-create_d_disease_site_group-001.sql rename to liquibase-service/src/main/resources/db/rdb_modern/tables/075-create_d_disease_site_group-001.sql diff --git a/db/upgrade/rdb_modern/tables/080-create_d_disease_site-001.sql b/liquibase-service/src/main/resources/db/rdb_modern/tables/080-create_d_disease_site-001.sql similarity index 100% rename from db/upgrade/rdb_modern/tables/080-create_d_disease_site-001.sql rename to liquibase-service/src/main/resources/db/rdb_modern/tables/080-create_d_disease_site-001.sql diff --git a/post-processing-service/src/main/java/gov/cdc/etldatapipeline/postprocessingservice/service/PostProcessingService.java b/post-processing-service/src/main/java/gov/cdc/etldatapipeline/postprocessingservice/service/PostProcessingService.java index 4bf0e428..57618e35 100644 --- a/post-processing-service/src/main/java/gov/cdc/etldatapipeline/postprocessingservice/service/PostProcessingService.java +++ b/post-processing-service/src/main/java/gov/cdc/etldatapipeline/postprocessingservice/service/PostProcessingService.java @@ -554,4 +554,3 @@ private void completeLog(String sp) { logger.info(SP_EXECUTION_COMPLETED, sp); } } -// TODO diff --git a/post-processing-service/src/test/java/gov/cdc/etldatapipeline/postprocessingservice/service/PostProcessingServiceTest.java b/post-processing-service/src/test/java/gov/cdc/etldatapipeline/postprocessingservice/service/PostProcessingServiceTest.java index c2709a28..28e5e930 100644 --- a/post-processing-service/src/test/java/gov/cdc/etldatapipeline/postprocessingservice/service/PostProcessingServiceTest.java +++ b/post-processing-service/src/test/java/gov/cdc/etldatapipeline/postprocessingservice/service/PostProcessingServiceTest.java @@ -1002,5 +1002,4 @@ static class DatamartTestCase { this.verificationStep = verificationStep; } } -} -// TODO \ No newline at end of file +} \ No newline at end of file From 7ba72f8b75ca069ebe53ec22850c94816a78157f Mon Sep 17 00:00:00 2001 From: Varshinee Date: Wed, 12 Mar 2025 09:10:51 -0500 Subject: [PATCH 3/4] Removed unused import --- .../etldatapipeline/postprocessingservice/service/Entity.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/post-processing-service/src/main/java/gov/cdc/etldatapipeline/postprocessingservice/service/Entity.java b/post-processing-service/src/main/java/gov/cdc/etldatapipeline/postprocessingservice/service/Entity.java index 669b6ddc..bf682ac5 100644 --- a/post-processing-service/src/main/java/gov/cdc/etldatapipeline/postprocessingservice/service/Entity.java +++ b/post-processing-service/src/main/java/gov/cdc/etldatapipeline/postprocessingservice/service/Entity.java @@ -1,7 +1,5 @@ package gov.cdc.etldatapipeline.postprocessingservice.service; -import org.springframework.data.repository.query.Param; - import lombok.Getter; @Getter From fbcdf60f63ae2f45732df59163edae5abcf6f6ee Mon Sep 17 00:00:00 2001 From: Varshinee Date: Wed, 12 Mar 2025 14:18:13 -0500 Subject: [PATCH 4/4] CNDE-2346 Refactor --- ...5-sp_nrt_d_disease_site_postprocessing.sql | 96 +++++-------------- .../tables/039-alter_table_add_index.sql | 5 + .../065-create_nrt_disease_site_group_key.sql | 2 +- .../070-create_nrt_disease_site_key.sql | 2 +- .../db.rdb_modern.changelog-16.1.yaml | 22 ++--- ..._nrt_d_disease_site_postprocessing-001.sql | 86 +++++------------ .../tables/039-alter_table_add_index-001.sql | 5 + ...-create_nrt_disease_site_group_key-001.sql | 2 +- .../070-create_nrt_disease_site_key-001.sql | 2 +- 9 files changed, 70 insertions(+), 152 deletions(-) diff --git a/db/upgrade/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing.sql b/db/upgrade/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing.sql index 3d4a9dca..80410591 100644 --- a/db/upgrade/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing.sql +++ b/db/upgrade/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing.sql @@ -10,8 +10,6 @@ BEGIN declare @proc_step_no float = 0; declare @proc_step_name varchar(200) = ''; declare @batch_id bigint; - declare @create_dttm datetime2(7) = current_timestamp ; - declare @update_dttm datetime2(7) = current_timestamp ; declare @dataflow_name varchar(200) = 'DISEASE_SITE POST-Processing'; declare @package_name varchar(200) = 'RDB_MODERN.sp_nrt_disease_site_postprocessing'; @@ -19,14 +17,10 @@ BEGIN SELECT @ROWCOUNT_NO = 0; - BEGIN TRANSACTION - INSERT INTO [DBO].[JOB_FLOW_LOG] - (BATCH_ID, [DATAFLOW_NAME], [PACKAGE_NAME], [STATUS_TYPE], [STEP_NUMBER], [STEP_NAME], [ROW_COUNT]) - VALUES (@BATCH_ID, @dataflow_name, @package_name, 'START', @PROC_STEP_NO, @PROC_STEP_NAME, @ROWCOUNT_NO); + (BATCH_ID, [DATAFLOW_NAME], [PACKAGE_NAME], [STATUS_TYPE], [STEP_NUMBER], [STEP_NAME], [ROW_COUNT], [Msg_Description1]) + VALUES (@BATCH_ID, @dataflow_name, @package_name, 'START', @PROC_STEP_NO, @PROC_STEP_NAME, @ROWCOUNT_NO, LEFT (@phc_uids, 199)); - COMMIT TRANSACTION; - -------------------------------------------------------------------------------------------------------- BEGIN TRANSACTION @@ -119,46 +113,6 @@ BEGIN COMMIT TRANSACTION; ------------------------------------------------------------------------------------------- - BEGIN TRANSACTION - - SET - @PROC_STEP_NO = @PROC_STEP_NO + 1; - SET - @PROC_STEP_NAME = 'Delete old keys from nrt_disease_site_group_key'; - - DELETE FROM DBO.NRT_DISEASE_SITE_GROUP_KEY; - - SELECT @RowCount_no = @@ROWCOUNT; - - INSERT INTO [dbo].[job_flow_log] - (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) - VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, - @RowCount_no); - - COMMIT TRANSACTION; - - -------------------------------------------------------------------------------------------- - - BEGIN TRANSACTION - - SET - @PROC_STEP_NO = @PROC_STEP_NO + 1; - SET - @PROC_STEP_NAME = 'Delete old keys from nrt_disease_site_key '; - - DELETE FROM DBO.NRT_DISEASE_SITE_KEY; - - SELECT @RowCount_no = @@ROWCOUNT; - - INSERT INTO [dbo].[job_flow_log] - (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) - VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, - @RowCount_no); - - COMMIT TRANSACTION; - -------------------------------------------------------------------------------------------- BEGIN TRANSACTION @@ -168,7 +122,10 @@ BEGIN @PROC_STEP_NAME = 'Insert keys to nrt_disease_site_group_key '; INSERT INTO DBO.NRT_DISEASE_SITE_GROUP_KEY(TB_PAM_UID) - SELECT DISTINCT TB_PAM_UID FROM #S_DISEASE_SITE; + SELECT DISEASE_SITE.TB_PAM_UID FROM (SELECT DISTINCT TB_PAM_UID FROM #S_DISEASE_SITE) DISEASE_SITE + LEFT JOIN DBO.NRT_DISEASE_SITE_GROUP_KEY DISEASE_SITE_GROUP_KEY with (nolock) + ON DISEASE_SITE_GROUP_KEY.TB_PAM_UID = DISEASE_SITE.TB_PAM_UID + where DISEASE_SITE_GROUP_KEY.TB_PAM_UID is null; SELECT @RowCount_no = @@ROWCOUNT; @@ -189,7 +146,11 @@ BEGIN @PROC_STEP_NAME = 'Insert keys to dbo.nrt_disease_site_key'; INSERT INTO DBO.NRT_DISEASE_SITE_KEY(TB_PAM_UID, NBS_CASE_ANSWER_UID) - SELECT DISTINCT TB_PAM_UID, NBS_CASE_ANSWER_UID FROM #S_DISEASE_SITE; + SELECT DISEASE_SITE.TB_PAM_UID, DISEASE_SITE.NBS_CASE_ANSWER_UID FROM (SELECT DISTINCT TB_PAM_UID, NBS_CASE_ANSWER_UID FROM #S_DISEASE_SITE) DISEASE_SITE + LEFT JOIN DBO.NRT_DISEASE_SITE_KEY DISEASE_SITE_KEY with (nolock) + ON DISEASE_SITE_KEY.TB_PAM_UID = DISEASE_SITE.TB_PAM_UID + where DISEASE_SITE_KEY.TB_PAM_UID is null; + SELECT @RowCount_no = @@ROWCOUNT; @@ -379,11 +340,12 @@ BEGIN SET TB_PAM_UID = T.TB_PAM_UID, SEQ_NBR = T.SEQ_NBR, - LAST_CHG_TIME = T.SEQ_NBR, - VALUE = T.SEQ_NBR + LAST_CHG_TIME = T.LAST_CHG_TIME, + VALUE = T.VALUE FROM #TEMP_D_DISEASE_SITE T with (nolock) INNER JOIN DBO.D_DISEASE_SITE D_DISEASE_SITE with (nolock) ON D_DISEASE_SITE.TB_PAM_UID= T.TB_PAM_UID + and D_DISEASE_SITE.D_DISEASE_SITE_KEY = T.D_DISEASE_SITE_KEY WHERE D_DISEASE_SITE.D_DISEASE_SITE_KEY IS NOT NULL; SELECT @RowCount_no = @@ROWCOUNT; @@ -421,6 +383,7 @@ BEGIN FROM #TEMP_D_DISEASE_SITE T with (nolock) LEFT JOIN DBO.D_DISEASE_SITE D_DISEASE_SITE with (nolock) ON D_DISEASE_SITE.TB_PAM_UID= T.TB_PAM_UID + and D_DISEASE_SITE.D_DISEASE_SITE_KEY = T.D_DISEASE_SITE_KEY WHERE D_DISEASE_SITE.TB_PAM_UID IS NULL; SELECT @RowCount_no = @@ROWCOUNT; @@ -433,8 +396,6 @@ BEGIN COMMIT TRANSACTION; ------------------------------------------------------------------------------------------- - BEGIN TRANSACTION - SET @Proc_Step_no = 999; SET @Proc_Step_Name = 'SP_COMPLETE'; @@ -443,8 +404,6 @@ BEGIN (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) VALUES (@batch_id, @dataflow_name, @package_name, 'COMPLETE', @Proc_Step_no, @Proc_Step_Name, @RowCount_no); - - COMMIT TRANSACTION; ------------------------------------------------------------------------------------------- END TRY @@ -456,11 +415,12 @@ BEGIN ROLLBACK TRANSACTION; END; - DECLARE @ErrorNumber INT = ERROR_NUMBER(); - DECLARE @ErrorLine INT = ERROR_LINE(); - DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE(); - DECLARE @ErrorSeverity INT = ERROR_SEVERITY(); - DECLARE @ErrorState INT = ERROR_STATE(); + DECLARE @FullErrorMessage VARCHAR(8000) = + 'Error Number: ' + CAST(ERROR_NUMBER() AS VARCHAR(10)) + CHAR(13) + CHAR(10) + -- Carriage return and line feed for new lines + 'Error Severity: ' + CAST(ERROR_SEVERITY() AS VARCHAR(10)) + CHAR(13) + CHAR(10) + + 'Error State: ' + CAST(ERROR_STATE() AS VARCHAR(10)) + CHAR(13) + CHAR(10) + + 'Error Line: ' + CAST(ERROR_LINE() AS VARCHAR(10)) + CHAR(13) + CHAR(10) + + 'Error Message: ' + ERROR_MESSAGE(); INSERT INTO dbo.[job_flow_log] ( @@ -479,8 +439,8 @@ BEGIN ,@package_name ,'ERROR' ,@Proc_Step_no - ,'ERROR - '+ @Proc_Step_name - , 'Step -' +CAST(@Proc_Step_no AS VARCHAR(3))+' -' +CAST(@ErrorMessage AS VARCHAR(500)) + , @Proc_Step_name + , @FullErrorMessage ,0 ); @@ -491,13 +451,3 @@ BEGIN END; ---------------------------------------------------END OF PROCEDURE--------------------------------------------------------------------- - - - - - - - - - - diff --git a/db/upgrade/rdb_modern/tables/039-alter_table_add_index.sql b/db/upgrade/rdb_modern/tables/039-alter_table_add_index.sql index e09b7d4a..49826a19 100644 --- a/db/upgrade/rdb_modern/tables/039-alter_table_add_index.sql +++ b/db/upgrade/rdb_modern/tables/039-alter_table_add_index.sql @@ -210,5 +210,10 @@ BEGIN CREATE INDEX idx_nrt_inv_notf_notf_uid ON dbo.nrt_investigation_notification (notification_uid); END +IF NOT EXISTS(SELECT * FROM sys.indexes WHERE name = 'idx_nrt_page_case_answer_act_uid' AND object_id = OBJECT_ID('dbo.nrt_page_case_answer')) +BEGIN +CREATE INDEX idx_nrt_page_case_answer_act_uid ON dbo.nrt_page_case_answer (act_uid); +END + diff --git a/db/upgrade/rdb_modern/tables/065-create_nrt_disease_site_group_key.sql b/db/upgrade/rdb_modern/tables/065-create_nrt_disease_site_group_key.sql index 25d9172a..5a814809 100644 --- a/db/upgrade/rdb_modern/tables/065-create_nrt_disease_site_group_key.sql +++ b/db/upgrade/rdb_modern/tables/065-create_nrt_disease_site_group_key.sql @@ -7,7 +7,7 @@ IF NOT EXISTS (SELECT 1 FROM sysobjects WHERE name = 'nrt_disease_site_group_key ); declare @max bigint; - select @max=max(D_DISEASE_SITE_GROUP_KEY)+1 from dbo.nrt_disease_site_group_key ; + select @max=max(D_DISEASE_SITE_GROUP_KEY)+1 from dbo.d_disease_site_group ; select @max; if @max IS NULL --check when max is returned as null SET @max = 2; -- default to 2 diff --git a/db/upgrade/rdb_modern/tables/070-create_nrt_disease_site_key.sql b/db/upgrade/rdb_modern/tables/070-create_nrt_disease_site_key.sql index f6a65f78..80a4438b 100644 --- a/db/upgrade/rdb_modern/tables/070-create_nrt_disease_site_key.sql +++ b/db/upgrade/rdb_modern/tables/070-create_nrt_disease_site_key.sql @@ -8,7 +8,7 @@ IF NOT EXISTS (SELECT 1 FROM sysobjects WHERE name = 'nrt_disease_site_key' and ); declare @max bigint; - select @max=max(D_DISEASE_SITE_KEY)+1 from dbo.nrt_disease_site_key ; + select @max=max(D_DISEASE_SITE_KEY)+1 from dbo.d_disease_site ; select @max; if @max IS NULL --check when max is returned as null SET @max = 2; -- default to 2 diff --git a/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml b/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml index 23fc4905..f3df85a1 100644 --- a/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml +++ b/liquibase-service/src/main/resources/db/changelog/db.rdb_modern.changelog-16.1.yaml @@ -1161,49 +1161,47 @@ databaseChangeLog: path: 047-sp_nrt_treatment_postprocessing-001.sql splitStatements: false - - - changeSet: - id: 185 + - changeSet: + id: 195 author: liquibase runOnChange: true changes: - sqlFile: - path: 065-create_nrt_disease_site_group_key-001.sql + path: 075-create_d_disease_site_group-001.sql splitStatements: false - changeSet: - id: 190 + id: 200 author: liquibase runOnChange: true changes: - sqlFile: - path: 070-create_nrt_disease_site_key-001.sql + path: 080-create_d_disease_site-001.sql splitStatements: false - changeSet: - id: 195 + id: 205 author: liquibase runOnChange: true changes: - sqlFile: - path: 075-create_d_disease_site_group-001.sql + path: 065-create_nrt_disease_site_group_key-001.sql splitStatements: false - changeSet: - id: 200 + id: 210 author: liquibase runOnChange: true changes: - sqlFile: - path: 080-create_d_disease_site-001.sql + path: 070-create_nrt_disease_site_key-001.sql splitStatements: false - - changeSet: - id: 205 + id: 215 author: liquibase runOnChange: true changes: diff --git a/liquibase-service/src/main/resources/db/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing-001.sql b/liquibase-service/src/main/resources/db/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing-001.sql index 69b73b39..80410591 100644 --- a/liquibase-service/src/main/resources/db/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing-001.sql +++ b/liquibase-service/src/main/resources/db/rdb_modern/routines/145-sp_nrt_d_disease_site_postprocessing-001.sql @@ -10,8 +10,6 @@ BEGIN declare @proc_step_no float = 0; declare @proc_step_name varchar(200) = ''; declare @batch_id bigint; - declare @create_dttm datetime2(7) = current_timestamp ; - declare @update_dttm datetime2(7) = current_timestamp ; declare @dataflow_name varchar(200) = 'DISEASE_SITE POST-Processing'; declare @package_name varchar(200) = 'RDB_MODERN.sp_nrt_disease_site_postprocessing'; @@ -19,14 +17,10 @@ BEGIN SELECT @ROWCOUNT_NO = 0; - BEGIN TRANSACTION - INSERT INTO [DBO].[JOB_FLOW_LOG] - (BATCH_ID, [DATAFLOW_NAME], [PACKAGE_NAME], [STATUS_TYPE], [STEP_NUMBER], [STEP_NAME], [ROW_COUNT]) - VALUES (@BATCH_ID, @dataflow_name, @package_name, 'START', @PROC_STEP_NO, @PROC_STEP_NAME, @ROWCOUNT_NO); + (BATCH_ID, [DATAFLOW_NAME], [PACKAGE_NAME], [STATUS_TYPE], [STEP_NUMBER], [STEP_NAME], [ROW_COUNT], [Msg_Description1]) + VALUES (@BATCH_ID, @dataflow_name, @package_name, 'START', @PROC_STEP_NO, @PROC_STEP_NAME, @ROWCOUNT_NO, LEFT (@phc_uids, 199)); - COMMIT TRANSACTION; - -------------------------------------------------------------------------------------------------------- BEGIN TRANSACTION @@ -119,46 +113,6 @@ BEGIN COMMIT TRANSACTION; ------------------------------------------------------------------------------------------- - BEGIN TRANSACTION - - SET - @PROC_STEP_NO = @PROC_STEP_NO + 1; - SET - @PROC_STEP_NAME = 'Delete old keys from nrt_disease_site_group_key'; - - DELETE FROM DBO.NRT_DISEASE_SITE_GROUP_KEY; - - SELECT @RowCount_no = @@ROWCOUNT; - - INSERT INTO [dbo].[job_flow_log] - (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) - VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, - @RowCount_no); - - COMMIT TRANSACTION; - - -------------------------------------------------------------------------------------------- - - BEGIN TRANSACTION - - SET - @PROC_STEP_NO = @PROC_STEP_NO + 1; - SET - @PROC_STEP_NAME = 'Delete old keys from nrt_disease_site_key '; - - DELETE FROM DBO.NRT_DISEASE_SITE_KEY; - - SELECT @RowCount_no = @@ROWCOUNT; - - INSERT INTO [dbo].[job_flow_log] - (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) - VALUES (@batch_id, @dataflow_name, @package_name, 'START', @Proc_Step_no, @Proc_Step_Name, - @RowCount_no); - - COMMIT TRANSACTION; - -------------------------------------------------------------------------------------------- BEGIN TRANSACTION @@ -168,7 +122,10 @@ BEGIN @PROC_STEP_NAME = 'Insert keys to nrt_disease_site_group_key '; INSERT INTO DBO.NRT_DISEASE_SITE_GROUP_KEY(TB_PAM_UID) - SELECT DISTINCT TB_PAM_UID FROM #S_DISEASE_SITE; + SELECT DISEASE_SITE.TB_PAM_UID FROM (SELECT DISTINCT TB_PAM_UID FROM #S_DISEASE_SITE) DISEASE_SITE + LEFT JOIN DBO.NRT_DISEASE_SITE_GROUP_KEY DISEASE_SITE_GROUP_KEY with (nolock) + ON DISEASE_SITE_GROUP_KEY.TB_PAM_UID = DISEASE_SITE.TB_PAM_UID + where DISEASE_SITE_GROUP_KEY.TB_PAM_UID is null; SELECT @RowCount_no = @@ROWCOUNT; @@ -189,7 +146,11 @@ BEGIN @PROC_STEP_NAME = 'Insert keys to dbo.nrt_disease_site_key'; INSERT INTO DBO.NRT_DISEASE_SITE_KEY(TB_PAM_UID, NBS_CASE_ANSWER_UID) - SELECT DISTINCT TB_PAM_UID, NBS_CASE_ANSWER_UID FROM #S_DISEASE_SITE; + SELECT DISEASE_SITE.TB_PAM_UID, DISEASE_SITE.NBS_CASE_ANSWER_UID FROM (SELECT DISTINCT TB_PAM_UID, NBS_CASE_ANSWER_UID FROM #S_DISEASE_SITE) DISEASE_SITE + LEFT JOIN DBO.NRT_DISEASE_SITE_KEY DISEASE_SITE_KEY with (nolock) + ON DISEASE_SITE_KEY.TB_PAM_UID = DISEASE_SITE.TB_PAM_UID + where DISEASE_SITE_KEY.TB_PAM_UID is null; + SELECT @RowCount_no = @@ROWCOUNT; @@ -379,11 +340,12 @@ BEGIN SET TB_PAM_UID = T.TB_PAM_UID, SEQ_NBR = T.SEQ_NBR, - LAST_CHG_TIME = T.SEQ_NBR, - VALUE = T.SEQ_NBR + LAST_CHG_TIME = T.LAST_CHG_TIME, + VALUE = T.VALUE FROM #TEMP_D_DISEASE_SITE T with (nolock) INNER JOIN DBO.D_DISEASE_SITE D_DISEASE_SITE with (nolock) ON D_DISEASE_SITE.TB_PAM_UID= T.TB_PAM_UID + and D_DISEASE_SITE.D_DISEASE_SITE_KEY = T.D_DISEASE_SITE_KEY WHERE D_DISEASE_SITE.D_DISEASE_SITE_KEY IS NOT NULL; SELECT @RowCount_no = @@ROWCOUNT; @@ -421,6 +383,7 @@ BEGIN FROM #TEMP_D_DISEASE_SITE T with (nolock) LEFT JOIN DBO.D_DISEASE_SITE D_DISEASE_SITE with (nolock) ON D_DISEASE_SITE.TB_PAM_UID= T.TB_PAM_UID + and D_DISEASE_SITE.D_DISEASE_SITE_KEY = T.D_DISEASE_SITE_KEY WHERE D_DISEASE_SITE.TB_PAM_UID IS NULL; SELECT @RowCount_no = @@ROWCOUNT; @@ -433,8 +396,6 @@ BEGIN COMMIT TRANSACTION; ------------------------------------------------------------------------------------------- - BEGIN TRANSACTION - SET @Proc_Step_no = 999; SET @Proc_Step_Name = 'SP_COMPLETE'; @@ -443,8 +404,6 @@ BEGIN (batch_id, [Dataflow_Name], [package_Name], [Status_Type], [step_number], [step_name], [row_count]) VALUES (@batch_id, @dataflow_name, @package_name, 'COMPLETE', @Proc_Step_no, @Proc_Step_Name, @RowCount_no); - - COMMIT TRANSACTION; ------------------------------------------------------------------------------------------- END TRY @@ -456,11 +415,12 @@ BEGIN ROLLBACK TRANSACTION; END; - DECLARE @ErrorNumber INT = ERROR_NUMBER(); - DECLARE @ErrorLine INT = ERROR_LINE(); - DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE(); - DECLARE @ErrorSeverity INT = ERROR_SEVERITY(); - DECLARE @ErrorState INT = ERROR_STATE(); + DECLARE @FullErrorMessage VARCHAR(8000) = + 'Error Number: ' + CAST(ERROR_NUMBER() AS VARCHAR(10)) + CHAR(13) + CHAR(10) + -- Carriage return and line feed for new lines + 'Error Severity: ' + CAST(ERROR_SEVERITY() AS VARCHAR(10)) + CHAR(13) + CHAR(10) + + 'Error State: ' + CAST(ERROR_STATE() AS VARCHAR(10)) + CHAR(13) + CHAR(10) + + 'Error Line: ' + CAST(ERROR_LINE() AS VARCHAR(10)) + CHAR(13) + CHAR(10) + + 'Error Message: ' + ERROR_MESSAGE(); INSERT INTO dbo.[job_flow_log] ( @@ -479,8 +439,8 @@ BEGIN ,@package_name ,'ERROR' ,@Proc_Step_no - ,'ERROR - '+ @Proc_Step_name - , 'Step -' +CAST(@Proc_Step_no AS VARCHAR(3))+' -' +CAST(@ErrorMessage AS VARCHAR(500)) + , @Proc_Step_name + , @FullErrorMessage ,0 ); diff --git a/liquibase-service/src/main/resources/db/rdb_modern/tables/039-alter_table_add_index-001.sql b/liquibase-service/src/main/resources/db/rdb_modern/tables/039-alter_table_add_index-001.sql index 1b80d16e..5cbb0373 100644 --- a/liquibase-service/src/main/resources/db/rdb_modern/tables/039-alter_table_add_index-001.sql +++ b/liquibase-service/src/main/resources/db/rdb_modern/tables/039-alter_table_add_index-001.sql @@ -210,6 +210,11 @@ BEGIN CREATE INDEX idx_nrt_inv_notf_notf_uid ON dbo.nrt_investigation_notification (notification_uid); END +IF NOT EXISTS(SELECT * FROM sys.indexes WHERE name = 'idx_nrt_page_case_answer_act_uid' AND object_id = OBJECT_ID('dbo.nrt_page_case_answer')) +BEGIN +CREATE INDEX idx_nrt_page_case_answer_act_uid ON dbo.nrt_page_case_answer (act_uid); +END + diff --git a/liquibase-service/src/main/resources/db/rdb_modern/tables/065-create_nrt_disease_site_group_key-001.sql b/liquibase-service/src/main/resources/db/rdb_modern/tables/065-create_nrt_disease_site_group_key-001.sql index 25d9172a..5a814809 100644 --- a/liquibase-service/src/main/resources/db/rdb_modern/tables/065-create_nrt_disease_site_group_key-001.sql +++ b/liquibase-service/src/main/resources/db/rdb_modern/tables/065-create_nrt_disease_site_group_key-001.sql @@ -7,7 +7,7 @@ IF NOT EXISTS (SELECT 1 FROM sysobjects WHERE name = 'nrt_disease_site_group_key ); declare @max bigint; - select @max=max(D_DISEASE_SITE_GROUP_KEY)+1 from dbo.nrt_disease_site_group_key ; + select @max=max(D_DISEASE_SITE_GROUP_KEY)+1 from dbo.d_disease_site_group ; select @max; if @max IS NULL --check when max is returned as null SET @max = 2; -- default to 2 diff --git a/liquibase-service/src/main/resources/db/rdb_modern/tables/070-create_nrt_disease_site_key-001.sql b/liquibase-service/src/main/resources/db/rdb_modern/tables/070-create_nrt_disease_site_key-001.sql index f6a65f78..80a4438b 100644 --- a/liquibase-service/src/main/resources/db/rdb_modern/tables/070-create_nrt_disease_site_key-001.sql +++ b/liquibase-service/src/main/resources/db/rdb_modern/tables/070-create_nrt_disease_site_key-001.sql @@ -8,7 +8,7 @@ IF NOT EXISTS (SELECT 1 FROM sysobjects WHERE name = 'nrt_disease_site_key' and ); declare @max bigint; - select @max=max(D_DISEASE_SITE_KEY)+1 from dbo.nrt_disease_site_key ; + select @max=max(D_DISEASE_SITE_KEY)+1 from dbo.d_disease_site ; select @max; if @max IS NULL --check when max is returned as null SET @max = 2; -- default to 2