From 00b8cca1c42ba2586d45a2f8f6b94fdcafe9c038 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Tue, 28 Nov 2023 17:25:38 +0900 Subject: [PATCH 1/8] =?UTF-8?q?fix:=20INSERT=E6=99=82=E3=81=AE@=E9=A0=85?= =?UTF-8?q?=E7=9B=AE=E3=82=AF=E3=83=AA=E3=82=A2=E3=81=AE=E6=A8=AA=E5=B1=95?= =?UTF-8?q?=E9=96=8B=E4=BF=AE=E6=AD=A3=EF=BC=88=20COM=5F=E5=B0=82=E9=96=80?= =?UTF-8?q?=E5=88=86=E9=87=8E=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../concrete/com_sp_field_mapper.py | 36 ++++++++++++------- .../com_sp_field/com_sp_field_insert.csv | 1 + .../expect_com_sp_field_insert.csv | 1 + .../tests/testing_utility.py | 2 ++ 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_sp_field_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_sp_field_mapper.py index c84dd089..90b9d9a0 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_sp_field_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_sp_field_mapper.py @@ -104,6 +104,10 @@ class ComSpFieldMapper(UltmarcTableMapper): # レコードの存在確認 record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + + # 項目クリアを設定 + self.__set_clearing_item() + # 存在しない場合はInsert if record_count[0]['count_num'] == 0: return self.INSERT_QUERY @@ -112,26 +116,17 @@ class ComSpFieldMapper(UltmarcTableMapper): if len(self.record.specialist_maint_div) > 0: set_clauses.append('specialist_maint_div = :specialist_maint_div') - if len(self.record.specialist_flg) > 0: + if self.record.specialist_flg is not None and len(self.record.specialist_flg) > 0: set_clauses.append('specialist_flg = :specialist_flg') set_clauses.append('specialist_publsh_ymd = :specialist_publsh_ymd') - if self.record.specialist_flg == '@': - self.query_parameter['specialist_flg'] = None - self.query_parameter['specialist_publsh_ymd'] = None - if len(self.record.ackn_med_flg) > 0: + if self.record.ackn_med_flg is not None and len(self.record.ackn_med_flg) > 0: set_clauses.append('ackn_med_flg = :ackn_med_flg') set_clauses.append('ackn_med_publsh_ymd = :ackn_med_publsh_ymd') - if self.record.ackn_med_flg == '@': - self.query_parameter['ackn_med_flg'] = None - self.query_parameter['ackn_med_publsh_ymd'] = None - if len(self.record.guide_med_flg) > 0: + if self.record.guide_med_flg is not None and len(self.record.guide_med_flg) > 0: set_clauses.append('guide_med_flg = :guide_med_flg') set_clauses.append('guide_med_publsh_ymd = :guide_med_publsh_ymd') - if self.record.guide_med_flg == '@': - self.query_parameter['guide_med_flg'] = None - self.query_parameter['guide_med_publsh_ymd'] = None update_columns = ','.join(set_clauses) # 何も更新項目が無い場合はNoneとする(更新処理は行わない) @@ -144,3 +139,20 @@ class ComSpFieldMapper(UltmarcTableMapper): update_columns=update_columns ) return update_query + + def __set_clearing_item(self): + + # 専門医の集合項目クリア + if self.record.specialist_flg == '@': + self.query_parameter['specialist_flg'] = None + self.query_parameter['specialist_publsh_ymd'] = None + # 認定医の集合項目クリア + if self.record.ackn_med_flg == '@': + self.query_parameter['ackn_med_flg'] = None + self.query_parameter['ackn_med_publsh_ymd'] = None + # 指導医の集合項目クリア + if self.record.guide_med_flg == '@': + self.query_parameter['guide_med_flg'] = None + self.query_parameter['guide_med_publsh_ymd'] = None + + return diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/com_sp_field_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/com_sp_field_insert.csv index b6e91047..b68e46d0 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/com_sp_field_insert.csv +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/com_sp_field_insert.csv @@ -5,3 +5,4 @@ "511","01","999613","00","A","0056","2","20141113","20141114","1","20140706","","","1","20140706" "511","91","999999","99","B","9999","2","","","1","20220628","1","20230425","1","20230425" "511","99","999999","99","A","9999","2","","","1","20220628","1","20230425","1","20230425" +"511","01","999988","99","A","9999","2",,,"@","20220628","@","20230425","@","20230425" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/expect_com_sp_field_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/expect_com_sp_field_insert.csv index b52c8c90..8b5f1ad2 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/expect_com_sp_field_insert.csv +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/expect_com_sp_field_insert.csv @@ -6,3 +6,4 @@ "0199961300","0056","2","1","20140706","","","1","20140706","20230425","NULL","NULL","NULL","NULL","NULL","NULL","2023/01/08 17:05:14","com_sp_field_mapper","2023/01/08 17:05:14","com_sp_field_mapper" "9199999999","9999","2","1","20220628","1","20230425","1","20230425","20230425","NULL","NULL","NULL","NULL","NULL","NULL","2023/01/08 17:05:14","com_sp_field_mapper","2023/01/08 17:05:14","com_sp_field_mapper" "9999999999","9999","2","1","20220628","1","20230425","1","20230425","20230425","NULL","NULL","NULL","NULL","NULL","NULL","2023/01/08 17:05:14","com_sp_field_mapper","2023/01/08 17:05:14","com_sp_field_mapper" +"0199998899","9999","2","NULL","NULL","NULL","NULL","NULL","NULL","20230425","NULL","NULL","NULL","NULL","NULL","NULL","2023/01/08 17:05:14","com_sp_field_mapper","2023/01/08 17:05:14","com_sp_field_mapper" diff --git a/ecs/jskult-batch-daily/tests/testing_utility.py b/ecs/jskult-batch-daily/tests/testing_utility.py index 5a6c3a42..a59a647b 100644 --- a/ecs/jskult-batch-daily/tests/testing_utility.py +++ b/ecs/jskult-batch-daily/tests/testing_utility.py @@ -136,6 +136,8 @@ def is_valid_date_format(date_str: str, date_format): Returns: _type_: 正しい日付文字列の場合、True、それ以外はFalse """ + if date_str is None: + return False try: datetime.strptime(date_str, date_format) return True From dc52b23919fc6e065d9b7b4fffe66e85a2baa422 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Tue, 28 Nov 2023 18:29:17 +0900 Subject: [PATCH 2/8] =?UTF-8?q?fix:=20COM=5F=E6=96=BD=E8=A8=AD=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=20=E9=A0=85=E7=9B=AE=E3=82=AF=E3=83=AA=E3=82=A2?= =?UTF-8?q?=E3=81=AE=E8=80=83=E6=85=AE=E6=BC=8F=E3=82=8C=20=E3=83=86?= =?UTF-8?q?=E3=82=B9=E3=83=88=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../table_mapper/concrete/com_inst_att_mapper.py | 6 ++++++ .../table_mapper/com_inst_att/com_inst_att_insert.csv | 1 + .../com_inst_att/expect_com_inst_att_insert.csv | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_att_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_att_mapper.py index b6deaef0..140270f1 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_att_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_att_mapper.py @@ -934,15 +934,18 @@ class ComInstAttMapper(UltmarcTableMapper): # 療養型病床群 if sum(len(item) for item in self.record.resthp_items) > 0: + # 医療型 set_clauses.append('resthpflag = :resthp_flag') set_clauses.append('resthpcarekind = :resthp_care_kind') set_clauses.append('resthpbednum = :resthp_bed_num') set_clauses.append('resthpokdate = :resthp_ok_date') set_clauses.append('resthpcandate = :resthp_can_date') + # 介護型 set_clauses.append('resthpcarenrskind = :resthp_care_nrs_kind') set_clauses.append('resthpcarebednum = :resthp_care_bed_num') set_clauses.append('resthpcareokdate = :resthp_care_ok_date') set_clauses.append('resthpcarecandate = :resthp_care_can_date') + # 合計 set_clauses.append('resthpsbednum = :resthp_sbed_num') if self.record.resthp_flag == '@': self.query_parameter['resthp_flag'] = None @@ -1030,12 +1033,15 @@ class ComInstAttMapper(UltmarcTableMapper): # 臨床研修指定病院 if sum(len(item) for item in self.record.cl_items) > 0: + # 基幹型病院1 set_clauses.append('clolyhpkind = :clolyhp_kind') set_clauses.append('clolyhpokdate = :clolyhp_ok_date') set_clauses.append('clolyhpcandate = :clolyhp_can_date') + # 基幹型病院2(群指定) set_clauses.append('clhpkind = :clhp_kind') set_clauses.append('clhpokdate = :clhp_ok_date') set_clauses.append('clhpcandate = :clhp_can_date') + # 協力型病院(群指定) set_clauses.append('cldephpkind = :cldephp_kind') set_clauses.append('cldephpokdate = :cldephp_ok_date') set_clauses.append('cldephpcandate = :cldephp_can_date') diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/com_inst_att_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/com_inst_att_insert.csv index 57045790..7dd0af30 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/com_inst_att_insert.csv +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/com_inst_att_insert.csv @@ -18,3 +18,4 @@ "111","00","9908576","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","1","20080401","","","","","","","","","","","","","","","","","","20070831","","","20070831","","","","2","9","1","I001","33","20130401","","","","","","33","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","200704" "111","00","9910624","","A","2","20141113","20141114","1","20030401","","","","","1","20120401","","1","19940201","","","","","","1","20120401","","","","","","","","1","20121201","","1","20090701","","1","20061101","","","","","","","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20140401","","1","20140401","","1","01","02","03","04","","","","","","","1","20140401","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","08","20100402","","","","20060331","1","20041001","","1","20040331","","1","1","1","","","1","2","20070702","","","","","1","1","1","002","1","006","1","051","4","004","1","100","2","165","1","035","1","168","1","118","1","101","1","182","","202","1","214","5","149","","197","1","198","","177","1","183","1","213","5","217","5","212","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","31","34","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","192202" "111","00","9929798","","A","2","20141113","20141114","1","20080701","","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20090301","","1","20100401","","","","20080531","","","","1","19971201","","","","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","1","20080401","","1","01","02","03","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","13","20140106","","","","","","","","1","20040331","","","1","1","","","","","","","","","","1","1","1","168","1","197","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195305" +"111","00","9929799",,"A","2","20141113","20141114","@","20080701","20080701","@","2008","20080701","@","20080701","20080701","@","20080701","20080701","@","10.1","20080701","20080701","@","20080701","20080701","@","20080701","20080701","@","20080701","20080701","@","20080701","20080701","@","20080701","20080701","@","20080701","20080701","@","20080701","20080701","@","20080701","20080701","@","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","15","17","18","19","20","@","20100401","20100401","@","20100401","20100401","@","20100401","20100401","@","01","02","03","04","05","06","07","08","09","10","@","20140401","20140401","@","20140401","20140401","@","20140401","20140401","@","20140401","20140401","@","@","@","I001","33","20130401","20130401","4101","116","20090501","20090501","33","@","B999","450","@","M999","40","@","K999","4","@","9","9","@","9","@","21","20130901","20130901","@","13","20140106","20140106","@","20030401","20040229","1","20041001","20041001","1","20040331","20040331","@","@","1","1","@","@","2","20070702","20070702","@","20070702","20070702","@","@","@","168","1","197","1","051","4","004","1","100","2","165","1","035","1","168","1","118","1","101","1","182",,"202","1","214","5","149","1","197","1","198","1","177","1","183","1","213","5","217","5","212","1","202","3","204","5","206","7","208","9","210","1","212","3","214","5","216","7","218","9","220","1","222","3","224","5","226","7","228","9","230","1","232","3","234","5","236","7","238","9","@","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","@","62","3","64","5","66","7","68","9","70","1","72","3","74","5","76","7","78","9","80","1","82","3","84","5","86","7","88","9","90","1","92","3","94","5","96","7","98","9","00","1","@","00","8106522","00","@" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/expect_com_inst_att_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/expect_com_inst_att_insert.csv index 264abcbe..fa54041d 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/expect_com_inst_att_insert.csv +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/expect_com_inst_att_insert.csv @@ -18,4 +18,4 @@ "009908576","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","1","20080401","","","","","","","","","","","","","","","","","","20070831","","","20070831","","","","2","9","1","I001","33","20130401","","","NULL","","","33","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","200704","20171008","20230509","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_inst_att_mapper","2017/10/08 20:57:12","com_inst_att_mapper" "009910624","1","20030401","","","","","1","20120401","","1","19940201","","","NULL","","","1","20120401","","","","","","","","1","20121201","","1","20090701","","1","20061101","","","","","","","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20140401","","1","20140401","","1","01","02","03","04","","","","","","","1","20140401","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","08","20100402","","","","20060331","1","20041001","","1","20040331","","1","1","1","","","1","2","20070702","","","","","1","1","1","002","1","006","1","051","4","004","1","100","2","165","1","035","1","168","1","118","1","101","1","182","","202","1","214","5","149","","197","1","198","","177","1","183","1","213","5","217","5","212","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","31","34","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","192202","20171008","20230509","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_inst_att_mapper","2017/10/08 20:57:12","com_inst_att_mapper" "009929798","1","20080701","","","","","","","","","","","","NULL","","","","","","","","","1","20100401","","1","20090301","","1","20100401","","","","20080531","","","","1","19971201","","","","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","1","20080401","","1","01","02","03","","","","","","","","","","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","13","20140106","","","","","","","","1","20040331","","","1","1","","","","","","","","","","1","1","1","168","1","197","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195305","20171008","20230509","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_inst_att_mapper","2017/10/08 20:57:12","com_inst_att_mapper" -"12345678999","9","20230510","20230511","2","2023","20230514","5","20230516","20230517","8","20230519","20230520","1","22.1","20230523","20230524","5","20230526","20230527","8","20230529","20230530","1","20230502","20230503","4","20230505","20230506","7","20230508","20230509","0","20230501","20230402","3","20230404","20230405","6","20230407","20230408","9","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","0","20230701","20230702","3","20230704","20230705","6","20230707","20230708","9","80","81","82","83","84","85","86","87","88","89","0","20230901","20230902","3","20230904","20230905","6","20230907","20230908","9","20231001","20231011","2","3","4","105","106","20231007","20231008","109","110","20231101","20231102","113","4","0115","116","7","0118","119","0","0121","122","3","4","5","6","127","8","129","20230130","20230131","2","33","20230104","20230105","6","20230107","20230108","9","20230104","20230101","2","20230103","20230104","5","6","7","8","9","0","1","20230102","20230403","4","20230105","20230106","7","8","9","160","1","162","3","164","5","166","7","168","9","170","1","172","3","174","5","176","7","178","9","180","1","182","3","184","5","186","7","188","9","190","1","192","3","194","5","196","7","198","9","200","1","202","3","204","5","206","7","208","9","210","1","212","3","214","5","216","7","218","9","220","1","222","3","224","5","226","7","228","9","230","1","232","3","234","5","236","7","238","9","0","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","1","62","3","64","5","66","7","68","9","70","1","72","3","74","5","76","7","78","9","80","1","82","3","84","5","86","7","88","9","90","1","92","3","94","5","96","7","98","9","00","1","2","3","0000304","05","202303","20230509","20230509","NULL","NULL","NULL","NULL","2023/05/09 10:10:10","com_inst_att_mapper","2023/05/09 10:10:10","com_inst_att_mapper" +"009929799","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171008","20230509","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_inst_att_mapper","2017/10/08 20:57:12","com_inst_att_mapper" From d9a214480151cbebfb9799e62f16918673156113 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Tue, 28 Nov 2023 19:11:55 +0900 Subject: [PATCH 3/8] =?UTF-8?q?fix:=20COM=5F=E6=96=BD=E8=A8=AD=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=20=E9=A0=85=E7=9B=AE=E3=82=AF=E3=83=AA=E3=82=A2?= =?UTF-8?q?=E3=81=AE=E8=80=83=E6=85=AE=E6=BC=8F=E3=82=8C=20=E3=82=B3?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=81=AE=E4=BF=AE=E6=AD=A3=E3=80=82=E3=83=86?= =?UTF-8?q?=E3=82=B9=E3=83=88=E3=82=82=E3=83=91=E3=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../concrete/com_inst_att_mapper.py | 473 ++++++++++-------- .../concrete/com_sp_field_mapper.py | 2 +- 2 files changed, 279 insertions(+), 196 deletions(-) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_att_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_att_mapper.py index 140270f1..93ea9625 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_att_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_att_mapper.py @@ -677,6 +677,10 @@ class ComInstAttMapper(UltmarcTableMapper): def __make_upsert_query(self): # レコードの存在確認 record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + + # 「@」による項目クリアを設定 + self.__set_clearing_item() + # 存在しない場合はInsert if record_count[0]['count_num'] == 0: self.queries.append(self.INSERT_QUERY) @@ -693,40 +697,24 @@ class ComInstAttMapper(UltmarcTableMapper): set_clauses.append('dpc_flag = :dpc_flag') set_clauses.append('dpc_specday = :dpc_spec_day') set_clauses.append('dpc_cancelday = :dpc_cancel_day') - if self.record.dpc_flag == '@': - self.query_parameter['dpc_flag'] = None - self.query_parameter['dpc_spec_day'] = None - self.query_parameter['dpc_cancel_day'] = None # DPC準備病院 if len(self.record.predpc_flag) > 0: set_clauses.append('predpc_flag = :predpc_flag') set_clauses.append('predpc_specday = :predpc_spec_day') set_clauses.append('predpc_cancelday = :predpc_cancel_day') - if self.record.predpc_flag == '@': - self.query_parameter['predpc_flag'] = None - self.query_parameter['predpc_spec_day'] = None - self.query_parameter['predpc_cancel_day'] = None # がん診療連携拠点病院 if len(self.record.cancer_flag) > 0: set_clauses.append('cancer_flag = :cancer_flag') set_clauses.append('cancer_specday = :cancer_spec_day') set_clauses.append('cancer_cancelday = :cancer_cancel_day') - if self.record.cancer_flag == '@': - self.query_parameter['cancer_flag'] = None - self.query_parameter['cancer_spec_day'] = None - self.query_parameter['cancer_cancel_day'] = None # 特定機能病院 if len(self.record.funchp_flag) > 0: set_clauses.append('funchpflag = :funchp_flag') set_clauses.append('funchpokdate = :funchp_ok_date') set_clauses.append('funchpcandate = :funchp_can_date') - if self.record.funchp_flag == '@': - self.query_parameter['funchp_flag'] = None - self.query_parameter['funchp_ok_date'] = None - self.query_parameter['funchp_can_date'] = None # 地域医療支援病院 if len(self.record.areasuphp_flag) > 0: @@ -734,203 +722,122 @@ class ComInstAttMapper(UltmarcTableMapper): set_clauses.append('areasuphpintrate = :areasuphp_intrate') set_clauses.append('areasuphpokdate = :areasuphp_ok_date') set_clauses.append('areasuphpcandate = :areasuphp_can_date') - if self.record.areasuphp_flag == '@': - self.query_parameter['areasuphp_flag'] = None - self.query_parameter['areasuphp_intrate'] = None - self.query_parameter['areasuphp_ok_date'] = None - self.query_parameter['areasuphp_can_date'] = None # 超急性期脳卒中加算 if len(self.record.acuthp_add_flag) > 0: set_clauses.append('acuthpaddflag = :acuthp_add_flag') set_clauses.append('acuthpaddokdate = :acuthp_add_ok_date') set_clauses.append('acuthpaddcandate = :acuthp_add_can_date') - if self.record.acuthp_add_flag == '@': - self.query_parameter['acuthp_add_flag'] = None - self.query_parameter['acuthp_add_ok_date'] = None - self.query_parameter['acuthp_add_can_date'] = None # 総合入院体制加算 if len(self.record.genadmisiion_flag) > 0: set_clauses.append('genadmisiionflag = :genadmisiion_flag') set_clauses.append('genadmisiionfokdate = :genadmisiion_ok_date') set_clauses.append('genadmisiionfcandate = :genadmisiion_can_date') - if self.record.genadmisiion_flag == '@': - self.query_parameter['genadmisiion_flag'] = None - self.query_parameter['genadmisiion_ok_date'] = None - self.query_parameter['genadmisiion_can_date'] = None # 医師事務作業補助体制加算 if len(self.record.assistance_flag) > 0: set_clauses.append('assistanceflag = :assistance_flag') set_clauses.append('assistanceokdate = :assistance_ok_date') set_clauses.append('assistancecandate = :assistance_can_date') - if self.record.assistance_flag == '@': - self.query_parameter['assistance_flag'] = None - self.query_parameter['assistance_ok_date'] = None - self.query_parameter['assistance_can_date'] = None # 診療録管理体制加算 if len(self.record.diagnosis_treatment_flag) > 0: set_clauses.append('diagnosistreatment_flag = :diagnosis_treatment_flag') set_clauses.append('diagnosistreatment_specday = :diagnosis_treatment_spec_day') set_clauses.append('diagnosistreatment_cancelday = :diagnosis_treatment_cancel_day') - if self.record.diagnosis_treatment_flag == '@': - self.query_parameter['diagnosis_treatment_flag'] = None - self.query_parameter['diagnosis_treatment_spec_day'] = None - self.query_parameter['diagnosis_treatment_cancel_day'] = None # 医療安全対策加算 if len(self.record.safety_flag) > 0: set_clauses.append('safety_flag = :safety_flag') set_clauses.append('safety_specday = :safety_spec_day') set_clauses.append('safety_cancelday = :safety_cancel_day') - if self.record.safety_flag == '@': - self.query_parameter['safety_flag'] = None - self.query_parameter['safety_spec_day'] = None - self.query_parameter['safety_cancel_day'] = None # 褥瘡ハイリスク患者ケア加算 if len(self.record.highrisk_flag) > 0: set_clauses.append('highrisk_flag = :highrisk_flag') set_clauses.append('highrisk_specday = :highrisk_spec_day') set_clauses.append('highrisk_cancelday = :highrisk_cancel_day') - if self.record.highrisk_flag == '@': - self.query_parameter['highrisk_flag'] = None - self.query_parameter['highrisk_spec_day'] = None - self.query_parameter['highrisk_cancel_day'] = None # 地域連携小児夜間・休日診療料 if len(self.record.infant_and_holiday_flag) > 0: set_clauses.append('infantandholiday_flag = :infant_and_holiday_flag') set_clauses.append('infantandholiday_specday = :infant_and_holiday_spec_day') set_clauses.append('infantandholiday_cancelday = :infant_and_holiday_cancel_day') - if self.record.infant_and_holiday_flag == '@': - self.query_parameter['infant_and_holiday_flag'] = None - self.query_parameter['infant_and_holiday_spec_day'] = None - self.query_parameter['infant_and_holiday_cancel_day'] = None # 開放型病院 if len(self.record.ophp_flag) > 0: set_clauses.append('ophpflag = :ophp_flag') set_clauses.append('ophpokdate = :ophpok_date') set_clauses.append('ophpcandate = :ophpcan_date') - if self.record.ophp_flag == '@': - self.query_parameter['ophp_flag'] = None - self.query_parameter['ophpok_date'] = None - self.query_parameter['ophpcan_date'] = None # 地域連携クリティカルパス if len(self.record.critical_flag) > 0: set_clauses.append('critical_flag = :critical_flag') - # 項目クリア判断 - is_aggregate_item_clear = self.record.critical_flag == '@' - if is_aggregate_item_clear: - self.query_parameter['critical_flag'] = None # 20個分の項目設定(rangeの第2引数の数字はループに含まれないため、+1を指定する) for i in range(1, 21): num = str(i).zfill(2) # 2桁で0埋め setting_item_name = f'critical_code{num}' set_clauses.append(f'{setting_item_name} = :{setting_item_name}') - if is_aggregate_item_clear: - self.query_parameter[setting_item_name] = None # 薬剤管理指導料 if len(self.record.drgmgthp_flag) > 0: set_clauses.append('drgmgthpflag = :drgmgthp_flag') set_clauses.append('drgmgthpokdate = :drgmgthp_ok_date') set_clauses.append('drgmgthpcandate = :drgmgthp_can_date') - if self.record.drgmgthp_flag == '@': - self.query_parameter['drgmgthp_flag'] = None - self.query_parameter['drgmgthp_ok_date'] = None - self.query_parameter['drgmgthp_can_date'] = None # 画像診断管理加算 if len(self.record.image_diagnosis_flag) > 0: set_clauses.append('imagediagnosis_flag = :image_diagnosis_flag') set_clauses.append('imagediagnosis_specifiedday = :image_diagnosis_specified_day') set_clauses.append('imagediagnosis_cancelday = :image_diagnosis_cancel_day') - if self.record.image_diagnosis_flag == '@': - self.query_parameter['image_diagnosis_flag'] = None - self.query_parameter['image_diagnosis_specified_day'] = None - self.query_parameter['image_diagnosis_cancel_day'] = None # 外来化学療法加算 if len(self.record.chemotherapy_flag) > 0: set_clauses.append('chemotherapy_flag = :chemotherapy_flag') set_clauses.append('chemotherapy_specday = :chemotherapy_spec_day') set_clauses.append('chemotherapy_cancelday = :chemotherapy_cancel_day') - if self.record.chemotherapy_flag == '@': - self.query_parameter['chemotherapy_flag'] = None - self.query_parameter['chemotherapy_spec_day'] = None - self.query_parameter['chemotherapy_cancel_day'] = None # 疾患別リハビリテーション料 if len(self.record.rehabilitation_flag) > 0: set_clauses.append('rehabilitation_flag = :rehabilitation_flag') - # 項目クリア判断 - is_aggregate_item_clear = self.record.rehabilitation_flag == '@' - if is_aggregate_item_clear: - self.query_parameter['rehabilitation_flag'] = None # 10個分の項目設定(rangeの第2引数の数字はループに含まれないため、+1を指定する) for i in range(1, 11): num = str(i).zfill(2) # 2桁で0埋め setting_item_name = f'rehabilitation_code{num}' set_clauses.append(f'{setting_item_name} = :{setting_item_name}') - if is_aggregate_item_clear: - self.query_parameter[setting_item_name] = None # 麻酔管理料 if len(self.record.anesthetizing_manage_flag) > 0: set_clauses.append('anesthetizingmanage_flag = :anesthetizing_manage_flag') set_clauses.append('anesthetizingmanage_specday = :anesthetizing_manage_spec_day') set_clauses.append('anesthetizingmanage_cancelday = :anesthetizing_manage_can_day') - if self.record.anesthetizing_manage_flag == '@': - self.query_parameter['anesthetizing_manage_flag'] = None - self.query_parameter['anesthetizing_manage_spec_day'] = None - self.query_parameter['anesthetizing_manage_can_day'] = None # 在宅療養支援病院・診療所 if len(self.record.home_recuperation_flag) > 0: set_clauses.append('homerecuperation_flag = :home_recuperation_flag') set_clauses.append('homerecuperation_specday = :home_recuperation_spec_day') set_clauses.append('homerecuperation_cancelday = :home_recuperation_cancel_day') - if self.record.home_recuperation_flag == '@': - self.query_parameter['home_recuperation_flag'] = None - self.query_parameter['home_recuperation_spec_day'] = None - self.query_parameter['home_recuperation_cancel_day'] = None # 在宅時医学総合管理料 if len(self.record.synthesis_when_staying_flag) > 0: set_clauses.append('synthesiswhenstaying_flag = :synthesis_when_staying_flag') set_clauses.append('synthesiswhenstaying_specday = :synthesis_when_staying_spec_day') set_clauses.append('synthesiswhenstaying_cancelday = :synthesis_when_staying_can_day') - if self.record.synthesis_when_staying_flag == '@': - self.query_parameter['synthesis_when_staying_flag'] = None - self.query_parameter['synthesis_when_staying_spec_day'] = None - self.query_parameter['synthesis_when_staying_can_day'] = None # 在宅末期医療総合診療料 if len(self.record.home_late_flag) > 0: set_clauses.append('homelateflag = :home_late_flag') set_clauses.append('homelateokday = :home_late_ok_day') set_clauses.append('homelatecanday = :home_late_can_day') - if self.record.home_late_flag == '@': - self.query_parameter['home_late_flag'] = None - self.query_parameter['home_late_ok_day'] = None - self.query_parameter['home_late_can_day'] = None # ケアミックス区分 if len(self.record.caremix_kind) > 0: set_clauses.append('caremixkind = :caremix_kind') - if self.record.caremix_kind == '@': - self.query_parameter['caremix_kind'] = None # 完全型・移行型区分 if len(self.record.fullmove_flag) > 0: set_clauses.append('fullmoveflag = :fullmove_flag') - if self.record.fullmove_flag == '@': - self.query_parameter['fullmove_flag'] = None # 療養型病床群 if sum(len(item) for item in self.record.resthp_items) > 0: @@ -947,65 +854,35 @@ class ComInstAttMapper(UltmarcTableMapper): set_clauses.append('resthpcarecandate = :resthp_care_can_date') # 合計 set_clauses.append('resthpsbednum = :resthp_sbed_num') - if self.record.resthp_flag == '@': - self.query_parameter['resthp_flag'] = None - self.query_parameter['resthp_care_kind'] = None - self.query_parameter['resthp_bed_num'] = None - self.query_parameter['resthp_ok_date'] = None - self.query_parameter['resthp_can_date'] = None - self.query_parameter['resthp_care_nrs_kind'] = None - self.query_parameter['resthp_care_bed_num'] = None - self.query_parameter['resthp_care_ok_date'] = None - self.query_parameter['resthp_care_can_date'] = None - self.query_parameter['resthp_sbed_num'] = None # 一般病棟 if len(self.record.nrmhp_flag) > 0: set_clauses.append('nrmhpflag = :nrmhp_flag') set_clauses.append('nrmhpcarekind = :nrmhp_care_kind') set_clauses.append('nrmhpbedtotalnum = :nrmhp_bed_total_num') - if self.record.nrmhp_flag == '@': - self.query_parameter['nrmhp_flag'] = None - self.query_parameter['nrmhp_care_kind'] = None - self.query_parameter['nrmhp_bed_total_num'] = None # 精神病棟 if len(self.record.menthp_flag) > 0: set_clauses.append('menthpflag = :menthp_flag') set_clauses.append('menthpcarekind = :menthp_care_kind') set_clauses.append('menthpbednum = :menthp_bed_num') - if self.record.menthp_flag == '@': - self.query_parameter['menthp_flag'] = None - self.query_parameter['menthp_care_kind'] = None - self.query_parameter['menthp_bed_num'] = None # 結核病棟 if len(self.record.tubhp_flag) > 0: set_clauses.append('tubhpflag = :tubhp_flag') set_clauses.append('tubhpcarekind = :tubhp_care_kind') set_clauses.append('tubhpbednum = :tubhp_bed_num') - if self.record.tubhp_flag == '@': - self.query_parameter['tubhp_flag'] = None - self.query_parameter['tubhp_care_kind'] = None - self.query_parameter['tubhp_bed_num'] = None # 感染症指定医療機関 if len(self.record.infhp_flag) > 0: set_clauses.append('infhpflag = :infhp_flag') set_clauses.append('infhpflag1 = :infhp_flag1') set_clauses.append('infhpflag2 = :infhp_flag2') - if self.record.infhp_flag == '@': - self.query_parameter['infhp_flag'] = None - self.query_parameter['infhp_flag1'] = None - self.query_parameter['infhp_flag2'] = None # 感染症病床 if len(self.record.infhp_bed_flag) > 0: set_clauses.append('infhpbedflag = :infhp_bed_flag') set_clauses.append('infhpbednum = :infhp_bed_num') - if self.record.infhp_bed_flag == '@': - self.query_parameter['infhp_bed_flag'] = None - self.query_parameter['infhp_bed_num'] = None # 緩和ケア病棟設置病院 if len(self.record.hospice_flag) > 0: @@ -1013,11 +890,6 @@ class ComInstAttMapper(UltmarcTableMapper): set_clauses.append('hospicebednum = :hospice_bed_num') set_clauses.append('hospiceokdate = :hospice_ok_date') set_clauses.append('hospicecandate = :hospice_can_date') - if self.record.hospice_flag == '@': - self.query_parameter['hospice_flag'] = None - self.query_parameter['hospice_bed_num'] = None - self.query_parameter['hospice_ok_date'] = None - self.query_parameter['hospice_can_date'] = None # 医療機能評価 if len(self.record.hpfunce_st_flag) > 0: @@ -1025,11 +897,6 @@ class ComInstAttMapper(UltmarcTableMapper): set_clauses.append('hpfuncestkind = :hpfunce_st_kind') set_clauses.append('hpfuncestokdate = :hpfunce_st_ok_date') set_clauses.append('hpfuncestcandate = :hpfunce_st_can_date') - if self.record.hpfunce_st_flag == '@': - self.query_parameter['hpfunce_st_flag'] = None - self.query_parameter['hpfunce_st_kind'] = None - self.query_parameter['hpfunce_st_ok_date'] = None - self.query_parameter['hpfunce_st_can_date'] = None # 臨床研修指定病院 if sum(len(item) for item in self.record.cl_items) > 0: @@ -1045,38 +912,20 @@ class ComInstAttMapper(UltmarcTableMapper): set_clauses.append('cldephpkind = :cldephp_kind') set_clauses.append('cldephpokdate = :cldephp_ok_date') set_clauses.append('cldephpcandate = :cldephp_can_date') - if self.record.clolyhp_kind == '@': - self.query_parameter['clolyhp_kind'] = None - self.query_parameter['clolyhp_ok_date'] = None - self.query_parameter['clolyhp_can_date'] = None - self.query_parameter['clhp_kind'] = None - self.query_parameter['clhp_ok_date'] = None - self.query_parameter['clhp_can_date'] = None - self.query_parameter['cldephp_kind'] = None - self.query_parameter['cldephp_ok_date'] = None - self.query_parameter['cldephp_can_date'] = None # 災害拠点病院 if len(self.record.disasthp_flag) > 0: set_clauses.append('disasthpflag = :disasthp_flag') - if self.record.disasthp_flag == '@': - self.query_parameter['disasthp_flag'] = None # 救急医療 if len(self.record.d1emerhp_flag) > 0: set_clauses.append('d1emerhpflag = :d1emerhp_flag') set_clauses.append('d2emerhpflag = :d2emerhp_flag') set_clauses.append('d3emerhpflag = :d3emerhp_flag') - if self.record.d1emerhp_flag == '@': - self.query_parameter['d1emerhp_flag'] = None - self.query_parameter['d2emerhp_flag'] = None - self.query_parameter['d3emerhp_flag'] = None # 救急告示診療所 if len(self.record.emergency_clinic) > 0: set_clauses.append('emergencyclinic = :emergency_clinic') - if self.record.emergency_clinic == '@': - self.query_parameter['emergency_clinic'] = None # 治験中核病院 if len(self.record.trial_core_flag) > 0: @@ -1084,72 +933,42 @@ class ComInstAttMapper(UltmarcTableMapper): set_clauses.append('trialcore_div = :trial_core_div') set_clauses.append('trialcoreokdate = :trial_core_ok_date') set_clauses.append('trialcorecandate = :trial_core_can_date') - if self.record.trial_core_flag == '@': - self.query_parameter['trial_core_flag'] = None - self.query_parameter['trial_core_div'] = None - self.query_parameter['trial_core_ok_date'] = None - self.query_parameter['trial_core_can_date'] = None # 認知症疾患医療センター if len(self.record.dementia_flag) > 0: set_clauses.append('dementiaflag = :dementia_flag') set_clauses.append('dementiaokdate = :dementia_okd_ate') set_clauses.append('dementiacandate = :dementia_can_date') - if self.record.dementia_flag == '@': - self.query_parameter['dementia_flag'] = None - self.query_parameter['dementia_okd_ate'] = None - self.query_parameter['dementia_can_date'] = None # 特定健康診査実施機関 if len(self.record.sphealth_exploration) > 0: set_clauses.append('sphealth_exploration = :sphealth_exploration') - if self.record.sphealth_exploration == '@': - self.query_parameter['sphealth_exploration'] = None # 特定保健指導実施機関 if len(self.record.sphealth_guidance) > 0: set_clauses.append('sphealth_guidance = :sphealth_guidance') - if self.record.sphealth_guidance == '@': - self.query_parameter['sphealth_guidance'] = None # 先進医療実施医療機関 if len(self.record.hiadhp_flag) > 0: set_clauses.append('hiadhpflag = :hiadhp_flag') - # 項目クリア判断 - is_aggregate_item_clear = self.record.hiadhp_flag == '@' - if is_aggregate_item_clear: - self.query_parameter['hiadhp_flag'] = None # 40個分の項目設定(rangeの第2引数の数字はループに含まれないため、+1を指定する) for i in range(1, 41): setting_item_name_code = f'hiadhpcode{i}' setting_item_name_kind = f'hiadhpkind{i}' set_clauses.append(f'{setting_item_name_code} = :{setting_item_name_code}') set_clauses.append(f'{setting_item_name_kind} = :{setting_item_name_kind}') - if is_aggregate_item_clear: - self.query_parameter[setting_item_name_code] = None - self.query_parameter[setting_item_name_kind] = None # 先端医療実施医療機関 if len(self.record.hitechhp_flag) > 0: set_clauses.append('hitechhpflag = :hitechhp_flag') - # 項目クリア判断 - is_aggregate_item_clear = self.record.hitechhp_flag == '@' - if is_aggregate_item_clear: - self.query_parameter['hitechhp_flag'] = None # 20個分の項目設定(rangeの第2引数の数字はループに含まれないため、+1を指定する) for i in range(1, 21): setting_item_name = f'hitechhpkind{i}' set_clauses.append(f'{setting_item_name} = :{setting_item_name}') - if is_aggregate_item_clear: - self.query_parameter[setting_item_name] = None # 政策医療 if len(self.record.policy_medical_flag) > 0: set_clauses.append('policymedical_flag = :policy_medical_flag') - # 項目クリア判断 - is_aggregate_item_clear = self.record.policy_medical_flag == '@' - if is_aggregate_item_clear: - self.query_parameter['policy_medical_flag'] = None # 20個分の項目設定(rangeの第2引数の数字はループに含まれないため、+1を指定する) for i in range(1, 21): num = str(i).zfill(2) # 2桁で0埋め @@ -1157,9 +976,6 @@ class ComInstAttMapper(UltmarcTableMapper): setting_item_name_content = f'policymedical_content{num}' set_clauses.append(f'{setting_item_name_code} = :{setting_item_name_code}') set_clauses.append(f'{setting_item_name_content} = :{setting_item_name_content}') - if is_aggregate_item_clear: - self.query_parameter[setting_item_name_code] = None - self.query_parameter[setting_item_name_content] = None # 訪問看護ステーション if len(self.record.visitcarest_flag) > 0: @@ -1167,17 +983,10 @@ class ComInstAttMapper(UltmarcTableMapper): set_clauses.append('visitcarestation_id = :visitcarestation_id') set_clauses.append('visitcarestation_code = :visitcarestation_code') set_clauses.append('visitcarestation_yobi = :visitcarestation_yobi') - if self.record.visitcarest_flag == '@': - self.query_parameter['visitcarest_flag'] = None - self.query_parameter['visitcarestation_id'] = None - self.query_parameter['visitcarestation_code'] = None - self.query_parameter['visitcarestation_yobi'] = None # 開設年月 if len(self.record.open_date) > 0: set_clauses.append('opendate = :open_date') - if self.record.open_date == '@': - self.query_parameter['open_date'] = None update_columns = ','.join(set_clauses) # 何も更新項目が無い場合はNoneとする(更新処理は行わない) @@ -1190,3 +999,277 @@ class ComInstAttMapper(UltmarcTableMapper): update_columns=update_columns ) return update_query + + def __set_clearing_item(self): + # DPC対象病院 + if self.record.dpc_flag == '@': + self.query_parameter['dpc_flag'] = None + self.query_parameter['dpc_spec_day'] = None + self.query_parameter['dpc_cancel_day'] = None + # DPC準備病院 + if self.record.predpc_flag == '@': + self.query_parameter['predpc_flag'] = None + self.query_parameter['predpc_spec_day'] = None + self.query_parameter['predpc_cancel_day'] = None + # がん診療連携拠点病院 + if self.record.cancer_flag == '@': + self.query_parameter['cancer_flag'] = None + self.query_parameter['cancer_spec_day'] = None + self.query_parameter['cancer_cancel_day'] = None + # 特定機能病院 + if self.record.funchp_flag == '@': + self.query_parameter['funchp_flag'] = None + self.query_parameter['funchp_ok_date'] = None + self.query_parameter['funchp_can_date'] = None + # 地域医療支援病院 + if self.record.areasuphp_flag == '@': + self.query_parameter['areasuphp_flag'] = None + self.query_parameter['areasuphp_intrate'] = None + self.query_parameter['areasuphp_ok_date'] = None + self.query_parameter['areasuphp_can_date'] = None + # 超急性期脳卒中加算 + if self.record.acuthp_add_flag == '@': + self.query_parameter['acuthp_add_flag'] = None + self.query_parameter['acuthp_add_ok_date'] = None + self.query_parameter['acuthp_add_can_date'] = None + # 総合入院体制加算 + if self.record.genadmisiion_flag == '@': + self.query_parameter['genadmisiion_flag'] = None + self.query_parameter['genadmisiion_ok_date'] = None + self.query_parameter['genadmisiion_can_date'] = None + # 医師事務作業補助体制加算 + if self.record.assistance_flag == '@': + self.query_parameter['assistance_flag'] = None + self.query_parameter['assistance_ok_date'] = None + self.query_parameter['assistance_can_date'] = None + # 診療録管理体制加算 + if self.record.diagnosis_treatment_flag == '@': + self.query_parameter['diagnosis_treatment_flag'] = None + self.query_parameter['diagnosis_treatment_spec_day'] = None + self.query_parameter['diagnosis_treatment_cancel_day'] = None + # 医療安全対策加算 + if self.record.safety_flag == '@': + self.query_parameter['safety_flag'] = None + self.query_parameter['safety_spec_day'] = None + self.query_parameter['safety_cancel_day'] = None + # 褥瘡ハイリスク患者ケア加算 + if self.record.highrisk_flag == '@': + self.query_parameter['highrisk_flag'] = None + self.query_parameter['highrisk_spec_day'] = None + self.query_parameter['highrisk_cancel_day'] = None + # 地域連携小児夜間・休日診療料 + if self.record.infant_and_holiday_flag == '@': + self.query_parameter['infant_and_holiday_flag'] = None + self.query_parameter['infant_and_holiday_spec_day'] = None + self.query_parameter['infant_and_holiday_cancel_day'] = None + # 開放型病院 + if self.record.ophp_flag == '@': + self.query_parameter['ophp_flag'] = None + self.query_parameter['ophpok_date'] = None + self.query_parameter['ophpcan_date'] = None + + # 地域連携クリティカルパス + is_aggregate_item_clear = self.record.critical_flag == '@' + if is_aggregate_item_clear: + self.query_parameter['critical_flag'] = None + # 20個分の項目設定(rangeの第2引数の数字はループに含まれないため、+1を指定する) + for i in range(1, 21): + num = str(i).zfill(2) # 2桁で0埋め + setting_item_name = f'critical_code{num}' + if is_aggregate_item_clear: + self.query_parameter[setting_item_name] = None + + # 薬剤管理指導料 + if self.record.drgmgthp_flag == '@': + self.query_parameter['drgmgthp_flag'] = None + self.query_parameter['drgmgthp_ok_date'] = None + self.query_parameter['drgmgthp_can_date'] = None + # 画像診断管理加算 + if self.record.image_diagnosis_flag == '@': + self.query_parameter['image_diagnosis_flag'] = None + self.query_parameter['image_diagnosis_specified_day'] = None + self.query_parameter['image_diagnosis_cancel_day'] = None + # 外来化学療法加算 + if self.record.chemotherapy_flag == '@': + self.query_parameter['chemotherapy_flag'] = None + self.query_parameter['chemotherapy_spec_day'] = None + self.query_parameter['chemotherapy_cancel_day'] = None + + # 疾患別リハビリテーション料 + is_aggregate_item_clear = self.record.rehabilitation_flag == '@' + if is_aggregate_item_clear: + self.query_parameter['rehabilitation_flag'] = None + # 10個分の項目設定(rangeの第2引数の数字はループに含まれないため、+1を指定する) + for i in range(1, 11): + num = str(i).zfill(2) # 2桁で0埋め + setting_item_name = f'rehabilitation_code{num}' + if is_aggregate_item_clear: + self.query_parameter[setting_item_name] = None + + # 麻酔管理料 + if self.record.anesthetizing_manage_flag == '@': + self.query_parameter['anesthetizing_manage_flag'] = None + self.query_parameter['anesthetizing_manage_spec_day'] = None + self.query_parameter['anesthetizing_manage_can_day'] = None + # 在宅療養支援病院・診療所 + if self.record.home_recuperation_flag == '@': + self.query_parameter['home_recuperation_flag'] = None + self.query_parameter['home_recuperation_spec_day'] = None + self.query_parameter['home_recuperation_cancel_day'] = None + # 在宅時医学総合管理料 + if self.record.synthesis_when_staying_flag == '@': + self.query_parameter['synthesis_when_staying_flag'] = None + self.query_parameter['synthesis_when_staying_spec_day'] = None + self.query_parameter['synthesis_when_staying_can_day'] = None + # 在宅末期医療総合診療料 + if self.record.home_late_flag == '@': + self.query_parameter['home_late_flag'] = None + self.query_parameter['home_late_ok_day'] = None + self.query_parameter['home_late_can_day'] = None + # ケアミックス区分 + if self.record.caremix_kind == '@': + self.query_parameter['caremix_kind'] = None + # 完全型・移行型区分 + if self.record.fullmove_flag == '@': + self.query_parameter['fullmove_flag'] = None + # 療養型病床群 + if self.record.resthp_flag == '@': + # 医療型 + self.query_parameter['resthp_flag'] = None + self.query_parameter['resthp_care_kind'] = None + self.query_parameter['resthp_bed_num'] = None + self.query_parameter['resthp_ok_date'] = None + self.query_parameter['resthp_can_date'] = None + # 介護型 + self.query_parameter['resthp_care_nrs_kind'] = None + self.query_parameter['resthp_care_bed_num'] = None + self.query_parameter['resthp_care_ok_date'] = None + self.query_parameter['resthp_care_can_date'] = None + # 合計 + self.query_parameter['resthp_sbed_num'] = None + # 一般病棟 + if self.record.nrmhp_flag == '@': + self.query_parameter['nrmhp_flag'] = None + self.query_parameter['nrmhp_care_kind'] = None + self.query_parameter['nrmhp_bed_total_num'] = None + # 精神病棟 + if self.record.menthp_flag == '@': + self.query_parameter['menthp_flag'] = None + self.query_parameter['menthp_care_kind'] = None + self.query_parameter['menthp_bed_num'] = None + # 結核病棟 + if self.record.tubhp_flag == '@': + self.query_parameter['tubhp_flag'] = None + self.query_parameter['tubhp_care_kind'] = None + self.query_parameter['tubhp_bed_num'] = None + # 感染症指定医療機関 + if self.record.infhp_flag == '@': + self.query_parameter['infhp_flag'] = None + self.query_parameter['infhp_flag1'] = None + self.query_parameter['infhp_flag2'] = None + # 感染症病床 + if self.record.infhp_bed_flag == '@': + self.query_parameter['infhp_bed_flag'] = None + self.query_parameter['infhp_bed_num'] = None + # 緩和ケア病棟設置病院 + if self.record.hospice_flag == '@': + self.query_parameter['hospice_flag'] = None + self.query_parameter['hospice_bed_num'] = None + self.query_parameter['hospice_ok_date'] = None + self.query_parameter['hospice_can_date'] = None + # 医療機能評価 + if self.record.hpfunce_st_flag == '@': + self.query_parameter['hpfunce_st_flag'] = None + self.query_parameter['hpfunce_st_kind'] = None + self.query_parameter['hpfunce_st_ok_date'] = None + self.query_parameter['hpfunce_st_can_date'] = None + # 臨床研修指定病院 + if self.record.clolyhp_kind == '@': + # 基幹型病院1 + self.query_parameter['clolyhp_kind'] = None + self.query_parameter['clolyhp_ok_date'] = None + self.query_parameter['clolyhp_can_date'] = None + # 基幹型病院2(群指定) + self.query_parameter['clhp_kind'] = None + self.query_parameter['clhp_ok_date'] = None + self.query_parameter['clhp_can_date'] = None + # 協力型病院(群指定) + self.query_parameter['cldephp_kind'] = None + self.query_parameter['cldephp_ok_date'] = None + self.query_parameter['cldephp_can_date'] = None + # 災害拠点病院 + if self.record.disasthp_flag == '@': + self.query_parameter['disasthp_flag'] = None + # 救急医療 + if self.record.d1emerhp_flag == '@': + self.query_parameter['d1emerhp_flag'] = None + self.query_parameter['d2emerhp_flag'] = None + self.query_parameter['d3emerhp_flag'] = None + # 救急告示診療所 + if self.record.emergency_clinic == '@': + self.query_parameter['emergency_clinic'] = None + # 治験中核病院 + if self.record.trial_core_flag == '@': + self.query_parameter['trial_core_flag'] = None + self.query_parameter['trial_core_div'] = None + self.query_parameter['trial_core_ok_date'] = None + self.query_parameter['trial_core_can_date'] = None + # 認知症疾患医療センター + if self.record.dementia_flag == '@': + self.query_parameter['dementia_flag'] = None + self.query_parameter['dementia_okd_ate'] = None + self.query_parameter['dementia_can_date'] = None + # 特定健康診査実施機関 + if self.record.sphealth_exploration == '@': + self.query_parameter['sphealth_exploration'] = None + # 特定保健指導実施機関 + if self.record.sphealth_guidance == '@': + self.query_parameter['sphealth_guidance'] = None + + # 先進医療実施医療機関 + is_aggregate_item_clear = self.record.hiadhp_flag == '@' + if is_aggregate_item_clear: + self.query_parameter['hiadhp_flag'] = None + # 40個分の項目設定(rangeの第2引数の数字はループに含まれないため、+1を指定する) + for i in range(1, 41): + setting_item_name_code = f'hiadhpcode{i}' + setting_item_name_kind = f'hiadhpkind{i}' + if is_aggregate_item_clear: + self.query_parameter[setting_item_name_code] = None + self.query_parameter[setting_item_name_kind] = None + + # 先端医療実施医療機関 + is_aggregate_item_clear = self.record.hitechhp_flag == '@' + if is_aggregate_item_clear: + self.query_parameter['hitechhp_flag'] = None + # 20個分の項目設定(rangeの第2引数の数字はループに含まれないため、+1を指定する) + for i in range(1, 21): + setting_item_name = f'hitechhpkind{i}' + if is_aggregate_item_clear: + self.query_parameter[setting_item_name] = None + + # 政策医療 + # 項目クリア判断 + is_aggregate_item_clear = self.record.policy_medical_flag == '@' + if is_aggregate_item_clear: + self.query_parameter['policy_medical_flag'] = None + # 20個分の項目設定(rangeの第2引数の数字はループに含まれないため、+1を指定する) + for i in range(1, 21): + num = str(i).zfill(2) # 2桁で0埋め + setting_item_name_code = f'policymedical_code{num}' + setting_item_name_content = f'policymedical_content{num}' + if is_aggregate_item_clear: + self.query_parameter[setting_item_name_code] = None + self.query_parameter[setting_item_name_content] = None + + # 訪問看護ステーション + if self.record.visitcarest_flag == '@': + self.query_parameter['visitcarest_flag'] = None + self.query_parameter['visitcarestation_id'] = None + self.query_parameter['visitcarestation_code'] = None + self.query_parameter['visitcarestation_yobi'] = None + # 開設年月 + if self.record.open_date == '@': + self.query_parameter['open_date'] = None + + return diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_sp_field_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_sp_field_mapper.py index 90b9d9a0..0ce325e4 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_sp_field_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_sp_field_mapper.py @@ -105,7 +105,7 @@ class ComSpFieldMapper(UltmarcTableMapper): # レコードの存在確認 record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) - # 項目クリアを設定 + # 「@」による項目クリアを設定 self.__set_clearing_item() # 存在しない場合はInsert From bbb88315ac48e14211eb2a7b54cd6b00b459d72e Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Wed, 29 Nov 2023 09:06:59 +0900 Subject: [PATCH 4/8] =?UTF-8?q?refactor:=20=E4=B8=8D=E8=A6=81=E3=81=AA?= =?UTF-8?q?=E5=88=86=E5=B2=90=E6=9D=A1=E4=BB=B6=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../table_mapper/concrete/com_sp_field_mapper.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_sp_field_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_sp_field_mapper.py index 0ce325e4..3c690403 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_sp_field_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_sp_field_mapper.py @@ -116,15 +116,15 @@ class ComSpFieldMapper(UltmarcTableMapper): if len(self.record.specialist_maint_div) > 0: set_clauses.append('specialist_maint_div = :specialist_maint_div') - if self.record.specialist_flg is not None and len(self.record.specialist_flg) > 0: + if len(self.record.specialist_flg) > 0: set_clauses.append('specialist_flg = :specialist_flg') set_clauses.append('specialist_publsh_ymd = :specialist_publsh_ymd') - if self.record.ackn_med_flg is not None and len(self.record.ackn_med_flg) > 0: + if len(self.record.ackn_med_flg) > 0: set_clauses.append('ackn_med_flg = :ackn_med_flg') set_clauses.append('ackn_med_publsh_ymd = :ackn_med_publsh_ymd') - if self.record.guide_med_flg is not None and len(self.record.guide_med_flg) > 0: + if len(self.record.guide_med_flg) > 0: set_clauses.append('guide_med_flg = :guide_med_flg') set_clauses.append('guide_med_publsh_ymd = :guide_med_publsh_ymd') From 7501565baea1310ec6bdc3357320c0fc823ce40e Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Wed, 29 Nov 2023 09:38:30 +0900 Subject: [PATCH 5/8] =?UTF-8?q?fix:=20COM=5F=E5=8C=BB=E5=B8=AB=20=E9=A0=85?= =?UTF-8?q?=E7=9B=AE=E3=82=AF=E3=83=AA=E3=82=A2=E3=81=AE=E8=80=83=E6=85=AE?= =?UTF-8?q?=E6=BC=8F=E3=82=8C=20=E3=83=86=E3=82=B9=E3=83=88=E3=83=87?= =?UTF-8?q?=E3=83=BC=E3=82=BF=E3=81=AE=E4=BF=AE=E6=AD=A3=E3=80=82=E3=83=86?= =?UTF-8?q?=E3=82=B9=E3=83=88=E3=81=AFNG=E7=8A=B6=E6=85=8B=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ultmarc/utmp_tables/table_mapper/com_dr/com_dr_insert.csv | 3 +-- .../utmp_tables/table_mapper/com_dr/expect_com_dr_insert.csv | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/com_dr_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/com_dr_insert.csv index c137b8b9..383ecb75 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/com_dr_insert.csv +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/com_dr_insert.csv @@ -3,6 +3,5 @@ "501","01","995783","00","A","20141113","20141114",,,,,"船越 正信","フナコシ マサノブ","1","3","29","01","06","53","55","3","53","039","1","3","53","A01","L01","E02","C04","L03","7","00","000","000","000",,,,,"00","00","00","00","00","00","00","00",,"02","A05","20051003",,"2",,, "501","01","997682","00","A","20141113","20141114",,,,,"川崎 三紀子","カワサキ ミキコ","2","3","46","10","03","99","99","4","11","057","1","4","11","A01","A58",,,,,"13","119","047","000","173-0001","東京都板橋区本町6-3-301","トウキヨウト イタバシク ホンチヨウ 6-3-301","6-3-301","03","03","02","00","07","07","06","00","03-3579-1698",,,,,"2",,,"1" "501","01","997906","00","A","20141113","20141114",,,,,"丘 守正","オカ モリマサ","1","3","20","03","11","99","31","3","45","799","1",,,"A01","L01","A31","A21","A11",,"08","221","095","000","312-0021","茨城県ひたちなか市大字三反田3892-4","イバラキケン ヒタチナカシ オオアザミタンダ 3892-4","3892-4","03","06","05","00","08","07","11","00","029-274-7110",,,,,"1","4","03", -"501","01","999613","00","A","20141113","20141114","5","01","481065","00","藤田 茜","フジタ アカネ","2",,,,,"99","99",,,"799","1","4","23",,,,,,"6","00","000","000","000",,,,,"00","00","00","00","00","00","00","00",,,,,,"9",,, "501","01","997907","00","A","20141113","20141114",,,,,"丘 守正","オカ モリマサ","1",,,"03","11","99","31","3","45","799","1",,,"","","","","",,"08","221","095","000","312-0021","茨城県ひたちなか市大字三反田3892-4","イバラキケン ヒタチナカシ オオアザミタンダ 3892-4","3892-4","03","06","05","00","08","07","11","00","029-274-7110",,,,,"1","4","03", -"501","01","997908","00","A","20141113","20141114",,,,,"丘 守正","オカ モリマサ","1","3","20",,,"99","31","3","45","799","1",,,"","","","","",,"08","221","095","000","312-0021","茨城県ひたちなか市大字三反田3892-4","イバラキケン ヒタチナカシ オオアザミタンダ 3892-4","3892-4","03","06","05","00","08","07","11","00","029-274-7110",,,,,"1","4","03", +"501","01","997908","00","A","20141113","20141114","@","@","481065","00","藤堂 尚也","トウドウ ナオヤ","1","@","20","10","03","99","31","@","45","799","1","@","23","@","L01","E02","C04","L03","@","08","221","095","000","312-0021","茨城県ひたちなか市大字三反田3892-4","イバラキケン ヒタチナカシ オオアザミタンダ 3892-4","3892-4","03","06","05","00","08","07","11","00","@","@","@","@","@","1","@","03","1" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_insert.csv index 48987f8f..3d251803 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_insert.csv +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_insert.csv @@ -5,5 +5,4 @@ "0199768200","カワサキ ミキコ","川崎 三紀子","3","46","10","03","19711003","99",,,,"03-3579-1698","トウキヨウト イタバシク ホンチヨウ 6-3-301","東京都板橋区本町6-3-301","173-0001","13119047000","13","119","6-3-301","07070600","03030200","99","2","2",,,"057","1","4","11","1999","1",,"1",,,,,"4","11","1999","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" "0199790600","オカ モリマサ","丘 守正","3","20","03","11","19450311","99","4","03","1991","029-274-7110","イバラキケン ヒタチナカシ オオアザミタンダ 3892-4","茨城県ひたちなか市大字三反田3892-4","312-0021","08221095000","08","221","3892-4","08071100","03060500","31","1","1",,,"799","1","3","45","1970",,,"1",,,,,,,,"NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" "0199790700","オカ モリマサ","丘 守正",,,"03","11"," 0311","99","4","03","1991","029-274-7110","イバラキケン ヒタチナカシ オオアザミタンダ 3892-4","茨城県ひたちなか市大字三反田3892-4","312-0021","08221095000","08","221","3892-4","08071100","03060500","31","1","1",,,"799","1","3","45","1970",,,"1",,,,,,,,"NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" -"0199790800","オカ モリマサ","丘 守正","3","20",,,"","99","4","03","1991","029-274-7110","イバラキケン ヒタチナカシ オオアザミタンダ 3892-4","茨城県ひたちなか市大字三反田3892-4","312-0021","08221095000","08","221","3892-4","08071100","03060500","31","1","1",,,"799","1","3","45","1970",,,"1",,,,,,,,"NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" -"0199961300","フジタ アカネ","藤田 茜",,,,,,"99",,,,,,,,"00000000000","00","000",,"00000000","00000000","99","9","2","5","6","799","1",,,,,"0148106500","1",,,,,"4","23","2011","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"0199790800","トウドウ ナオヤ","藤堂 尚也","NULL","NULL","NULL","NULL","NULL","99","NULL","NULL","NULL","NULL","イバラキケン ヒタチナカシ オオアザミタンダ 3892-4","茨城県ひたちなか市大字三反田3892-4","312-0021","08221095000","08","221","3892-4","08071100","03060500","31","1","1","NULL","NULL","799","1","NULL","NULL","NULL","1","NULL","1","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" From cfe3c990fee1d5419968fe1e5c216ee9036e6c50 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Wed, 29 Nov 2023 10:01:59 +0900 Subject: [PATCH 6/8] =?UTF-8?q?fix:=20COM=5F=E5=8C=BB=E5=B8=AB=20=E9=A0=85?= =?UTF-8?q?=E7=9B=AE=E3=82=AF=E3=83=AA=E3=82=A2=E3=81=AE=E8=80=83=E6=85=AE?= =?UTF-8?q?=E6=BC=8F=E3=82=8C=20=E3=82=B3=E3=83=BC=E3=83=89=E3=81=AE?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=80=82=E3=83=86=E3=82=B9=E3=83=88=E3=82=82?= =?UTF-8?q?=E3=83=91=E3=82=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../table_mapper/concrete/com_dr_mapper.py | 87 +++++++++++-------- 1 file changed, 53 insertions(+), 34 deletions(-) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_mapper.py index 36e51552..f19c10bd 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_mapper.py @@ -214,6 +214,9 @@ class ComDrMapper(UltmarcTableMapper): # 西暦の取得 self.__set_era() + # 「@」による項目クリアを設定 + self.__set_clearing_item() + # レコードの存在確認 record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) # 存在しない場合はInsert @@ -247,14 +250,10 @@ class ComDrMapper(UltmarcTableMapper): # 削除予定理由 if len(self.record.drdel_code) > 0: set_clauses.append('delete_sche_reason_cd = :drdel_code') - if self.record.drdel_code == '@': - self.query_parameter['drdel_code'] = None # 重複時相手先コード if len(self.record.opp_dup_code) > 0: set_clauses.append('opp_dup_cd = :opp_dup_code') - if self.record.reptdr_id == '@': - self.query_parameter['opp_dup_code'] = None # 医師名(漢字) if len(self.record.dr_name) > 0: @@ -275,12 +274,6 @@ class ComDrMapper(UltmarcTableMapper): set_clauses.append('birthday_month = :birthday_month') set_clauses.append('birthday_day = :birthday_day') set_clauses.append('birthday = :birth_day') - if self.record.birthday_era == '@': - self.query_parameter['birthday_era'] = None - self.query_parameter['birthday_year'] = None - self.query_parameter['birthday_month'] = None - self.query_parameter['birthday_day'] = None - self.query_parameter['birth_day'] = None # 出身都道府県コード if len(self.record.home_town_code) > 0: @@ -295,10 +288,6 @@ class ComDrMapper(UltmarcTableMapper): set_clauses.append('grad_year = :grad_year') set_clauses.append('grad_era = :grad_yearera') set_clauses.append('grad_y = :grad_y') - if self.record.grad_yearera == '@': - self.query_parameter['grad_yearera'] = None - self.query_parameter['grad_year'] = None - self.query_parameter['grad_y'] = None # 出身校コード if len(self.record.graduniv_code) > 0: @@ -313,16 +302,10 @@ class ComDrMapper(UltmarcTableMapper): set_clauses.append('drday_era = :drda_yera') set_clauses.append('drday_year = :drday_year') set_clauses.append('drday_y = :drday_y') - if self.record.drda_yera == '@': - self.query_parameter['drda_yera'] = None - self.query_parameter['drday_year'] = None - self.query_parameter['drday_y'] = None # 住所不明 if len(self.record.dr_addr_lost_code) > 0: set_clauses.append('addr_unknown_reason_cd = :dr_addr_lost_code') - if self.record.dr_addr_lost_code == '@': - self.query_parameter['dr_addr_lost_code'] = None # 住所 # 集合項目のいずれかに入力がある場合に更新 @@ -340,32 +323,22 @@ class ComDrMapper(UltmarcTableMapper): # 自宅電話番号 if len(self.record.dr_tel) > 0: set_clauses.append('home_phone_number = :dr_tel') - if self.record.dr_tel == '@': - self.query_parameter['dr_tel'] = None # 利用停止区分 if len(self.record.use_stop_flag) > 0: set_clauses.append('use_stop_div = :use_stop_flag') - if self.record.use_stop_flag == '@': - self.query_parameter['use_stop_flag'] = None # 利用停止理由 if len(self.record.use_stopc_ode) > 0: set_clauses.append('use_stop_reason_cd = :use_stopc_ode') - if self.record.use_stopc_ode == '@': - self.query_parameter['use_stopc_ode'] = None # 利用停止登録年月日 if len(self.record.cre_stop_date) > 0: set_clauses.append('use_stop_regist_ymd = :cre_stop_date') - if self.record.cre_stop_date == '@': - self.query_parameter['cre_stop_date'] = None # 利用停止解除年月日 if len(self.record.release_date) > 0: set_clauses.append('use_stop_cancel_ymd = :release_date') - if self.record.release_date == '@': - self.query_parameter['release_date'] = None # 開勤区分 if len(self.record.pract_class_code) > 0: @@ -376,10 +349,6 @@ class ComDrMapper(UltmarcTableMapper): set_clauses.append('estab_era = :pract_yearera') set_clauses.append('estab_year = :pract_year') set_clauses.append('estab_y = :estab_y') - if self.record.pract_yearera == '@': - self.query_parameter['pract_yearera'] = None - self.query_parameter['pract_year'] = None - self.query_parameter['estab_y'] = None # 一括登録フラグ if len(self.record.bskregst_flag) > 0: @@ -459,3 +428,53 @@ class ComDrMapper(UltmarcTableMapper): # 月日も空の場合、生年月日は空 return '' + + def __set_clearing_item(self): + # 削除予定理由 + if self.record.drdel_code == '@': + self.query_parameter['drdel_code'] = None + # 重複時相手先コード + if self.record.reptdr_id == '@': + self.query_parameter['opp_dup_code'] = None + # 生年月日 + if self.record.birthday_era == '@': + self.query_parameter['birthday_era'] = None + self.query_parameter['birthday_year'] = None + self.query_parameter['birthday_month'] = None + self.query_parameter['birthday_day'] = None + self.query_parameter['birth_day'] = None + # 卒年 + if self.record.grad_yearera == '@': + self.query_parameter['grad_yearera'] = None + self.query_parameter['grad_year'] = None + self.query_parameter['grad_y'] = None + # 登録年 + if self.record.drda_yera == '@': + self.query_parameter['drda_yera'] = None + self.query_parameter['drday_year'] = None + self.query_parameter['drday_y'] = None + # 住所不明 + if self.record.dr_addr_lost_code == '@': + self.query_parameter['dr_addr_lost_code'] = None + # 自宅電話番号 + if self.record.dr_tel == '@': + self.query_parameter['dr_tel'] = None + # 利用停止区分 + if self.record.use_stop_flag == '@': + self.query_parameter['use_stop_flag'] = None + # 利用停止理由 + if self.record.use_stopc_ode == '@': + self.query_parameter['use_stopc_ode'] = None + # 利用停止登録年月日 + if self.record.cre_stop_date == '@': + self.query_parameter['cre_stop_date'] = None + # 利用停止解除年月日 + if self.record.release_date == '@': + self.query_parameter['release_date'] = None + # 開業年 + if self.record.pract_yearera == '@': + self.query_parameter['pract_yearera'] = None + self.query_parameter['pract_year'] = None + self.query_parameter['estab_y'] = None + + return From 5d882ccbc50ddc08fd3cccfb11565313a4ad20df Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Wed, 29 Nov 2023 10:28:55 +0900 Subject: [PATCH 7/8] =?UTF-8?q?fix:=20COM=5F=E6=96=BD=E8=A8=AD=20=E9=A0=85?= =?UTF-8?q?=E7=9B=AE=E3=82=AF=E3=83=AA=E3=82=A2=E3=81=AE=E8=80=83=E6=85=AE?= =?UTF-8?q?=E6=BC=8F=E3=82=8C=20=E3=83=86=E3=82=B9=E3=83=88=E3=83=87?= =?UTF-8?q?=E3=83=BC=E3=82=BF=E3=81=AE=E4=BF=AE=E6=AD=A3=E3=80=82=E3=83=86?= =?UTF-8?q?=E3=82=B9=E3=83=88=E3=81=AFNG=E7=8A=B6=E6=85=8B=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../utmp_tables/table_mapper/com_inst/com_inst_insert.csv | 1 + .../utmp_tables/table_mapper/com_inst/expect_com_inst_insert.csv | 1 + 2 files changed, 2 insertions(+) diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/com_inst_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/com_inst_insert.csv index f597e06a..432c8f24 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/com_inst_insert.csv +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/com_inst_insert.csv @@ -5,3 +5,4 @@ "101","00","9901679","","A","20141113","20141114","","","","","","鹿児島市医師会臨床検査センター","カゴシマシイシカイリンシヨウケンサセンタ-","鹿児島市医師会臨床検査センター","カゴシマシイシカイリンシヨウケンサセンタ-","","46","201","017","000","892-0846","鹿児島県鹿児島市加治屋町3-10","カゴシマケン カゴシマシ カジヤチヨウ 3-10","3-10","04","04","04","00","08","07","08","00","","099-226-8827","470","60","01","148013","","海江田 健","カイエダ タケル","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","9","9","","","","","0","","","","","","","","","1","1","1","1","1","1","1","","","" "101","00","9904439","","A","20141113","20141114","","","","","","川崎市立井田病院","カワサキシリツイダビヨウイン","井田病院 市立","イダビヨウイン シリツ","","14","133","001","002","211-0035","神奈川県川崎市中原区井田2-27-1","カナガワケン カワサキシ ナカハラク イダ 2-27-1","2-27-1","04","06","02","02","08","12","04","02","","044-766-2188","221","01","","","","","","","","","","A01","A34","A22","M01","D02","A12","A81","C01","N03","K01","J01","P02","O01","B01","C04","E02","F01","I01","C05","B31","H02","A41","A03","A58","A61","A65","F08","A56","B11","B22","B04","P03","G06","A57","","","","","","","","","","","","","","","","","","","","","","","","","","","1","3","","","","","370","20140811","370","0","27","0","343","343","0","","","","","","","","","","" "101","00","9929798","","A","20141113","20141114","","","","","","パーソナルヘルス学びのクリニック","パ-ソナルヘルスマナビノクリニツク","パーソナルヘルス学びのCL","パ-ソナルヘルスマナビノクリニツク","","13","103","025","002","107-0062","東京都港区南青山2-2-15 ウイン青山405","トウキヨウト ミナトク ミナミアオヤマ 2-2-1 ウインアオヤマ 405","2-2-15-405","03","02","03","02","07","05","08","02","1","","472","10","01","331831","","白澤 博満","シラサワ ヒロミツ","","","","","A01","I01","A57","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","7","6","","","","","0","20130415","0","0","0","0","0","0","0","","","","","","","","","","" +"101","99","99999","99","A","20230606","200230607","@","@","@","11","12","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","あいうえおかきくけこあいうえおかきくけこあいうえお","アイウエオカクキケコアイウエオカクキケコ","@","18","19","20","21","123-4522","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","25","26","27","28","29","30","31","32","33","@","@","36","37","@","39","40","@","@","@","202304","@","202306","@","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100","101","102","103","104","105","106","7","8","@","10","11","@","@","@","@","6","7","8","9","0","1","@","3","4","5","6","7","8","@","333333","11" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_inst_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_inst_insert.csv index 97617e35..e79b6d77 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_inst_insert.csv +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_inst_insert.csv @@ -6,3 +6,4 @@ "009904439","01","","カワサキシリツイダビヨウイン","イダビヨウイン シリツ","川崎市立井田病院","井田病院 市立","","370","","","","","","","","","","","044-766-2188","カナガワケン カワサキシ ナカハラク イダ 2-27-1","神奈川県川崎市中原区井田2-27-1","211-0035","14133001002","14","133","2-27-1","08120402","04060202","221","","1","","","","","","","","","3","343","0","27","0","370","343","0","20140811","1","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" "009929798","10","","パ-ソナルヘルスマナビノクリニツク","パ-ソナルヘルスマナビノクリニツク","パーソナルヘルス学びのクリニック","パーソナルヘルス学びのCL","","0","","","","","","01331831","シラサワ ヒロミツ","白澤 博満","1","","","トウキヨウト ミナトク ミナミアオヤマ 2-2-1 ウインアオヤマ 405","東京都港区南青山2-2-15 ウイン青山405","107-0062","13103025002","13","103","2-2-15-405","07050802","03020302","472","","7","","","","","","","","","6","0","0","0","0","0","0","0","20130415","1","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" "223333344","37","7","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","アイウエオカクキケコアイウエオカクキケコ","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","あいうえおかきくけこあいうえおかきくけこあいうえお","81011","113","5","3","202306","202304","2","383940","アイウエオカクキケコ","あいうえおかきくけこあいうえおかきくけこ","4","8","35","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","123-4522","18192021","18","19","25","30313233","26272829","36","9","7","101112","2","3","4","5","6","7","8","8","9","6","7","8","115","0","1","20230114","1","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_inst_mapper","2023/04/12 00:00:00","com_inst_mapper" +"999999999","37","NULL","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","アイウエオカクキケコアイウエオカクキケコ","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","あいうえおかきくけこあいうえおかきくけこあいうえお","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","123-4522","18192021","18","19","25","30313233","26272829","36","NULL","7","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","8","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","1","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_inst_mapper","2023/04/12 00:00:00","com_inst_mapper" From dcbe8d70a674e3377fc5660ae2928b273e135924 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Wed, 29 Nov 2023 11:57:24 +0900 Subject: [PATCH 8/8] =?UTF-8?q?fix:=20COM=5F=E6=96=BD=E8=A8=AD=20=E9=A0=85?= =?UTF-8?q?=E7=9B=AE=E3=82=AF=E3=83=AA=E3=82=A2=E3=81=AE=E8=80=83=E6=85=AE?= =?UTF-8?q?=E6=BC=8F=E3=82=8C=20=E3=82=B3=E3=83=BC=E3=83=89=E3=81=AE?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=80=82=E3=83=86=E3=82=B9=E3=83=88=E3=82=82?= =?UTF-8?q?=E3=83=91=E3=82=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../table_mapper/concrete/com_inst_mapper.py | 128 +++++++++++------- .../com_inst/test_com_inst_mapper.py | 2 + 2 files changed, 82 insertions(+), 48 deletions(-) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_mapper.py index 3802ed62..cbf29145 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_mapper.py @@ -263,6 +263,10 @@ class ComInstMapper(UltmarcTableMapper): def __make_upsert_query(self): # レコードの存在確認(施設) record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + + # 「@」による項目クリアを設定 + self.__set_clearing_item() + if record_count[0]['count_num'] == 0: # 存在しない場合はInsert self.queries.append(self.INSERT_INST_QUERY) @@ -344,96 +348,64 @@ class ComInstMapper(UltmarcTableMapper): # 未確認フラグ if len(self.record.uncheck_flag) > 0: set_clauses.append('unconf_flg = :uncheck_flag') - if self.record.uncheck_flag == '@': - self.query_parameter['uncheck_flag'] = None # 削除予定理由コード if len(self.record.hpdel_code) > 0: set_clauses.append('delete_sche_reason_cd = :hpdel_code') - if self.record.hpdel_code == '@': - self.query_parameter['hpdel_code'] = None # 重複時相手先コード if len(self.record.dup_opp_code) > 0: set_clauses.append('dup_opp_cd = :dup_opp_code') - if self.record.duphp_id == '@': - self.query_parameter['dup_opp_code'] = None # 住所不明理由コード if len(self.record.hp_addr_lost_code) > 0: set_clauses.append('addr_unknown_reason_cd = :hp_addr_lost_code') - if self.record.hp_addr_lost_code == '@': - self.query_parameter['hp_addr_lost_code'] = None # 電話番号なしフラグ if len(self.record.tel_nothing_flag) > 0: set_clauses.append('phone_number_non_flg = :tel_nothing_flag') - if self.record.tel_nothing_flag == '@': - self.query_parameter['tel_nothing_flag'] = None # 電話番号 if len(self.record.hp_tel) > 0: set_clauses.append('inst_phone_number = :hp_tel') - if self.record.hp_tel == '@': - self.query_parameter['hp_tel'] = None # 施設代表者コード if len(self.record.inst_repre_code) > 0: set_clauses.append('inst_repre_cd = :inst_repre_code') - if self.record.president_id == '@': - self.query_parameter['inst_repre_code'] = None # 代表者(カナ) if len(self.record.president_kana) > 0: set_clauses.append('inst_repre_kana = :president_kana') - if self.record.president_kana == '@': - self.query_parameter['president_kana'] = None # 代表者(漢字) ※「@」が大文字 if len(self.record.president) > 0: set_clauses.append('inst_repre = :president') - if self.record.president == '@': - self.query_parameter['president'] = None # 開業予定フラグ・開業予定年月 if len(self.record.open_flag + self.record.open_year_month) > 0: set_clauses.append('estab_sche_flg = :open_flag') set_clauses.append('estab_sche_ym = :open_year_month') - if self.record.open_flag == '@': - self.query_parameter['open_flag'] = None - self.query_parameter['open_year_month'] = None # 休院フラグ・休院開始年月 if len(self.record.close_flag + self.record.close_year_month) > 0: set_clauses.append('close_flg = :close_flag') set_clauses.append('close_start_ym = :close_year_month') - if self.record.close_flag == '@': - self.query_parameter['close_flag'] = None - self.query_parameter['close_year_month'] = None # 関連大学親コード if len(self.record.univ_prnt_code) > 0: set_clauses.append('rltd_univ_prnt_cd = :univ_prnt_code') - if self.record.assoc_parrent_id == '@': - self.query_parameter['univ_prnt_code'] = None # 病棟閉鎖フラグ if len(self.record.close_flag2) > 0: set_clauses.append('ward_abolish_flg = :close_flag2') - if self.record.close_flag2 == '@': - self.query_parameter['close_flag2'] = None # 病床数(定員) if self.record.bed_num is not None: set_clauses.append('bed_num = :bed_num') - if self.record.bed_num == '@': - self.query_parameter['bed_num'] = None # 許可病床メンテ日付 if len(self.record.bed_class_maint_date) > 0: set_clauses.append('prmit_bed_maint_ymd = :bed_class_maint_date') - if self.record.bed_class_maint_date == '@': - self.query_parameter['bed_class_maint_date'] = None # 許可ベッド数(合計、精神、結核、感染、その他、一般病床、療養病床) if not self.record.prmit_bed.count(None) == len(self.record.prmit_bed): @@ -444,14 +416,6 @@ class ComInstMapper(UltmarcTableMapper): set_clauses.append('prmit_bed_num_other = :bed_num_gen') set_clauses.append('prmit_bed_num_gen = :bed_num_gen2') set_clauses.append('prmit_bed_num_rcup = :bed_num_rest') - if self.record.bed_num_sum == '@': - self.query_parameter['bed_num_sum'] = None - self.query_parameter['bed_num_psy'] = None - self.query_parameter['bed_num_tub'] = None - self.query_parameter['bed_num_epi'] = None - self.query_parameter['bed_num_gen'] = None - self.query_parameter['bed_num_gen2'] = None - self.query_parameter['bed_num_rest'] = None # 検査項目(微生物、血清、血液、病理、寄生虫、生化、RI) if sum(len(item) for item in self.record.insp_item) > 0: @@ -462,14 +426,6 @@ class ComInstMapper(UltmarcTableMapper): set_clauses.append('insp_item_paras = :inspect_code5') set_clauses.append('insp_item_biochem = :inspect_code6') set_clauses.append('insp_item_ri = :inspect_code7') - if self.record.inspect_code1 == '@': - self.query_parameter['inspect_code1'] = None - self.query_parameter['inspect_code2'] = None - self.query_parameter['inspect_code3'] = None - self.query_parameter['inspect_code4'] = None - self.query_parameter['inspect_code5'] = None - self.query_parameter['inspect_code6'] = None - self.query_parameter['inspect_code7'] = None update_columns = ','.join(set_clauses) # 何も更新項目が無い場合は更新処理は行わない @@ -494,6 +450,7 @@ class ComInstMapper(UltmarcTableMapper): # 削除 self.queries.append(self.PHYSICAL_DELETE_TRT_QUERY) + # 診療科目の1つ目の値がクリアマーク(@)の場合、診療科目を登録しない if self.record.medsbj_code[0] == "@": return @@ -516,10 +473,15 @@ class ComInstMapper(UltmarcTableMapper): record_count = self.db.execute_select(self.RECORD_EXISTS_SPCARE_QUERY, self.query_parameter) # 存在しない場合はInsert if record_count[0]['count_num'] == 0: + # 特養医務室の集合項目の値がクリアマーク(@)の場合、登録しない + if self.record.dcfhp_92id == "@": + return + self.queries.append(self.INSERT_SPCARE_QUERY) return # 存在する場合はUpdate + # 特養医務室の集合項目の値がクリアマーク(@)の場合、DCF親施設コードをクリアし、削除日を設定 if self.record.dcfhp_92id == "@": self.query_parameter['dcf_prnt_inst_code'] = None self.query_parameter['delete_ymd'] = self.query_parameter['execute_date_str_ymd'] @@ -529,3 +491,73 @@ class ComInstMapper(UltmarcTableMapper): self.queries.append(self.UPDATE_SPCARE_QUERY) return + + def __set_clearing_item(self): + + # 未確認フラグ + if self.record.uncheck_flag == '@': + self.query_parameter['uncheck_flag'] = None + # 削除予定理由コード + if self.record.hpdel_code == '@': + self.query_parameter['hpdel_code'] = None + # 重複時相手先コード + if self.record.duphp_id == '@': + self.query_parameter['dup_opp_code'] = None + # 住所不明理由コード + if self.record.hp_addr_lost_code == '@': + self.query_parameter['hp_addr_lost_code'] = None + # 電話番号なしフラグ + if self.record.tel_nothing_flag == '@': + self.query_parameter['tel_nothing_flag'] = None + # 電話番号 + if self.record.hp_tel == '@': + self.query_parameter['hp_tel'] = None + # 施設代表者コード + if self.record.president_id == '@': + self.query_parameter['inst_repre_code'] = None + # 代表者(カナ) + if self.record.president_kana == '@': + self.query_parameter['president_kana'] = None + # 代表者(漢字) ※全角文字のため、クリアマーク「@」が大文字 + if self.record.president == '@': + self.query_parameter['president'] = None + # 開業予定フラグ・開業予定年月 + if self.record.open_flag == '@': + self.query_parameter['open_flag'] = None + self.query_parameter['open_year_month'] = None + # 休院フラグ・休院開始年月 + if self.record.close_flag == '@': + self.query_parameter['close_flag'] = None + self.query_parameter['close_year_month'] = None + # 関連大学親コード + if self.record.assoc_parrent_id == '@': + self.query_parameter['univ_prnt_code'] = None + # 病棟閉鎖フラグ + if self.record.close_flag2 == '@': + self.query_parameter['close_flag2'] = None + # 病床数(定員) + if self.record.bed_num == '@': + self.query_parameter['bed_num'] = None + # 許可病床メンテ日付 + if self.record.bed_class_maint_date == '@': + self.query_parameter['bed_class_maint_date'] = None + # 許可ベッド数(合計、精神、結核、感染、その他、一般病床、療養病床) + if self.record.bed_num_sum == '@': + self.query_parameter['bed_num_sum'] = None + self.query_parameter['bed_num_psy'] = None + self.query_parameter['bed_num_tub'] = None + self.query_parameter['bed_num_epi'] = None + self.query_parameter['bed_num_gen'] = None + self.query_parameter['bed_num_gen2'] = None + self.query_parameter['bed_num_rest'] = None + # 検査項目(微生物、血清、血液、病理、寄生虫、生化、RI) + if self.record.inspect_code1 == '@': + self.query_parameter['inspect_code1'] = None + self.query_parameter['inspect_code2'] = None + self.query_parameter['inspect_code3'] = None + self.query_parameter['inspect_code4'] = None + self.query_parameter['inspect_code5'] = None + self.query_parameter['inspect_code6'] = None + self.query_parameter['inspect_code7'] = None + + return diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/test_com_inst_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/test_com_inst_mapper.py index f408fcca..a3554692 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/test_com_inst_mapper.py +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/test_com_inst_mapper.py @@ -134,6 +134,8 @@ class TestComInstMapper: # 期待値ファイルを読み込む(特養医務室データ) expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_spcare_insert.csv')) + actual_record_count = self.db.execute_select('SELECT COUNT(*) AS count_num FROM src05.com_spcare_med_office_dat')[0]['count_num'] + assert actual_record_count == len(expect_data_list), 'DBのレコード件数が期待値の件数と一致すること' primary_keys = [f"'{primary_key['dcf_chld_inst_cd']}'" for primary_key in expect_data_list] actual_select_sql = f"SELECT * FROM src05.com_spcare_med_office_dat WHERE dcf_chld_inst_cd IN ({','.join(primary_keys)})" actual_data_list = self.db.execute_select(actual_select_sql)