diff --git a/db/upgrade/rdb_modern/routines/135-sp_dyn_dm_org_data_postprocessing.sql b/db/upgrade/rdb_modern/routines/135-sp_dyn_dm_org_data_postprocessing.sql new file mode 100644 index 00000000..369a6a31 --- /dev/null +++ b/db/upgrade/rdb_modern/routines/135-sp_dyn_dm_org_data_postprocessing.sql @@ -0,0 +1,459 @@ + + + +CREATE or alter PROCEDURE [dbo].sp_dyn_dm_org_data_postprocessing + + @batch_id BIGINT, + @DATAMART_NAME VARCHAR(100), + @Org_id_list nvarchar(max) + + AS +BEGIN + BEGIN TRY + +--DECLARE @batch_id BIGINT = 999; DECLARE @DATAMART_NAME VARCHAR(100) = 'CONG_SYPHILIS'; + + DECLARE @RowCount_no INT = 0 ; + DECLARE @Proc_Step_no FLOAT = 0 ; + DECLARE @Proc_Step_Name VARCHAR(200) = '' ; + DECLARE @batch_start_time datetime = null ; + DECLARE @batch_end_time datetime = null ; + DECLARE @nbs_page_form_cd varchar(200)= ''; + + SET @nbs_page_form_cd = (SELECT FORM_CD FROM dbo.v_nbs_page WHERE DATAMART_NM=@DATAMART_NAME) + + + SET @Proc_Step_no = 1; + SET @Proc_Step_Name = 'SP_Start'; + + + BEGIN TRANSACTION; + + 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 + ,'DYNAMIC_DATAMART' + ,'RDB.DBO.DynDm_OrgData_sp ' + @DATAMART_NAME + ,'START' + ,@Proc_Step_no + ,@Proc_Step_Name + ,0 + ); + + + + + COMMIT TRANSACTION; + + + BEGIN TRANSACTION; + + SET @Proc_Step_no = @Proc_Step_no + 1; + SET @Proc_Step_Name = 'GENERATING FACT_CASE'; + + + + BEGIN TRANSACTION; + + + + declare @countstd int = 0; + + + select @COUNTSTD = count(*) from dbo.v_nrt_nbs_d_case_mgmt_rdb_table_metadata + ; + + + declare @FACT_CASE varchar(40) = ''; + + + if @countstd > 1 + begin + set @FACT_CASE = 'F_STD_PAGE_CASE'; + end + else + begin + set @FACT_CASE = 'F_PAGE_CASE'; + end + ; + + -- select @fact_case; + + +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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_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 tmp_DynDm_Organization_METADATA'; + + +--CREATE TABLE ORGANIZATION_METADATA AS + + Select RDB_COLUMN_NM, user_defined_column_nm, part_type_cd, [Key], Detail, QEC, UID, INVESTIGATION_FORM_CD + into #tmp_DynDm_Organization_METADATA + from v_nrt_nbs_d_organization_rdb_table_metadata + where INVESTIGATION_FORM_CD=@nbs_page_form_cd ; + + + +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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_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 tmp_DynDm_Organization'; + + + + IF OBJECT_ID('#tmp_DynDm_Organization', 'U') IS NOT NULL + drop table #tmp_DynDm_Organization; + + +--CREATE TABLE rdb.dbo.tmp_DynDm_Organization +--(INVESTIGATION_KEY bigint); + +select distinct investigation_key, +cast(null as bigint) as ORGANIZATION_UID +into #tmp_DynDm_Organization + FROM #tmp_DynDm_SUMM_DATAMART + -- pass the org_Id_List param +; + + + + +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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_NAME ,'START' ,@Proc_Step_no ,@Proc_Step_Name , @ROWCOUNT_NO ); + + + + COMMIT TRANSACTION; + + + + + declare @USER_DEFINED_COLUMN_NM varchar(max) ,@PART_TYPE_CD varchar(max) ,@DETAIL varchar(max) ,@QEC varchar(max) ,@UID varchar(max); + + + + + declare @SQL varchar(max) + + + + --DX select PART_TYPE_CD,* from rdb.dbo.tmp_DynDm_Organization_METADATA; + + + + +--declare @PART_TYPE_CD varchar(max) = null , @SQL varchar(max); + + + +DECLARE db_cursor_org CURSOR LOCAL FOR + select PART_TYPE_CD , [key],DETAIL,QEC ,[UID] from #tmp_DynDm_Organization_METADATA; + +OPEN db_cursor_org +FETCH NEXT FROM db_cursor_org INTO @PART_TYPE_CD ,@USER_DEFINED_COLUMN_NM,@DETAIL ,@QEC ,@UID + +WHILE @@FETCH_STATUS = 0 +BEGIN + + + + + + BEGIN TRANSACTION; + + SET @Proc_Step_no = @Proc_Step_no + 1; + SET @Proc_Step_Name = 'GENERATING tmp_DynDm_OrgPart_Table_temp'; + + IF OBJECT_ID('dbo.tmp_DynDm_OrgPart_Table_temp', 'U') IS NOT NULL + drop table dbo.tmp_DynDm_OrgPart_Table_temp; + + + + CREATE TABLE [dbo].[tmp_DynDm_OrgPart_Table_temp]( + [ORGANIZATION_KEY] [bigint] NULL, + [ORGANIZATION_QUICK_CODE] [varchar](50) NULL, + [ORGANIZATION_NAME] [varchar](50) NULL, + [ORGANIZATION_LOCAL_ID] [varchar](50) NULL, + [ORGANIZATION_UID] [bigint] NULL, + [ORGANIZATION_STREET_ADDRESS_1] [varchar](50) NULL, + [ORGANIZATION_STREET_ADDRESS_2] [varchar](50) NULL, + [ORGANIZATION_CITY] [varchar](50) NULL, + [ORGANIZATION_STATE] [varchar](50) NULL, + [ORGANIZATION_ZIP] [varchar](10) NULL, + [ORGANIZATION_COUNTY] [varchar](50) NULL, + [ORGANIZATION_PHONE_WORK] [varchar](50) NULL, + [ORGANIZATION_PHONE_EXT_WORK] [varchar](50) NULL, + [PART_TYPE_CD] [bigint] NULL, + [PART_TYPE_CD_NM] varchar(100), + [CITY_STATE_ZIP] varchar(2000), + [DETAIL] varchar(2000), + [INVESTIGATION_KEY] [bigint] NOT NULL + ) + ; + -- if @FACT_CASE = "" + SET @SQL = ' insert into dbo.tmp_DynDm_OrgPart_Table_temp ' + + ' ([ORGANIZATION_KEY] ' + + ', [ORGANIZATION_QUICK_CODE] ' + + ', [ORGANIZATION_NAME] ' + + ', [ORGANIZATION_LOCAL_ID] ' + + ', [ORGANIZATION_UID] ' + + ', [ORGANIZATION_STREET_ADDRESS_1] ' + + ', [ORGANIZATION_STREET_ADDRESS_2] ' + + ', [ORGANIZATION_CITY] ' + + ', [ORGANIZATION_STATE] ' + + ', [ORGANIZATION_ZIP] ' + + ', [ORGANIZATION_COUNTY] ' + + ', [ORGANIZATION_PHONE_WORK] ' + + ', [ORGANIZATION_PHONE_EXT_WORK] ' + + ', [PART_TYPE_CD] ' + + ', [PART_TYPE_CD_NM] ' + + ', [CITY_STATE_ZIP] ' + + ', [DETAIL] ' + + ', [INVESTIGATION_KEY] )' + + ' SELECT distinct '+ + ' (d_o.ORGANIZATION_KEY) , '+ + ' d_o.ORGANIZATION_QUICK_CODE , '+ + ' d_o.ORGANIZATION_NAME , '+ + ' d_o.ORGANIZATION_LOCAL_ID , '+ + ' d_o.ORGANIZATION_UID , '+ + ' d_o.ORGANIZATION_STREET_ADDRESS_1 , '+ + ' d_o.ORGANIZATION_STREET_ADDRESS_2 , '+ + ' d_o.ORGANIZATION_CITY , '+ + ' d_o.ORGANIZATION_STATE , '+ + ' d_o.ORGANIZATION_ZIP , '+ + ' d_o.ORGANIZATION_COUNTY , '+ + ' d_o.ORGANIZATION_PHONE_WORK , '+ + ' d_o.ORGANIZATION_PHONE_EXT_WORK , '+ + @PART_TYPE_CD +', '+ + ''''+ @PART_TYPE_CD +''', '+ + ' coalesce( ltrim(rtrim(ORGANIZATION_CITY))+'', '','''')+coalesce( ltrim(rtrim(ORGANIZATION_STATE))+'' '','''')+coalesce( ltrim(rtrim(ORGANIZATION_ZIP)),'''') ' + + ' , null ,'+ + ' s_d.INVESTIGATION_KEY AS INVESTIGATION_KEY '+ + ' FROM dbo.tmp_DynDm_SUMM_DATAMART s_d '+ + ' INNER JOIN dbo.'+@FACT_CASE+ ' ON s_d.INVESTIGATION_KEY = '+@FACT_CASE+ '.INVESTIGATION_KEY '+ + ' LEFT JOIN dbo.D_ORGANIZATION d_o ON '+@FACT_CASE+'.'+@PART_TYPE_CD+' = d_o.ORGANIZATION_KEY '+ + ' where d_o.organization_uid IN (SELECT value FROM STRING_SPLIT(' + @org_id_list +','+ ','+'))' + + '; ' + + -- select 'INSERT',@PART_TYPE_CD ,@USER_DEFINED_COLUMN_NM,@DETAIL ,@QEC ,@UID, @SQL; + + + EXEC(@SQL); + + + + 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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_NAME ,'START' ,@Proc_Step_no ,@Proc_Step_Name + '-'+@PART_TYPE_CD , @ROWCOUNT_NO ); + + + + COMMIT TRANSACTION; + + + BEGIN TRANSACTION; + + SET @Proc_Step_no = @Proc_Step_no + 1; + SET @Proc_Step_Name = 'GENERATING UPDATE tmp_DynDm_OrgPart_Table_temp'; + + + + + + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL ='' + LTRIM(RTRIM(coalesce(ORGANIZATION_LOCAL_ID,''))) where LTRIM(RTRIM(ORGANIZATION_LOCAL_ID)) is not null ; + + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL = DETAIL + '
' + (ORGANIZATION_NAME) where LTRIM(RTRIM(ORGANIZATION_NAME)) is not null ; + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
' + LTRIM(RTRIM(ORGANIZATION_STREET_ADDRESS_1)) where LTRIM(RTRIM(ORGANIZATION_STREET_ADDRESS_1)) is not null ; + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
' + LTRIM(RTRIM(ORGANIZATION_STREET_ADDRESS_2)) where LTRIM(RTRIM(ORGANIZATION_STREET_ADDRESS_2)) is not null ; + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
' + LTRIM(RTRIM(CITY_STATE_ZIP)) where LTRIM(RTRIM(CITY_STATE_ZIP)) is not null ; + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
' + LTRIM(RTRIM(ORGANIZATION_COUNTY)) where LTRIM(RTRIM(ORGANIZATION_COUNTY)) is not null ; + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
' + LTRIM(RTRIM(ORGANIZATION_PHONE_WORK)) where LTRIM(RTRIM(ORGANIZATION_PHONE_WORK)) is not null ; + + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + ', ext. ' + LTRIM( RTRIM(ORGANIZATION_PHONE_EXT_WORK)) + where LTRIM(RTRIM(ORGANIZATION_PHONE_WORK)) is not null and LTRIM(RTRIM(ORGANIZATION_PHONE_EXT_WORK)) is not null ; + + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
ext. ' + LTRIM( RTRIM(ORGANIZATION_PHONE_EXT_WORK)) + where LTRIM(RTRIM(ORGANIZATION_PHONE_WORK)) is null and LTRIM(RTRIM(ORGANIZATION_PHONE_EXT_WORK)) is not null ; + + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
' where LTRIM(RTRIM(DETAIL)) 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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_NAME ,'START' ,@Proc_Step_no ,@Proc_Step_Name +'-'+ @PART_TYPE_CD , @ROWCOUNT_NO ); + + + + COMMIT TRANSACTION; + + + BEGIN TRANSACTION; + + SET @Proc_Step_no = @Proc_Step_no + 1; + SET @Proc_Step_Name = 'GENERATING ALTER tmp_DynDm_OrgPart_Table_temp'; + + + + + + + SET @SQL = 'alter table dbo.tmp_DynDm_OrgPart_Table_temp add ' + @DETAIL + ' [varchar](2000) , ' + @USER_DEFINED_COLUMN_NM+ ' bigint , ' + @QEC+ ' [varchar](50) , ' + @UID+ ' bigint ; ' + + -- select 'ALTER', @PART_TYPE_CD, @SQL; + + + EXEC(@SQL); + + + + SET @SQL = 'alter table dbo.tmp_DynDm_Organization add ' + @DETAIL + ' [varchar](2000) , ' + @USER_DEFINED_COLUMN_NM+ ' bigint , ' + @QEC+ ' [varchar](50) , ' + @UID+ ' bigint ; ' + + + EXEC(@SQL); + + + + 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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_NAME ,'START' ,@Proc_Step_no ,@Proc_Step_Name + ' - '+@PART_TYPE_CD , @ROWCOUNT_NO ); + + + + COMMIT TRANSACTION; + + + BEGIN TRANSACTION; + + SET @Proc_Step_no = @Proc_Step_no + 1; + SET @Proc_Step_Name = 'GENERATING UPDATE tmp_DynDm_OrgPart_Table_temp'; + + + + + + + --@USER_DEFINED_COLUMN_NM=ORGANIZATION_KEY; + --@QEC =ORGANIZATION_QUICK_CODE; + --@UID= ORGANIZATION_UID; + + SET @SQL = 'update tDO SET ORGANIZATION_UID = orgtemp.ORGANIZATION_UID ,' + + @DETAIL + ' = DETAIL , ' + + @USER_DEFINED_COLUMN_NM+ ' = ORGANIZATION_KEY , ' + + @QEC+ ' = ORGANIZATION_QUICK_CODE , ' + + @UID+ ' = orgtemp.ORGANIZATION_UID ' + + ' FROM dbo.tmp_DynDm_Organization tDO ' + + ' INNER JOIN dbo.tmp_DynDm_OrgPart_Table_temp orgtemp ON tDO.investigation_key = orgtemp.investigation_key ' + + ' ; ' + + -- select 'UPDATE', @PART_TYPE_CD, @SQL; + + --select 'tmp_DynDm_OrgPart_Table_temp',* from tmp_DynDm_OrgPart_Table_temp; + + EXEC(@SQL); + + + 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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_NAME ,'START' ,@Proc_Step_no ,@Proc_Step_Name +'-'+ @PART_TYPE_CD , @ROWCOUNT_NO ); + + + + COMMIT TRANSACTION; + + + + FETCH NEXT FROM db_cursor_org INTO @PART_TYPE_CD ,@USER_DEFINED_COLUMN_NM,@DETAIL ,@QEC ,@UID + +END + +CLOSE db_cursor_org +DEALLOCATE db_cursor_org +; + + + + + + BEGIN TRANSACTION; + + SET @Proc_Step_no = @Proc_Step_no + 1; + SET @Proc_Step_Name = 'SP_COMPLETE'; + + 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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_NAME ,'START' ,@Proc_Step_no ,@Proc_Step_Name , @ROWCOUNT_NO ); + + + + COMMIT TRANSACTION; + + + + + + + + +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(); + + select @ErrorMessage; + + 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, 'DYNAMIC_DATAMART', 'RDB.DBO.DynDm_OrgData_sp', '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; + 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 70e4a377..7956f6e9 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 @@ -1111,8 +1111,11 @@ databaseChangeLog: - sqlFile: path: 020-v_nrt_nbs_d_patient_rdb_table_metadata-001.sql splitStatements: false - - - - - + - changeSet: + id: 164 + author: liquibase + runOnChange: true + changes: + - sqlFile: + path: 135-sp_dyn_dm_org_data_postprocessing-001.sql + splitStatements: false \ No newline at end of file diff --git a/liquibase-service/src/main/resources/db/rdb_modern/routines/046-sp_f_vaccination_postprocessing-001.sql b/liquibase-service/src/main/resources/db/rdb_modern/routines/046-sp_f_vaccination_postprocessing-001.sql index c3f99924..9d551040 100644 --- a/liquibase-service/src/main/resources/db/rdb_modern/routines/046-sp_f_vaccination_postprocessing-001.sql +++ b/liquibase-service/src/main/resources/db/rdb_modern/routines/046-sp_f_vaccination_postprocessing-001.sql @@ -1,7 +1,7 @@ CREATE OR ALTER PROCEDURE dbo.sp_f_vaccination_postprocessing( @vac_uids NVARCHAR(MAX), @debug bit = 'false') - as +as BEGIN @@ -10,240 +10,221 @@ BEGIN DECLARE @Proc_Step_Name VARCHAR(200) = ''; DECLARE @ColumnAdd_sql NVARCHAR(MAX) = ''; - DECLARE @Dataflow_Name VARCHAR(200) = 'F_VACCINATION Post-Processing Event'; + DECLARE @Dataflow_Name VARCHAR(200) = 'F_VACCINATION Post-Processing Event'; DECLARE @Package_Name VARCHAR(200) = 'sp_f_vaccination_postprocessing'; + BEGIN TRY -BEGIN TRY + SET @Proc_Step_no = 1; + SET @Proc_Step_Name = 'SP_Start'; + DECLARE @batch_id bigint; + SET @batch_id = cast((format(GETDATE(), 'yyMMddHHmmss')) AS bigint); - SET @Proc_Step_no = 1; - SET @Proc_Step_Name = 'SP_Start'; - DECLARE @batch_id bigint; - SET @batch_id = cast((format(GETDATE(), 'yyMMddHHmmss')) AS bigint); + if + @debug = 'true' + select @batch_id; - if - @debug = 'true' - select @batch_id; + SELECT @ROWCOUNT_NO = 0; + 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); - SELECT @ROWCOUNT_NO = 0; - 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); + BEGIN TRANSACTION; + SET @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET @PROC_STEP_NAME = ' GENERATING #F_VAC_INIT_KEYS'; - BEGIN TRANSACTION; + SELECT D_VACCINATION_KEY + , VACCINATION_UID + INTO #F_VAC_INIT_KEYS + FROM dbo.NRT_VACCINATION_KEY + WHERE VACCINATION_UID IN (SELECT value FROM STRING_SPLIT(@vac_uids, ',')); - SET @PROC_STEP_NO = @PROC_STEP_NO + 1; - SET @PROC_STEP_NAME = ' GENERATING #F_VAC_INIT_KEYS'; + 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); - SELECT - D_VACCINATION_KEY - ,VACCINATION_UID - INTO #F_VAC_INIT_KEYS - FROM dbo.NRT_VACCINATION_KEY - WHERE VACCINATION_UID IN (SELECT value FROM STRING_SPLIT(@vac_uids, ',') ); + COMMIT TRANSACTION; - 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); + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #F_VAC_INIT_KEYS; - COMMIT TRANSACTION; + BEGIN TRANSACTION; - if - @debug = 'true' - select @Proc_Step_Name as step, * - from #F_VAC_INIT_KEYS; + SET @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET @PROC_STEP_NAME = ' GENERATING #F_VAC_INIT'; - BEGIN TRANSACTION; + SELECT dim.D_VACCINATION_KEY, - SET @PROC_STEP_NO = @PROC_STEP_NO + 1; - SET @PROC_STEP_NAME = ' GENERATING #F_VAC_INIT'; + nc.PATIENT_UID, + coalesce(pt1.PATIENT_KEY, 1) as PATIENT_KEY, - SELECT - dim.D_VACCINATION_KEY, + nc.PROVIDER_UID, + coalesce(pv1.PROVIDER_KEY, 1) as VACCINE_GIVEN_BY_KEY, - nc.PATIENT_UID, - coalesce(pt1.PATIENT_KEY, 1) as PATIENT_KEY, + nc.ORGANIZATION_UID, + coalesce(org.ORGANIZATION_KEY, 1) as VACCINE_GIVEN_BY_ORG_KEY, - nc.PROVIDER_UID, - coalesce(pv1.PROVIDER_KEY, 1) as VACCINE_GIVEN_BY_KEY, + 1 as D_VACCINATION_REPEAT_KEY, - nc.ORGANIZATION_UID, - coalesce(org.ORGANIZATION_KEY, 1) as VACCINE_GIVEN_BY_ORG_KEY, + nc.PHC_UID, + coalesce(inv1.INVESTIGATION_KEY, 1) as INVESTIGATION_KEY - 1 as D_VACCINATION_REPEAT_KEY, + INTO #F_VAC_INIT + FROM (SELECT * + FROM dbo.NRT_VACCINATION + WHERE VACCINATION_UID IN (SELECT value FROM STRING_SPLIT(@vac_uids, ','))) nc + LEFT JOIN + dbo.D_VACCINATION dim with (nolock) on dim.VACCINATION_UID = nc.VACCINATION_UID + LEFT JOIN + dbo.D_ORGANIZATION org with (nolock) on org.ORGANIZATION_UID = nc.ORGANIZATION_UID + LEFT JOIN + dbo.D_PROVIDER pv1 with (nolock) on pv1.PROVIDER_UID = nc.PROVIDER_UID + LEFT JOIN + dbo.D_PATIENT pt1 with (nolock) on pt1.PATIENT_UID = nc.PATIENT_UID + LEFT JOIN + dbo.INVESTIGATION inv1 with (nolock) on inv1.CASE_UID = nc.PHC_UID; - nc.PHC_UID, - coalesce(inv1.INVESTIGATION_KEY, 1) as INVESTIGATION_KEY - INTO #F_VAC_INIT - FROM ( - SELECT * - FROM dbo.NRT_VACCINATION WHERE VACCINATION_UID IN (SELECT value FROM STRING_SPLIT(@vac_uids, ',') ) - ) nc - LEFT JOIN - dbo.D_VACCINATION dim with (nolock) on dim.VACCINATION_UID = nc.VACCINATION_UID - LEFT JOIN - dbo.D_ORGANIZATION org with (nolock) on org.ORGANIZATION_UID = nc.ORGANIZATION_UID - LEFT JOIN - dbo.D_PROVIDER pv1 with (nolock) on pv1.PROVIDER_UID = nc.PROVIDER_UID - LEFT JOIN - dbo.D_PATIENT pt1 with (nolock) on pt1.PATIENT_UID = nc.PATIENT_UID - LEFT JOIN - dbo.INVESTIGATION inv1 with (nolock) on inv1.CASE_UID = nc.PHC_UID; + 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; - 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 #F_VAC_INIT_NEW'; - BEGIN TRANSACTION; - SET @PROC_STEP_NO = @PROC_STEP_NO + 1; - SET @PROC_STEP_NAME = ' GENERATING #F_VAC_INIT_NEW'; + SELECT init.D_VACCINATION_KEY, + init.PATIENT_KEY, + init.VACCINE_GIVEN_BY_KEY, + init.VACCINE_GIVEN_BY_ORG_KEY, + init.D_VACCINATION_REPEAT_KEY, + init.INVESTIGATION_KEY + INTO #F_VAC_INIT_NEW + FROM #F_VAC_INIT init + LEFT OUTER JOIN + dbo.F_VACCINATION fact with (nolock) ON fact.D_VACCINATION_KEY = init.D_VACCINATION_KEY + WHERE fact.D_VACCINATION_KEY is NULL; + if + @debug = 'true' + select @Proc_Step_Name as step, * + from #F_VAC_INIT_NEW; - SELECT - init.D_VACCINATION_KEY, - init.PATIENT_KEY, - init.VACCINE_GIVEN_BY_KEY, - init.VACCINE_GIVEN_BY_ORG_KEY, - init.D_VACCINATION_REPEAT_KEY, - init.INVESTIGATION_KEY - INTO - #F_VAC_INIT_NEW - FROM - #F_VAC_INIT init - LEFT OUTER JOIN - dbo.F_VACCINATION fact with (nolock) ON fact.D_VACCINATION_KEY = init.D_VACCINATION_KEY - WHERE - fact.D_VACCINATION_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); - if - @debug = 'true' - select @Proc_Step_Name as step, * - from #F_VAC_INIT_NEW; + COMMIT TRANSACTION; - 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 INTO F_VACCINATION'; - - INSERT INTO dbo.F_VACCINATION ( - D_VACCINATION_KEY, - PATIENT_KEY, - VACCINE_GIVEN_BY_KEY, - VACCINE_GIVEN_BY_ORG_KEY, - D_VACCINATION_REPEAT_KEY, - INVESTIGATION_KEY - ) - SELECT - D_VACCINATION_KEY, - PATIENT_KEY, - VACCINE_GIVEN_BY_KEY, - VACCINE_GIVEN_BY_ORG_KEY, - D_VACCINATION_REPEAT_KEY, - INVESTIGATION_KEY - FROM - #F_VAC_INIT_NEW - ; + BEGIN TRANSACTION; + + SET @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET @PROC_STEP_NAME = ' INSERT INTO F_VACCINATION'; + + INSERT INTO dbo.F_VACCINATION (D_VACCINATION_KEY, + PATIENT_KEY, + VACCINE_GIVEN_BY_KEY, + VACCINE_GIVEN_BY_ORG_KEY, + D_VACCINATION_REPEAT_KEY, + INVESTIGATION_KEY) + SELECT D_VACCINATION_KEY, + PATIENT_KEY, + VACCINE_GIVEN_BY_KEY, + VACCINE_GIVEN_BY_ORG_KEY, + D_VACCINATION_REPEAT_KEY, + INVESTIGATION_KEY + FROM #F_VAC_INIT_NEW; - 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; + 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 F_VACCINATION'; + BEGIN TRANSACTION; - UPDATE fact - SET - fact.PATIENT_KEY = src.PATIENT_KEY, - fact.VACCINE_GIVEN_BY_KEY = src.VACCINE_GIVEN_BY_KEY, - fact.VACCINE_GIVEN_BY_ORG_KEY = src.VACCINE_GIVEN_BY_ORG_KEY, - fact.D_VACCINATION_REPEAT_KEY = src.D_VACCINATION_REPEAT_KEY, - fact.INVESTIGATION_KEY = src.INVESTIGATION_KEY - FROM dbo.F_VACCINATION fact - INNER JOIN ( - SELECT * - FROM #F_VAC_INIT - WHERE D_VACCINATION_KEY NOT IN (SELECT D_VACCINATION_KEY FROM #F_VAC_INIT_NEW) - ) src - ON src.D_VACCINATION_KEY = fact.D_VACCINATION_KEY; + SET @PROC_STEP_NO = @PROC_STEP_NO + 1; + SET @PROC_STEP_NAME = ' UPDATE F_VACCINATION'; + UPDATE fact + SET fact.PATIENT_KEY = src.PATIENT_KEY, + fact.VACCINE_GIVEN_BY_KEY = src.VACCINE_GIVEN_BY_KEY, + fact.VACCINE_GIVEN_BY_ORG_KEY = src.VACCINE_GIVEN_BY_ORG_KEY, + fact.D_VACCINATION_REPEAT_KEY = src.D_VACCINATION_REPEAT_KEY, + fact.INVESTIGATION_KEY = src.INVESTIGATION_KEY + FROM dbo.F_VACCINATION fact + INNER JOIN (SELECT * + FROM #F_VAC_INIT + WHERE D_VACCINATION_KEY NOT IN (SELECT D_VACCINATION_KEY FROM #F_VAC_INIT_NEW)) src + ON src.D_VACCINATION_KEY = fact.D_VACCINATION_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; + 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; - 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', 999, 'COMPLETE', 0); + 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', 999, 'COMPLETE', 0); -END TRY -BEGIN CATCH + END TRY + BEGIN CATCH -IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION; + IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION; - -- Construct the error message string with all details: + -- Construct the error message string with all details: 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 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] ( 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 - , @Proc_Step_name - , @FullErrorMessage - , 0); - - -return -1; - -END CATCH + 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 + , @Proc_Step_name + , @FullErrorMessage + , 0); + + + return -1; + + END CATCH END diff --git a/liquibase-service/src/main/resources/db/rdb_modern/routines/135-sp_dyn_dm_org_data_postprocessing-001.sql b/liquibase-service/src/main/resources/db/rdb_modern/routines/135-sp_dyn_dm_org_data_postprocessing-001.sql new file mode 100644 index 00000000..369a6a31 --- /dev/null +++ b/liquibase-service/src/main/resources/db/rdb_modern/routines/135-sp_dyn_dm_org_data_postprocessing-001.sql @@ -0,0 +1,459 @@ + + + +CREATE or alter PROCEDURE [dbo].sp_dyn_dm_org_data_postprocessing + + @batch_id BIGINT, + @DATAMART_NAME VARCHAR(100), + @Org_id_list nvarchar(max) + + AS +BEGIN + BEGIN TRY + +--DECLARE @batch_id BIGINT = 999; DECLARE @DATAMART_NAME VARCHAR(100) = 'CONG_SYPHILIS'; + + DECLARE @RowCount_no INT = 0 ; + DECLARE @Proc_Step_no FLOAT = 0 ; + DECLARE @Proc_Step_Name VARCHAR(200) = '' ; + DECLARE @batch_start_time datetime = null ; + DECLARE @batch_end_time datetime = null ; + DECLARE @nbs_page_form_cd varchar(200)= ''; + + SET @nbs_page_form_cd = (SELECT FORM_CD FROM dbo.v_nbs_page WHERE DATAMART_NM=@DATAMART_NAME) + + + SET @Proc_Step_no = 1; + SET @Proc_Step_Name = 'SP_Start'; + + + BEGIN TRANSACTION; + + 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 + ,'DYNAMIC_DATAMART' + ,'RDB.DBO.DynDm_OrgData_sp ' + @DATAMART_NAME + ,'START' + ,@Proc_Step_no + ,@Proc_Step_Name + ,0 + ); + + + + + COMMIT TRANSACTION; + + + BEGIN TRANSACTION; + + SET @Proc_Step_no = @Proc_Step_no + 1; + SET @Proc_Step_Name = 'GENERATING FACT_CASE'; + + + + BEGIN TRANSACTION; + + + + declare @countstd int = 0; + + + select @COUNTSTD = count(*) from dbo.v_nrt_nbs_d_case_mgmt_rdb_table_metadata + ; + + + declare @FACT_CASE varchar(40) = ''; + + + if @countstd > 1 + begin + set @FACT_CASE = 'F_STD_PAGE_CASE'; + end + else + begin + set @FACT_CASE = 'F_PAGE_CASE'; + end + ; + + -- select @fact_case; + + +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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_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 tmp_DynDm_Organization_METADATA'; + + +--CREATE TABLE ORGANIZATION_METADATA AS + + Select RDB_COLUMN_NM, user_defined_column_nm, part_type_cd, [Key], Detail, QEC, UID, INVESTIGATION_FORM_CD + into #tmp_DynDm_Organization_METADATA + from v_nrt_nbs_d_organization_rdb_table_metadata + where INVESTIGATION_FORM_CD=@nbs_page_form_cd ; + + + +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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_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 tmp_DynDm_Organization'; + + + + IF OBJECT_ID('#tmp_DynDm_Organization', 'U') IS NOT NULL + drop table #tmp_DynDm_Organization; + + +--CREATE TABLE rdb.dbo.tmp_DynDm_Organization +--(INVESTIGATION_KEY bigint); + +select distinct investigation_key, +cast(null as bigint) as ORGANIZATION_UID +into #tmp_DynDm_Organization + FROM #tmp_DynDm_SUMM_DATAMART + -- pass the org_Id_List param +; + + + + +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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_NAME ,'START' ,@Proc_Step_no ,@Proc_Step_Name , @ROWCOUNT_NO ); + + + + COMMIT TRANSACTION; + + + + + declare @USER_DEFINED_COLUMN_NM varchar(max) ,@PART_TYPE_CD varchar(max) ,@DETAIL varchar(max) ,@QEC varchar(max) ,@UID varchar(max); + + + + + declare @SQL varchar(max) + + + + --DX select PART_TYPE_CD,* from rdb.dbo.tmp_DynDm_Organization_METADATA; + + + + +--declare @PART_TYPE_CD varchar(max) = null , @SQL varchar(max); + + + +DECLARE db_cursor_org CURSOR LOCAL FOR + select PART_TYPE_CD , [key],DETAIL,QEC ,[UID] from #tmp_DynDm_Organization_METADATA; + +OPEN db_cursor_org +FETCH NEXT FROM db_cursor_org INTO @PART_TYPE_CD ,@USER_DEFINED_COLUMN_NM,@DETAIL ,@QEC ,@UID + +WHILE @@FETCH_STATUS = 0 +BEGIN + + + + + + BEGIN TRANSACTION; + + SET @Proc_Step_no = @Proc_Step_no + 1; + SET @Proc_Step_Name = 'GENERATING tmp_DynDm_OrgPart_Table_temp'; + + IF OBJECT_ID('dbo.tmp_DynDm_OrgPart_Table_temp', 'U') IS NOT NULL + drop table dbo.tmp_DynDm_OrgPart_Table_temp; + + + + CREATE TABLE [dbo].[tmp_DynDm_OrgPart_Table_temp]( + [ORGANIZATION_KEY] [bigint] NULL, + [ORGANIZATION_QUICK_CODE] [varchar](50) NULL, + [ORGANIZATION_NAME] [varchar](50) NULL, + [ORGANIZATION_LOCAL_ID] [varchar](50) NULL, + [ORGANIZATION_UID] [bigint] NULL, + [ORGANIZATION_STREET_ADDRESS_1] [varchar](50) NULL, + [ORGANIZATION_STREET_ADDRESS_2] [varchar](50) NULL, + [ORGANIZATION_CITY] [varchar](50) NULL, + [ORGANIZATION_STATE] [varchar](50) NULL, + [ORGANIZATION_ZIP] [varchar](10) NULL, + [ORGANIZATION_COUNTY] [varchar](50) NULL, + [ORGANIZATION_PHONE_WORK] [varchar](50) NULL, + [ORGANIZATION_PHONE_EXT_WORK] [varchar](50) NULL, + [PART_TYPE_CD] [bigint] NULL, + [PART_TYPE_CD_NM] varchar(100), + [CITY_STATE_ZIP] varchar(2000), + [DETAIL] varchar(2000), + [INVESTIGATION_KEY] [bigint] NOT NULL + ) + ; + -- if @FACT_CASE = "" + SET @SQL = ' insert into dbo.tmp_DynDm_OrgPart_Table_temp ' + + ' ([ORGANIZATION_KEY] ' + + ', [ORGANIZATION_QUICK_CODE] ' + + ', [ORGANIZATION_NAME] ' + + ', [ORGANIZATION_LOCAL_ID] ' + + ', [ORGANIZATION_UID] ' + + ', [ORGANIZATION_STREET_ADDRESS_1] ' + + ', [ORGANIZATION_STREET_ADDRESS_2] ' + + ', [ORGANIZATION_CITY] ' + + ', [ORGANIZATION_STATE] ' + + ', [ORGANIZATION_ZIP] ' + + ', [ORGANIZATION_COUNTY] ' + + ', [ORGANIZATION_PHONE_WORK] ' + + ', [ORGANIZATION_PHONE_EXT_WORK] ' + + ', [PART_TYPE_CD] ' + + ', [PART_TYPE_CD_NM] ' + + ', [CITY_STATE_ZIP] ' + + ', [DETAIL] ' + + ', [INVESTIGATION_KEY] )' + + ' SELECT distinct '+ + ' (d_o.ORGANIZATION_KEY) , '+ + ' d_o.ORGANIZATION_QUICK_CODE , '+ + ' d_o.ORGANIZATION_NAME , '+ + ' d_o.ORGANIZATION_LOCAL_ID , '+ + ' d_o.ORGANIZATION_UID , '+ + ' d_o.ORGANIZATION_STREET_ADDRESS_1 , '+ + ' d_o.ORGANIZATION_STREET_ADDRESS_2 , '+ + ' d_o.ORGANIZATION_CITY , '+ + ' d_o.ORGANIZATION_STATE , '+ + ' d_o.ORGANIZATION_ZIP , '+ + ' d_o.ORGANIZATION_COUNTY , '+ + ' d_o.ORGANIZATION_PHONE_WORK , '+ + ' d_o.ORGANIZATION_PHONE_EXT_WORK , '+ + @PART_TYPE_CD +', '+ + ''''+ @PART_TYPE_CD +''', '+ + ' coalesce( ltrim(rtrim(ORGANIZATION_CITY))+'', '','''')+coalesce( ltrim(rtrim(ORGANIZATION_STATE))+'' '','''')+coalesce( ltrim(rtrim(ORGANIZATION_ZIP)),'''') ' + + ' , null ,'+ + ' s_d.INVESTIGATION_KEY AS INVESTIGATION_KEY '+ + ' FROM dbo.tmp_DynDm_SUMM_DATAMART s_d '+ + ' INNER JOIN dbo.'+@FACT_CASE+ ' ON s_d.INVESTIGATION_KEY = '+@FACT_CASE+ '.INVESTIGATION_KEY '+ + ' LEFT JOIN dbo.D_ORGANIZATION d_o ON '+@FACT_CASE+'.'+@PART_TYPE_CD+' = d_o.ORGANIZATION_KEY '+ + ' where d_o.organization_uid IN (SELECT value FROM STRING_SPLIT(' + @org_id_list +','+ ','+'))' + + '; ' + + -- select 'INSERT',@PART_TYPE_CD ,@USER_DEFINED_COLUMN_NM,@DETAIL ,@QEC ,@UID, @SQL; + + + EXEC(@SQL); + + + + 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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_NAME ,'START' ,@Proc_Step_no ,@Proc_Step_Name + '-'+@PART_TYPE_CD , @ROWCOUNT_NO ); + + + + COMMIT TRANSACTION; + + + BEGIN TRANSACTION; + + SET @Proc_Step_no = @Proc_Step_no + 1; + SET @Proc_Step_Name = 'GENERATING UPDATE tmp_DynDm_OrgPart_Table_temp'; + + + + + + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL ='' + LTRIM(RTRIM(coalesce(ORGANIZATION_LOCAL_ID,''))) where LTRIM(RTRIM(ORGANIZATION_LOCAL_ID)) is not null ; + + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL = DETAIL + '
' + (ORGANIZATION_NAME) where LTRIM(RTRIM(ORGANIZATION_NAME)) is not null ; + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
' + LTRIM(RTRIM(ORGANIZATION_STREET_ADDRESS_1)) where LTRIM(RTRIM(ORGANIZATION_STREET_ADDRESS_1)) is not null ; + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
' + LTRIM(RTRIM(ORGANIZATION_STREET_ADDRESS_2)) where LTRIM(RTRIM(ORGANIZATION_STREET_ADDRESS_2)) is not null ; + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
' + LTRIM(RTRIM(CITY_STATE_ZIP)) where LTRIM(RTRIM(CITY_STATE_ZIP)) is not null ; + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
' + LTRIM(RTRIM(ORGANIZATION_COUNTY)) where LTRIM(RTRIM(ORGANIZATION_COUNTY)) is not null ; + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
' + LTRIM(RTRIM(ORGANIZATION_PHONE_WORK)) where LTRIM(RTRIM(ORGANIZATION_PHONE_WORK)) is not null ; + + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + ', ext. ' + LTRIM( RTRIM(ORGANIZATION_PHONE_EXT_WORK)) + where LTRIM(RTRIM(ORGANIZATION_PHONE_WORK)) is not null and LTRIM(RTRIM(ORGANIZATION_PHONE_EXT_WORK)) is not null ; + + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
ext. ' + LTRIM( RTRIM(ORGANIZATION_PHONE_EXT_WORK)) + where LTRIM(RTRIM(ORGANIZATION_PHONE_WORK)) is null and LTRIM(RTRIM(ORGANIZATION_PHONE_EXT_WORK)) is not null ; + + update dbo.tmp_DynDm_OrgPart_Table_temp SET DETAIL= DETAIL + '
' where LTRIM(RTRIM(DETAIL)) 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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_NAME ,'START' ,@Proc_Step_no ,@Proc_Step_Name +'-'+ @PART_TYPE_CD , @ROWCOUNT_NO ); + + + + COMMIT TRANSACTION; + + + BEGIN TRANSACTION; + + SET @Proc_Step_no = @Proc_Step_no + 1; + SET @Proc_Step_Name = 'GENERATING ALTER tmp_DynDm_OrgPart_Table_temp'; + + + + + + + SET @SQL = 'alter table dbo.tmp_DynDm_OrgPart_Table_temp add ' + @DETAIL + ' [varchar](2000) , ' + @USER_DEFINED_COLUMN_NM+ ' bigint , ' + @QEC+ ' [varchar](50) , ' + @UID+ ' bigint ; ' + + -- select 'ALTER', @PART_TYPE_CD, @SQL; + + + EXEC(@SQL); + + + + SET @SQL = 'alter table dbo.tmp_DynDm_Organization add ' + @DETAIL + ' [varchar](2000) , ' + @USER_DEFINED_COLUMN_NM+ ' bigint , ' + @QEC+ ' [varchar](50) , ' + @UID+ ' bigint ; ' + + + EXEC(@SQL); + + + + 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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_NAME ,'START' ,@Proc_Step_no ,@Proc_Step_Name + ' - '+@PART_TYPE_CD , @ROWCOUNT_NO ); + + + + COMMIT TRANSACTION; + + + BEGIN TRANSACTION; + + SET @Proc_Step_no = @Proc_Step_no + 1; + SET @Proc_Step_Name = 'GENERATING UPDATE tmp_DynDm_OrgPart_Table_temp'; + + + + + + + --@USER_DEFINED_COLUMN_NM=ORGANIZATION_KEY; + --@QEC =ORGANIZATION_QUICK_CODE; + --@UID= ORGANIZATION_UID; + + SET @SQL = 'update tDO SET ORGANIZATION_UID = orgtemp.ORGANIZATION_UID ,' + + @DETAIL + ' = DETAIL , ' + + @USER_DEFINED_COLUMN_NM+ ' = ORGANIZATION_KEY , ' + + @QEC+ ' = ORGANIZATION_QUICK_CODE , ' + + @UID+ ' = orgtemp.ORGANIZATION_UID ' + + ' FROM dbo.tmp_DynDm_Organization tDO ' + + ' INNER JOIN dbo.tmp_DynDm_OrgPart_Table_temp orgtemp ON tDO.investigation_key = orgtemp.investigation_key ' + + ' ; ' + + -- select 'UPDATE', @PART_TYPE_CD, @SQL; + + --select 'tmp_DynDm_OrgPart_Table_temp',* from tmp_DynDm_OrgPart_Table_temp; + + EXEC(@SQL); + + + 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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_NAME ,'START' ,@Proc_Step_no ,@Proc_Step_Name +'-'+ @PART_TYPE_CD , @ROWCOUNT_NO ); + + + + COMMIT TRANSACTION; + + + + FETCH NEXT FROM db_cursor_org INTO @PART_TYPE_CD ,@USER_DEFINED_COLUMN_NM,@DETAIL ,@QEC ,@UID + +END + +CLOSE db_cursor_org +DEALLOCATE db_cursor_org +; + + + + + + BEGIN TRANSACTION; + + SET @Proc_Step_no = @Proc_Step_no + 1; + SET @Proc_Step_Name = 'SP_COMPLETE'; + + 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 ,'DYNAMIC_DATAMART' ,'RDB.DBO.DynDm_OrgData_sp '+@DATAMART_NAME ,'START' ,@Proc_Step_no ,@Proc_Step_Name , @ROWCOUNT_NO ); + + + + COMMIT TRANSACTION; + + + + + + + + +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(); + + select @ErrorMessage; + + 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, 'DYNAMIC_DATAMART', 'RDB.DBO.DynDm_OrgData_sp', '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; +