diff --git a/ecs/jskult-batch-daily/src/aws/s3.py b/ecs/jskult-batch-daily/src/aws/s3.py index 0df364d4..1e685276 100644 --- a/ecs/jskult-batch-daily/src/aws/s3.py +++ b/ecs/jskult-batch-daily/src/aws/s3.py @@ -72,11 +72,11 @@ class UltmarcBucket(S3Bucket): return temporary_file_path def backup_dat_file(self, dat_file_key: str, datetime_key: str): + # バックアップバケットにコピー ultmarc_backup_bucket = UltmarcBackupBucket() backup_key = f'{ultmarc_backup_bucket._folder}/{datetime_key}/{dat_file_key.replace(f"{self._folder}/", "")}' self._s3_client.copy(self._bucket_name, dat_file_key, ultmarc_backup_bucket._bucket_name, backup_key) - - def delete_dat_file(self, dat_file_key: str): + # コピー元のファイルを削除 self._s3_client.delete_file(self._bucket_name, dat_file_key) diff --git a/ecs/jskult-batch-daily/src/batch/jissekiaraigae.py b/ecs/jskult-batch-daily/src/batch/jissekiaraigae.py deleted file mode 100644 index be7e6384..00000000 --- a/ecs/jskult-batch-daily/src/batch/jissekiaraigae.py +++ /dev/null @@ -1,14 +0,0 @@ -from src.batch.datachange import emp_chg_inst_lau -from src.batch.datachange import create_inst_merge_for_laundering -from src.logging.get_logger import get_logger - -logger = get_logger('実績洗替') - - -def batch_process(): - """実績洗替処理""" - logger.info('Start Jisseki Araigae Batch PGM.') - # 洗替用マスタ作成 - create_inst_merge_for_laundering.batch_process() - # 施設担当者洗替 - emp_chg_inst_lau.batch_process() diff --git a/ecs/jskult-batch-daily/src/batch/laundering/create_inst_merge_for_laundering.py b/ecs/jskult-batch-daily/src/batch/laundering/create_inst_merge_for_laundering.py index f631d460..2c9d7353 100644 --- a/ecs/jskult-batch-daily/src/batch/laundering/create_inst_merge_for_laundering.py +++ b/ecs/jskult-batch-daily/src/batch/laundering/create_inst_merge_for_laundering.py @@ -5,7 +5,7 @@ from src.logging.get_logger import get_logger logger = get_logger('洗替用マスタ作成') -def batch_process(): +def exec(): db = Database.get_instance() try: @@ -17,7 +17,7 @@ def batch_process(): logger.debug('処理終了') except Exception as e: raise BatchOperationException(e) - finally: + finally: db.disconnect() diff --git a/ecs/jskult-batch-daily/src/batch/laundering/create_mst_inst.py b/ecs/jskult-batch-daily/src/batch/laundering/create_mst_inst.py deleted file mode 100644 index 6b499a71..00000000 --- a/ecs/jskult-batch-daily/src/batch/laundering/create_mst_inst.py +++ /dev/null @@ -1,16 +0,0 @@ -from src.batch.common.batch_context import BatchContext -from src.logging.get_logger import get_logger - -batch_context = BatchContext.get_instance() -logger = get_logger('メルク施設マスタ作成') - - -def exec(): - """メルク施設マスタ作成""" - - # 営業日ではないかつ、アルトマーク取込が行われていない場合は処理をスキップする - if batch_context.is_not_business_day is True and batch_context.is_ultmarc_imported is not True: - logger.info('営業日ではない、かつ、アルトマーク取込が行われていないため、メルク施設マスタ作成処理をスキップします。') - return - - pass diff --git a/ecs/jskult-batch-daily/src/batch/laundering/mst_inst_laundering.py b/ecs/jskult-batch-daily/src/batch/laundering/mst_inst_laundering.py new file mode 100644 index 00000000..bbaa5fd0 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/laundering/mst_inst_laundering.py @@ -0,0 +1,262 @@ +from src.batch.batch_functions import logging_sql +from src.batch.common.batch_context import BatchContext +from src.db.database import Database +from src.error.exceptions import BatchOperationException +from src.logging.get_logger import get_logger +from src.time.elapsed_time import ElapsedTime + +batch_context = BatchContext.get_instance() +logger = get_logger('メルク施設マスタ作成') + + +def exec(): + """メルク施設マスタ作成""" + + # 営業日ではないかつ、アルトマーク取込が行われていない場合は処理をスキップする + if batch_context.is_not_business_day is True and batch_context.is_ultmarc_imported is not True: + logger.info('営業日ではない、かつ、アルトマーク取込が行われていないため、メルク施設マスタ作成処理をスキップします。') + return + + db = Database.get_instance() + try: + db.connect() + logger.debug('メルク施設マスタ作成処理開始') + # mst_instをTruncate + _truncate_mst_inst(db) + # fcl_mst_vから、mst_instへInsert + _insert_mst_inst_from_fcl_mst_v(db) + # com_instから、mst_instへInsert + _insert_mst_inst_from_com_inst(db) + logger.debug('メルク施設マスタ作成処理終了') + except Exception as e: + raise BatchOperationException(e) + finally: + db.disconnect() + + +def _truncate_mst_inst(db: Database): + try: + db.execute("TRUNCATE TABLE src05.mst_inst") + except Exception as e: + logger.debug("メルク施設マスタの全件削除に失敗") + raise e + + logger.debug("メルク施設マスタの全件削除に成功") + return + + +def _insert_mst_inst_from_fcl_mst_v(db: Database): + # fcl_mst_vから、mst_instへInsert + try: + elapsed_time = ElapsedTime() + sql = """ + INSERT INTO + src05.mst_inst ( + inst_cd, + inst_clas_cd, + inst_name_form, + inst_name, + pref_cd, + city_cd, + pref_name, + city_name, + address, + postal_cd, + tel_num, + delete_date, + v_inst_cd, + create_date, + update_date + ) + SELECT + fmv1.v_inst_cd, + CASE + WHEN fmv1.fcl_type IN ('A1', 'A0') THEN '3' + WHEN fmv1.fcl_type BETWEEN '20' AND '29' THEN '2' + END AS inst_clas_cd, + fmv1.fcl_name, + fmv1.fcl_abb_name, + fmv1.prft_cd, + RIGHT(fmv1.admin_kbn, 3), + mp.prefc_name, + LEFT(mc.city_name, 40), + CASE + WHEN fmv1.fcl_type IN ('A1', 'A0') THEN LEFT(fmv1.fmt_addr, 200) + WHEN fmv1.fcl_type BETWEEN '20' AND '29' THEN CONCAT(fmv1.prft_name,fmv1.city_name,fmv1.addr_line_1) + END AS address, + fmv1.postal_cd, + fmv1.tel_num, + LEFT(fmv1.closed_dt, 10), + fmv1.v_inst_cd, + fmv1.ins_dt, + fmv1.upd_dt + FROM + src05.fcl_mst_v AS fmv1 + INNER JOIN ( + SELECT + v_inst_cd, + MAX(sub_num) AS sno + FROM + src05.fcl_mst_v + GROUP BY + v_inst_cd + ) fmv2 + ON fmv1.v_inst_cd = fmv2.v_inst_cd + AND fmv1.sub_num = fmv2.sno + LEFT OUTER JOIN src05.mst_prefc AS mp + ON fmv1.prft_cd = mp.prefc_cd + LEFT OUTER JOIN src05.mst_city AS mc + ON LEFT(fmv1.admin_kbn, 2) = mc.prefc_cd + AND RIGHT(fmv1.admin_kbn, 3) = mc.city_cd + WHERE + ((fmv1.fcl_type IN ('A1', 'A0')) OR fmv1.fcl_type BETWEEN '20' AND '29') + AND fmv1.rec_sts_kbn != '9' + """ + res = db.execute(sql) + logging_sql(logger, sql) + logger.info(f'V施設マスタからメルク施設マスタに登録成功, {res.rowcount} 行更新 ({elapsed_time.of})') + except Exception as e: + logger.debug("V施設マスタからメルク施設マスタに登録失敗") + raise e + + return + + +def _insert_mst_inst_from_com_inst(db: Database): + # オプティマイザのderived_mergeフラグをoffにする + try: + sql = """ + SET SESSION optimizer_switch = 'derived_merge=off' + """ + db.execute(sql) + logger.debug("オプティマイザのderived_mergeフラグ = Off") + except Exception as e: + logger.debug("オプティマイザのderived_mergeフラグの値変更に失敗") + raise e + + # com_instから、mst_instへInsert + try: + elapsed_time = ElapsedTime() + sql = """ + INSERT INTO + src05.mst_inst ( + inst_cd, + inst_clas_cd, + inst_name_form, + inst_name, + pref_cd, + city_cd, + pref_name, + city_name, + address, + postal_cd, + tel_num, + bed_num, + manage_cd, + manage_name, + delete_date, + inst_div_cd, + inst_div_name, + v_inst_cd, + creater, + create_date, + updater, + update_date + ) + SELECT + ci.dcf_dsf_inst_cd, + '1', + ci.form_inst_name_kanji, + ci.inst_name_kanji, + ci.prefc_cd, + ci.city_cd, + mp.prefc_name, + LEFT(mc.city_name, 40), + ci.inst_addr, + ci.postal_number, + ci.inst_phone_number, + ci.bed_num, + ci.manage_cd, + LEFT(cm.manage_name, 40), + ci.abolish_ymd, + ci.inst_div_cd, + LEFT(cid.inst_div_name, 40), + mcmv.hco_vid_v, + ci.create_user, + ci.regist_date, + ci.update_user, + ci.update_date + FROM + src05.com_inst AS ci + LEFT OUTER JOIN src05.mst_prefc AS mp + ON ci.prefc_cd = mp.prefc_cd + LEFT OUTER JOIN src05.mst_city AS mc + ON ci.prefc_cd = mc.prefc_cd + AND ci.city_cd = mc.city_cd + LEFT OUTER JOIN src05.com_manage AS cm + ON ci.manage_cd = cm.manage_cd + LEFT OUTER JOIN src05.com_inst_div AS cid + ON ci.inst_div_cd = cid.inst_div_cd + LEFT OUTER JOIN ( -- MDBコード変換表を使用してV施設コードを取得するためのテーブル結合 + SELECT + mcmv4.* + FROM ( + SELECT + mcmv1.* + FROM + src05.mdb_cnv_mst_v AS mcmv1 + INNER JOIN ( + SELECT + mcmv2.hco_vid_v, + MAX(mcmv2.sub_num) AS sno -- MDBコード変換データの枝番MAX + FROM + src05.mdb_cnv_mst_v mcmv2 + WHERE + mcmv2.rec_sts_kbn != '9' -- 状態区分9(削除)以外 and 適用開始≦日付テーブル.処理日 + AND src05.get_syor_date() >= mcmv2.start_date + GROUP BY + mcmv2.hco_vid_v + ) AS mcmv3 + ON mcmv1.hco_vid_v = mcmv3.hco_vid_v + AND mcmv1.sub_num = mcmv3.sno + ) AS mcmv4 + INNER JOIN ( + SELECT + MIN(mcmv8.hco_vid_v) AS hvv, -- 1つのMDBコードに対し、複数のV施設コードが割り当てられている場合、最小のV施設コードを選択する + mcmv8.mdb_cd + FROM ( + SELECT + mcmv5.* + FROM + src05.mdb_cnv_mst_v AS mcmv5 + INNER JOIN ( + SELECT + mcmv6.hco_vid_v, + MAX(mcmv6.sub_num) AS sno -- MDBコード変換データの枝番MAX + FROM + src05.mdb_cnv_mst_v AS mcmv6 + WHERE + mcmv6.rec_sts_kbn != '9' -- 状態区分9(削除)以外 and 適用開始≦日付テーブル.処理日 + AND src05.get_syor_date() >= mcmv6.start_date + GROUP BY + mcmv6.hco_vid_v + ) AS mcmv7 + ON mcmv5.hco_vid_v = mcmv7.hco_vid_v + AND mcmv5.sub_num = mcmv7.sno + ) AS mcmv8 + GROUP BY + mcmv8.mdb_cd + ) AS mcmv9 + ON mcmv4.mdb_cd = mcmv9.mdb_cd + AND mcmv4.hco_vid_v = mcmv9.hvv + ) AS mcmv + ON ci.dcf_dsf_inst_cd = mcmv.mdb_cd + """ + res = db.execute(sql) + logging_sql(logger, sql) + logger.info(f'COM施設からメルク施設マスタに登録成功, {res.rowcount} 行更新 ({elapsed_time.of})') + except Exception as e: + logger.debug("COM施設からメルク施設マスタに登録失敗") + raise e + + return diff --git a/ecs/jskult-batch-daily/src/batch/laundering/sales_laundering.py b/ecs/jskult-batch-daily/src/batch/laundering/sales_laundering.py index cb95b702..f6d682b4 100644 --- a/ecs/jskult-batch-daily/src/batch/laundering/sales_laundering.py +++ b/ecs/jskult-batch-daily/src/batch/laundering/sales_laundering.py @@ -1,5 +1,5 @@ from src.batch.common.batch_context import BatchContext -from src.batch.laundering import emp_chg_inst_laundering +from src.batch.laundering import create_inst_merge_for_laundering, emp_chg_inst_laundering, ult_ident_presc_laundering from src.logging.get_logger import get_logger batch_context = BatchContext.get_instance() @@ -14,9 +14,12 @@ def exec(): if batch_context.is_not_business_day: logger.info('営業日ではないため、実績洗替処理をスキップします。') return - + # 洗替用マスタ作成 + create_inst_merge_for_laundering.exec() # 施設担当者洗替 emp_chg_inst_laundering.exec() + # 納入先処方元マスタ洗替 + ult_ident_presc_laundering.exec() # # 並列処理のテスト用コード # import time diff --git a/ecs/jskult-batch-daily/src/batch/laundering/ult_ident_presc_laundering.py b/ecs/jskult-batch-daily/src/batch/laundering/ult_ident_presc_laundering.py new file mode 100644 index 00000000..b7434967 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/laundering/ult_ident_presc_laundering.py @@ -0,0 +1,139 @@ +from src.batch.batch_functions import logging_sql +from src.batch.common.batch_context import BatchContext +from src.db.database import Database +from src.error.exceptions import BatchOperationException +from src.logging.get_logger import get_logger +from src.time.elapsed_time import ElapsedTime + +logger = get_logger('納入先処方元マスタ洗替') +batch_context = BatchContext.get_instance() + + +def exec(): + db = Database.get_instance() + try: + db.connect() + logger.debug('納入先処方元マスタの洗替処理開始') + # ult_ident_presc_lauをTruncate + _truncate_ult_ident_presc_lau(db) + # ult_ident_presc から、ult_ident_presc_lauへInsert + _insert_into_ult_ident_presc_lau_from_ult_ident_presc(db) + # v_inst_merge_tから、ult_ident_presc_lauをUpdate + _update_ult_ident_presc_lau_from_v_inst_merge_t(db) + # inst_merge_tから、ult_ident_presc_lauをUpdate + _update_ult_ident_presc_lau_from_inst_merge_t(db) + logger.debug('納入先処方元マスタの洗替処理製造終了') + except Exception as e: + raise BatchOperationException(e) + finally: + db.disconnect() + + +def _truncate_ult_ident_presc_lau(db: Database): + try: + db.execute("TRUNCATE TABLE src05.ult_ident_presc_lau") + except Exception as e: + logger.debug("納入先処方元マスタ(洗替後)の全件削除に失敗") + raise e + + logger.debug("納入先処方元マスタ(洗替後)の全件削除に成功") + return + + +def _insert_into_ult_ident_presc_lau_from_ult_ident_presc(db: Database): + try: + elapsed_time = ElapsedTime() + sql = "INSERT INTO src05.ult_ident_presc_lau SELECT *, NULL FROM src05.ult_ident_presc" + res = db.execute(sql) + logging_sql(logger, sql) + logger.info(f'処方元マスタから処方元マスタ(洗替後)に全件コピーに成功, {res.rowcount} 行更新 ({elapsed_time.of})') + except Exception as e: + logger.debug("処方元マスタから処方元マスタ(洗替後)に全件コピーに失敗") + raise e + + return + + +def _update_ult_ident_presc_lau_from_v_inst_merge_t(db: Database): + # v_inst_merge_tの元となるvop_hco_merge_vはデータが作られないため、この洗い替え処理は基本空振りする + try: + select_result = db.execute_select( + """ + SELECT + COUNT(v_inst_cd) AS row_count + FROM + internal05.v_inst_merge_t + """ + ) + except Exception as e: + logger.debug("V施設統合マスタ(洗替処理一時テーブル)からの移行対象施設件数取得失敗") + raise e + count = [row for row in select_result][0]['row_count'] + if count == 0: + logger.info('V施設統合マスタ(洗替処理一時テーブル)からの移行対象施設が存在しません') + return + + logger.info(f'V施設統合マスタ(洗替処理一時テーブル)からの移行対象施設件数取得成功 移行対象施設件数={count}') + + try: + elapsed_time = ElapsedTime() + update_sql = """ + UPDATE + src05.ult_ident_presc_lau uipl, internal05.v_inst_merge_t vimt + SET + uipl.ult_ident_cd = vimt.v_inst_cd_merge, + uipl.lau_ope_dt = SYSDATE() + WHERE + uipl.ult_ident_cd = vimt.v_inst_cd + """ + res = db.execute(update_sql) + logging_sql(logger, update_sql) + logger.info(f'納入先処方元マスタの納入先コードを施設コード移行先に更新成功, {res.rowcount} 行更新 ({elapsed_time.of})') + except Exception as e: + logger.debug("納入先処方元マスタの納入先コードを施設コード移行先に更新失敗") + raise e + + return + + +def _update_ult_ident_presc_lau_from_inst_merge_t(db: Database): + # inst_merge_tから、ult_ident_presc_lauをUpdate + try: + select_result = db.execute_select( + """ + SELECT + COUNT(dcf_dsf_inst_cd) AS row_count + FROM + internal05.inst_merge_t + """ + ) + except Exception as e: + logger.debug("施設統合マスタ(洗替処理一時テーブル)からの移行対象施設件数取得失敗") + raise e + + count = [row for row in select_result][0]['row_count'] + if count == 0: + logger.info('施設統合マスタ(洗替処理一時テーブル)からの移行対象施設が存在しません') + return + + logger.info(f'施設統合マスタ(洗替処理一時テーブル)からの移行対象施設件数取得成功 移行対象施設件数={count}') + # inst_merge_tから、ult_ident_presc_lauをUpdate + try: + elapsed_time = ElapsedTime() + update_sql = """ + UPDATE + src05.ult_ident_presc_lau uipl, internal05.inst_merge_t imt + SET + uipl.presc_cd = imt.dup_opp_cd, + uipl.lau_ope_dt = SYSDATE() + WHERE + uipl.presc_cd = imt.dcf_dsf_inst_cd + """ + res = db.execute(update_sql) + logging_sql(logger, update_sql) + logger.info(f'納入先処方元マスタの処方元コードを施設コード移行先に更新成功, {res.rowcount} 行更新 ({elapsed_time.of})') + except Exception as e: + logger.debug("納入先処方元マスタの処方元コードを施設コード移行先に更新失敗") + raise e + + return diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/ultmarc_process.py b/ecs/jskult-batch-daily/src/batch/ultmarc/ultmarc_process.py index 4ed7ae03..b511a9c8 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/ultmarc_process.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/ultmarc_process.py @@ -45,17 +45,14 @@ def exec_import(): dat_file_name = dat_file_info['filename'] logger.info(f"{dat_file_name}を取り込みます") - # ファイルをバックアップ - # 現行は、jobctrl_dailyの先頭でやっている - ultmarc_bucket.backup_dat_file(dat_file_name, batch_context.syor_date) # datファイルをダウンロード local_file_path = ultmarc_bucket.download_dat_file(dat_file_name) dat_file = DatFile.from_path(local_file_path) # アルトマーク取り込み実行 _import_to_ultmarc_table(dat_file) - # 処理後、ファイルをS3から削除する - logger.info(f'取り込み処理が完了したため、datファイルを削除。ファイル名={dat_file_name}') - ultmarc_bucket.delete_dat_file(dat_file_name) + # 処理後ファイルをバックアップ + ultmarc_bucket.backup_dat_file(dat_file_name, batch_context.syor_date) + logger.info(f'取り込み処理が完了したため、datファイルをバックアップ。ファイル名={dat_file_name}') # アルトマーク取込済をマーク batch_context.is_ultmarc_imported = True logger.info('アルトマーク取込処理: 終了') @@ -91,7 +88,7 @@ def _import_to_ultmarc_table(dat_file: DatFile): mapper_class.execute_queries() dat_file.count_up_success() except Exception as e: - logger.warning(e) + logger.info(e) record = line.records log_message = ','.join([f'"{r}"' for r in record]) logger.info(f'ERROR_LINE: {log_message}') diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_alma_depart_disc_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_alma_depart_disc_mapper.py new file mode 100644 index 00000000..b5a57aad --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_alma_depart_disc_mapper.py @@ -0,0 +1,107 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_alma_depart_disc import ComAlmaDepartDisc + + +class ComAlmaDepartDiscMapper(UltmarcTableMapper): + """レイアウト区分003: COM_出身校学部識別 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_alma_depart_disc + WHERE + alma_cd = :alma_cd + AND + depart_disc_cd = :depart_disc_cd + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_alma_depart_disc + ( + alma_cd, + depart_disc_cd, + estab_e, + estab_y, + alma_name, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :alma_cd, + :depart_disc_cd, + :estab_e, + :estab_y, + :alma_name, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # 更新用SQL + UPDATE_QUERY = """\ + UPDATE + src05.com_alma_depart_disc + SET + estab_e = :estab_e, + estab_y = :estab_y, + alma_name = :alma_name, + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + alma_cd = :alma_cd + AND + depart_disc_cd = :depart_disc_cd + """ + + # 修正区分が「C(削除)」の場合の更新SQL + LOGICAL_DELETE_QUERY = """\ + UPDATE + src05.com_alma_depart_disc + SET + delete_ymd = :execute_date_str_ymd, + sys_update_date = :execute_date_str_ymd, + update_prgm_id = :program_name + WHERE + alma_cd = :alma_cd + AND + depart_disc_cd = :depart_disc_cd + """ + record: ComAlmaDepartDisc + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComAlmaDepartDisc) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 修正区分がC(削除)の場合、論理削除 + if self.record.maint_flag == 'C': + self.queries.append(self.LOGICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合ではUpdate + return self.UPDATE_QUERY diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_alma_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_alma_mapper.py index 699cbe6c..27055955 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_alma_mapper.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_alma_mapper.py @@ -89,7 +89,4 @@ class ComAlmaMapper(UltmarcTableMapper): return self.INSERT_QUERY # 存在する場合ではUpdate - if self.record.alma == '': - return None - else: - return self.UPDATE_QUERY + return self.UPDATE_QUERY diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_cop_hp_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_cop_hp_mapper.py new file mode 100644 index 00000000..b1746e00 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_cop_hp_mapper.py @@ -0,0 +1,108 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_cop_hp import ComCopHp + + +class ComCopHpMapper(UltmarcTableMapper): + """レイアウト区分112: COM_臨床研修病院 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_cop_hp + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + cophp_cd = :cophp_code + AND + openyear = :open_year + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_cop_hp + ( + dcf_dsf_inst_cd, + cophp_cd, + openyear, + sortkey, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :dcfdsf_inst_code, + :cophp_code, + :open_year, + :sort_key, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + # データ変更用SQL + UPDATE_QUERY = """\ + UPDATE + src05.com_cop_hp + SET + sortkey = :sort_key, + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + cophp_cd = :cophp_code + AND + openyear = :open_year + """ + + # 削除『修正区分がB(修正)かつ追加削除区分が1(退職)』の場合、物理削除 + PHYSICAL_DELETE_QUERY = """\ + DELETE FROM + src05.com_cop_hp + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + cophp_cd = :cophp_code + AND + openyear = :open_year + """ + record: ComCopHp + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComCopHp) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 削除『修正区分がB(修正)かつ追加削除区分が1(退職)』の場合、物理削除 + if self.record.maint_flag == 'B' and self.record.adddel_div == '1': + self.queries.append(self.PHYSICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合ではUpdate + # 更新する値が空の場合は、更新処理を行わない + if self.record.sort_key == '': + return None + else: + return self.UPDATE_QUERY 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 new file mode 100644 index 00000000..ac2bd53a --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_mapper.py @@ -0,0 +1,441 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_dr import ComDr + + +class ComDrMapper(UltmarcTableMapper): + """レイアウト区分501: COM_医師 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_dr + WHERE + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + """ + + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_dr + ( + dcf_pcf_dr_cd, + dr_name_kana, + dr_name, + birthday_era, + birthday_year, + birthday_month, + birthday_day, + birthday, + hometown_cd, + estab_era, + estab_year, + estab_y, + home_phone_number, + home_addr_kana, + home_addr, + home_postal_number, + addr_village_cd, + prefc_cd, + city_cd, + addr_display_number, + addr_cnt_kana, + addr_cnt, + dr_circle_cd, + estab_div_cd, + sex_cd, + delete_sche_reason_cd, + addr_unknown_reason_cd, + alma_cd, + depart_disc_cd, + grad_era, + grad_year, + grad_y, + lump_regist_flg, + opp_dup_cd, + dr_ph_div, + use_stop_div, + use_stop_reason_cd, + use_stop_regist_ymd, + use_stop_cancel_ymd, + drday_era, + drday_year, + drday_y, + abolish_ymd, + delete_flg, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :dcf_pcf_dr_cd, + :dr_name_kana, + :dr_name, + :birthday_era, + :birthday_year, + :birthday_month, + :birthday_day, + :birth_day, + :home_town_code, + :pract_yearera, + :pract_year, + :estab_y, + :dr_tel, + :dr_addr_kana, + :dr_addr, + :dr_zip_code, + :addr_village_cd, + :pref_code, + :city_code, + :dr_addr_num, + :addr_cnt_kana, + :addr_cnt, + :medassoci_code, + :pract_class_code, + :sex_code, + :drdel_code, + :dr_addr_lost_code, + :graduniv_code, + :graduniv_dept_code, + :grad_yearera, + :grad_year, + :grad_y, + :bskregst_flag, + :opp_dup_code, + 1, + :use_stop_flag, + :use_stopc_ode, + :cre_stop_date, + :release_date, + :drda_yera, + :drday_year, + :drday_y, + NULL, + 0, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + UPDATE_QUERY = """\ + UPDATE + src05.com_dr + SET + {update_columns} + dr_ph_div = 1, + abolish_ymd = NULL, + delete_flg = 0, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + """ + + # 修正区分が「C(削除)」の場合の更新SQL + LOGICAL_DELETE_QUERY = """\ + UPDATE + src05.com_dr + SET + abolish_ymd = :maint_date, + sys_update_date = :execute_date_str_ymd, + update_prgm_id = :program_name + WHERE + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + """ + + # 西暦取得SQL + YEAR_GET_QUERY = """\ + SELECT + year AS year + FROM + src05.com_era + WHERE + era_cd = :era_cd + """ + + # COM_医師診療科目の物理削除SQL + PHYSICAL_DELETE_QUERY_TRT = """\ + DELETE FROM + src05.com_dr_trt_course + WHERE + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + """ + + # COM_医師診療科目の登録用SQL + INSERT_QUERY_TRT = """\ + INSERT INTO src05.com_dr_trt_course + ( + trt_course_cd, + sequence, + dcf_pcf_dr_cd, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + {trt_course_code}, + {trt_sequence}, + :dcf_pcf_dr_cd, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + record: ComDr + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComDr) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 修正区分がC(削除)の場合、論理削除 + if self.record.maint_flag == 'C': + self.queries.append(self.LOGICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.__make_upsert_query() + return + + def __make_upsert_query(self): + # 西暦の取得 + self.__set_era() + + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + self.queries.append(self.INSERT_QUERY) + # COM_医師診療科目 削除登録 + self.__make_delete_insert_trt_query() + return + + # 存在する場合ではUpdate + # COM_医師診療科目 削除登録 + self.__make_delete_insert_trt_query() + + update_columns = ','.join(self.__make_update_query()) + # 何も更新項目が無い場合はNoneとする(更新処理は行わない) + if len(update_columns) == 0: + self.queries.append(None) + return + else: + # 末尾にカンマを付けてSET句を完成させる + update_columns += ',' + update_query = self.UPDATE_QUERY.format( + update_columns=update_columns + ) + self.queries.append(update_query) + return + + def __make_update_query(self): + set_clauses = [] # 設定項目 + + # 削除予定理由 + 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'] = '' + + # 重複時相手先コード + 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'] = '' + + # 医師名(漢字) + if len(self.record.dr_name) > 0: + set_clauses.append('dr_name = :dr_name') + + # 医師名(カナ) + if len(self.record.dr_name_kana) > 0: + set_clauses.append('dr_name_kana = :dr_name_kana') + + # 性別 + if len(self.record.sex_code) > 0: + set_clauses.append('sex_cd = :sex_code') + + # 生年月日 + if len(self.record.birthday_era + self.record.birthday_year + self.record.birthday_month + self.record.birthday_day) > 0: + set_clauses.append('birthday_era = :birthday_era') + set_clauses.append('birthday_year = :birthday_year') + 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'] = '' + self.query_parameter['birthday_year'] = '' + self.query_parameter['birthday_month'] = '' + self.query_parameter['birthday_day'] = '' + self.query_parameter['birth_day'] = '' + + # 出身都道府県コード + if len(self.record.home_town_code) > 0: + set_clauses.append('hometown_cd = :home_town_code') + + # 医師会コード + if len(self.record.medassoci_code) > 0: + set_clauses.append('dr_circle_cd = :medassoci_code') + + # 卒年 + if len(self.record.grad_yearera + self.record.grad_year) > 0: + 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'] = '' + self.query_parameter['grad_year'] = '' + self.query_parameter['grad_y'] = '' + + # 出身校コード + if len(self.record.graduniv_code) > 0: + set_clauses.append('alma_cd = :graduniv_code') + + # 出身校学部識別コード + if len(self.record.graduniv_dept_code) > 0: + set_clauses.append('depart_disc_cd = :graduniv_dept_code') + + # 登録年 + if len(self.record.drda_yera + self.record.drday_year) > 0: + 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'] = '' + self.query_parameter['drday_year'] = '' + self.query_parameter['drday_y'] = '' + + # 住所不明 + 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'] = '' + + # 住所 + # 集合項目のいずれかに入力がある場合に更新 + if sum(len(item) for item in self.record.address_aggregation_items) > 0: + set_clauses.append('home_addr_kana = :dr_addr_kana') + set_clauses.append('home_addr = :dr_addr') + set_clauses.append('home_postal_number = :dr_zip_code') + set_clauses.append('addr_village_cd = :addr_village_cd') + set_clauses.append('prefc_cd = :pref_code') + set_clauses.append('city_cd = :city_code') + set_clauses.append('addr_display_number = :dr_addr_num') + set_clauses.append('addr_cnt_kana = :addr_cnt_kana') + set_clauses.append('addr_cnt = :addr_cnt') + + # 自宅電話番号 + 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'] = '' + + # 利用停止区分 + 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'] = '' + + # 利用停止理由 + 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'] = '' + + # 利用停止登録年月日 + 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'] = '' + + # 利用停止解除年月日 + 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'] = '' + + # 開勤区分 + if len(self.record.pract_class_code) > 0: + set_clauses.append('estab_div_cd = :pract_class_code') + + # 開業年 + if len(self.record.pract_yearera + self.record.pract_year) > 0: + 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'] = '' + self.query_parameter['pract_year'] = '' + self.query_parameter['estab_y'] = '' + + # 一括登録フラグ + if len(self.record.bskregst_flag) > 0: + set_clauses.append('lump_regist_flg = :bskregst_flag') + + return set_clauses + + def __make_delete_insert_trt_query(self): + # 診療科目(集合項目)のいずれかに入力がある場合 + if sum(len(item) for item in self.record.medsbj_code_items) == 0: + return + + # 削除 + self.queries.append(self.PHYSICAL_DELETE_QUERY_TRT) + + # @マークの場合は、登録しない + if self.record.medsbj_code1 == '@': + return + + # 登録 + for num, m_code in enumerate(self.record.medsbj_code_items, start=1): + if len(m_code) > 0: + insert_trt_query = self.INSERT_QUERY_TRT.format( + trt_course_code=f':medsbj_code{num}', + trt_sequence=num + ) + self.queries.append(insert_trt_query) + + return + + def __set_era(self): + # 西暦の取得 + + # 生年月日(西暦) + if self.record.birthday_era != "@" and len(self.record.birthday_era) > 0 and len(self.record.birthday_year) > 0: + self.query_parameter['era_cd'] = self.record.birthday_era + record_year = self.db.execute_select(self.YEAR_GET_QUERY, self.query_parameter) + ans_year = int(record_year[0]['year']) + int(self.record.birthday_year) + self.query_parameter['birth_day'] = ''.join([str(ans_year), self.record.birthday_month, self.record.birthday_day]) + + # 開業年(西暦) + if self.record.pract_yearera != "@" and len(self.record.pract_yearera) > 0 and len(self.record.pract_year) > 0: + self.query_parameter['era_cd'] = self.record.pract_yearera + record_year = self.db.execute_select(self.YEAR_GET_QUERY, self.query_parameter) + self.query_parameter['estab_y'] = str(int(record_year[0]['year']) + int(self.record.pract_year)) + + # 卒業年(西暦) + if self.record.grad_yearera != "@" and len(self.record.grad_yearera) > 0 and len(self.record.grad_year) > 0: + self.query_parameter['era_cd'] = self.record.grad_yearera + record_year = self.db.execute_select(self.YEAR_GET_QUERY, self.query_parameter) + self.query_parameter['grad_y'] = str(int(record_year[0]['year']) + int(self.record.grad_year)) + + # 登録年(西暦) + if self.record.drda_yera != "@" and len(self.record.drda_yera) > 0 and len(self.record.drday_year) > 0: + self.query_parameter['era_cd'] = self.record.drda_yera + record_year = self.db.execute_select(self.YEAR_GET_QUERY, self.query_parameter) + self.query_parameter['drday_y'] = str(int(record_year[0]['year']) + int(self.record.drday_year)) + + return diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_sosiety_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_sosiety_mapper.py new file mode 100644 index 00000000..309362e6 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_dr_sosiety_mapper.py @@ -0,0 +1,97 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_dr_sosiety import ComDrSosiety + + +class ComDrSosietyMapper(UltmarcTableMapper): + """レイアウト区分521: COM_所属学会 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_dr_sosiety + WHERE + sosiety_cd = :sosiety_cd + AND + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_dr_sosiety + ( + sosiety_cd, + dcf_pcf_dr_cd, + sosiety_f, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :sosiety_cd, + :dcf_pcf_dr_cd, + :sosiety_f, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + UPDATE_QUERY = """\ + UPDATE + src05.com_dr_sosiety + SET + sosiety_f = :sosiety_f, + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + sosiety_cd = :sosiety_cd + AND + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + """ + + # 削除『修正区分がB(修正)かつ追加削除区分が1(退職)』SQL + PHYSICAL_DELETE_QUERY = """\ + DELETE FROM + src05.com_dr_sosiety + WHERE + sosiety_cd = :sosiety_cd + AND + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + """ + + record: ComDrSosiety + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComDrSosiety) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 削除『修正区分がB(修正)かつ追加削除区分が1(退職)』 + if self.record.maint_flag == 'B' and self.record.specialst_maint_div == '1': + self.queries.append(self.PHYSICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合ではUpdate + return self.UPDATE_QUERY diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_hp_assrt_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_hp_assrt_mapper.py new file mode 100644 index 00000000..d18f824a --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_hp_assrt_mapper.py @@ -0,0 +1,93 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_hp_assrt import ComHpAssrt + + +class ComHpAssrtMapper(UltmarcTableMapper): + """レイアウト区分002: COM_病院種別 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_hp_assrt + WHERE + hp_assrt_cd = :hp_assrt_cd + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_hp_assrt + ( + hp_assrt_cd, + hp_assrt_name, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :hp_assrt_cd, + :hp_assrt_name, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # 更新用SQL + UPDATE_QUERY = """\ + UPDATE + src05.com_hp_assrt + SET + hp_assrt_name = :hp_assrt_name, + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + hp_assrt_cd = :hp_assrt_cd + """ + + # 修正区分が「C(削除)」の場合の更新SQL + LOGICAL_DELETE_QUERY = """\ + UPDATE + src05.com_hp_assrt + SET + delete_ymd = :execute_date_str_ymd, + sys_update_date = :execute_date_str_ymd, + update_prgm_id = :program_name + WHERE + hp_assrt_cd = :hp_assrt_cd + """ + record: ComHpAssrt + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComHpAssrt) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 修正区分がC(削除)の場合、論理削除 + if self.record.maint_flag == 'C': + self.queries.append(self.LOGICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合ではUpdate + return self.UPDATE_QUERY 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 new file mode 100644 index 00000000..f1b52afd --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_inst_att_mapper.py @@ -0,0 +1,1186 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_inst_att import ComInstAtt + + +class ComInstAttMapper(UltmarcTableMapper): + """レイアウト区分111: COM_施設属性 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_inst_att + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_inst_att + ( + dcf_dsf_inst_cd, + dpc_flag, + dpc_specday, + dpc_cancelday, + predpc_flag, + predpc_specday, + predpc_cancelday, + cancer_flag, + cancer_specday, + cancer_cancelday, + funchpflag, + funchpokdate, + funchpcandate, + areasuphpflag, + areasuphpintrate, + areasuphpokdate, + areasuphpcandate, + acuthpaddflag, + acuthpaddokdate, + acuthpaddcandate, + genadmisiionflag, + genadmisiionfokdate, + genadmisiionfcandate, + assistanceflag, + assistanceokdate, + assistancecandate, + diagnosistreatment_flag, + diagnosistreatment_specday, + diagnosistreatment_cancelday, + safety_flag, + safety_specday, + safety_cancelday, + highrisk_flag, + highrisk_specday, + highrisk_cancelday, + infantandholiday_flag, + infantandholiday_specday, + infantandholiday_cancelday, + ophpflag, + ophpokdate, + ophpcandate, + critical_flag, + critical_code01, + critical_code02, + critical_code03, + critical_code04, + critical_code05, + critical_code06, + critical_code07, + critical_code08, + critical_code09, + critical_code10, + critical_code11, + critical_code12, + critical_code13, + critical_code14, + critical_code15, + critical_code16, + critical_code17, + critical_code18, + critical_code19, + critical_code20, + drgmgthpflag, + drgmgthpokdate, + drgmgthpcandate, + imagediagnosis_flag, + imagediagnosis_specifiedday, + imagediagnosis_cancelday, + chemotherapy_flag, + chemotherapy_specday, + chemotherapy_cancelday, + rehabilitation_flag, + rehabilitation_code01, + rehabilitation_code02, + rehabilitation_code03, + rehabilitation_code04, + rehabilitation_code05, + rehabilitation_code06, + rehabilitation_code07, + rehabilitation_code08, + rehabilitation_code09, + rehabilitation_code10, + anesthetizingmanage_flag, + anesthetizingmanage_specday, + anesthetizingmanage_cancelday, + homerecuperation_flag, + homerecuperation_specday, + homerecuperation_cancelday, + synthesiswhenstaying_flag, + synthesiswhenstaying_specday, + synthesiswhenstaying_cancelday, + homelateflag, + homelateokday, + homelatecanday, + caremixkind, + fullmoveflag, + resthpflag, + resthpcarekind, + resthpbednum, + resthpokdate, + resthpcandate, + resthpcarenrskind, + resthpcarebednum, + resthpcareokdate, + resthpcarecandate, + resthpsbednum, + nrmhpflag, + nrmhpcarekind, + nrmhpbedtotalnum, + menthpflag, + menthpcarekind, + menthpbednum, + tubhpflag, + tubhpcarekind, + tubhpbednum, + infhpflag, + infhpflag1, + infhpflag2, + infhpbedflag, + infhpbednum, + hospiceflag, + hospicebednum, + hospiceokdate, + hospicecandate, + hpfuncestflag, + hpfuncestkind, + hpfuncestokdate, + hpfuncestcandate, + clolyhpkind, + clolyhpokdate, + clolyhpcandate, + clhpkind, + clhpokdate, + clhpcandate, + cldephpkind, + cldephpokdate, + cldephpcandate, + disasthpflag, + d1emerhpflag, + d2emerhpflag, + d3emerhpflag, + emergencyclinic, + trialcoreflag, + trialcore_div, + trialcoreokdate, + trialcorecandate, + dementiaflag, + dementiaokdate, + dementiacandate, + sphealth_exploration, + sphealth_guidance, + hiadhpflag, + hiadhpcode1, + hiadhpkind1, + hiadhpcode2, + hiadhpkind2, + hiadhpcode3, + hiadhpkind3, + hiadhpcode4, + hiadhpkind4, + hiadhpcode5, + hiadhpkind5, + hiadhpcode6, + hiadhpkind6, + hiadhpcode7, + hiadhpkind7, + hiadhpcode8, + hiadhpkind8, + hiadhpcode9, + hiadhpkind9, + hiadhpcode10, + hiadhpkind10, + hiadhpcode11, + hiadhpkind11, + hiadhpcode12, + hiadhpkind12, + hiadhpcode13, + hiadhpkind13, + hiadhpcode14, + hiadhpkind14, + hiadhpcode15, + hiadhpkind15, + hiadhpcode16, + hiadhpkind16, + hiadhpcode17, + hiadhpkind17, + hiadhpcode18, + hiadhpkind18, + hiadhpcode19, + hiadhpkind19, + hiadhpcode20, + hiadhpkind20, + hiadhpcode21, + hiadhpkind21, + hiadhpcode22, + hiadhpkind22, + hiadhpcode23, + hiadhpkind23, + hiadhpcode24, + hiadhpkind24, + hiadhpcode25, + hiadhpkind25, + hiadhpcode26, + hiadhpkind26, + hiadhpcode27, + hiadhpkind27, + hiadhpcode28, + hiadhpkind28, + hiadhpcode29, + hiadhpkind29, + hiadhpcode30, + hiadhpkind30, + hiadhpcode31, + hiadhpkind31, + hiadhpcode32, + hiadhpkind32, + hiadhpcode33, + hiadhpkind33, + hiadhpcode34, + hiadhpkind34, + hiadhpcode35, + hiadhpkind35, + hiadhpcode36, + hiadhpkind36, + hiadhpcode37, + hiadhpkind37, + hiadhpcode38, + hiadhpkind38, + hiadhpcode39, + hiadhpkind39, + hiadhpcode40, + hiadhpkind40, + hitechhpflag, + hitechhpkind1, + hitechhpkind2, + hitechhpkind3, + hitechhpkind4, + hitechhpkind5, + hitechhpkind6, + hitechhpkind7, + hitechhpkind8, + hitechhpkind9, + hitechhpkind10, + hitechhpkind11, + hitechhpkind12, + hitechhpkind13, + hitechhpkind14, + hitechhpkind15, + hitechhpkind16, + hitechhpkind17, + hitechhpkind18, + hitechhpkind19, + hitechhpkind20, + policymedical_flag, + policymedical_code01, + policymedical_content01, + policymedical_code02, + policymedical_content02, + policymedical_code03, + policymedical_content03, + policymedical_code04, + policymedical_content04, + policymedical_code05, + policymedical_content05, + policymedical_code06, + policymedical_content06, + policymedical_code07, + policymedical_content07, + policymedical_code08, + policymedical_content08, + policymedical_code09, + policymedical_content09, + policymedical_code10, + policymedical_content10, + policymedical_code11, + policymedical_content11, + policymedical_code12, + policymedical_content12, + policymedical_code13, + policymedical_content13, + policymedical_code14, + policymedical_content14, + policymedical_code15, + policymedical_content15, + policymedical_code16, + policymedical_content16, + policymedical_code17, + policymedical_content17, + policymedical_code18, + policymedical_content18, + policymedical_code19, + policymedical_content19, + policymedical_code20, + policymedical_content20, + visitcarestflag, + visitcarestation_id, + visitcarestation_code, + visitcarestation_yobi, + opendate, + regist_ymd, + update_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :dcfdsf_inst_code, + :dpc_flag, + :dpc_spec_day, + :dpc_cancel_day, + :predpc_flag, + :predpc_spec_day, + :predpc_cancel_day, + :cancer_flag, + :cancer_spec_day, + :cancer_cancel_day, + :funchp_flag, + :funchp_ok_date, + :funchp_can_date, + :areasuphp_flag, + :areasuphp_intrate, + :areasuphp_ok_date, + :areasuphp_can_date, + :acuthp_add_flag, + :acuthp_add_ok_date, + :acuthp_add_can_date, + :genadmisiion_flag, + :genadmisiion_ok_date, + :genadmisiion_can_date, + :assistance_flag, + :assistance_ok_date, + :assistance_can_date, + :diagnosis_treatment_flag, + :diagnosis_treatment_spec_day, + :diagnosis_treatment_cancel_day, + :safety_flag, + :safety_spec_day, + :safety_cancel_day, + :highrisk_flag, + :highrisk_spec_day, + :highrisk_cancel_day, + :infant_and_holiday_flag, + :infant_and_holiday_spec_day, + :infant_and_holiday_cancel_day, + :ophp_flag, + :ophpok_date, + :ophpcan_date, + :critical_flag, + :critical_code01, + :critical_code02, + :critical_code03, + :critical_code04, + :critical_code05, + :critical_code06, + :critical_code07, + :critical_code08, + :critical_code09, + :critical_code10, + :critical_code11, + :critical_code12, + :critical_code13, + :critical_code14, + :critical_code15, + :critical_code16, + :critical_code17, + :critical_code18, + :critical_code19, + :critical_code20, + :drgmgthp_flag, + :drgmgthp_ok_date, + :drgmgthp_can_date, + :image_diagnosis_flag, + :image_diagnosis_specified_day, + :image_diagnosis_cancel_day, + :chemotherapy_flag, + :chemotherapy_spec_day, + :chemotherapy_cancel_day, + :rehabilitation_flag, + :rehabilitation_code01, + :rehabilitation_code02, + :rehabilitation_code03, + :rehabilitation_code04, + :rehabilitation_code05, + :rehabilitation_code06, + :rehabilitation_code07, + :rehabilitation_code08, + :rehabilitation_code09, + :rehabilitation_code10, + :anesthetizing_manage_flag, + :anesthetizing_manage_spec_day, + :anesthetizing_manage_can_day, + :home_recuperation_flag, + :home_recuperation_spec_day, + :home_recuperation_cancel_day, + :synthesis_when_staying_flag, + :synthesis_when_staying_spec_day, + :synthesis_when_staying_can_day, + :home_late_flag, + :home_late_ok_day, + :home_late_can_day, + :caremix_kind, + :fullmove_flag, + :resthp_flag, + :resthp_care_kind, + :resthp_bed_num, + :resthp_ok_date, + :resthp_can_date, + :resthp_care_nrs_kind, + :resthp_care_bed_num, + :resthp_care_ok_date, + :resthp_care_can_date, + :resthp_sbed_num, + :nrmhp_flag, + :nrmhp_care_kind, + :nrmhp_bed_total_num, + :menthp_flag, + :menthp_care_kind, + :menthp_bed_num, + :tubhp_flag, + :tubhp_care_kind, + :tubhp_bed_num, + :infhp_flag, + :infhp_flag1, + :infhp_flag2, + :infhp_bed_flag, + :infhp_bed_num, + :hospice_flag, + :hospice_bed_num, + :hospice_ok_date, + :hospice_can_date, + :hpfunce_st_flag, + :hpfunce_st_kind, + :hpfunce_st_ok_date, + :hpfunce_st_can_date, + :clolyhp_kind, + :clolyhp_ok_date, + :clolyhp_can_date, + :clhp_kind, + :clhp_ok_date, + :clhp_can_date, + :cldephp_kind, + :cldephp_ok_date, + :cldephp_can_date, + :disasthp_flag, + :d1emerhp_flag, + :d2emerhp_flag, + :d3emerhp_flag, + :emergency_clinic, + :trial_core_flag, + :trial_core_div, + :trial_core_ok_date, + :trial_core_can_date, + :dementia_flag, + :dementia_okd_ate, + :dementia_can_date, + :sphealth_exploration, + :sphealth_guidance, + :hiadhp_flag, + :hiadhpcode1, + :hiadhpkind1, + :hiadhpcode2, + :hiadhpkind2, + :hiadhpcode3, + :hiadhpkind3, + :hiadhpcode4, + :hiadhpkind4, + :hiadhpcode5, + :hiadhpkind5, + :hiadhpcode6, + :hiadhpkind6, + :hiadhpcode7, + :hiadhpkind7, + :hiadhpcode8, + :hiadhpkind8, + :hiadhpcode9, + :hiadhpkind9, + :hiadhpcode10, + :hiadhpkind10, + :hiadhpcode11, + :hiadhpkind11, + :hiadhpcode12, + :hiadhpkind12, + :hiadhpcode13, + :hiadhpkind13, + :hiadhpcode14, + :hiadhpkind14, + :hiadhpcode15, + :hiadhpkind15, + :hiadhpcode16, + :hiadhpkind16, + :hiadhpcode17, + :hiadhpkind17, + :hiadhpcode18, + :hiadhpkind18, + :hiadhpcode19, + :hiadhpkind19, + :hiadhpcode20, + :hiadhpkind20, + :hiadhpcode21, + :hiadhpkind21, + :hiadhpcode22, + :hiadhpkind22, + :hiadhpcode23, + :hiadhpkind23, + :hiadhpcode24, + :hiadhpkind24, + :hiadhpcode25, + :hiadhpkind25, + :hiadhpcode26, + :hiadhpkind26, + :hiadhpcode27, + :hiadhpkind27, + :hiadhpcode28, + :hiadhpkind28, + :hiadhpcode29, + :hiadhpkind29, + :hiadhpcode30, + :hiadhpkind30, + :hiadhpcode31, + :hiadhpkind31, + :hiadhpcode32, + :hiadhpkind32, + :hiadhpcode33, + :hiadhpkind33, + :hiadhpcode34, + :hiadhpkind34, + :hiadhpcode35, + :hiadhpkind35, + :hiadhpcode36, + :hiadhpkind36, + :hiadhpcode37, + :hiadhpkind37, + :hiadhpcode38, + :hiadhpkind38, + :hiadhpcode39, + :hiadhpkind39, + :hiadhpcode40, + :hiadhpkind40, + :hitechhp_flag, + :hitechhpkind1, + :hitechhpkind2, + :hitechhpkind3, + :hitechhpkind4, + :hitechhpkind5, + :hitechhpkind6, + :hitechhpkind7, + :hitechhpkind8, + :hitechhpkind9, + :hitechhpkind10, + :hitechhpkind11, + :hitechhpkind12, + :hitechhpkind13, + :hitechhpkind14, + :hitechhpkind15, + :hitechhpkind16, + :hitechhpkind17, + :hitechhpkind18, + :hitechhpkind19, + :hitechhpkind20, + :policy_medical_flag, + :policymedical_code01, + :policymedical_content01, + :policymedical_code02, + :policymedical_content02, + :policymedical_code03, + :policymedical_content03, + :policymedical_code04, + :policymedical_content04, + :policymedical_code05, + :policymedical_content05, + :policymedical_code06, + :policymedical_content06, + :policymedical_code07, + :policymedical_content07, + :policymedical_code08, + :policymedical_content08, + :policymedical_code09, + :policymedical_content09, + :policymedical_code10, + :policymedical_content10, + :policymedical_code11, + :policymedical_content11, + :policymedical_code12, + :policymedical_content12, + :policymedical_code13, + :policymedical_content13, + :policymedical_code14, + :policymedical_content14, + :policymedical_code15, + :policymedical_content15, + :policymedical_code16, + :policymedical_content16, + :policymedical_code17, + :policymedical_content17, + :policymedical_code18, + :policymedical_content18, + :policymedical_code19, + :policymedical_content19, + :policymedical_code20, + :policymedical_content20, + :visitcarest_flag, + :visitcarestation_id, + :visitcarestation_code, + :visitcarestation_yobi, + :open_date, + :execute_date_str_ymd, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + UPDATE_QUERY = """\ + UPDATE + src05.com_inst_att + SET + {update_columns} + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + """ + + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + PHYSICAL_DELETE_QUERY = """\ + DELETE FROM + src05.com_inst_att + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + """ + + record: ComInstAtt + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComInstAtt) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + if self.record.maint_flag == 'B' and self.record.adddel_div == '1': + self.queries.append(self.PHYSICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.__make_upsert_query() + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + self.queries.append(self.INSERT_QUERY) + return + + # 存在する場合はUpdate + self.queries.append(self.__make_update_query()) + return + + def __make_update_query(self): + set_clauses = [] + # DPC対象病院 + if len(self.record.dpc_flag) > 0: + 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: + set_clauses.append('areasuphpflag = :areasuphp_flag') + 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: + 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 + 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: + set_clauses.append('hospiceflag = :hospice_flag') + 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: + set_clauses.append('hpfuncestflag = :hpfunce_st_flag') + 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: + set_clauses.append('clolyhpkind = :clolyhp_kind') + set_clauses.append('clolyhpokdate = :clolyhp_ok_date') + set_clauses.append('clolyhpcandate = :clolyhp_can_date') + 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') + 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: + set_clauses.append('trialcoreflag = :trial_core_flag') + 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埋め + setting_item_name_code = f'policymedical_code{num}' + 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: + set_clauses.append('visitcarestflag = :visitcarest_flag') + 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とする(更新処理は行わない) + if len(update_columns) == 0: + return None + else: + # 末尾にカンマを付けてSET句を完成させる + update_columns += ',' + update_query = self.UPDATE_QUERY.format( + update_columns=update_columns + ) + return update_query 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 6a34c446..a7146b42 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 @@ -1,9 +1,531 @@ from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_inst import ComInst class ComInstMapper(UltmarcTableMapper): - """COM_施設 登録処理: TODO""" + """レイアウト区分101: COM_施設 登録処理""" + + # レコード存在確認SQL(COM_施設) + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_inst + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + """ + + # データ登録用SQL(COM_施設) + INSERT_INST_QUERY = """\ + INSERT INTO src05.com_inst + ( + dcf_dsf_inst_cd, + inst_div_cd, + addr_unknown_reason_cd, + form_inst_name_kana, + inst_name_kana, + form_inst_name_kanji, + inst_name_kanji, + rltd_univ_prnt_cd, + bed_num, + close_flg, + estab_sche_flg, + close_start_ym, + estab_sche_ym, + ward_abolish_flg, + inst_repre_cd, + inst_repre_kana, + inst_repre, + phone_number_non_flg, + unconf_flg, + inst_phone_number, + inst_addr_kana, + inst_addr, + postal_number, + village_cd, + prefc_cd, + city_cd, + addr_display_number, + addr_cnt_kana, + addr_cnt, + manage_cd, + delete_sche_reason_cd, + hp_assrt_cd, + dup_opp_cd, + insp_item_micrb, + insp_item_serum, + insp_item_blood, + insp_item_patho, + insp_item_paras, + insp_item_biochem, + insp_item_ri, + re_exam_cd, + prmit_bed_num_other, + prmit_bed_num_mental, + prmit_bed_num_tuber, + prmit_bed_num_infection, + prmit_bed_num_sum, + prmit_bed_num_gen, + prmit_bed_num_rcup, + prmit_bed_maint_ymd, + inst_pharm_div, + abolish_ymd, + delete_flg, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :dcfdsf_inst_code, + :hp_class_code, + :hp_addr_lost_code, + :hp_name_kana, + :hp_ryaku_name_kana, + :hp_name, + :hp_ryaku_name, + :univ_prnt_code, + :bed_num, + :close_flag, + :open_flag, + :close_year_month, + :open_year_month, + :close_flag2, + :inst_repre_code, + :president_kana, + :president, + :tel_nothing_flag, + :uncheck_flag, + :hp_tel, + :hp_addr_kana, + :hp_addr, + :hp_zip_code, + :village_code, + :pref_code, + :city_code, + :hp_addr_number, + :addr_cnt_kana, + :addr_cnt, + :mgt_class_code, + :hpdel_code, + :hp_kind_code, + :dup_opp_code, + :inspect_code1, + :inspect_code2, + :inspect_code3, + :inspect_code4, + :inspect_code5, + :inspect_code6, + :inspect_code7, + :reexam_flag, + :bed_num_gen, + :bed_num_psy, + :bed_num_tub, + :bed_num_epi, + :bed_num_sum, + :bed_num_gen2, + :bed_num_rest, + :bed_class_maint_date, + 1, + NULL, + 0, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # データ更新用SQL(COM_施設) + UPDATE_INST_QUERY = """\ + UPDATE + src05.com_inst + SET + {update_columns} + abolish_ymd = NULL, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + """ + + # 修正区分が「C(削除)」の場合の更新SQL + LOGICAL_DELETE_QUERY = """\ + UPDATE + src05.com_inst + SET + abolish_ymd = :maint_date, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + """ + + # データ登録用SQL(COM_施設診療科目) + INSERT_INST_TRT_QUERY = """\ + INSERT INTO src05.com_inst_trt_course + ( + dcf_dsf_inst_cd, + trt_course_cd, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :dcfdsf_inst_code, + {trt_course_cd}, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # データ削除用SQL(COM_施設診療科目) + PHYSICAL_DELETE_TRT_QUERY = """\ + DELETE FROM + src05.com_inst_trt_course + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + """ + + # レコード存在確認SQL(COM_特養医務室) + RECORD_EXISTS_SPCARE_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_spcare_med_office_dat + WHERE + dcf_chld_inst_cd = :dcfdsf_inst_code + """ + + # データ更新用SQL(COM_特養医務室) + UPDATE_SPCARE_QUERY = """\ + UPDATE + src05.com_spcare_med_office_dat + SET + dcf_prnt_inst_cd = :dcf_prnt_inst_code, + update_ymd = :execute_date_str_ymd, + delete_ymd = :delete_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + dcf_chld_inst_cd = :dcfdsf_inst_code + """ + + # データ登録用SQL(COM_特養医務室) + INSERT_SPCARE_QUERY = """\ + INSERT INTO src05.com_spcare_med_office_dat + ( + dcf_chld_inst_cd, + dcf_prnt_inst_cd, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :dcfdsf_inst_code, + :dcf_prnt_inst_code, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + record: ComInst + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComInst) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} def make_query(self): - self.queries.append(None) + # 修正区分がC(削除)の場合、論理削除 + if self.record.maint_flag == 'C': + self.queries.append(self.LOGICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.__make_upsert_query() + return + + def __make_upsert_query(self): + # レコードの存在確認(施設) + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + if record_count[0]['count_num'] == 0: + # 存在しない場合はInsert + self.queries.append(self.INSERT_INST_QUERY) + else: + # 存在する場合はUpdate(施設) + self.__make_update_query() + + # 施設診療科目の削除挿入 + self.__make_delete_insert_trt_query() + + # 特養医務室の追加更新 + self.__make_upsert_spcare_query() + + return + + def __make_update_query(self): + # 存在する場合はUpdate(施設) + set_clauses = [] # 設定項目 + + # 施設区分コード + if len(self.record.hp_class_code) > 0: + set_clauses.append('inst_div_cd = :hp_class_code') + + # 正式施設名(カナ) + if len(self.record.hp_name_kana) > 0: + set_clauses.append('form_inst_name_kana = :hp_name_kana') + + # 略式施設名(カナ) + if len(self.record.hp_ryaku_name_kana) > 0: + set_clauses.append('inst_name_kana = :hp_ryaku_name_kana') + + # 正式施設名(漢字) + if len(self.record.hp_name) > 0: + set_clauses.append('form_inst_name_kanji = :hp_name') + + # 略式施設名(漢字) + if len(self.record.hp_ryaku_name) > 0: + set_clauses.append('inst_name_kanji = :hp_ryaku_name') + + # 施設住所カナ + if len(self.record.hp_addr_kana) > 0: + set_clauses.append('inst_addr_kana = :hp_addr_kana') + + # 施設住所 + if len(self.record.hp_addr) > 0: + set_clauses.append('inst_addr = :hp_addr') + + # 郵便番号 + if len(self.record.hp_zip_code) > 0: + set_clauses.append('postal_number = :hp_zip_code') + + # 町字コード・都道府県コード・市区町村コード + if len(self.record.village_code + self.record.pref_code + self.record.city_code) > 0: + set_clauses.append('village_cd = :village_code') + set_clauses.append('prefc_cd = :pref_code') + set_clauses.append('city_cd = :city_code') + + # 住所カウント + if len(self.record.pref_code) > 0: + set_clauses.append('addr_cnt_kana = :addr_cnt_kana') + set_clauses.append('addr_cnt = :addr_cnt') + + # 住所表示番号 + if len(self.record.hp_addr_number) > 0: + set_clauses.append('addr_display_number = :hp_addr_number') + + # 経営体コード + if len(self.record.mgt_class_code) > 0: + set_clauses.append('manage_cd = :mgt_class_code') + + # 病院種別 + if len(self.record.hp_kind_code) > 0: + set_clauses.append('hp_assrt_cd = :hp_kind_code') + + # 再審査コード + if len(self.record.reexam_flag) > 0: + set_clauses.append('re_exam_cd = :reexam_flag') + + # 未確認フラグ + if len(self.record.uncheck_flag) > 0: + set_clauses.append('unconf_flg = :uncheck_flag') + if self.record.uncheck_flag == '@': + self.query_parameter['uncheck_flag'] = '' + + # 削除予定理由コード + 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'] = '' + + # 重複時相手先コード + 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'] = '' + + # 住所不明理由コード + 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'] = '' + + # 電話番号なしフラグ + 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'] = '' + + # 電話番号 + 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'] = '' + + # 施設代表者コード + 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'] = '' + + # 代表者(カナ) + 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'] = '' + + # 代表者(漢字) ※「@」が大文字 + if len(self.record.president) > 0: + set_clauses.append('inst_repre = :president') + if self.record.president == '@': + self.query_parameter['president'] = '' + + # 開業予定フラグ・開業予定年月 + 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'] = '' + self.query_parameter['open_year_month'] = '' + + # 休院フラグ・休院開始年月 + 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'] = '' + self.query_parameter['close_year_month'] = '' + + # 関連大学親コード + 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'] = '' + + # 病棟閉鎖フラグ + 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'] = '' + + # 病床数(定員) + 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'] = '' + + # 許可ベッド数(合計、精神、結核、感染、その他、一般病床、療養病床) + if not self.record.prmit_bed.count(None) == len(self.record.prmit_bed): + set_clauses.append('prmit_bed_num_sum = :bed_num_sum') + set_clauses.append('prmit_bed_num_mental = :bed_num_psy') + set_clauses.append('prmit_bed_num_tuber = :bed_num_tub') + set_clauses.append('prmit_bed_num_infection = :bed_num_epi') + 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: + set_clauses.append('insp_item_micrb = :inspect_code1') + set_clauses.append('insp_item_serum = :inspect_code2') + set_clauses.append('insp_item_blood = :inspect_code3') + set_clauses.append('insp_item_patho = :inspect_code4') + 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'] = '' + self.query_parameter['inspect_code2'] = '' + self.query_parameter['inspect_code3'] = '' + self.query_parameter['inspect_code4'] = '' + self.query_parameter['inspect_code5'] = '' + self.query_parameter['inspect_code6'] = '' + self.query_parameter['inspect_code7'] = '' + + update_columns = ','.join(set_clauses) + # 何も更新項目が無い場合は更新処理は行わない + if len(update_columns) == 0: + self.queries.append(None) + return + else: + update_columns += ',' + update_query = self.UPDATE_INST_QUERY.format( + update_columns=update_columns + ) + self.queries.append(update_query) + + return + + def __make_delete_insert_trt_query(self): + # 施設診療科目の削除挿入 + # 診療科目(集合項目)のいずれも入力がない場合、何もしない + if sum(len(item) for item in self.record.medsbj_code) == 0: + return + + # 削除 + self.queries.append(self.PHYSICAL_DELETE_TRT_QUERY) + + if self.record.medsbj_code[0] == "@": + return + + # 診療科目1~60 + for medsbj_code in self.record.medsbj_code: + if len(medsbj_code) > 0: + insert_query = self.INSERT_INST_TRT_QUERY.format( + trt_course_cd=f"'{medsbj_code}'" + ) + self.queries.append(insert_query) + return + + def __make_upsert_spcare_query(self): + # 特養医務室の追加、更新 + # DCF親施設コードがない場合、何もしない + if (self.record.dcf_prnt_inst_code == "00" or len(self.record.dcf_prnt_inst_code) == 0): + return + + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_SPCARE_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + self.queries.append(self.INSERT_SPCARE_QUERY) + return + + # 存在する場合はUpdate + if self.record.dcfhp_92id == "@": + self.query_parameter['dcf_prnt_inst_code'] = '' + self.query_parameter['delete_ymd'] = self.query_parameter['execute_date_str_ymd'] + else: + self.query_parameter['delete_ymd'] = None + + self.queries.append(self.UPDATE_SPCARE_QUERY) + + return diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_med_area_city_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_med_area_city_mapper.py new file mode 100644 index 00000000..e046d558 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_med_area_city_mapper.py @@ -0,0 +1,117 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_med_area_city import ComMedAreaCity + + +class ComMedAreaCityMapper(UltmarcTableMapper): + """レイアウト区分124: COM_医療圏都道府県市町村対応表 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_med_area_city + WHERE + prefc_cd = :prefc_cd + AND + med_sphe_cd = :med_sphe_cd + AND + jis_prefc_cd = :jis_prefc_cd + AND + jis_city_cd = :jis_city_cd + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_med_area_city + ( + prefc_cd, + med_sphe_cd, + jis_prefc_cd, + jis_city_cd, + zen_prefcode, + zen_medareacode, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :prefc_cd, + :med_sphe_cd, + :jis_prefc_cd, + :jis_city_cd, + :zen_prefcode, + :zen_medareacode, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # データ更新用SQL + UPDATE_QUERY = """\ + UPDATE + src05.com_med_area_city + SET + zen_prefcode = :zen_prefcode, + zen_medareacode = :zen_medareacode, + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + prefc_cd = :prefc_cd + AND + med_sphe_cd = :med_sphe_cd + AND + jis_prefc_cd = :jis_prefc_cd + AND + jis_city_cd = :jis_city_cd + """ + + # 『修正区分がB(修正)かつ追加削除区分が1(退職)』の場合、物理削除 + PHYSICAL_DELETE_QUERY = """\ + DELETE FROM + src05.com_med_area_city + WHERE + prefc_cd = :prefc_cd + AND + med_sphe_cd = :med_sphe_cd + AND + jis_prefc_cd = :jis_prefc_cd + AND + jis_city_cd = :jis_city_cd + """ + + record: ComMedAreaCity + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComMedAreaCity) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 『修正区分がB(修正)かつ追加削除区分が1(退職)』の場合、物理削除 + if self.record.maintflag == 'B' and self.record.addDelDiv == '1': + self.queries.append(self.PHYSICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合はUpdate + return self.UPDATE_QUERY diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_med_prefc_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_med_prefc_mapper.py new file mode 100644 index 00000000..475a6b9a --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_med_prefc_mapper.py @@ -0,0 +1,129 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_med_prefc import ComMedPrefc + + +class ComMedPrefcMapper(UltmarcTableMapper): + """レイアウト区分121: COM_医療圏都道府県 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_med_prefc + WHERE + pref_code = :pref_code + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_med_prefc + ( + pref_code, + rev_date, + post_date, + psy_bednumtg, + psy_bednumgen, + psy_bednumdate, + psy_eqbednum, + tb_bednumtg, + tb_bednumgen, + tb_bednumdate, + tb_eqbednum, + inf_bednumtg, + inf_bednumgen, + inf_bednumdate, + inf_eqbednum, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :pref_code, + :rev_date, + :post_date, + :psy_bednum_tg, + :psy_bednum_gen, + :psy_bednum_date, + :psy_eqbed_num, + :tb_bednum_tg, + :tb_bednum_gen, + :tb_bednum_date, + :tb_eqbed_num, + :inf_bednum_tg, + :inf_bednum_gen, + :inf_bednum_date, + :inf_eqbed_num, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # データ更新用SQL + UPDATE_QUERY = """\ + UPDATE + src05.com_med_prefc + SET + rev_date = :rev_date, + post_date = :post_date, + psy_bednumtg = :psy_bednum_tg, + psy_bednumgen = :psy_bednum_gen, + psy_bednumdate = :psy_bednum_date, + psy_eqbednum = :psy_eqbed_num, + tb_bednumtg = :tb_bednum_tg, + tb_bednumgen = :tb_bednum_gen, + tb_bednumdate = :tb_bednum_date, + tb_eqbednum = :tb_eqbed_num, + inf_bednumtg = :inf_bednum_tg, + inf_bednumgen = :inf_bednum_gen, + inf_bednumdate = :inf_bednum_date, + inf_eqbednum = :inf_eqbed_num, + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + pref_code = :pref_code + """ + + # 修正区分が「C(削除)」の場合、物理削除 + PHYSICAL_DELETE_QUERY = """\ + DELETE FROM + src05.com_med_prefc + WHERE + pref_code = :pref_code + """ + + record: ComMedPrefc + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComMedPrefc) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 修正区分がC(削除)の場合、物理削除 + if self.record.maintflag == 'C': + self.queries.append(self.PHYSICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合はUpdate + return self.UPDATE_QUERY diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_policy_med_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_policy_med_mapper.py new file mode 100644 index 00000000..17b1d937 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_policy_med_mapper.py @@ -0,0 +1,97 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper + +from src.batch.ultmarc.utmp_tables.tables.com_policy_med import ComPolicyMed + + +class ComPolicyMedMapper(UltmarcTableMapper): + """レイアウト区分028: COM_政策医療 登録処理 """ + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_policy_med + WHERE + policy_med_cd = :policy_med_cd + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_policy_med + ( + policy_med_cd, + field_name, + regist_ymd, + delete_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :policy_med_cd, + :field_name, + :execute_date_str_ymd, + NULL, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + # 更新用SQL + UPDATE_QUERY = """\ + UPDATE src05.com_policy_med + SET + field_name = :field_name, + update_ymd = :execute_date_str_ymd, + delete_ymd = NULL, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + policy_med_cd = :policy_med_cd + """ + + # 修正区分が「C(削除)」の場合の更新SQL + # 削除年月日 ← システム日付 + LOGICAL_DELETE_QUERY = """\ + UPDATE + src05.com_policy_med + SET + delete_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + policy_med_cd = :policy_med_cd + """ + record: ComPolicyMed + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComPolicyMed) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 修正区分がC(削除)の場合、論理削除 + if self.record.maint_flag == 'C': + self.queries.append(self.LOGICAL_DELETE_QUERY) + return + + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + self.queries.append(self.INSERT_QUERY) + return + + # 更新の場合 + if self.record.field_name != '': + self.queries.append(self.UPDATE_QUERY) + return + else: + self.queries.append(None) + return diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_base_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_base_mapper.py new file mode 100644 index 00000000..7605fc30 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_base_mapper.py @@ -0,0 +1,455 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_prefc_med_base import ComPrefcMedBase + + +class ComPrefcMedBaseMapper(UltmarcTableMapper): + """レイアウト区分132: COM_都道府県医療機能情報(基本)""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_prefc_med_base + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_prefc_med_base + ( + dcf_dsf_inst_cd, + info_date, + home_page, + hppre_flg, + expre_flg, + trial_flg, + trial_contcount, + trialwhet_from, + trialwhet_to, + equipment_flg, + cos_disease_flg, + cos_surgery, + specialclinic_flg, + establishment_flg, + critical_flg, + cop_system, + sys_exists_flg, + sys_inspection, + sys_prescription, + sys_reserv, + icduse_flg, + echart_flg, + fulltime_flg, + fulltime_count, + ge_patient_avg, + mt_patient_avg, + mc_patient_avg, + ca_patient_avg, + pys_patient_avg, + tub_patient_avg, + inf_patient_avg, + patient_avg_sum, + patient_avg_from, + patient_avg_to, + cl_patient_avg, + cl_patient_avg_from, + cl_patient_avg_to, + hm_patient_avg, + hm_patient_avg_from, + hm_patient_avg_to, + ge_patient_ex, + mt_patient_ex, + mc_patient_ex, + ca_patient_ex, + pys_patient_ex, + tub_patient_ex, + inf_patient_ex, + patient_ex_sum, + patient_ex_from, + patient_ex_to, + cl_patient_ex, + cl_patient_ex_from, + cl_patient_ex_to, + hm_patient_ex, + hm_patient_ex_from, + hm_patient_ex_to, + ge_stay_avg, + mt_stay_avg, + mc_stay_avg, + ca_stay_avg, + pys_stay_avg, + tub_stay_avg, + inf_stay_avg, + stay_avg_sum, + stay_avg_from, + stay_avg_to, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :dcfdsf_inst_code, + :info_date, + :home_page, + :hppre_flg, + :expre_flg, + :trial_flg, + :trial_cont_count, + :trial_whet_from, + :trial_whet_to, + :equipment_flg, + :cos_disease_flg, + :cos_surgery, + :specialclinic_flg, + :establishment_flg, + :critical_flg, + :cop_system, + :sys_exists_flg, + :sys_inspection, + :sys_prescription, + :sys_reserv, + :icduse_flg, + :echart_flg, + :fulltime_flg, + :fulltime_count, + :ge_patient_avg, + :mt_patient_avg, + :mc_patient_avg, + :ca_patient_avg, + :pys_patient_avg, + :tub_patient_avg, + :inf_patient_avg, + :patient_avg_sum, + :patient_avg_from, + :patient_avg_to, + :cl_patient_avg, + :cl_patient_avg_from, + :cl_patient_avg_to, + :hm_patient_avg, + :hm_patient_avg_from, + :hm_patient_avg_to, + :ge_patient_ex, + :mt_patient_ex, + :mc_patient_ex, + :ca_patient_ex, + :pys_patient_ex, + :tub_patient_ex, + :inf_patient_ex, + :patient_ex_sum, + :patient_ex_from, + :patient_ex_to, + :cl_patient_ex, + :cl_patient_ex_from, + :cl_patient_ex_to, + :hm_patient_ex, + :hm_patient_ex_from, + :hm_patient_ex_to, + :ge_stay_avg, + :mt_stay_avg, + :mc_stay_avg, + :ca_stay_avg, + :pys_stay_avg, + :tub_stay_avg, + :inf_stay_avg, + :stay_avg_sum, + :stay_avg_from, + :stay_avg_to, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # データ変更用SQL + UPDATE_QUERY = """\ + UPDATE + src05.com_prefc_med_base + SET + {update_columns} + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + """ + + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + PHYSICAL_DELETE_QUERY = """\ + DELETE FROM + src05.com_prefc_med_base + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + """ + + record: ComPrefcMedBase + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComPrefcMedBase) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + if self.record.maint_flag == 'B' and self.record.adddel_div == '1': + self.queries.append(self.PHYSICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合ではUpdate + return self.__make_update_query() + + def __make_update_query(self): + set_clauses = [] # 設定項目 + + # 情報年月日 + if len(self.record.info_date) > 0: + set_clauses.append('info_date = :info_date') + if self.record.info_date == '@': + self.query_parameter['info_date'] = None + + # 案内用ホームページアドレス + if len(self.record.home_page) > 0: + set_clauses.append('home_page = :home_page') + if self.record.home_page == '@': + self.query_parameter['home_page'] = None + + # 院内処方フラグ + if len(self.record.hppre_flg) > 0: + set_clauses.append('hppre_flg = :hppre_flg') + if self.record.hppre_flg == '@': + self.query_parameter['hppre_flg'] = None + + # 院外処方フラグ + if len(self.record.expre_flg) > 0: + set_clauses.append('expre_flg = :expre_flg') + if self.record.expre_flg == '@': + self.query_parameter['expre_flg'] = None + + # 治験の実施 + if len(self.record.trial_flg) > 0: + set_clauses.append('trial_flg = :trial_flg') + set_clauses.append('trial_contcount = :trial_cont_count') + set_clauses.append('trialwhet_from = :trial_whet_from') + set_clauses.append('trialwhet_to = :trial_whet_to') + if self.record.trial_flg == '@': + self.query_parameter['trial_flg'] = None + self.query_parameter['trial_cont_count'] = None + self.query_parameter['trial_whet_from'] = None + self.query_parameter['trial_whet_to'] = None + + # 保有する施設設備フラグ + if len(self.record.equipment_flg) > 0: + set_clauses.append('equipment_flg = :equipment_flg') + if self.record.equipment_flg == '@': + self.query_parameter['equipment_flg'] = None + + # 対応することができる疾患・治療の内容フラグ + if len(self.record.cos_disease_flg) > 0: + set_clauses.append('cos_disease_flg = :cos_disease_flg') + if self.record.cos_disease_flg == '@': + self.query_parameter['cos_disease_flg'] = None + + # 対応することができる短期滞在手術フラグ + if len(self.record.cos_surgery) > 0: + set_clauses.append('cos_surgery = :cos_surgery') + if self.record.cos_surgery == '@': + self.query_parameter['cos_surgery'] = None + + # 専門外来フラグ + if len(self.record.specialclinic_flg) > 0: + set_clauses.append('specialclinic_flg = :specialclinic_flg') + if self.record.specialclinic_flg == '@': + self.query_parameter['specialclinic_flg'] = None + + # 地域医療連携体制_窓口設置フラグ + if len(self.record.establishment_flg) > 0: + set_clauses.append('establishment_flg = :establishment_flg') + if self.record.establishment_flg == '@': + self.query_parameter['establishment_flg'] = None + + # 地域医療連携体制_地域連携パスフラグ + if len(self.record.critical_flg) > 0: + set_clauses.append('critical_flg = :critical_flg') + if self.record.critical_flg == '@': + self.query_parameter['critical_flg'] = None + + # 入院診療計画策定時における院内の連携体制 + if len(self.record.cop_system) > 0: + set_clauses.append('cop_system = :cop_system') + if self.record.cop_system == '@': + self.query_parameter['cop_system'] = None + + # オーダリングシステム + if len(self.record.sys_exists_flg) > 0: + set_clauses.append('sys_exists_flg = :sys_exists_flg') + set_clauses.append('sys_inspection = :sys_inspection') + set_clauses.append('sys_prescription = :sys_prescription') + set_clauses.append('sys_reserv = :sys_reserv') + if self.record.sys_exists_flg == '@': + self.query_parameter['sys_exists_flg'] = None + self.query_parameter['sys_inspection'] = None + self.query_parameter['sys_prescription'] = None + self.query_parameter['sys_reserv'] = None + + # ICDコード利用フラグ + if len(self.record.icduse_flg) > 0: + set_clauses.append('icduse_flg = :icduse_flg') + if self.record.icduse_flg == '@': + self.query_parameter['icduse_flg'] = None + + # 電子カルテフラク + if len(self.record.echart_flg) > 0: + set_clauses.append('echart_flg = :echart_flg') + if self.record.echart_flg == '@': + self.query_parameter['echart_flg'] = None + + # 専任従事者 + if len(self.record.fulltime_flg) > 0: + set_clauses.append('fulltime_flg = :fulltime_flg') + set_clauses.append('fulltime_count = :fulltime_count') + if self.record.fulltime_flg == '@': + self.query_parameter['fulltime_flg'] = None + self.query_parameter['fulltime_count'] = None + + # 病床患者数平均 + if len(self.record.ge_patient_avg) > 0: + set_clauses.append('ge_patient_avg = :ge_patient_avg') + set_clauses.append('mt_patient_avg = :mt_patient_avg') + set_clauses.append('mc_patient_avg = :mc_patient_avg') + set_clauses.append('ca_patient_avg = :ca_patient_avg') + set_clauses.append('pys_patient_avg = :pys_patient_avg') + set_clauses.append('tub_patient_avg = :inf_patient_avg') + set_clauses.append('inf_patient_avg = :tub_patient_avg') + set_clauses.append('patient_avg_sum = :patient_avg_sum') + set_clauses.append('patient_avg_from = :patient_avg_from') + set_clauses.append('patient_avg_to = :patient_avg_to') + if self.record.ge_patient_avg == '@': + self.query_parameter['ge_patient_avg'] = None + self.query_parameter['mt_patient_avg'] = None + self.query_parameter['mc_patient_avg'] = None + self.query_parameter['ca_patient_avg'] = None + self.query_parameter['pys_patient_avg'] = None + self.query_parameter['inf_patient_avg'] = None + self.query_parameter['tub_patient_avg'] = None + self.query_parameter['patient_avg_sum'] = None + self.query_parameter['patient_avg_from'] = None + self.query_parameter['patient_avg_to'] = None + + # 患者数平均 + if len(self.record.cl_patient_avg) > 0: + set_clauses.append('cl_patient_avg = :cl_patient_avg') + set_clauses.append('cl_patient_avg_from = :cl_patient_avg_from') + set_clauses.append('cl_patient_avg_to = :cl_patient_avg_to') + if self.record.cl_patient_avg == '@': + self.query_parameter['cl_patient_avg'] = None + self.query_parameter['cl_patient_avg_from'] = None + self.query_parameter['cl_patient_avg_to'] = None + + # 患者数平均 + if len(self.record.hm_patient_avg) > 0: + set_clauses.append('hm_patient_avg = :hm_patient_avg') + set_clauses.append('hm_patient_avg_from = :hm_patient_avg_from') + set_clauses.append('hm_patient_avg_to = :hm_patient_avg_to') + if self.record.hm_patient_avg == '@': + self.query_parameter['hm_patient_avg'] = None + self.query_parameter['hm_patient_avg_from'] = None + self.query_parameter['hm_patient_avg_to'] = None + + # 患者数延数 + if len(self.record.ge_patient_ex) > 0: + set_clauses.append('ge_patient_ex = :ge_patient_ex') + set_clauses.append('mt_patient_ex = :mt_patient_ex') + set_clauses.append('mc_patient_ex = :mc_patient_ex') + set_clauses.append('ca_patient_ex = :ca_patient_ex') + set_clauses.append('pys_patient_ex = :pys_patient_ex') + set_clauses.append('tub_patient_ex = :tub_patient_ex') + set_clauses.append('inf_patient_ex = :inf_patient_ex') + set_clauses.append('patient_ex_sum = :patient_ex_sum') + set_clauses.append('patient_ex_from = :patient_ex_from') + set_clauses.append('patient_ex_to = :patient_ex_to') + if self.record.ge_patient_ex == '@': + self.query_parameter['ge_patient_ex'] = None + self.query_parameter['mt_patient_ex'] = None + self.query_parameter['mc_patient_ex'] = None + self.query_parameter['ca_patient_ex'] = None + self.query_parameter['pys_patient_ex'] = None + self.query_parameter['tub_patient_ex'] = None + self.query_parameter['inf_patient_ex'] = None + self.query_parameter['patient_ex_sum'] = None + self.query_parameter['patient_ex_from'] = None + self.query_parameter['patient_ex_to'] = None + + # 患者数延数 + if len(self.record.cl_patient_ex) > 0: + set_clauses.append('cl_patient_ex = :cl_patient_ex') + set_clauses.append('cl_patient_ex_from = :cl_patient_ex_from') + set_clauses.append('cl_patient_ex_to = :cl_patient_ex_to') + if self.record.cl_patient_ex == '@': + self.query_parameter['cl_patient_ex'] = None + self.query_parameter['cl_patient_ex_from'] = None + self.query_parameter['cl_patient_ex_to'] = None + + # 患者数延数 + if len(self.record.hm_patient_ex) > 0: + set_clauses.append('hm_patient_ex = :hm_patient_ex') + set_clauses.append('hm_patient_ex_from = :hm_patient_ex_from') + set_clauses.append('hm_patient_ex_to = :hm_patient_ex_to') + if self.record.hm_patient_ex == '@': + self.query_parameter['hm_patient_ex'] = None + self.query_parameter['hm_patient_ex_from'] = None + self.query_parameter['hm_patient_ex_to'] = None + + # 平均在院日数 + if len(self.record.ge_stay_avg) > 0: + set_clauses.append('ge_stay_avg = :ge_stay_avg') + set_clauses.append('mt_stay_avg = :mt_stay_avg') + set_clauses.append('mc_stay_avg = :mc_stay_avg') + set_clauses.append('ca_stay_avg = :ca_stay_avg') + set_clauses.append('pys_stay_avg = :pys_stay_avg') + set_clauses.append('tub_stay_avg = :tub_stay_avg') + set_clauses.append('inf_stay_avg = :inf_stay_avg') + set_clauses.append('stay_avg_sum = :stay_avg_sum') + set_clauses.append('stay_avg_from = :stay_avg_from') + set_clauses.append('stay_avg_to = :stay_avg_to') + if self.record.ge_stay_avg == '@': + self.query_parameter['ge_stay_avg'] = None + self.query_parameter['mt_stay_avg'] = None + self.query_parameter['mc_stay_avg'] = None + self.query_parameter['ca_stay_avg'] = None + self.query_parameter['pys_stay_avg'] = None + self.query_parameter['tub_stay_avg'] = None + self.query_parameter['inf_stay_avg'] = None + self.query_parameter['stay_avg_sum'] = None + self.query_parameter['stay_avg_from'] = None + self.query_parameter['stay_avg_to'] = None + + update_columns = ','.join(set_clauses) + # 何も更新項目が無い場合はNoneとする(更新処理は行わない) + if len(update_columns) == 0: + return None + else: + # 末尾にカンマを付けてSET句を完成させる + update_columns += ',' + update_query = self.UPDATE_QUERY.format( + update_columns=update_columns + ) + return update_query diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_dis_treat_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_dis_treat_mapper.py new file mode 100644 index 00000000..6298160b --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_dis_treat_mapper.py @@ -0,0 +1,105 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_prefc_med_dis_treat import \ + ComPrefcMedDisTreat + + +class ComPrefcMedDisTreatMapper(UltmarcTableMapper): + """レイアウト区分134: COM_都道府県医療機能情報(疾患治療)""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_prefc_med_dis_treat + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + treatment_code = :treatment_code + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_prefc_med_dis_treat + ( + dcf_dsf_inst_cd, + treatment_code, + pre_num, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :dcfdsf_inst_code, + :treatment_code, + :pre_num, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # データ変更用SQL + UPDATE_QUERY = """\ + UPDATE + src05.com_prefc_med_dis_treat + SET + pre_num = :pre_num, + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + treatment_code = :treatment_code + """ + + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + PHYSICAL_DELETE_QUERY = """\ + DELETE FROM + src05.com_prefc_med_dis_treat + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + treatment_code = :treatment_code + """ + + record: ComPrefcMedDisTreat + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComPrefcMedDisTreat) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + if self.record.maint_flag == 'B' and self.record.adddel_div == '1': + self.queries.append(self.PHYSICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合はUpdate + # 前年件数が空の場合は更新しない + if self.record.pre_num is not None: + if self.record.pre_num == '@': + self.query_parameter['pre_num'] = None + return self.UPDATE_QUERY + else: + return None diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_equpment_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_equpment_mapper.py new file mode 100644 index 00000000..ed9cf467 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_equpment_mapper.py @@ -0,0 +1,105 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_prefc_med_equpment import \ + ComPrefcMedEqupment + + +class ComPrefcMedEqupmentMapper(UltmarcTableMapper): + """レイアウト区分133: COM_都道府県医療機能情報(施設設備)""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_prefc_med_equpment + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + equipment_code = :equipment_code + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_prefc_med_equpment + ( + dcf_dsf_inst_cd, + equipment_code, + bednum, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :dcfdsf_inst_code, + :equipment_code, + :bed_num, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # データ変更用SQL + UPDATE_QUERY = """\ + UPDATE + src05.com_prefc_med_equpment + SET + bednum = :bed_num, + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + equipment_code = :equipment_code + """ + + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + PHYSICAL_DELETE_QUERY = """\ + DELETE FROM + src05.com_prefc_med_equpment + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + equipment_code = :equipment_code + """ + + record: ComPrefcMedEqupment + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComPrefcMedEqupment) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + if self.record.maint_flag == 'B' and self.record.adddel_div == '1': + self.queries.append(self.PHYSICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合はUpdate + # 病床数が空の場合は更新しない + if self.record.bed_num is not None: + if self.record.bed_num == '@': + self.query_parameter['bed_num'] = None + return self.UPDATE_QUERY + else: + return None diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_sojourn_ope_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_sojourn_ope_mapper.py new file mode 100644 index 00000000..f2c84587 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_sojourn_ope_mapper.py @@ -0,0 +1,95 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_prefc_med_sojourn_ope import ComPrefcMedSojournOpe + + +class ComPrefcMedSojournOpeMapper(UltmarcTableMapper): + """レイアウト区分135: COM_都道府県医療機能情報(短期滞在手術)""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_prefc_med_sojourn_ope + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + cos_surgery_code = :cos_surgery_code + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_prefc_med_sojourn_ope + ( + dcf_dsf_inst_cd, + cos_surgery_code, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :dcfdsf_inst_code, + :cos_surgery_code, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # データ変更用SQL + UPDATE_QUERY = """\ + UPDATE + src05.com_prefc_med_sojourn_ope + SET + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + cos_surgery_code = :cos_surgery_code + """ + + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + PHYSICAL_DELETE_QUERY = """\ + DELETE FROM + src05.com_prefc_med_sojourn_ope + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + cos_surgery_code = :cos_surgery_code + """ + + record: ComPrefcMedSojournOpe + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComPrefcMedSojournOpe) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + if self.record.maint_flag == 'B' and self.record.adddel_div == '1': + self.queries.append(self.PHYSICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合はUpdate + return self.UPDATE_QUERY diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_sp_outpat_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_sp_outpat_mapper.py new file mode 100644 index 00000000..182616d5 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_prefc_med_sp_outpat_mapper.py @@ -0,0 +1,125 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_prefc_med_sp_outpat import ComPrefcMedSpOutpat + + +class ComPrefcMedSpOutpatMapper(UltmarcTableMapper): + """レイアウト区分136: COM_都道府県医療機能情報(専門外来)""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_prefc_med_sp_outpat + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + specialclinic_name = :specialclinic_name + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_prefc_med_sp_outpat + ( + dcf_dsf_inst_cd, + specialclinic_name, + sort_key, + sectsub_cd, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :dcfdsf_inst_code, + :specialclinic_name, + :sort_key, + :sectsub_cd, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # データ変更用SQL + UPDATE_QUERY = """\ + UPDATE + src05.com_prefc_med_sp_outpat + SET + {update_columns} + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + specialclinic_name = :specialclinic_name + """ + + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + PHYSICAL_DELETE_QUERY = """\ + DELETE FROM + src05.com_prefc_med_sp_outpat + WHERE + dcf_dsf_inst_cd = :dcfdsf_inst_code + AND + specialclinic_name = :specialclinic_name + """ + + record: ComPrefcMedSpOutpat + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComPrefcMedSpOutpat) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + if self.record.maint_flag == 'B' and self.record.adddel_div == '1': + self.queries.append(self.PHYSICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合ではUpdate + return self.__make_update_query() + + def __make_update_query(self): + set_clauses = [] # 設定項目 + + # ソートキー + if len(self.record.sort_key) > 0: + set_clauses.append('sort_key = :sort_key') + + # 分類補助コード + if len(self.record.sectsub_cd) > 0: + set_clauses.append('sectsub_cd = :sectsub_cd') + if self.record.sectsub_cd == '@': + self.query_parameter['sectsub_cd'] = None + + update_columns = ','.join(set_clauses) + # 何も更新項目が無い場合はNoneとする(更新処理は行わない) + if len(update_columns) == 0: + return None + else: + # 末尾にカンマを付けてSET句を完成させる + update_columns += ',' + update_query = self.UPDATE_QUERY.format( + update_columns=update_columns + ) + return update_query diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_regn_critic_pass_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_regn_critic_pass_mapper.py new file mode 100644 index 00000000..1bfbb38e --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_regn_critic_pass_mapper.py @@ -0,0 +1,97 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_regn_critic_pass import ComRegnCriticPass + + +class ComRegnCriticPassMapper(UltmarcTableMapper): + """レイアウト区分026: COM_地域クリティカルパス 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_regn_critic_pass + WHERE + regn_co_critic_pass_cd = :regn_co_critic_pass_cd + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_regn_critic_pass + ( + regn_co_critic_pass_cd, + disease_name_kanji, + regist_ymd, + delete_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :regn_co_critic_pass_cd, + :disease_name_kanji, + :execute_date_str_ymd, + NULL, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + UPDATE_QUERY = """\ + UPDATE + src05.com_regn_critic_pass + SET + disease_name_kanji = :disease_name_kanji, + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + regn_co_critic_pass_cd = :regn_co_critic_pass_cd + """ + + # 修正区分が「C(削除)」の場合の更新SQL + LOGICAL_DELETE_QUERY = """\ + UPDATE + src05.com_regn_critic_pass + SET + delete_ymd = :execute_date_str_ymd, + sys_update_date = :execute_date_str_ymd, + update_prgm_id = :program_name + WHERE + regn_co_critic_pass_cd = :regn_co_critic_pass_cd + """ + record: ComRegnCriticPass + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComRegnCriticPass) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 修正区分がC(削除)の場合、論理削除 + if self.record.maint_flag == 'C': + self.queries.append(self.LOGICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合はUpdate + if len(self.record.disease_name_kanji) == 0: + return None + else: + return self.UPDATE_QUERY diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_rehabili_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_rehabili_mapper.py new file mode 100644 index 00000000..1ff87694 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_rehabili_mapper.py @@ -0,0 +1,96 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_rehabili import ComRehabili + + +class ComRehabiliMapper(UltmarcTableMapper): + """レイアウト区分027: COM_疾患別リハビリテーション科 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_rehabili + WHERE + rehabili_cd = :rehabili_cd + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_rehabili + ( + rehabili_cd, + rehabili_name, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :rehabili_cd, + :rehabili_name, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + UPDATE_QUERY = """\ + UPDATE + src05.com_rehabili + SET + rehabili_name = :rehabili_name, + update_ymd = :execute_date_str_ymd, + delete_ymd = NULL, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + rehabili_cd = :rehabili_cd + """ + + # 修正区分が「C(削除)」の場合の更新SQL + LOGICAL_DELETE_QUERY = """\ + UPDATE + src05.com_rehabili + SET + delete_ymd = :execute_date_str_ymd, + sys_update_date = :execute_date_str_ymd, + update_prgm_id = :program_name + WHERE + rehabili_cd = :rehabili_cd + """ + record: ComRehabili + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComRehabili) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 修正区分がC(削除)の場合、論理削除 + if self.record.maint_flag == 'C': + self.queries.append(self.LOGICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合ではUpdate + if self.record.rehabili_name == '': + return None + else: + return self.UPDATE_QUERY diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_snd_med_sphe_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_snd_med_sphe_mapper.py new file mode 100644 index 00000000..c1c50269 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_snd_med_sphe_mapper.py @@ -0,0 +1,113 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_snd_med_sphe import ComSndMedSphe + + +class ComSndMedSpheMapper(UltmarcTableMapper): + """レイアウト区分123: COM_医療圏二次医療圏 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_snd_med_sphe + WHERE + prefc_cd = :prefc_cd + AND + med_sphe_cd = :med_sphe_cd + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_snd_med_sphe + ( + prefc_cd, + med_sphe_cd, + thrd_cd, + snd_med_sphe_name, + requd_bed_or_equip_target, + exist_bed_num, + exist_bed_num_regist_ymd, + plsmns_bed_num, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :prefc_cd, + :med_sphe_cd, + :thrd_cd, + :snd_med_sphe_name, + :requd_bed_or_equip_target, + :exist_bed_num, + :exist_bed_num_regist_ymd, + :plsmns_bed_num, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # データ更新用SQL + UPDATE_QUERY = """\ + UPDATE + src05.com_snd_med_sphe + SET + thrd_cd = :thrd_cd, + snd_med_sphe_name = :snd_med_sphe_name, + requd_bed_or_equip_target = :requd_bed_or_equip_target, + exist_bed_num = :exist_bed_num, + exist_bed_num_regist_ymd = :exist_bed_num_regist_ymd, + plsmns_bed_num = :plsmns_bed_num, + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + prefc_cd = :prefc_cd + AND + med_sphe_cd = :med_sphe_cd + """ + + # 修正区分が「C(削除)」の場合、物理削除 + PHYSICAL_DELETE_QUERY = """\ + DELETE FROM + src05.com_snd_med_sphe + WHERE + prefc_cd = :prefc_cd + AND + med_sphe_cd = :med_sphe_cd + """ + + record: ComSndMedSphe + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComSndMedSphe) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 修正区分がC(削除)の場合、物理削除 + if self.record.maintflag == 'C': + self.queries.append(self.PHYSICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合はUpdate + return self.UPDATE_QUERY 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 new file mode 100644 index 00000000..18b4c64f --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_sp_field_mapper.py @@ -0,0 +1,146 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_sp_field import ComSpField + + +class ComSpFieldMapper(UltmarcTableMapper): + """レイアウト区分511: COM_専門分野 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_sp_field + WHERE + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + and + specialst_cd = :specialst_cd + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_sp_field + ( + dcf_pcf_dr_cd, + specialst_cd, + specialst_maint_div, + specialst_flg, + specialst_publsh_ymd, + ackn_med_flg, + ackn_med_publsh_ymd, + guide_med_flg, + guide_med_publsh_ymd, + regist_ymd, + delete_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :dcf_pcf_dr_cd, + :specialst_cd, + :specialst_maint_div, + :specialst_flg, + :specialst_publsh_ymd, + :ackn_med_flg, + :ackn_med_publsh_ymd, + :guide_med_flg, + :guide_med_publsh_ymd, + :execute_date_str_ymd, + NULL, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + UPDATE_QUERY = """\ + UPDATE + src05.com_sp_field + SET + {update_columns} + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + and + specialst_cd = :specialst_cd + """ + + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + PHYSICAL_DELETE_QUERY = """\ + DELETE FROM + src05.com_sp_field + WHERE + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + and + specialst_cd = :specialst_cd + """ + record: ComSpField + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComSpField) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 『修正区分がB(修正)かつ専門医メンテナンス区分が1(退職)』の場合、物理削除 + if self.record.maint_flag == 'B' and self.record.specialst_maint_div == '1': + self.queries.append(self.PHYSICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + set_clauses = [] # 設定項目 + + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合ではUpdate + if len(self.record.specialst_maint_div) > 0: + set_clauses.append('specialst_maint_div = :specialst_maint_div') + + if len(self.record.specialst_flg) > 0: + set_clauses.append('specialst_flg = :specialst_flg') + set_clauses.append('specialst_publsh_ymd = :specialst_publsh_ymd') + if self.record.specialst_flg == '@': + self.query_parameter['specialst_flg'] = '' + self.query_parameter['specialst_publsh_ymd'] = '' + + 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.ackn_med_flg == '@': + self.query_parameter['ackn_med_flg'] = '' + self.query_parameter['ackn_med_publsh_ymd'] = '' + + 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') + if self.record.guide_med_flg == '@': + self.query_parameter['guide_med_flg'] = '' + self.query_parameter['guide_med_publsh_ymd'] = '' + + update_columns = ','.join(set_clauses) + # 何も更新項目が無い場合はNoneとする(更新処理は行わない) + if len(update_columns) == 0: + return None + else: + # 末尾にカンマを付けてSET句を完成させる + update_columns += ',' + update_query = self.UPDATE_QUERY.format( + update_columns=update_columns + ) + return update_query diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_thrd_med_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_thrd_med_mapper.py new file mode 100644 index 00000000..a51eb4be --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_thrd_med_mapper.py @@ -0,0 +1,98 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_thrd_med import ComThrdMed + + +class ComThrdMedMapper(UltmarcTableMapper): + """レイアウト区分122: COM_医療圏3次マスタ 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_thrd_med + WHERE + prefcode = :pref_code + AND + thrd_cd = :thrd_cd + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_thrd_med + ( + prefcode, + thrd_cd, + thrd_med_sphe_name, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :pref_code, + :thrd_cd, + :thrd_med_sphe_name, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # データ更新用SQL + UPDATE_QUERY = """\ + UPDATE + src05.com_thrd_med + SET + thrd_med_sphe_name = :thrd_med_sphe_name, + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + prefcode = :pref_code + AND + thrd_cd = :thrd_cd + """ + + # 修正区分が「C(削除)」の場合、物理削除 + PHYSICAL_DELETE_QUERY = """\ + DELETE FROM + src05.com_thrd_med + WHERE + prefcode = :pref_code + AND + thrd_cd = :thrd_cd + """ + + record: ComThrdMed + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComThrdMed) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 修正区分がC(削除)の場合、物理削除 + if self.record.maintflag == 'C': + self.queries.append(self.PHYSICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合はUpdate + return self.UPDATE_QUERY diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_trt_course_mapper.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_trt_course_mapper.py new file mode 100644 index 00000000..e8b4388f --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/table_mapper/concrete/com_trt_course_mapper.py @@ -0,0 +1,99 @@ +from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ + UltmarcTableMapper +from src.batch.ultmarc.utmp_tables.tables.com_trt_course import ComTrtCourse + + +class ComTrtCourseMapper(UltmarcTableMapper): + """レイアウト区分001: COM_診療科目 登録処理""" + + # レコード存在確認SQL + RECORD_EXISTS_QUERY = """\ + SELECT + COUNT(*) AS count_num + FROM + src05.com_trt_course + WHERE + trt_course_cd = :trt_course_cd + """ + # データ登録用SQL + INSERT_QUERY = """\ + INSERT INTO src05.com_trt_course + ( + trt_course_cd, + trt_course_name_kana, + trt_course_name_abb, + trt_course_name, + regist_ymd, + sys_regist_date, + regist_prgm_id, + sys_update_date, + update_prgm_id + ) + VALUES ( + :trt_course_cd, + :trt_course_name_kana, + :trt_course_name_abb, + :trt_course_name, + :execute_date_str_ymd, + :execute_datetime, + :program_name, + :execute_datetime, + :program_name + ) + """ + + # 更新用SQL + UPDATE_QUERY = """\ + UPDATE + src05.com_trt_course + SET + trt_course_name_kana = :trt_course_name_kana, + trt_course_name_abb = :trt_course_name_abb, + trt_course_name = :trt_course_name, + update_ymd = :execute_date_str_ymd, + sys_update_date = :execute_datetime, + update_prgm_id = :program_name + WHERE + trt_course_cd = :trt_course_cd + """ + + # 修正区分が「C(削除)」の場合の更新SQL + LOGICAL_DELETE_QUERY = """\ + UPDATE + src05.com_trt_course + SET + delete_ymd = :execute_date_str_ymd, + sys_update_date = :execute_date_str_ymd, + update_prgm_id = :program_name + WHERE + trt_course_cd = :trt_course_cd + """ + record: ComTrtCourse + + def __init__(self, record: list[str], db) -> None: + super().__init__(record, db, ComTrtCourse) + program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている) + # モジュール名をクエリパラメータに設定 + self.query_parameter['program_name'] = program_name + # 読み込んだレコード値もクエリパラメータに追加 + self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()} + + def make_query(self): + # 修正区分がC(削除)の場合、論理削除 + if self.record.maint_flag == 'C': + self.queries.append(self.LOGICAL_DELETE_QUERY) + return + + # 追加、更新の場合 + self.queries.append(self.__make_upsert_query()) + return + + def __make_upsert_query(self): + # レコードの存在確認 + record_count = self.db.execute_select(self.RECORD_EXISTS_QUERY, self.query_parameter) + # 存在しない場合はInsert + if record_count[0]['count_num'] == 0: + return self.INSERT_QUERY + + # 存在する場合ではUpdate + return self.UPDATE_QUERY diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_alma_depart_disc.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_alma_depart_disc.py new file mode 100644 index 00000000..ae508b35 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_alma_depart_disc.py @@ -0,0 +1,20 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComAlmaDepartDisc(UltmarcTable): + """レイアウト区分003: COM_出身校学部識別""" + alma_cd: str # 出身校コード + depart_disc_cd: str # 学部識別コード + estab_e: str # 創立元号 + estab_y: str # 創立年 + alma_name: str # 出身校名 + maint_flag: str # 修正区分 + + def __init__(self, record: list[str]): + super().__init__(record) + self.alma_cd = record[1] + self.depart_disc_cd = record[2] + self.maint_flag = record[3] + self.alma_name = record[6] + self.estab_e = record[7] + self.estab_y = record[8] diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_cop_hp.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_cop_hp.py new file mode 100644 index 00000000..886b9dad --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_cop_hp.py @@ -0,0 +1,36 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComCopHp(UltmarcTable): + """レイアウト区分112: COM_臨床研修病院""" + dcfhp_id: str # DCFコード(レコードID) + dcfhp_code: str # DCFコード(施設コード) + dcfhp_yobi: str # DCFコード(予備) + cophp_id: str # 協力型病院コード(ID) + cophp_code: str # 協力型病院コード(コード) + cophp_yobi: str # 協力型病院コード(予備) + open_year: str # 開始年度 + sort_key: str # ソートキー + adddel_div: str # 追加削除区分 + maint_flag: str # 修正区分 + + dcfdsf_inst_code: str # DCFDSF施設コード + cophp_code: str # 協力型病院コード + + def __init__(self, record: list[str]): + super().__init__(record) + self.dcfhp_id = record[1] + self.dcfhp_code = record[2] + self.dcfhp_yobi = record[3] + self.maint_flag = record[4] + self.cophp_id = record[5] + self.cophp_code = record[6] + self.cophp_yobi = record[7] + self.open_year = record[8] + self.adddel_div = record[9] + self.sort_key = record[12] + + # DCFDSF施設コード + self.dcfdsf_inst_code = ''.join([self.dcfhp_id, self.dcfhp_code, self.dcfhp_yobi]) + # 協力型病院コード + self.cophp_code = ''.join([self.cophp_id, self.cophp_code, self.cophp_yobi]) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr.py new file mode 100644 index 00000000..0377774a --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr.py @@ -0,0 +1,183 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComDr(UltmarcTable): + """レイアウト区分501: COM_医師""" + dcfdr_id: str # 個人コード(レコードID) + dcfdr_code: str # 個人コード(個人コード) + dcfd_yobi: str # 個人コード(予備) + maint_flag: str # 修正区分 + maint_date: str # メンテナンス年月日 + trn_date: str # 予備/転送年月日 + drdel_code: str # 削除予定理由 + reptdr_id: str # 重複時相手先コード(レコードID) + reptdr_code: str # 重複時相手先コード(個人コード) + reptdr_yobi: str # 重複時相手先コード(予備) + dr_name: str # 医師名(漢字) + dr_name_kana: str # 医師名(カナ) + sex_code: str # 性別 + birthday_era: str # 生年月日(元号) + birthday_year: str # 生年月日(年) + birthday_month: str # 生年月日(月) + birthday_day: str # 生年月日(日) + home_town_code: str # 出身都道府県コード + medassoci_code: str # 医師会コード + grad_yearera: str # 卒年_元号 + grad_year: str # 卒年_年 + graduniv_code: str # 出身校コード + graduniv_dept_code: str # 出身校学部識別コード + drda_yera: str # 登録年_元号 + drday_year: str # 登録年_年 + medsbj_code1: str # 診療科目1 + medsbj_code2: str # 診療科目2 + medsbj_code3: str # 診療科目3 + medsbj_code4: str # 診療科目4 + medsbj_code5: str # 診療科目5 + dr_addr_lost_code: str # 住所不明 + pref_code: str # 住所コード(県コード) + city_code: str # 住所コード(市区町村コード) + addr_code1: str # 住所コード(大字・通称コード) + addr_code2: str # 住所コード(字・丁目コード) + dr_zip_code: str # 郵便番号 + dr_addr: str # 自宅住所(漢字) + dr_addr_kana: str # 自宅住所(カナ) + dr_addr_num: str # 住所表示番号 + dr_addr_kanj_cnt1: str # 住所カウント_漢字(県) + dr_addr_kanj_cnt2: str # 住所カウント_漢字(市区町村) + dr_addr_kanj_cnt3: str # 住所カウント_漢字(大字・通称) + dr_addr_kanj_cnt4: str # 住所カウント_漢字(字・丁目) + dr_addr_kana_cnt1: str # 住所カウント_カナ(県) + dr_addr_kana_cnt2: str # 住所カウント_カナ(市区町村) + dr_addr_kana_cnt3: str # 住所カウント_カナ(大字・通称) + dr_addr_kana_cnt4: str # 住所カウント_カナ(字・丁目) + dr_tel: str # 自宅電話番号 + use_stop_flag: str # 利用停止区分 + use_stopc_ode: str # 利用停止理由 + cre_stop_date: str # 利用停止登録年月日 + release_date: str # 利用停止解除年月日 + pract_class_code: str # 開勤区分 + pract_yearera: str # 開業年(元号) + pract_year: str # 開業年(年) + bskregst_flag: str # 一括登録フラグ + + dcf_pcf_dr_cd: str # DCFPCF医師コード + addr_village_cd: str # 住所(町字)コード + addr_cnt_kana: str # 住所カウントカナ + addr_cnt: str # 住所カウント + opp_dup_code: str # 相手先重複コード + + birth_day: str # 生年月日(西暦) + estab_y: str # 開業年(西暦) + grad_y: str # 卒業年(西暦) + drday_y: str # 登録年(西暦) + + era_cd: str # 元号コード + + # 住所(集合項目) + address_aggregation_items: list + + # 診療科目(集合項目) + medsbj_code_items: list + + def __init__(self, record: list[str]): + super().__init__(record) + self.dcfdr_id = record[1] + self.dcfdr_code = record[2] + self.dcfd_yobi = record[3].strip() + self.maint_flag = record[4] + self.maint_date = record[5] + self.trn_date = record[6] + self.drdel_code = record[7].strip() + self.reptdr_id = record[8].strip() + self.reptdr_code = record[9].strip() + self.reptdr_yobi = record[10].strip() + self.dr_name = record[11].strip() + self.dr_name_kana = record[12].strip() + self.sex_code = record[13].strip() + self.birthday_era = record[14].strip() + self.birthday_year = record[15].strip() + self.birthday_month = record[16].strip() + self.birthday_day = record[17].strip() + self.home_town_code = record[18].strip() + self.medassoci_code = record[19].strip() + self.grad_yearera = record[20].strip() + self.grad_year = record[21].strip() + self.graduniv_code = record[22].strip() + self.graduniv_dept_code = record[23].strip() + self.drda_yera = record[24].strip() + self.drday_year = record[25].strip() + self.medsbj_code1 = record[26].strip() + self.medsbj_code2 = record[27].strip() + self.medsbj_code3 = record[28].strip() + self.medsbj_code4 = record[29].strip() + self.medsbj_code5 = record[30].strip() + self.dr_addr_lost_code = record[31].strip() + self.pref_code = record[32].strip() + self.city_code = record[33].strip() + self.addr_code1 = record[34].strip() + self.addr_code2 = record[35].strip() + self.dr_zip_code = record[36].strip() + self.dr_addr = record[37].strip() + self.dr_addr_kana = record[38].strip() + self.dr_addr_num = record[39] + self.dr_addr_kanj_cnt1 = record[40] + self.dr_addr_kanj_cnt2 = record[41] + self.dr_addr_kanj_cnt3 = record[42] + self.dr_addr_kanj_cnt4 = record[43] + self.dr_addr_kana_cnt1 = record[44] + self.dr_addr_kana_cnt2 = record[45] + self.dr_addr_kana_cnt3 = record[46] + self.dr_addr_kana_cnt4 = record[47] + self.dr_tel = record[48].strip() + self.use_stop_flag = record[49].strip() + self.use_stopc_ode = record[50].strip() + self.cre_stop_date = record[51].strip() + self.release_date = record[52].strip() + self.pract_class_code = record[53].strip() + self.pract_yearera = record[54].strip() + self.pract_year = record[55].strip() + self.bskregst_flag = record[56].strip() + + # DCFPCF医師コード + self.dcf_pcf_dr_cd = ''.join([self.dcfdr_id, self.dcfdr_code, self.dcfd_yobi]) + # 住所(町字)コード + self.addr_village_cd = ''.join([self.pref_code, self.city_code, self.addr_code1, self.addr_code2]) + # 住所カウントカナ + self.addr_cnt_kana = ''.join([self.dr_addr_kana_cnt1, self.dr_addr_kana_cnt2, self.dr_addr_kana_cnt3, self.dr_addr_kana_cnt4]) + # 住所カウント + self.addr_cnt = ''.join([self.dr_addr_kanj_cnt1, self.dr_addr_kanj_cnt2, self.dr_addr_kanj_cnt3, self.dr_addr_kanj_cnt4]) + # 相手先重複コード + self.opp_dup_code = ''.join([self.reptdr_id, self.reptdr_code, self.reptdr_yobi]) + + self.birth_day = '' # 生年月日(西暦) + self.estab_y = '' # 開業年(西暦) + self.grad_y = '' # 卒業年(西暦) + self.drday_y = '' # 登録年(西暦) + self.era_cd = '' # 元号コード + + # 住所(集合項目) + self.address_aggregation_items = [ + self.pref_code, + self.city_code, + self.addr_code1, + self.addr_code2, + self.dr_zip_code, + self.dr_addr_kana, + self.dr_addr_num, + self.dr_addr_kanj_cnt1, + self.dr_addr_kanj_cnt2, + self.dr_addr_kanj_cnt3, + self.dr_addr_kanj_cnt4, + self.dr_addr_kana_cnt1, + self.dr_addr_kana_cnt2, + self.dr_addr_kana_cnt3, + self.dr_addr_kana_cnt4 + ] + + # 診療科目(集合項目) + self.medsbj_code_items = [ + self.medsbj_code1, + self.medsbj_code2, + self.medsbj_code3, + self.medsbj_code4, + self.medsbj_code5] diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr_sosiety.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr_sosiety.py new file mode 100644 index 00000000..53284e4d --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr_sosiety.py @@ -0,0 +1,28 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComDrSosiety(UltmarcTable): + """レイアウト区分521: COM_所属学会""" + dcf_dr_id: str # レコードID + dcf_dr_code: str # 個人コード + dcf_dr_yobi: str # 個人コード(予備) + maint_flag: str # 修正区分 + sosiety_cd: str # 学会コード + specialst_maint_div: str # 予備/専門医メンテ区分 + sosiety_f: str # 学会年度 + dcf_pcf_dr_cd: str # DCFPCF医師コード + +# メンテナンス年月日 と 予備/転送年月日 は未使用 + + def __init__(self, record: list[str]): + super().__init__(record) + self.dcf_dr_id = record[1] + self.dcf_dr_code = record[2] + self.dcf_dr_yobi = record[3].strip() + self.maint_flag = record[4] + self.sosiety_cd = record[5] + self.specialst_maint_div = record[6] + self.sosiety_f = record[9] + + # DCFPCF医師コード(レコードID + 個人コード + 個人コード(予備)) + self.dcf_pcf_dr_cd = ''.join([self.dcf_dr_id, self.dcf_dr_code, self.dcf_dr_yobi]) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr_wrkplace.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr_wrkplace.py index 9472206d..421357b9 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr_wrkplace.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_dr_wrkplace.py @@ -2,7 +2,7 @@ from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable class ComDrWrkplace(UltmarcTable): - """レイアウト区分501-01:COM_医師勤務先""" + """レイアウト区分502 :COM_医師勤務先""" maint_flag: str # 修正区分 dcfdr_id: str # 個人コード(ID) dcfdr_code: str # 個人コード(個人コード) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_hp_assrt.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_hp_assrt.py new file mode 100644 index 00000000..e47e6513 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_hp_assrt.py @@ -0,0 +1,14 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComHpAssrt(UltmarcTable): + """レイアウト区分002: 病院種別""" + hp_assrt_cd: str # 病院種別コード + hp_assrt_name: str # 病院種別名 + maint_flag: str # 修正区分 + + def __init__(self, record: list[str]): + super().__init__(record) + self.hp_assrt_cd = record[1] + self.maint_flag = record[2] + self.hp_assrt_name = record[5] diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_inst.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_inst.py new file mode 100644 index 00000000..167480d2 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_inst.py @@ -0,0 +1,230 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComInst(UltmarcTable): + """レイアウト区分101: COM_施設""" + dcfhp_id: str # 施設コード(レコードID) + dcfhp_code: str # 施設コード(施設コード) + dcfh_yobi: str # 施設コード(予備) + maint_flag: str # 修正区分 + maint_date: str # メンテナンス年月日 + trn_date: str # 予備/転送年月日 + uncheck_flag: str # 未確認フラグ + hpdel_code: str # 削除予定理由 + duphp_id: str # 重複時相手先コード(レコードID) + duphp_code: str # 重複時相手先コード(施設コード) + duphp_yobi: str # 重複時相手先コード(予備) + hp_name: str # 正式施設名(漢字) + hp_name_kana: str # 正式施設名(カナ) + hp_ryaku_name: str # 略式施設名(漢字) + hp_ryaku_name_kana: str # 略式施設名(カナ) + hp_addr_lost_code: str # 住所不明 + pref_code: str # 住所コード(県コード) + city_code: str # 住所コード(市区町村コード) + addr_code1: str # 住所コード(大字・通称コード) + addr_code2: str # 住所コード(字・丁目コード) + hp_zip_code: str # 郵便番号 + hp_addr: str # 住所(漢字) + hp_addr_kana: str # 住所(カナ) + hp_addr_number: str # 住所表示番号 + dr_addr_kanji1: str # 住所カウント_漢字(県) + dr_addr_kanji2: str # 住所カウント_漢字(市区町村) + dr_addr_kanji3: str # 住所カウント_漢字(大字・通称) + dr_addr_kanji4: str # 住所カウント_漢字(字・丁目) + dr_addr_kana1: str # 住所カウント_カナ(県) + dr_addr_kana2: str # 住所カウント_カナ(市区町村) + dr_addr_kana3: str # 住所カウント_カナ(大字・通称) + dr_addr_kana4: str # 住所カウント_カナ(字・丁目) + tel_nothing_flag: str # 電話番号なしフラグ + hp_tel: str # 電話番号 + mgt_class_code: str # 経営体 + hp_class_code: str # 施設区分 + president_id: str # 代表者コード(レコードID) + president_code: str # 代表者コード(個人コード) + president_yobi: str # 代表者コード(予備) + president: str # 代表者(漢字) + president_kana: str # 代表者(カナ) + open_flag: str # 開業予定フラグ + open_year_month: str # 開業予定年月 + close_flag: str # 休院フラグ + close_year_month: str # 休院開始年月 + medsbj_code: list # 診療科目1~60 + hp_kind_code: str # 病院種別 + reexam_flag: str # 再審査区分 + assoc_parrent_id: str # 関連大学親コード(レコードID) + assoc_parrent_code: str # 関連大学親コード(施設コード) + assoc_parrent_yobi: str # 関連大学親コード(予備) + close_flag2: str # 病棟閉鎖フラグ + bed_num: str # 病床数(定員) + bed_class_maint_date: str # 許可病床メンテ日付 + bed_num_sum: str # 許可病床数_合計 + bed_num_psy: str # 許可病床数_精神 + bed_num_tub: str # 許可病床数_結核 + bed_num_epi: str # 許可病床数_感染症 + bed_num_gen: str # 許可病床数_その他 + bed_num_gen2: str # 許可病床数_一般病床 + bed_num_rest: str # 許可病床数_療養病床 + inspect_code1: str # 検査項目_微生物 + inspect_code2: str # 検査項目_血清 + inspect_code3: str # 検査項目_血液 + inspect_code4: str # 検査項目_病理 + inspect_code5: str # 検査項目_寄生虫 + inspect_code6: str # 検査項目_生化 + inspect_code7: str # 検査項目_RI + dcfhp_92id: str # 特養医務室コード(レコードID) + dcfhp_92code: str # 特養医務室コード(施設コード) + dcfhp_92yobi: str # 特養医務室コード(予備) + + dcfdsf_inst_code: str # DCFDSF施設コード + univ_prnt_code: str # 関連大学親コード + inst_repre_code: str # 施設代表者コード + village_code: str # 町字コード + addr_cnt_kana: str # 住所カウントカナ + addr_cnt: str # 住所カウント + dup_opp_code: str # 重複時相手先コード + dcf_prnt_inst_code: str # DCF親施設コード + + prmit_bed: list # 許可ベッド(集合項目) + insp_item: list # 検査項目(集合項目) + + def __init__(self, record: list[str]): + super().__init__(record) + self.dcfhp_id = record[1] + self.dcfhp_code = record[2] + self.dcfh_yobi = record[3].strip() + self.maint_flag = record[4] + self.maint_date = record[5] + self.trn_date = record[6] + self.uncheck_flag = record[7].strip() + self.hpdel_code = record[8].strip() + self.duphp_id = record[9] + self.duphp_code = record[10].strip() + self.duphp_yobi = record[11].strip() + self.hp_name = record[12].strip() + self.hp_name_kana = record[13].strip() + self.hp_ryaku_name = record[14].strip() + self.hp_ryaku_name_kana = record[15].strip() + self.hp_addr_lost_code = record[16].strip() + self.pref_code = record[17].strip() + self.city_code = record[18].strip() + self.addr_code1 = record[19].strip() + self.addr_code2 = record[20].strip() + self.hp_zip_code = record[21].strip() + self.hp_addr = record[22] + self.hp_addr_kana = record[23] + self.hp_addr_number = record[24] + self.dr_addr_kanji1 = record[25].strip() + self.dr_addr_kanji2 = record[26].strip() + self.dr_addr_kanji3 = record[27].strip() + self.dr_addr_kanji4 = record[28].strip() + self.dr_addr_kana1 = record[29].strip() + self.dr_addr_kana2 = record[30].strip() + self.dr_addr_kana3 = record[31].strip() + self.dr_addr_kana4 = record[32].strip() + self.tel_nothing_flag = record[33].strip() + self.hp_tel = record[34].strip() + self.mgt_class_code = record[35].strip() + self.hp_class_code = record[36].strip() + self.president_id = record[37] + self.president_code = record[38].strip() + self.president_yobi = record[39] + self.president = record[40].strip() + self.president_kana = record[41].strip() + self.open_flag = record[42].strip() + self.open_year_month = record[43].strip() + self.close_flag = record[44].strip() + self.close_year_month = record[45].strip() + + # 診療科目1~60(csvカラム番号 46 ~ 105) + # rangeの第2引数の数字はループに含まれないため、+1を指定する + self.medsbj_code = [] + for i in range(46, 106): + self.medsbj_code.append(str(record[i])) + + self.hp_kind_code = record[106].strip() + self.reexam_flag = record[107].strip() + self.assoc_parrent_id = record[108].strip() + self.assoc_parrent_code = record[109].strip() + self.assoc_parrent_yobi = record[110].strip() + self.close_flag2 = record[111].strip() + self.bed_num = record[112].strip() + self.bed_class_maint_date = record[113].strip() + self.bed_num_sum = record[114].strip() + self.bed_num_psy = record[115].strip() + self.bed_num_tub = record[116].strip() + self.bed_num_epi = record[117].strip() + self.bed_num_gen = record[118].strip() + self.bed_num_gen2 = record[119].strip() + self.bed_num_rest = record[120].strip() + + # smallint型のカラム値は、空文字で渡ってきた場合はNULLに変換する + self.bed_num = self.bed_num if len(self.bed_num) > 0 else None + self.bed_num_sum = self.bed_num_sum if len(self.bed_num_sum) > 0 else None + self.bed_num_psy = self.bed_num_psy if len(self.bed_num_psy) > 0 else None + self.bed_num_tub = self.bed_num_tub if len(self.bed_num_tub) > 0 else None + self.bed_num_epi = self.bed_num_epi if len(self.bed_num_epi) > 0 else None + self.bed_num_gen = self.bed_num_gen if len(self.bed_num_gen) > 0 else None + self.bed_num_gen2 = self.bed_num_gen2 if len(self.bed_num_gen2) > 0 else None + self.bed_num_rest = self.bed_num_rest if len(self.bed_num_rest) > 0 else None + + self.inspect_code1 = record[121].strip() + self.inspect_code2 = record[122].strip() + self.inspect_code3 = record[123].strip() + self.inspect_code4 = record[124].strip() + self.inspect_code5 = record[125].strip() + self.inspect_code6 = record[126].strip() + self.inspect_code7 = record[127].strip() + self.dcfhp_92id = record[128].strip() + self.dcfhp_92code = record[129].strip() + self.dcfhp_92yobi = record[130].strip() + + # 住所カウント_漢字の0埋め + self.dr_addr_kanji1 = self.dr_addr_kanji1.zfill(2) + self.dr_addr_kanji2 = self.dr_addr_kanji2.zfill(2) + self.dr_addr_kanji3 = self.dr_addr_kanji3.zfill(2) + self.dr_addr_kanji4 = self.dr_addr_kanji4.zfill(2) + + # 住所カウント_カナの0埋め + self.dr_addr_kana1 = self.dr_addr_kana1.zfill(2) + self.dr_addr_kana2 = self.dr_addr_kana2.zfill(2) + self.dr_addr_kana3 = self.dr_addr_kana3.zfill(2) + self.dr_addr_kana4 = self.dr_addr_kana4.zfill(2) + + # DCFDSF施設コード + self.dcfdsf_inst_code = self.dcfhp_id + self.dcfhp_code + self.dcfh_yobi + # 関連大学親コード + self.univ_prnt_code = self.assoc_parrent_id + self.assoc_parrent_code + self.assoc_parrent_yobi + # 施設代表者コード + self.inst_repre_code = self.president_id + self.president_code + self.president_yobi + # 町字コード + self.village_code = self.pref_code + self.city_code + self.addr_code1 + self.addr_code2 + # 住所カウントカナ + self.addr_cnt_kana = self.dr_addr_kana1 + self.dr_addr_kana2 + self.dr_addr_kana3 + self.dr_addr_kana4 + # 住所カウント + self.addr_cnt = self.dr_addr_kanji1 + self.dr_addr_kanji2 + self.dr_addr_kanji3 + self.dr_addr_kanji4 + # 重複時相手先コード + self.dup_opp_code = self.duphp_id + self.duphp_code + self.duphp_yobi + # DCF親施設コード + self.dcf_prnt_inst_code = self.dcfhp_92id + self.dcfhp_92code + self.dcfhp_92yobi + + # 許可ベッド(集合項目) + self.prmit_bed = [ + self.bed_num_sum, + self.bed_num_psy, + self.bed_num_tub, + self.bed_num_epi, + self.bed_num_gen, + self.bed_num_gen2, + self.bed_num_rest + ] + + # 検査項目(集合項目) + self.insp_item = [ + self.inspect_code1, + self.inspect_code2, + self.inspect_code3, + self.inspect_code4, + self.inspect_code5, + self.inspect_code6, + self.inspect_code7 + ] diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_inst_att.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_inst_att.py new file mode 100644 index 00000000..695b247f --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_inst_att.py @@ -0,0 +1,703 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComInstAtt(UltmarcTable): + """レイアウト区分111: COM_施設属性""" + dcfhp_id: str # DCFコード(レコードID) + dcfhp_code: str # DCFコード(施設コード) + dcfhp_yobi: str # DCFコード(予備)10/8asa + dpc_flag: str # DPC対象病院フラグ + dpc_spec_day: str # DPC対象病院指定年月日 + dpc_cancel_day: str # DPC対象病院取消年月日 + predpc_flag: str # DPC準備病院フラグ + predpc_spec_day: str # DPC準備病院承認年 + predpc_cancel_day: str # DPC準備病院取消年月日 + cancer_flag: str # がん診療連携拠点病院フラグ + cancer_spec_day: str # がん診療連携拠点病院指定年月日 + cancer_cancel_day: str # がん診療連携拠点病院取消年月日 + funchp_flag: str # 特定機能病院フラグ + funchp_ok_date: str # 特定機能病院承認年月日 + funchp_can_date: str # 特定機能病院取消年月日 + areasuphp_flag: str # 地域医療支援病院フラグ + areasuphp_intrate: str # 地域医療支援病院紹介率 + areasuphp_ok_date: str # 地域医療支援病院承認年月日 + areasuphp_can_date: str # 地域医療支援病院取消年月日 + acuthp_add_flag: str # 超急性期脳卒中加算フラグ + acuthp_add_ok_date: str # 超急性期脳卒中加算承認年月日 + acuthp_add_can_date: str # 超急性期脳卒中加算取消年月日 + genadmisiion_flag: str # 総合入院体制加算フラグ + genadmisiion_ok_date: str # 総合入院体制加算承認年月日 + genadmisiion_can_date: str # 総合入院体制加算取消年月日 + assistance_flag: str # 医師事務作業補助体制加算フラグ + assistance_ok_date: str # 医師事務作業補助体制加算承認年月日 + assistance_can_date: str # 医師事務作業補助体制加算取消年月日 + diagnosis_treatment_flag: str # 診療録管理体制加算フラグ + diagnosis_treatment_spec_day: str # 診療録管理体制加算承認年月日 + diagnosis_treatment_cancel_day: str # 診療録管理体制加算取消年月日 + safety_flag: str # 医療安全対策加算フラグ + safety_spec_day: str # 医療安全対策加算承認年月日 + safety_cancel_day: str # 医療安全対策加算取消年月日 + highrisk_flag: str # 褥瘡ハイリスク患者ケア加算フラグ + highrisk_spec_day: str # 褥瘡ハイリスク患者ケア加算承認年月日 + highrisk_cancel_day: str # 褥瘡ハイリスク患者ケア加算取消年月日 + infant_and_holiday_flag: str # 地域連携小児夜間・休日診療料フラグ + infant_and_holiday_spec_day: str # 地域連携小児夜間・休日診療料承認 + infant_and_holiday_cancel_day: str # 地域連携小児夜間・休日診療料取消 + ophp_flag: str # 開放型病院フラグ + ophpok_date: str # 開放型病院承認年月日 + ophpcan_date: str # 開放型病院取消年月日 + critical_flag: str # 地域連携クリティカルパスフラグ + critical_code01: str # 地域連携クリティカルパスコード1 + critical_code02: str # 地域連携クリティカルパスコード2 + critical_code03: str # 地域連携クリティカルパスコード3 + critical_code04: str # 地域連携クリティカルパスコード4 + critical_code05: str # 地域連携クリティカルパスコード5 + critical_code06: str # 地域連携クリティカルパスコード6 + critical_code07: str # 地域連携クリティカルパスコード7 + critical_code08: str # 地域連携クリティカルパスコード8 + critical_code09: str # 地域連携クリティカルパスコード9 + critical_code10: str # 地域連携クリティカルパスコード10 + critical_code11: str # 地域連携クリティカルパスコード11 + critical_code12: str # 地域連携クリティカルパスコード12 + critical_code13: str # 地域連携クリティカルパスコード13 + critical_code14: str # 地域連携クリティカルパスコード14 + critical_code15: str # 地域連携クリティカルパスコード15 + critical_code16: str # 地域連携クリティカルパスコード16 + critical_code17: str # 地域連携クリティカルパスコード17 + critical_code18: str # 地域連携クリティカルパスコード18 + critical_code19: str # 地域連携クリティカルパスコード19 + critical_code20: str # 地域連携クリティカルパスコード20 + drgmgthp_flag: str # 薬剤管理指導料フラグ + drgmgthp_ok_date: str # 薬剤管理指導料承認年月日 + drgmgthp_can_date: str # 薬剤管理指導料取消年月日 + image_diagnosis_flag: str # 画像診断管理加算フラグ + image_diagnosis_specified_day: str # 画像診断管理加算承認年月日 + image_diagnosis_cancel_day: str # 画像診断管理加算取消年月日 + chemotherapy_flag: str # 外来化学療法加算フラグ + chemotherapy_spec_day: str # 外来化学療法加算承認年月日 + chemotherapy_cancel_day: str # 外来化学療法加算取消年月日 + rehabilitation_flag: str # 疾患別リハビリテーション料フラグ + rehabilitation_code01: str # 疾患別リハビリテーション料コード1 + rehabilitation_code02: str # 疾患別リハビリテーション料コード2 + rehabilitation_code03: str # 疾患別リハビリテーション料コード3 + rehabilitation_code04: str # 疾患別リハビリテーション料コード4 + rehabilitation_code05: str # 疾患別リハビリテーション料コード5 + rehabilitation_code06: str # 疾患別リハビリテーション料コード6 + rehabilitation_code07: str # 疾患別リハビリテーション料コード7 + rehabilitation_code08: str # 疾患別リハビリテーション料コード8 + rehabilitation_code09: str # 疾患別リハビリテーション料コード9 + rehabilitation_code10: str # 疾患別リハビリテーション料コード10 + anesthetizing_manage_flag: str # 麻酔管理料フラグ + anesthetizing_manage_spec_day: str # 麻酔管理料承認年月日 + anesthetizing_manage_can_day: str # 麻酔管理料取消年月日 + home_recuperation_flag: str # 在宅療養支援病院・診療所フラグ + home_recuperation_spec_day: str # 在宅療養支援病院・診療所承認年月 + home_recuperation_cancel_day: str # 在宅療養支援病院・診療所取消年月 + synthesis_when_staying_flag: str # 在宅時医学総合管理料フラグ + synthesis_when_staying_spec_day: str # 在宅時医学総合管理料承認年月日 + synthesis_when_staying_can_day: str # 在宅時医学総合管理料取消年月日 + home_late_flag: str # 在宅末期医療総合診療料フラグ + home_late_ok_day: str # 在宅末期医療総合診療料承認年月日 + home_late_can_day: str # 在宅末期医療総合診療料取消年月日 + caremix_kind: str # ケアミックス区分 + fullmove_flag: str # 完全型・移行型区分 + resthp_flag: str # 療養型病床群フラグ + resthp_care_kind: str # 療養型病床群_医療型(看護種別) + resthp_bed_num: str # 療養型病床群_医療型(病床数) + resthp_ok_date: str # 療養型病床群_医療型(承認年月日) + resthp_can_date: str # 療養型病床群_医療型(取消年月日) + resthp_care_nrs_kind: str # 療養型病床群_介護型(看護種別) + resthp_care_bed_num: str # 療養型病床群_介護型(病床数) + resthp_care_ok_date: str # 療養型病床群_介護型(承認年月日) + resthp_care_can_date: str # 療養型病床群_介護型(取消年月日) + resthp_sbed_num: str # 療養型病床群_稼動数合計(病床数) + nrmhp_flag: str # 一般病棟フラグ + nrmhp_care_kind: str # 一般病棟看護種別 + nrmhp_bed_total_num: str # 一般病棟病床数 + menthp_flag: str # 精神病棟フラグ + menthp_care_kind: str # 精神病棟看護種別 + menthp_bed_num: str # 精神病棟病床数 + tubhp_flag: str # 結核病棟フラグ + tubhp_care_kind: str # 結核病棟看護種別 + tubhp_bed_num: str # 結核病棟病床数 + infhp_flag: str # 感染症特定 + infhp_flag1: str # 感染症1種 + infhp_flag2: str # 感染症2種 + infhp_bed_flag: str # 感染症病床フラグ + infhp_bed_num: str # 感染症病床病床数 + hospice_flag: str # 緩和ケア病棟設置病院フラグ + hospice_bed_num: str # 緩和ケア病棟設置病院病床数 + hospice_ok_date: str # 緩和ケア病棟設置病院承認年月日 + hospice_can_date: str # 緩和ケア病棟設置病院取消年月日 + hpfunce_st_flag: str # 医療機能評価フラグ + hpfunce_st_kind: str # 医療機能評価種別 + hpfunce_st_ok_date: str # 医療機能評価承認年月日 + hpfunce_st_can_date: str # 医療機能評価取消年月日 + clolyhp_kind: str # 臨床研修指定病院_基幹型病院1フラグ + clolyhp_ok_date: str # 臨床研修指定病院_基幹型病院1承認年月日 + clolyhp_can_date: str # 臨床研修指定病院_基幹型病院1取消年月日 + clhp_kind: str # 臨床研修指定病院_基幹型病院2(群指定)フラグ + clhp_ok_date: str # 臨床研修指定病院_基幹型病院2(群指定)承認 + clhp_can_date: str # 臨床研修指定病院_基幹型病院2(群指定)取消 + cldephp_kind: str # 臨床研修指定病院_協力型病院(群指定)フラグ + cldephp_ok_date: str # 臨床研修指定病院_協力型病院(群指定)承認年 + cldephp_can_date: str # 臨床研修指定病院_協力型病院(群指定)取消年 + disasthp_flag: str # 災害拠点病院 + d1emerhp_flag: str # 救急医療救急告示 + d2emerhp_flag: str # 救急医療2次救急 + d3emerhp_flag: str # 救急医療3次救急 + emergency_clinic: str # 救急告示診療所 + trial_core_flag: str # 治験中核病院フラグ + trial_core_div: str # 治験中核病院区分 + trial_core_ok_date: str # 治験中核病院承認年月日 + trial_core_can_date: str # 治験中核病院取消年月日 + dementia_flag: str # 認知症疾患医療センターフラグ + dementia_okd_ate: str # 認知症疾患医療センター承認年月日 + dementia_can_date: str # 認知症疾患医療センター取消年月日 + sphealth_exploration: str # 特定健康診査実施機 + sphealth_guidance: str # 特定保健指導実施機 + hiadhp_flag: str # 先端医療・高度医療技術実施医療機関フラグ + hiadhpcode1: str # 先端医療・高度医療技術実施医療機関1(コード) + hiadhpkind1: str # 先端医療・高度医療技術実施医療機関1(区分) + hiadhpcode2: str # 先端医療・高度医療技術実施医療機関2(コード) + hiadhpkind2: str # 先端医療・高度医療技術実施医療機関2(区分) + hiadhpcode3: str # 先端医療・高度医療技術実施医療機関3(コード) + hiadhpkind3: str # 先端医療・高度医療技術実施医療機関3(区分) + hiadhpcode4: str # 先端医療・高度医療技術実施医療機関4(コード) + hiadhpkind4: str # 先端医療・高度医療技術実施医療機関4(区分) + hiadhpcode5: str # 先端医療・高度医療技術実施医療機関5(コード) + hiadhpkind5: str # 先端医療・高度医療技術実施医療機関5(区分) + hiadhpcode6: str # 先端医療・高度医療技術実施医療機関6(コード) + hiadhpkind6: str # 先端医療・高度医療技術実施医療機関6(区分) + hiadhpcode7: str # 先端医療・高度医療技術実施医療機関7(コード) + hiadhpkind7: str # 先端医療・高度医療技術実施医療機関7(区分) + hiadhpcode8: str # 先端医療・高度医療技術実施医療機関8(コード) + hiadhpkind8: str # 先端医療・高度医療技術実施医療機関8(区分) + hiadhpcode9: str # 先端医療・高度医療技術実施医療機関9(コード) + hiadhpkind9: str # 先端医療・高度医療技術実施医療機関9(区分) + hiadhpcode10: str # 先端医療・高度医療技術実施医療機関10(コード) + hiadhpkind10: str # 先端医療・高度医療技術実施医療機関10(区分) + hiadhpcode11: str # 先端医療・高度医療技術実施医療機関11(コード) + hiadhpkind11: str # 先端医療・高度医療技術実施医療機関11(区分) + hiadhpcode12: str # 先端医療・高度医療技術実施医療機関12(コード) + hiadhpkind12: str # 先端医療・高度医療技術実施医療機関12(区分) + hiadhpcode13: str # 先端医療・高度医療技術実施医療機関13(コード) + hiadhpkind13: str # 先端医療・高度医療技術実施医療機関13(区分) + hiadhpcode14: str # 先端医療・高度医療技術実施医療機関14(コード) + hiadhpkind14: str # 先端医療・高度医療技術実施医療機関14(区分) + hiadhpcode15: str # 先端医療・高度医療技術実施医療機関15(コード) + hiadhpkind15: str # 先端医療・高度医療技術実施医療機関15(区分) + hiadhpcode16: str # 先端医療・高度医療技術実施医療機関16(コード) + hiadhpkind16: str # 先端医療・高度医療技術実施医療機関16(区分) + hiadhpcode17: str # 先端医療・高度医療技術実施医療機関17(コード) + hiadhpkind17: str # 先端医療・高度医療技術実施医療機関17(区分) + hiadhpcode18: str # 先端医療・高度医療技術実施医療機関18(コード) + hiadhpkind18: str # 先端医療・高度医療技術実施医療機関18(区分) + hiadhpcode19: str # 先端医療・高度医療技術実施医療機関19(コード) + hiadhpkind19: str # 先端医療・高度医療技術実施医療機関19(区分) + hiadhpcode20: str # 先端医療・高度医療技術実施医療機関20(コード) + hiadhpkind20: str # 先端医療・高度医療技術実施医療機関20(区分) + hiadhpcode21: str # 先端医療・高度医療技術実施医療機関21(コード) + hiadhpkind21: str # 先端医療・高度医療技術実施医療機関21(区分) + hiadhpcode22: str # 先端医療・高度医療技術実施医療機関22(コード) + hiadhpkind22: str # 先端医療・高度医療技術実施医療機関22(区分) + hiadhpcode23: str # 先端医療・高度医療技術実施医療機関23(コード) + hiadhpkind23: str # 先端医療・高度医療技術実施医療機関23(区分) + hiadhpcode24: str # 先端医療・高度医療技術実施医療機関24(コード) + hiadhpkind24: str # 先端医療・高度医療技術実施医療機関24(区分) + hiadhpcode25: str # 先端医療・高度医療技術実施医療機関25(コード) + hiadhpkind25: str # 先端医療・高度医療技術実施医療機関25(区分) + hiadhpcode26: str # 先端医療・高度医療技術実施医療機関26(コード) + hiadhpkind26: str # 先端医療・高度医療技術実施医療機関26(区分) + hiadhpcode27: str # 先端医療・高度医療技術実施医療機関27(コード) + hiadhpkind27: str # 先端医療・高度医療技術実施医療機関27(区分) + hiadhpcode28: str # 先端医療・高度医療技術実施医療機関28(コード) + hiadhpkind28: str # 先端医療・高度医療技術実施医療機関28(区分) + hiadhpcode29: str # 先端医療・高度医療技術実施医療機関29(コード) + hiadhpkind29: str # 先端医療・高度医療技術実施医療機関29(区分) + hiadhpcode30: str # 先端医療・高度医療技術実施医療機関30(コード) + hiadhpkind30: str # 先端医療・高度医療技術実施医療機関30(区分) + hiadhpcode31: str # 先端医療・高度医療技術実施医療機関31(コード) + hiadhpkind31: str # 先端医療・高度医療技術実施医療機関31(区分) + hiadhpcode32: str # 先端医療・高度医療技術実施医療機関32(コード) + hiadhpkind32: str # 先端医療・高度医療技術実施医療機関32(区分) + hiadhpcode33: str # 先端医療・高度医療技術実施医療機関33(コード) + hiadhpkind33: str # 先端医療・高度医療技術実施医療機関33(区分) + hiadhpcode34: str # 先端医療・高度医療技術実施医療機関34(コード) + hiadhpkind34: str # 先端医療・高度医療技術実施医療機関34(区分) + hiadhpcode35: str # 先端医療・高度医療技術実施医療機関35(コード) + hiadhpkind35: str # 先端医療・高度医療技術実施医療機関35(区分) + hiadhpcode36: str # 先端医療・高度医療技術実施医療機関36(コード) + hiadhpkind36: str # 先端医療・高度医療技術実施医療機関36(区分) + hiadhpcode37: str # 先端医療・高度医療技術実施医療機関37(コード) + hiadhpkind37: str # 先端医療・高度医療技術実施医療機関37(区分) + hiadhpcode38: str # 先端医療・高度医療技術実施医療機関38(コード) + hiadhpkind38: str # 先端医療・高度医療技術実施医療機関38(区分) + hiadhpcode39: str # 先端医療・高度医療技術実施医療機関39(コード) + hiadhpkind39: str # 先端医療・高度医療技術実施医療機関39(区分) + hiadhpcode40: str # 先端医療・高度医療技術実施医療機関40(コード) + hiadhpkind40: str # 先端医療・高度医療技術実施医療機関40(区分) + hitechhp_flag: str # 先端医療機器フラグ + hitechhpkind1: str # 先端医療機器1 + hitechhpkind2: str # 先端医療機器2 + hitechhpkind3: str # 先端医療機器3 + hitechhpkind4: str # 先端医療機器4 + hitechhpkind5: str # 先端医療機器5 + hitechhpkind6: str # 先端医療機器6 + hitechhpkind7: str # 先端医療機器7 + hitechhpkind8: str # 先端医療機器8 + hitechhpkind9: str # 先端医療機器9 + hitechhpkind10: str # 先端医療機器10 + hitechhpkind11: str # 先端医療機器11 + hitechhpkind12: str # 先端医療機器12 + hitechhpkind13: str # 先端医療機器13 + hitechhpkind14: str # 先端医療機器14 + hitechhpkind15: str # 先端医療機器15 + hitechhpkind16: str # 先端医療機器16 + hitechhpkind17: str # 先端医療機器17 + hitechhpkind18: str # 先端医療機器18 + hitechhpkind19: str # 先端医療機器19 + hitechhpkind20: str # 先端医療機器20 + policy_medical_flag: str # 政策医療フラグ + policymedical_code01: str # 政策医療1(コード) + policymedical_content01: str # 政策医療1(区分) + policymedical_code02: str # 政策医療2(コード) + policymedical_content02: str # 政策医療2(区分) + policymedical_code03: str # 政策医療3(コード) + policymedical_content03: str # 政策医療3(区分) + policymedical_code04: str # 政策医療4(コード) + policymedical_content04: str # 政策医療4(区分) + policymedical_code05: str # 政策医療5(コード) + policymedical_content05: str # 政策医療5(区分) + policymedical_code06: str # 政策医療6(コード) + policymedical_content06: str # 政策医療6(区分) + policymedical_code07: str # 政策医療7(コード) + policymedical_content07: str # 政策医療7(区分) + policymedical_code08: str # 政策医療8(コード) + policymedical_content08: str # 政策医療8(区分) + policymedical_code09: str # 政策医療9(コード) + policymedical_content09: str # 政策医療9(区分) + policymedical_code10: str # 政策医療10(コード) + policymedical_content10: str # 政策医療10(区分) + policymedical_code11: str # 政策医療11(コード) + policymedical_content11: str # 政策医療11(区分) + policymedical_code12: str # 政策医療12(コード) + policymedical_content12: str # 政策医療12(区分) + policymedical_code13: str # 政策医療13(コード) + policymedical_content13: str # 政策医療13(区分) + policymedical_code14: str # 政策医療14(コード) + policymedical_content14: str # 政策医療14(区分) + policymedical_code15: str # 政策医療15(コード) + policymedical_content15: str # 政策医療15(区分) + policymedical_code16: str # 政策医療16(コード) + policymedical_content16: str # 政策医療16(区分) + policymedical_code17: str # 政策医療17(コード) + policymedical_content17: str # 政策医療17(区分) + policymedical_code18: str # 政策医療18(コード) + policymedical_content18: str # 政策医療18(区分) + policymedical_code19: str # 政策医療19(コード) + policymedical_content19: str # 政策医療19(区分) + policymedical_code20: str # 政策医療20(コード) + policymedical_content20: str # 政策医療20(区分) + visitcarest_flag: str # 訪問看護ステーションフラグ + visitcarestation_id: str # 訪問看護ステーション_施設コード(レコードID) + visitcarestation_code: str # 訪問看護ステーション_施設コード(施設コード) + visitcarestation_yobi: str # 訪問看護ステーション_施設コード(予備) + open_date: str # 開設年月 + maint_flag: str # 修正区分 + adddel_div: str # 追加削除区分 + + dcfdsf_inst_code: str # DCFDSF施設コード + resthp_items: list # 療養型病床リスト + cl_items: list # 臨床研修指定病院リスト + + def __init__(self, record: list[str]): + super().__init__(record) + self.dcfhp_id = record[1].strip() + self.dcfhp_code = record[2].strip() + self.dcfhp_yobi = record[3].strip() + + self.maint_flag = record[4].strip() + self.adddel_div = record[5].strip() + + self.dpc_flag = record[8].strip() + self.dpc_spec_day = record[9].strip() + self.dpc_cancel_day = record[10].strip() + + self.predpc_flag = record[11].strip() + self.predpc_spec_day = record[12].strip() + self.predpc_cancel_day = record[13].strip() + + self.cancer_flag = record[14].strip() + self.cancer_spec_day = record[15].strip() + self.cancer_cancel_day = record[16].strip() + + self.funchp_flag = record[17].strip() + self.funchp_ok_date = record[18].strip() + self.funchp_can_date = record[19].strip() + + self.areasuphp_flag = record[20].strip() + self.areasuphp_intrate = record[21].strip() + self.areasuphp_ok_date = record[22].strip() + self.areasuphp_can_date = record[23].strip() + + self.acuthp_add_flag = record[24].strip() + self.acuthp_add_ok_date = record[25].strip() + self.acuthp_add_can_date = record[26].strip() + + self.genadmisiion_flag = record[27].strip() + self.genadmisiion_ok_date = record[28].strip() + self.genadmisiion_can_date = record[29].strip() + + self.assistance_flag = record[30].strip() + self.assistance_ok_date = record[31].strip() + self.assistance_can_date = record[32].strip() + + self.diagnosis_treatment_flag = record[33].strip() + self.diagnosis_treatment_spec_day = record[34].strip() + self.diagnosis_treatment_cancel_day = record[35].strip() + + self.safety_flag = record[36].strip() + self.safety_spec_day = record[37].strip() + self.safety_cancel_day = record[38].strip() + + self.highrisk_flag = record[39].strip() + self.highrisk_spec_day = record[40].strip() + self.highrisk_cancel_day = record[41].strip() + + self.infant_and_holiday_flag = record[42].strip() + self.infant_and_holiday_spec_day = record[43].strip() + self.infant_and_holiday_cancel_day = record[44].strip() + + self.ophp_flag = record[45].strip() + self.ophpok_date = record[46].strip() + self.ophpcan_date = record[47].strip() + self.critical_flag = record[48].strip() + + self.critical_code01 = record[49].strip() + self.critical_code02 = record[50].strip() + self.critical_code03 = record[51].strip() + self.critical_code04 = record[52].strip() + self.critical_code05 = record[53].strip() + self.critical_code06 = record[54].strip() + self.critical_code07 = record[55].strip() + self.critical_code08 = record[56].strip() + self.critical_code09 = record[57].strip() + self.critical_code10 = record[58].strip() + self.critical_code11 = record[59].strip() + self.critical_code12 = record[60].strip() + self.critical_code13 = record[61].strip() + self.critical_code14 = record[62].strip() + self.critical_code15 = record[63].strip() + self.critical_code16 = record[64].strip() + self.critical_code17 = record[65].strip() + self.critical_code18 = record[66].strip() + self.critical_code19 = record[67].strip() + self.critical_code20 = record[68].strip() + + self.drgmgthp_flag = record[69].strip() + self.drgmgthp_ok_date = record[70].strip() + self.drgmgthp_can_date = record[71].strip() + + self.image_diagnosis_flag = record[72].strip() + self.image_diagnosis_specified_day = record[73].strip() + self.image_diagnosis_cancel_day = record[74].strip() + + self.chemotherapy_flag = record[75].strip() + self.chemotherapy_spec_day = record[76].strip() + self.chemotherapy_cancel_day = record[77].strip() + + self.rehabilitation_flag = record[78].strip() + self.rehabilitation_code01 = record[79].strip() + self.rehabilitation_code02 = record[80].strip() + self.rehabilitation_code03 = record[81].strip() + self.rehabilitation_code04 = record[82].strip() + self.rehabilitation_code05 = record[83].strip() + self.rehabilitation_code06 = record[84].strip() + self.rehabilitation_code07 = record[85].strip() + self.rehabilitation_code08 = record[86].strip() + self.rehabilitation_code09 = record[87].strip() + self.rehabilitation_code10 = record[88].strip() + + self.anesthetizing_manage_flag = record[89].strip() + self.anesthetizing_manage_spec_day = record[90].strip() + self.anesthetizing_manage_can_day = record[91].strip() + + self.home_recuperation_flag = record[92].strip() + self.home_recuperation_spec_day = record[93].strip() + self.home_recuperation_cancel_day = record[94].strip() + + self.synthesis_when_staying_flag = record[95].strip() + self.synthesis_when_staying_spec_day = record[96].strip() + self.synthesis_when_staying_can_day = record[97].strip() + + self.home_late_flag = record[98].strip() + self.home_late_ok_day = record[99].strip() + self.home_late_can_day = record[100].strip() + + self.caremix_kind = record[101].strip() + self.fullmove_flag = record[102].strip() + + self.resthp_flag = record[103].strip() + self.resthp_care_kind = record[104].strip() + self.resthp_bed_num = record[105].strip() + self.resthp_ok_date = record[106].strip() + self.resthp_can_date = record[107].strip() + self.resthp_care_nrs_kind = record[108].strip() + self.resthp_care_bed_num = record[109].strip() + self.resthp_care_ok_date = record[110].strip() + self.resthp_care_can_date = record[111].strip() + self.resthp_sbed_num = record[112].strip() + + self.nrmhp_flag = record[113].strip() + self.nrmhp_care_kind = record[114].strip() + self.nrmhp_bed_total_num = record[115].strip() + + self.menthp_flag = record[116].strip() + self.menthp_care_kind = record[117].strip() + self.menthp_bed_num = record[118].strip() + + self.tubhp_flag = record[119].strip() + self.tubhp_care_kind = record[120].strip() + self.tubhp_bed_num = record[121].strip() + + self.infhp_flag = record[122].strip() + self.infhp_flag1 = record[123].strip() + self.infhp_flag2 = record[124].strip() + + self.infhp_bed_flag = record[125].strip() + self.infhp_bed_num = record[126].strip() + + self.hospice_flag = record[127].strip() + self.hospice_bed_num = record[128].strip() + self.hospice_ok_date = record[129].strip() + self.hospice_can_date = record[130].strip() + + self.hpfunce_st_flag = record[131].strip() + self.hpfunce_st_kind = record[132].strip() + self.hpfunce_st_ok_date = record[133].strip() + self.hpfunce_st_can_date = record[134].strip() + + self.clolyhp_kind = record[135].strip() + self.clolyhp_ok_date = record[136].strip() + self.clolyhp_can_date = record[137].strip() + self.clhp_kind = record[138].strip() + self.clhp_ok_date = record[139].strip() + self.clhp_can_date = record[140].strip() + self.cldephp_kind = record[141].strip() + self.cldephp_ok_date = record[142].strip() + self.cldephp_can_date = record[143].strip() + + self.disasthp_flag = record[144].strip() + + self.d1emerhp_flag = record[145].strip() + self.d2emerhp_flag = record[146].strip() + self.d3emerhp_flag = record[147].strip() + + self.emergency_clinic = record[148].strip() + + self.trial_core_flag = record[149].strip() + self.trial_core_div = record[150].strip() + self.trial_core_ok_date = record[151].strip() + self.trial_core_can_date = record[152].strip() + + self.dementia_flag = record[153].strip() + self.dementia_okd_ate = record[154].strip() + self.dementia_can_date = record[155].strip() + + self.sphealth_exploration = record[156].strip() + self.sphealth_guidance = record[157].strip() + + self.hiadhp_flag = record[158].strip() + self.hiadhpcode1 = record[159].strip() + self.hiadhpkind1 = record[160].strip() + self.hiadhpcode2 = record[161].strip() + self.hiadhpkind2 = record[162].strip() + self.hiadhpcode3 = record[163].strip() + self.hiadhpkind3 = record[164].strip() + self.hiadhpcode4 = record[165].strip() + self.hiadhpkind4 = record[166].strip() + self.hiadhpcode5 = record[167].strip() + self.hiadhpkind5 = record[168].strip() + self.hiadhpcode6 = record[169].strip() + self.hiadhpkind6 = record[170].strip() + self.hiadhpcode7 = record[171].strip() + self.hiadhpkind7 = record[172].strip() + self.hiadhpcode8 = record[173].strip() + self.hiadhpkind8 = record[174].strip() + self.hiadhpcode9 = record[175].strip() + self.hiadhpkind9 = record[176].strip() + self.hiadhpcode10 = record[177].strip() + self.hiadhpkind10 = record[178].strip() + self.hiadhpcode11 = record[179].strip() + self.hiadhpkind11 = record[180].strip() + self.hiadhpcode12 = record[181].strip() + self.hiadhpkind12 = record[182].strip() + self.hiadhpcode13 = record[183].strip() + self.hiadhpkind13 = record[184].strip() + self.hiadhpcode14 = record[185].strip() + self.hiadhpkind14 = record[186].strip() + self.hiadhpcode15 = record[187].strip() + self.hiadhpkind15 = record[188].strip() + self.hiadhpcode16 = record[189].strip() + self.hiadhpkind16 = record[190].strip() + self.hiadhpcode17 = record[191].strip() + self.hiadhpkind17 = record[192].strip() + self.hiadhpcode18 = record[193].strip() + self.hiadhpkind18 = record[194].strip() + self.hiadhpcode19 = record[195].strip() + self.hiadhpkind19 = record[196].strip() + self.hiadhpcode20 = record[197].strip() + self.hiadhpkind20 = record[198].strip() + self.hiadhpcode21 = record[199].strip() + self.hiadhpkind21 = record[200].strip() + self.hiadhpcode22 = record[201].strip() + self.hiadhpkind22 = record[202].strip() + self.hiadhpcode23 = record[203].strip() + self.hiadhpkind23 = record[204].strip() + self.hiadhpcode24 = record[205].strip() + self.hiadhpkind24 = record[206].strip() + self.hiadhpcode25 = record[207].strip() + self.hiadhpkind25 = record[208].strip() + self.hiadhpcode26 = record[209].strip() + self.hiadhpkind26 = record[210].strip() + self.hiadhpcode27 = record[211].strip() + self.hiadhpkind27 = record[212].strip() + self.hiadhpcode28 = record[213].strip() + self.hiadhpkind28 = record[214].strip() + self.hiadhpcode29 = record[215].strip() + self.hiadhpkind29 = record[216].strip() + self.hiadhpcode30 = record[217].strip() + self.hiadhpkind30 = record[218].strip() + self.hiadhpcode31 = record[219].strip() + self.hiadhpkind31 = record[220].strip() + self.hiadhpcode32 = record[221].strip() + self.hiadhpkind32 = record[222].strip() + self.hiadhpcode33 = record[223].strip() + self.hiadhpkind33 = record[224].strip() + self.hiadhpcode34 = record[225].strip() + self.hiadhpkind34 = record[226].strip() + self.hiadhpcode35 = record[227].strip() + self.hiadhpkind35 = record[228].strip() + self.hiadhpcode36 = record[229].strip() + self.hiadhpkind36 = record[230].strip() + self.hiadhpcode37 = record[231].strip() + self.hiadhpkind37 = record[232].strip() + self.hiadhpcode38 = record[233].strip() + self.hiadhpkind38 = record[234].strip() + self.hiadhpcode39 = record[235].strip() + self.hiadhpkind39 = record[236].strip() + self.hiadhpcode40 = record[237].strip() + self.hiadhpkind40 = record[238].strip() + + self.hitechhp_flag = record[239].strip() + self.hitechhpkind1 = record[240].strip() + self.hitechhpkind2 = record[241].strip() + self.hitechhpkind3 = record[242].strip() + self.hitechhpkind4 = record[243].strip() + self.hitechhpkind5 = record[244].strip() + self.hitechhpkind6 = record[245].strip() + self.hitechhpkind7 = record[246].strip() + self.hitechhpkind8 = record[247].strip() + self.hitechhpkind9 = record[248].strip() + self.hitechhpkind10 = record[249].strip() + self.hitechhpkind11 = record[250].strip() + self.hitechhpkind12 = record[251].strip() + self.hitechhpkind13 = record[252].strip() + self.hitechhpkind14 = record[253].strip() + self.hitechhpkind15 = record[254].strip() + self.hitechhpkind16 = record[255].strip() + self.hitechhpkind17 = record[256].strip() + self.hitechhpkind18 = record[257].strip() + self.hitechhpkind19 = record[258].strip() + self.hitechhpkind20 = record[259].strip() + + self.policy_medical_flag = record[260].strip() + self.policymedical_code01 = record[261].strip() + self.policymedical_content01 = record[262].strip() + self.policymedical_code02 = record[263].strip() + self.policymedical_content02 = record[264].strip() + self.policymedical_code03 = record[265].strip() + self.policymedical_content03 = record[266].strip() + self.policymedical_code04 = record[267].strip() + self.policymedical_content04 = record[268].strip() + self.policymedical_code05 = record[269].strip() + self.policymedical_content05 = record[270].strip() + self.policymedical_code06 = record[271].strip() + self.policymedical_content06 = record[272].strip() + self.policymedical_code07 = record[273].strip() + self.policymedical_content07 = record[274].strip() + self.policymedical_code08 = record[275].strip() + self.policymedical_content08 = record[276].strip() + self.policymedical_code09 = record[277].strip() + self.policymedical_content09 = record[278].strip() + self.policymedical_code10 = record[279].strip() + self.policymedical_content10 = record[280].strip() + self.policymedical_code11 = record[281].strip() + self.policymedical_content11 = record[282].strip() + self.policymedical_code12 = record[283].strip() + self.policymedical_content12 = record[284].strip() + self.policymedical_code13 = record[285].strip() + self.policymedical_content13 = record[286].strip() + self.policymedical_code14 = record[287].strip() + self.policymedical_content14 = record[288].strip() + self.policymedical_code15 = record[289].strip() + self.policymedical_content15 = record[290].strip() + self.policymedical_code16 = record[291].strip() + self.policymedical_content16 = record[292].strip() + self.policymedical_code17 = record[293].strip() + self.policymedical_content17 = record[294].strip() + self.policymedical_code18 = record[295].strip() + self.policymedical_content18 = record[296].strip() + self.policymedical_code19 = record[297].strip() + self.policymedical_content19 = record[298].strip() + self.policymedical_code20 = record[299].strip() + self.policymedical_content20 = record[300].strip() + + self.visitcarest_flag = record[301].strip() + self.visitcarestation_id = record[302].strip() + self.visitcarestation_code = record[303].strip() + self.visitcarestation_yobi = record[304].strip() + + self.open_date = record[305].strip() + + # DCFDSF施設コード + self.dcfdsf_inst_code = self.dcfhp_id + self.dcfhp_code + self.dcfhp_yobi + + # 療養型病床群 + self.resthp_items = [ + self.resthp_flag, + self.resthp_care_kind, + self.resthp_bed_num, + self.resthp_ok_date, + self.resthp_can_date, + self.resthp_care_nrs_kind, + self.resthp_care_bed_num, + self.resthp_care_ok_date, + self.resthp_care_can_date, + self.resthp_sbed_num + ] + + # 臨床研修指定病院リスト + self.cl_items = [ + self.clolyhp_kind, + self.clolyhp_ok_date, + self.clolyhp_can_date, + self.clhp_kind, + self.clhp_ok_date, + self.clhp_can_date, + self.cldephp_kind, + self.cldephp_ok_date, + self.cldephp_can_date + ] + + # smallint型のカラム値は、空文字で渡ってきた場合はNULLに変換する + self.areasuphp_intrate = self.areasuphp_intrate if len(self.areasuphp_intrate) > 0 else None + self.resthp_bed_num = self.resthp_bed_num if len(self.resthp_bed_num) > 0 else None + self.resthp_care_bed_num = self.resthp_care_bed_num if len(self.resthp_care_bed_num) > 0 else None + self.resthp_sbed_num = self.resthp_sbed_num if len(self.resthp_sbed_num) > 0 else None + self.nrmhp_bed_total_num = self.nrmhp_bed_total_num if len(self.nrmhp_bed_total_num) > 0 else None + self.menthp_bed_num = self.menthp_bed_num if len(self.menthp_bed_num) > 0 else None + self.tubhp_bed_num = self.tubhp_bed_num if len(self.tubhp_bed_num) > 0 else None + self.infhp_bed_num = self.infhp_bed_num if len(self.infhp_bed_num) > 0 else None + self.hospice_bed_num = self.hospice_bed_num if len(self.hospice_bed_num) > 0 else None diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_med_area_city.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_med_area_city.py new file mode 100644 index 00000000..a1e0e4cc --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_med_area_city.py @@ -0,0 +1,24 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComMedAreaCity(UltmarcTable): + """レイアウト区分124: COM_医療圏都道府県市町村対応表""" + prefc_cd: str # 県コード + med_sphe_cd: str # 医療圏コード + jis_prefc_cd: str # JIS都道府県コード + jis_city_cd: str # JIS市区町村コード + zen_prefcode: str # 移動元2次コード(都道府県) + zen_medareacode: str # 移動元2次コード(医療圏コード) + maintflag: str # 修正区分 + addDelDiv: str # 追加削除区分 + + def __init__(self, record: list[str]): + super().__init__(record) + self.prefc_cd = record[1] + self.med_sphe_cd = record[2] + self.maintflag = record[3] + self.jis_prefc_cd = record[4] + self.jis_city_cd = record[5] + self.addDelDiv = record[6] + self.zen_prefcode = record[9].strip() + self.zen_medareacode = record[10].strip() diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_med_func_valuation.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_med_func_valuation.py index 6ed14c07..9eab1f21 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_med_func_valuation.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_med_func_valuation.py @@ -2,7 +2,7 @@ from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable class ComMedFuncValuation(UltmarcTable): - """レイアウト区分023: COM_医療機器評価""" + """レイアウト区分024: COM_医療機器評価""" maint_flag: str # 修正区分 med_func_valuation_cd: str # 医療機器評価コード med_func_valuation_name: str # 医療機器評価名称(漢字) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_med_prefc.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_med_prefc.py new file mode 100644 index 00000000..e08adc88 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_med_prefc.py @@ -0,0 +1,48 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComMedPrefc(UltmarcTable): + """レイアウト区分121: COM_医療圏都道府県""" + pref_code: str # 都道府県コード + rev_date: str # 医療圏メンテナンス年月日 + post_date: str # 公示年月日 + psy_bednum_tg: str # 精神_基準病床数 or 整備目標数 + psy_bednum_gen: str # 精神_既存病床数(病床数) + psy_bednum_date: str # 精神_既存病床数(年月日) + psy_eqbed_num: str # 精神_過不足病床数(差引) + tb_bednum_tg: str # 結核_基準病床数 or 整備目標数 + tb_bednum_gen: str # 結核_既存病床数(病床数) + tb_bednum_date: str # 結核_既存病床数(年月日) + tb_eqbed_num: str # 結核_過不足病床数(差引) + inf_bednum_tg: str # 感染症_基準病床数 or 整備目標数 + inf_bednum_gen: str # 感染症_既存病床数(病床数) + inf_bednum_date: str # 感染症_既存病床数(年月日) + inf_eqbed_num: str # 感染症_過不足病床数(差引) + maintflag: str # 修正区分 + + def __init__(self, record: list[str]): + super().__init__(record) + self.pref_code = record[1] + self.maintflag = record[2] + self.rev_date = record[5] + self.post_date = record[6] + self.psy_bednum_tg = record[7].strip() + self.psy_bednum_gen = record[8].strip() + self.psy_bednum_date = record[9] + self.psy_eqbed_num = record[10] + self.tb_bednum_tg = record[11].strip() + self.tb_bednum_gen = record[12].strip() + self.tb_bednum_date = record[13] + self.tb_eqbed_num = record[14] + self.inf_bednum_tg = record[15].strip() + self.inf_bednum_gen = record[16].strip() + self.inf_bednum_date = record[17] + self.inf_eqbed_num = record[18] + + # decimal型のカラム値は、空文字で渡ってきた場合はNULLに変換する + self.psy_bednum_tg = self.psy_bednum_tg if len(self.psy_bednum_tg) > 0 else None + self.psy_bednum_gen = self.psy_bednum_gen if len(self.psy_bednum_gen) > 0 else None + self.tb_bednum_tg = self.tb_bednum_tg if len(self.tb_bednum_tg) > 0 else None + self.tb_bednum_gen = self.tb_bednum_gen if len(self.tb_bednum_gen) > 0 else None + self.inf_bednum_tg = self.inf_bednum_tg if len(self.inf_bednum_tg) > 0 else None + self.inf_bednum_gen = self.inf_bednum_gen if len(self.inf_bednum_gen) > 0 else None diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_nurse_assrt.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_nurse_assrt.py index 710b9a0a..6a7fdb4e 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_nurse_assrt.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_nurse_assrt.py @@ -2,7 +2,7 @@ from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable class ComNurseAssrt(UltmarcTable): - """レイアウト区分022: COM_看護種別""" + """レイアウト区分023: COM_看護種別""" nurse_assrt_cd: str # 看護種別コード nurse_assrt_name: str # 看護種別名 maint_flag: str # 修正区分 diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_policy_med.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_policy_med.py new file mode 100644 index 00000000..ee726ae6 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_policy_med.py @@ -0,0 +1,14 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComPolicyMed(UltmarcTable): + """レイアウト区分028: COM_政策医療""" + policy_med_cd: str # 政策医療コード + field_name: str # 分野名称(漢字) + maint_flag: str # 修正区分 + + def __init__(self, record: list[str]): + super().__init__(record) + self.policy_med_cd = record[1] + self.field_name = record[5] + self.maint_flag = record[2] diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_base.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_base.py new file mode 100644 index 00000000..fd9342ff --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_base.py @@ -0,0 +1,157 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComPrefcMedBase(UltmarcTable): + """レイアウト区分132: COM_都道府県医療機能情報(基本)""" + dcfhp_id: str # DCFコード(レコードID) + dcfhp_code: str # DCFコード(施設コード) + dcfhp_yobi: str # DCFコード(予備) + maint_flag: str # 修正区分 + adddel_div: str # 予備/追加削除区分 + maint_date: str # メンテナンス年月日 + trn_date: str # 予備/転送年月日 + info_date: str # 情報年月日 + home_page: str # 案内用ホームページアドレス + hppre_flg: str # 院内処方フラグ + expre_flg: str # 院外処方フラグ + trial_flg: str # 治験の実施フラグ + trial_cont_count: str # 治験の実施_契約件数 + trial_whet_from: str # 治験の実施_期間自 + trial_whet_to: str # 治験の実施_期間至 + equipment_flg: str # 保有する施設設備フラグ + cos_disease_flg: str # 対応することができる疾患・治療の内容フラグ + cos_surgery: str # 対応することができる短期滞在手術フラグ + specialclinic_flg: str # 専門外来フラグ + establishment_flg: str # 地域医療連携体制_窓口設置フラグ + critical_flg: str # 地域医療連携体制_地域連携パスフラグ + cop_system: str # 入院診療計画策定時における院内の連携体制 + sys_exists_flg: str # オーダリングシステム_有無フラグ + sys_inspection: str # オーダリングシステム_検査 + sys_prescription: str # オーダリングシステム_処方 + sys_reserv: str # オーダリングシステム_予約 + icduse_flg: str # ICDコード利用フラグ + echart_flg: str # 電子カルテフラク + fulltime_flg: str # 専任従事者フラグ + fulltime_count: str # 専任従事者数 + ge_patient_avg: str # 病床患者数平均(一般) + mt_patient_avg: str # 病床患者数平均(療養) + mc_patient_avg: str # 病床患者数平均(療養(医療)) + ca_patient_avg: str # 病床患者数平均(療養(介護)) + pys_patient_avg: str # 病床患者数平均(精神) + tub_patient_avg: str # 病床患者数平均(結核) + inf_patient_avg: str # 病床患者数平均(感染症) + patient_avg_sum: str # 病床患者数平均(全体) + patient_avg_from: str # 病床患者数平均_期間自(病床種別) + patient_avg_to: str # 病床患者数平均_期間至(病床種別) + cl_patient_avg: str # 患者数平均(外来) + cl_patient_avg_from: str # 病床患者数平均_期間自(外来) + cl_patient_avg_to: str # 病床患者数平均_期間至(外来) + hm_patient_avg: str # 患者数平均(在宅) + hm_patient_avg_from: str # 病床患者数平均_期間自(在宅) + hm_patient_avg_to: str # 病床患者数平均_期間至(在宅) + ge_patient_ex: str # 患者数延数(一般) + mt_patient_ex: str # 患者数延数(療養) + mc_patient_ex: str # 病床患者数平均(療養(医療)) + ca_patient_ex: str # 病床患者数平均(療養(介護)) + pys_patient_ex: str # 患者数延数(精神) + tub_patient_ex: str # 患者数延数(結核) + inf_patient_ex: str # 患者数延数(感染症) + patient_ex_sum: str # 患者数延数(全体) + patient_ex_from: str # 患者数延数_期間自(病床種別) + patient_ex_to: str # 患者数延数_期間至(病床種別) + cl_patient_ex: str # 患者数延数(外来) + cl_patient_ex_from: str # 患者数延数_期間自(外来) + cl_patient_ex_to: str # 患者数延数_期間至(外来) + hm_patient_ex: str # 患者数延数(在宅) + hm_patient_ex_from: str # 患者数延数_期間自(在宅) + hm_patient_ex_to: str # 患者数延数_期間至(在宅) + ge_stay_avg: str # 平均在院日数(一般) + mt_stay_avg: str # 平均在院日数(療養) + mc_stay_avg: str # 平均在院日数(療養(医療)) + ca_stay_avg: str # 平均在院日数(療養(介護)) + pys_stay_avg: str # 平均在院日数(精神) + tub_stay_avg: str # 平均在院日数(結核) + inf_stay_avg: str # 平均在院日数(感染症) + stay_avg_sum: str # 平均在院日数(全体) + stay_avg_from: str # 平均在院日数_期間自 + stay_avg_to: str # 平均在院日数_期間至 + + dcfdsf_inst_code: str # DCFDSF施設コード + + def __init__(self, record: list[str]): + super().__init__(record) + self.dcfhp_id = record[1].strip() + self.dcfhp_code = record[2].strip() + self.dcfhp_yobi = record[3].strip() + self.maint_flag = record[4].strip() + self.adddel_div = record[5].strip() + self.maint_date = record[6].strip() + self.trn_date = record[7].strip() + self.info_date = record[8].strip() + self.home_page = record[9].strip() + self.hppre_flg = record[10].strip() + self.expre_flg = record[11].strip() + self.trial_flg = record[12].strip() + self.trial_cont_count = record[13].strip() + self.trial_whet_from = record[14].strip() + self.trial_whet_to = record[15].strip() + self.equipment_flg = record[16].strip() + self.cos_disease_flg = record[17].strip() + self.cos_surgery = record[18].strip() + self.specialclinic_flg = record[19].strip() + self.establishment_flg = record[20].strip() + self.critical_flg = record[21].strip() + self.cop_system = record[22].strip() + self.sys_exists_flg = record[23].strip() + self.sys_inspection = record[24].strip() + self.sys_prescription = record[25].strip() + self.sys_reserv = record[26].strip() + self.icduse_flg = record[27].strip() + self.echart_flg = record[28].strip() + self.fulltime_flg = record[29].strip() + self.fulltime_count = record[30].strip() + self.ge_patient_avg = record[31].strip() + self.mt_patient_avg = record[32].strip() + self.mc_patient_avg = record[33].strip() + self.ca_patient_avg = record[34].strip() + self.pys_patient_avg = record[35].strip() + self.tub_patient_avg = record[36].strip() + self.inf_patient_avg = record[37].strip() + self.patient_avg_sum = record[38].strip() + self.patient_avg_from = record[39].strip() + self.patient_avg_to = record[40].strip() + self.cl_patient_avg = record[41].strip() + self.cl_patient_avg_from = record[42].strip() + self.cl_patient_avg_to = record[43].strip() + self.hm_patient_avg = record[44].strip() + self.hm_patient_avg_from = record[45].strip() + self.hm_patient_avg_to = record[46].strip() + self.ge_patient_ex = record[47].strip() + self.mt_patient_ex = record[48].strip() + self.mc_patient_ex = record[49].strip() + self.ca_patient_ex = record[50].strip() + self.pys_patient_ex = record[51].strip() + self.tub_patient_ex = record[52].strip() + self.inf_patient_ex = record[53].strip() + self.patient_ex_sum = record[54].strip() + self.patient_ex_from = record[55].strip() + self.patient_ex_to = record[56].strip() + self.cl_patient_ex = record[57].strip() + self.cl_patient_ex_from = record[58].strip() + self.cl_patient_ex_to = record[59].strip() + self.hm_patient_ex = record[60].strip() + self.hm_patient_ex_from = record[61].strip() + self.hm_patient_ex_to = record[62].strip() + self.ge_stay_avg = record[63].strip() + self.mt_stay_avg = record[64].strip() + self.mc_stay_avg = record[65].strip() + self.ca_stay_avg = record[66].strip() + self.pys_stay_avg = record[67].strip() + self.tub_stay_avg = record[68].strip() + self.inf_stay_avg = record[69].strip() + self.stay_avg_sum = record[70].strip() + self.stay_avg_from = record[71].strip() + self.stay_avg_to = record[72].strip() + + # DCFDSF施設コード + self.dcfdsf_inst_code = ''.join([self.dcfhp_id, self.dcfhp_code, self.dcfhp_yobi]) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_dis_treat.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_dis_treat.py new file mode 100644 index 00000000..f7bacedd --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_dis_treat.py @@ -0,0 +1,30 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComPrefcMedDisTreat(UltmarcTable): + """レイアウト区分134: COM_都道府県医療機能情報(疾患治療)""" + dcfhp_id: str # DCFコード(レコードID) + dcfhp_code: str # DCFコード(施設コード) + dcfhp_yobi: str # DCFコード(予備) + treatment_code: str # 疾患治療コード + pre_num: str # 前年比 + adddel_div: str # 追加削除区分 + maint_flag: str # 修正区分 + + dcfdsf_inst_code: str # DCFDSF施設コード + + def __init__(self, record: list[str]): + super().__init__(record) + self.dcfhp_id = record[1] + self.dcfhp_code = record[2] + self.dcfhp_yobi = record[3].strip() + self.maint_flag = record[4] + self.treatment_code = record[5].strip() + self.adddel_div = record[6] + self.pre_num = record[9] + + # smallint型のカラム値は、空文字で渡ってきた場合はNULLに変換する + self.pre_num = self.pre_num if len(self.pre_num) > 0 else None + + # DCFDSF施設コード + self.dcfdsf_inst_code = ''.join([self.dcfhp_id, self.dcfhp_code, self.dcfhp_yobi]) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_equpment.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_equpment.py new file mode 100644 index 00000000..491a0a3f --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_equpment.py @@ -0,0 +1,30 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComPrefcMedEqupment(UltmarcTable): + """レイアウト区分133: COM_都道府県医療機能情報(施設設備)""" + dcfhp_id: str # DCFコード(レコードID) + dcfhp_code: str # DCFコード(施設コード) + dcfhp_yobi: str # DCFコード(予備) + equipment_code: str # 施設設備コード + bed_num: str # 病床数 + adddel_div: str # 追加削除区分 + maint_flag: str # 修正区分 + + dcfdsf_inst_code: str # DCFDSF施設コード + + def __init__(self, record: list[str]): + super().__init__(record) + self.dcfhp_id = record[1] + self.dcfhp_code = record[2] + self.dcfhp_yobi = record[3].strip() + self.maint_flag = record[4] + self.equipment_code = record[5].strip() + self.adddel_div = record[6] + self.bed_num = record[9] + + # smallint型のカラム値は、空文字で渡ってきた場合はNULLに変換する + self.bed_num = self.bed_num if len(self.bed_num) > 0 else None + + # DCFDSF施設コード + self.dcfdsf_inst_code = ''.join([self.dcfhp_id, self.dcfhp_code, self.dcfhp_yobi]) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_sojourn_ope.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_sojourn_ope.py new file mode 100644 index 00000000..4320bab2 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_sojourn_ope.py @@ -0,0 +1,25 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComPrefcMedSojournOpe(UltmarcTable): + """レイアウト区分135: COM_都道府県医療機能情報(短期滞在手術)""" + dcfhp_id: str # DCFコード(レコードID) + dcfhp_code: str # DCFコード(施設コード) + dcfhp_yobi: str # DCFコード(予備) + cos_surgery_code: str # 短期滞在手術コード + adddel_div: str # 追加削除区分 + maint_flag: str # 修正区分 + + dcfdsf_inst_code: str # DCFDSF施設コード + + def __init__(self, record: list[str]): + super().__init__(record) + self.dcfhp_id = record[1].strip() + self.dcfhp_code = record[2].strip() + self.dcfhp_yobi = record[3].strip() + self.maint_flag = record[4].strip() + self.cos_surgery_code = record[5].strip() + self.adddel_div = record[6].strip() + + # DCFDSF施設コード + self.dcfdsf_inst_code = ''.join([self.dcfhp_id, self.dcfhp_code, self.dcfhp_yobi]) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_sp_outpat.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_sp_outpat.py new file mode 100644 index 00000000..c26fc8e0 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_prefc_med_sp_outpat.py @@ -0,0 +1,29 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComPrefcMedSpOutpat(UltmarcTable): + """レイアウト区分136: COM_都道府県医療機能情報(専門外来)""" + dcfhp_id: str # DCFコード(レコードID) + dcfhp_code: str # DCFコード(施設コード) + dcfhp_yobi: str # DCFコード(予備) + specialclinic_name: str # 専門外来名 + sort_key: str # ソートキー + sectsub_cd: str # 分類補助コード + adddel_div: str # 追加削除区分 + maint_flag: str # 修正区分 + + dcfdsf_inst_code: str # DCFDSF施設コード + + def __init__(self, record: list[str]): + super().__init__(record) + self.dcfhp_id = record[1].strip() + self.dcfhp_code = record[2].strip() + self.dcfhp_yobi = record[3].strip() + self.maint_flag = record[4].strip() + self.specialclinic_name = record[5].strip() + self.adddel_div = record[6].strip() + self.sort_key = record[9].strip() + self.sectsub_cd = record[10].strip() + + # DCFDSF施設コード + self.dcfdsf_inst_code = ''.join([self.dcfhp_id, self.dcfhp_code, self.dcfhp_yobi]) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_regn_critic_pass.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_regn_critic_pass.py new file mode 100644 index 00000000..ee950adb --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_regn_critic_pass.py @@ -0,0 +1,14 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComRegnCriticPass(UltmarcTable): + """レイアウト区分026: COM_地域クリティカルパス""" + maint_flag: str # 修正区分 + regn_co_critic_pass_cd: str # 地域クリティカルパスコード + disease_name_kanji: str # 疾患名(漢字) + + def __init__(self, record: list[str]): + super().__init__(record) + self.maint_flag = record[2] + self.regn_co_critic_pass_cd = record[1] + self.disease_name_kanji = record[5] diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_rehabili.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_rehabili.py new file mode 100644 index 00000000..f1e13bb2 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_rehabili.py @@ -0,0 +1,14 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComRehabili(UltmarcTable): + """レイアウト区分027: COM_疾患別リハビリテーション科""" + maint_flag: str # 修正区分 + rehabili_cd: str # 疾患別リハビリコード + rehabili_name: str # リハビリテーション名称(漢字) + + def __init__(self, record: list[str]): + super().__init__(record) + self.maint_flag = record[2] + self.rehabili_cd = record[1] + self.rehabili_name = record[5] diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_snd_med_sphe.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_snd_med_sphe.py new file mode 100644 index 00000000..b1b33e66 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_snd_med_sphe.py @@ -0,0 +1,30 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComSndMedSphe(UltmarcTable): + """レイアウト区分123: COM_医療圏二次医療圏""" + prefc_cd: str # 県コード + med_sphe_cd: str # 医療圏コード + thrd_cd: str # 3次コード + snd_med_sphe_name: str # 2次医療圏名 + requd_bed_or_equip_target: str # 基準病床数 or 整備目標数 + exist_bed_num: str # 既存病床数(病床数) + exist_bed_num_regist_ymd: str # 既存病床数(年月日) + plsmns_bed_num: str # 過不足病床数 + maintflag: str # 修正区分 + + def __init__(self, record: list[str]): + super().__init__(record) + self.prefc_cd = record[1] + self.med_sphe_cd = record[2] + self.maintflag = record[3] + self.snd_med_sphe_name = record[6] + self.thrd_cd = record[7] + self.requd_bed_or_equip_target = record[8].strip() + self.exist_bed_num = record[9].strip() + self.exist_bed_num_regist_ymd = record[10] + self.plsmns_bed_num = record[11] + + # decimal型のカラム値は、空文字で渡ってきた場合はNULLに変換する + self.requd_bed_or_equip_target = self.requd_bed_or_equip_target if len(self.requd_bed_or_equip_target) > 0 else None + self.exist_bed_num = self.exist_bed_num if len(self.exist_bed_num) > 0 else None diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_sp_field.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_sp_field.py new file mode 100644 index 00000000..cc761c54 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_sp_field.py @@ -0,0 +1,42 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComSpField(UltmarcTable): + """レイアウト区分511: COM_専門分野""" + dcf_pcf_dr_cd: str # DCFPCF医師コード + dcf_dr_id: str # レコードID + dcf_dr_code: str # 個人コード + dcf_dr_yobi: str # 個人コード(予備) + maint_flag: str # 修正区分 + specialst_cd: str # 専門医コード + specialst_maint_div: str # 予備/専門医メンテ区分 + specialst_flg: str # 専門医フラグ + specialst_publsh_ymd: str # 専門医掲載年月日 + ackn_med_flg: str # 認定医フラグ + ackn_med_publsh_ymd: str # 認定医掲載年月日 + guide_med_flg: str # 指導医フラグ + guide_med_publsh_ymd: str # 指導医掲載年月日 + +# メンテナンス年月日 と 予備/転送年月日 は未使用 + + def __init__(self, record: list[str]): + super().__init__(record) + + self.dcf_dr_id = record[1].strip() + self.dcf_dr_code = record[2].strip() + self.dcf_dr_yobi = record[3].strip() + self.maint_flag = record[4].strip() + self.specialst_cd = record[5].strip() + self.specialst_maint_div = record[6].strip() + + self.specialst_flg = record[9].strip() + self.specialst_publsh_ymd = record[10].strip() + + self.ackn_med_flg = record[11].strip() + self.ackn_med_publsh_ymd = record[12].strip() + + self.guide_med_flg = record[13].strip() + self.guide_med_publsh_ymd = record[14].strip() + + # DCFPCF医師コード(レコードID + 個人コード + 個人コード(予備)) + self.dcf_pcf_dr_cd = ''.join([self.dcf_dr_id, self.dcf_dr_code, self.dcf_dr_yobi]) diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_thrd_med.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_thrd_med.py new file mode 100644 index 00000000..600e1632 --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_thrd_med.py @@ -0,0 +1,16 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComThrdMed(UltmarcTable): + """レイアウト区分122: COM_医療圏3次マスタ""" + pref_code: str # 都道府県コード + thrd_cd: str # 3次コード + thrd_med_sphe_name: str # 3次医療圏名称 + maintflag: str # 修正区分 + + def __init__(self, record: list[str]): + super().__init__(record) + self.pref_code = record[1] + self.thrd_cd = record[2] + self.maintflag = record[3] + self.thrd_med_sphe_name = record[6] diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_trt_course.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_trt_course.py new file mode 100644 index 00000000..0bc0612d --- /dev/null +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/tables/com_trt_course.py @@ -0,0 +1,18 @@ +from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable + + +class ComTrtCourse(UltmarcTable): + """レイアウト区分001: COM_診療科目""" + trt_course_cd: str # 診療科目コード + trt_course_name_kana: str # 診療科目名カナ + trt_course_name_abb: str # 診療科目名略称 + trt_course_name: str # 診療科目名 + maint_flag: str # 修正区分 + + def __init__(self, record: list[str]): + super().__init__(record) + self.trt_course_cd = record[1] + self.maint_flag = record[2] + self.trt_course_name_abb = record[5] + self.trt_course_name = record[6] + self.trt_course_name_kana = record[7] diff --git a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/ultmarc_table_mapper_factory.py b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/ultmarc_table_mapper_factory.py index c81630a2..d7aa040e 100644 --- a/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/ultmarc_table_mapper_factory.py +++ b/ecs/jskult-batch-daily/src/batch/ultmarc/utmp_tables/ultmarc_table_mapper_factory.py @@ -1,3 +1,4 @@ + from src.db.database import Database from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \ UltmarcTableMapper @@ -15,8 +16,48 @@ from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_nurse_assrt_mapper ComNurseAssrtMapper from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_pharm_mapper import \ ComPharmMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_sp_field_mapper import \ + ComSpFieldMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_policy_med_mapper import \ + ComPolicyMedMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_rehabili_mapper import \ + ComRehabiliMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_regn_critic_pass_mapper import \ + ComRegnCriticPassMapper from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_med_func_valuation_mapper import \ ComMedFuncValuationMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_dr_mapper import \ + ComDrMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_dr_sosiety_mapper import \ + ComDrSosietyMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_prefc_med_base_mapper import \ + ComPrefcMedBaseMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_prefc_med_equpment_mapper import \ + ComPrefcMedEqupmentMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_prefc_med_dis_treat_mapper import \ + ComPrefcMedDisTreatMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_prefc_med_sojourn_ope_mapper import \ + ComPrefcMedSojournOpeMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_prefc_med_sp_outpat_mapper import \ + ComPrefcMedSpOutpatMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_inst_att_mapper import \ + ComInstAttMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_cop_hp_mapper import \ + ComCopHpMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_trt_course_mapper import \ + ComTrtCourseMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_hp_assrt_mapper import \ + ComHpAssrtMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_alma_depart_disc_mapper import \ + ComAlmaDepartDiscMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_med_prefc_mapper import \ + ComMedPrefcMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_thrd_med_mapper import \ + ComThrdMedMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_snd_med_sphe_mapper import \ + ComSndMedSpheMapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete.com_med_area_city_mapper import \ + ComMedAreaCityMapper from src.batch.ultmarc.utmp_tables.table_mapper.concrete.null_mapper import \ NullMapper @@ -24,13 +65,13 @@ from src.batch.ultmarc.utmp_tables.table_mapper.concrete.null_mapper import \ COM_TABLE_LIST = { # レコードID固定 # COM_医師学会 - "521": NullMapper, + "521": ComDrSosietyMapper, # COM_施設属性 - "111": NullMapper, + "111": ComInstAttMapper, # COM_臨床研修病院 - "112": NullMapper, + "112": ComCopHpMapper, # COM_医師 - "501": NullMapper, + "501": ComDrMapper, # COM_施設 "101": ComInstMapper, # COM_薬局 @@ -38,23 +79,23 @@ COM_TABLE_LIST = { # COM_医師勤務先 "502": ComDrWrkplaceMapper, # COM_専門分野 - "511": NullMapper, + "511": ComSpFieldMapper, # COM_都道府県医療機能情報(基本) - "132": NullMapper, + "132": ComPrefcMedBaseMapper, # COM_都道府県医療機能情報(施設設備) - "133": NullMapper, + "133": ComPrefcMedEqupmentMapper, # COM_都道府県医療機能情報(疾患治療) - "134": NullMapper, + "134": ComPrefcMedDisTreatMapper, # COM_都道府県医療機能情報(短期滞在手術) - "135": NullMapper, + "135": ComPrefcMedSojournOpeMapper, # COM_都道府県医療機能情報(専門外来) - "136": NullMapper, + "136": ComPrefcMedSpOutpatMapper, # COM_診療科目 - "001": NullMapper, + "001": ComTrtCourseMapper, # COM_病院種別 - "002": NullMapper, + "002": ComHpAssrtMapper, # COM_出身校学部識別 - "003": NullMapper, + "003": ComAlmaDepartDiscMapper, # COM_出身校 "004": ComAlmaMapper, # COM_役職 @@ -80,19 +121,19 @@ COM_TABLE_LIST = { # COM_医療機能評価 "024": ComMedFuncValuationMapper, # COM_地域クリティカルパス - "026": NullMapper, + "026": ComRegnCriticPassMapper, # COM_疾患別リハビリテーション科 - "027": NullMapper, + "027": ComRehabiliMapper, # COM_政策医療 - "028": NullMapper, + "028": ComPolicyMedMapper, # COM_医療圏都道府県 - "121": NullMapper, + "121": ComMedPrefcMapper, # COM_医療圏3次マスタ - "122": NullMapper, + "122": ComThrdMedMapper, # COM_二次医療圏 - "123": NullMapper, + "123": ComSndMedSpheMapper, # COM_医療圏都道府県市町村対照表 - "124": NullMapper + "124": ComMedAreaCityMapper } diff --git a/ecs/jskult-batch-daily/src/jobctrl_daily.py b/ecs/jskult-batch-daily/src/jobctrl_daily.py index dc7146b7..47cf6a82 100644 --- a/ecs/jskult-batch-daily/src/jobctrl_daily.py +++ b/ecs/jskult-batch-daily/src/jobctrl_daily.py @@ -7,7 +7,7 @@ from src.batch.batch_functions import ( update_batch_processing_flag_in_processing) from src.batch.common.batch_context import BatchContext from src.batch.common.calendar_file import CalendarFile -from src.batch.laundering import create_dcf_inst_merge, create_mst_inst +from src.batch.laundering import create_dcf_inst_merge, mst_inst_laundering from src.batch.ultmarc import ultmarc_process from src.batch.vjsk import vjsk_importer from src.error.exceptions import BatchOperationException @@ -93,7 +93,7 @@ def exec(): try: logger.info('メルク施設マスタ作成:起動') - create_mst_inst.exec() + mst_inst_laundering.exec() logger.info('メルク施設マスタ作成:終了') except BatchOperationException as e: logger.exception(f'メルク施設マスタ作成 エラー(異常終了){e}') diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma/expect_com_alma_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma/expect_com_alma_delete.csv index afaca4a8..6cb36d4b 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma/expect_com_alma_delete.csv +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma/expect_com_alma_delete.csv @@ -2,7 +2,7 @@ "001","北大","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:43:15","com_alma_mapper" "002","札幌医","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:43:15","com_alma_mapper" "003","弘大","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:43:15","com_alma_mapper" -"004","","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:43:15","clsComAlma" +"004","","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:43:15","com_alma_mapper" "005","東北大","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:43:15","com_alma_mapper" "006","福島医","20171020","20171020","20171020","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:43:15","com_alma_mapper" "007","群馬大","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:43:15","com_alma_mapper","2017/10/20 10:43:15","com_alma_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma/expect_com_alma_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma/expect_com_alma_update.csv index 4fc8b3bc..f25889be 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma/expect_com_alma_update.csv +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma/expect_com_alma_update.csv @@ -2,7 +2,7 @@ "001","北大","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:35:27","com_alma_mapper" "002","札幌医","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:35:27","com_alma_mapper" "003","弘大","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:35:27","com_alma_mapper" -"004","岩手医","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:27:33","clsComAlma" +"004","","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:27:33","com_alma_mapper" "005","福島医","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:35:27","com_alma_mapper" "006","東北大","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","clsComAlma","2017/10/20 10:35:27","com_alma_mapper" "007","神大","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:27:33","com_alma_mapper","2017/10/20 10:35:27","com_alma_mapper" \ No newline at end of file diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/com_alma_depart_disc_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/com_alma_depart_disc_delete.csv new file mode 100644 index 00000000..430eb8d2 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/com_alma_depart_disc_delete.csv @@ -0,0 +1,7 @@ +"003","001","1","A","20141113","20141114","北大","1","09" +"003","001","2","A","20141113","20141114","北大","3","40" +"003","001","3","A","20141113","20141114","北大","3","42" +"003","002","1","A","20141113","20141114","","8","21" +"003","003","1","A","20141113","20141114","岩手医","8","21" +"003","004","1","C","20141113","20141114","弘大","8","21" +"003","004","2","A","20141113","20141114","岩手医","4","19" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/com_alma_depart_disc_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/com_alma_depart_disc_insert.csv new file mode 100644 index 00000000..3525f111 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/com_alma_depart_disc_insert.csv @@ -0,0 +1,7 @@ +"003","001","1","A","20141113","20141114","北大","1","09" +"003","001","2","A","20141113","20141114","北大","3","40" +"003","001","3","A","20141113","20141114","北大","3","42" +"003","002","1","A","20141113","20141114","札幌医","3","20" +"003","003","1","A","20141113","20141114","弘大","3","19" +"003","004","1","A","20141113","20141114","岩手医","3","03" +"003","999","9","A","","","あいうえおかきくけこあいうえおかきくけこあいうえお","1","99" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/com_alma_depart_disc_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/com_alma_depart_disc_update.csv new file mode 100644 index 00000000..7f9d64aa --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/com_alma_depart_disc_update.csv @@ -0,0 +1,6 @@ +"003","001","1","A","20141113","20141114","北大","1","09" +"003","001","2","A","20141113","20141114","北大","3","40" +"003","001","3","A","20141113","20141114","北大","3","42" +"003","002","1","A","20141113","20141114","","8","21" +"003","003","1","A","20141113","20141114","岩手医","8","21" +"003","004","1","A","20141113","20141114","弘大","8","21" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/db_com_alma_depart_disc_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/db_com_alma_depart_disc_before_delete.csv new file mode 100644 index 00000000..9b7b0649 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/db_com_alma_depart_disc_before_delete.csv @@ -0,0 +1,7 @@ +"alma_cd","depart_disc_cd","estab_e","estab_y","alma_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"001","1","1","09","北大","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2017/10/20 10:06:16","clsComAlmaDepartDisc" +"001","2","3","40","北大","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2017/10/20 10:06:16","clsComAlmaDepartDisc" +"001","3","3","42","北大","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2017/10/20 10:06:16","clsComAlmaDepartDisc" +"002","1","8","21","","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2017/10/20 10:06:16","clsComAlmaDepartDisc" +"003","1","8","21","岩手医","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2017/10/20 10:06:16","clsComAlmaDepartDisc" +"004","1","8","21","弘大","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2017/10/20 10:06:16","clsComAlmaDepartDisc" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/db_com_alma_depart_disc_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/db_com_alma_depart_disc_before_update.csv new file mode 100644 index 00000000..64e33084 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/db_com_alma_depart_disc_before_update.csv @@ -0,0 +1,8 @@ +"alma_cd","depart_disc_cd","estab_e","estab_y","alma_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"001","1","1","09","北大","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2017/10/20 9:54:51","clsComAlmaDepartDisc" +"001","2","3","40","北大","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2017/10/20 9:54:51","clsComAlmaDepartDisc" +"001","3","3","42","北大","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2017/10/20 9:54:51","clsComAlmaDepartDisc" +"002","1","3","20","札幌医","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2017/10/20 9:54:51","clsComAlmaDepartDisc" +"003","1","3","19","弘大","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2017/10/20 9:54:51","clsComAlmaDepartDisc" +"004","1","3","03","岩手医","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2017/10/20 9:54:51","clsComAlmaDepartDisc" +"999","9","1","99","あいうえおかきくけこあいうえおかきくけこあいうえお","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/14 9:54:51","com_alma_depart_disc_mapper","2023/05/14 9:54:51","aaaa" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/expect_com_alma_depart_disc_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/expect_com_alma_depart_disc_delete.csv new file mode 100644 index 00000000..9774279b --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/expect_com_alma_depart_disc_delete.csv @@ -0,0 +1,8 @@ +"alma_cd","depart_disc_cd","estab_e","estab_y","alma_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"001","1","1","09","北大","20171020","20230514","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2023/05/14 10:22:05","com_alma_depart_disc_mapper" +"001","2","3","40","北大","20171020","20230514","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2023/05/14 10:22:05","com_alma_depart_disc_mapper" +"001","3","3","42","北大","20171020","20230514","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2023/05/14 10:22:05","com_alma_depart_disc_mapper" +"002","1","8","21","","20171020","20230514","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2023/05/14 10:22:05","com_alma_depart_disc_mapper" +"003","1","8","21","岩手医","20171020","20230514","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2023/05/14 10:22:05","com_alma_depart_disc_mapper" +"004","1","8","21","弘大","20171020","20171020","20230514","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2023/05/14 10:22:05","com_alma_depart_disc_mapper" +"004","2","4","19","岩手医","20230514","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/14 10:22:05","com_alma_depart_disc_mapper","2023/05/14 10:22:05","com_alma_depart_disc_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/expect_com_alma_depart_disc_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/expect_com_alma_depart_disc_insert.csv new file mode 100644 index 00000000..23c77252 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/expect_com_alma_depart_disc_insert.csv @@ -0,0 +1,8 @@ +"alma_cd","depart_disc_cd","estab_e","estab_y","alma_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"001","1","1","09","北大","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/14 9:54:51","com_alma_depart_disc_mapper","2023/05/14 9:54:51","com_alma_depart_disc_mapper" +"001","2","3","40","北大","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/14 9:54:51","com_alma_depart_disc_mapper","2023/05/14 9:54:51","com_alma_depart_disc_mapper" +"001","3","3","42","北大","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/14 9:54:51","com_alma_depart_disc_mapper","2023/05/14 9:54:51","com_alma_depart_disc_mapper" +"002","1","3","20","札幌医","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/14 9:54:51","com_alma_depart_disc_mapper","2023/05/14 9:54:51","com_alma_depart_disc_mapper" +"003","1","3","19","弘大","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/14 9:54:51","com_alma_depart_disc_mapper","2023/05/14 9:54:51","com_alma_depart_disc_mapper" +"004","1","3","03","岩手医","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/14 9:54:51","com_alma_depart_disc_mapper","2023/05/14 9:54:51","com_alma_depart_disc_mapper" +"999","9","1","99","あいうえおかきくけこあいうえおかきくけこあいうえお","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/14 9:54:51","com_alma_depart_disc_mapper","2023/05/14 9:54:51","com_alma_depart_disc_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/expect_com_alma_depart_disc_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/expect_com_alma_depart_disc_update.csv new file mode 100644 index 00000000..69a09486 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/expect_com_alma_depart_disc_update.csv @@ -0,0 +1,8 @@ +"alma_cd","depart_disc_cd","estab_e","estab_y","alma_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"001","1","1","09","北大","20171020","20230514","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2023/05/14 10:06:16","com_alma_depart_disc_mapper" +"001","2","3","40","北大","20171020","20230514","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2023/05/14 10:06:16","com_alma_depart_disc_mapper" +"001","3","3","42","北大","20171020","20230514","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2023/05/14 10:06:16","com_alma_depart_disc_mapper" +"002","1","8","21","","20171020","20230514","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2023/05/14 10:06:16","com_alma_depart_disc_mapper" +"003","1","8","21","岩手医","20171020","20230514","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2023/05/14 10:06:16","com_alma_depart_disc_mapper" +"004","1","8","21","弘大","20171020","20230514","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:54:51","clsComAlmaDepartDisc","2023/05/14 10:06:16","com_alma_depart_disc_mapper" +"999","9","1","99","あいうえおかきくけこあいうえおかきくけこあいうえお","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/14 9:54:51","com_alma_depart_disc_mapper","2023/05/14 9:54:51","aaaa" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/test_com_alma_depart_disc_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/test_com_alma_depart_disc_mapper.py new file mode 100644 index 00000000..b3881eac --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_alma_depart_disc/test_com_alma_depart_disc_mapper.py @@ -0,0 +1,236 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_alma_depart_disc_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComAlmaDepartDiscMapper: + """レイアウト区分003: COM_出身校学部識別""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_出身校学部識別テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_alma_depart_disc_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_alma_depart_disc', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_alma_depart_disc_mapper.ComAlmaDepartDiscMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_alma_depart_disc_mapper.ComAlmaDepartDiscMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_alma_depart_disc_insert.csv')) + primary_keys_alma_cd = [{'alma_cd': columns['alma_cd']} for columns in expect_data_list] + primary_keys_depart_disc_cd = [{'depart_disc_cd': columns['depart_disc_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_alma_depart_disc + WHERE + alma_cd = :alma_cd + AND depart_disc_cd = :depart_disc_cd\ + """ + for param_alma_cd, param_depart_disc_cd in zip(primary_keys_alma_cd, primary_keys_depart_disc_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_alma_cd, **param_depart_disc_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ['regist_ymd', 'sys_regist_date', 'sys_update_date']: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_出身校学部識別テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_alma_depart_disc_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_alma_depart_disc', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_alma_depart_disc_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_alma_depart_disc', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_alma_depart_disc_mapper.ComAlmaDepartDiscMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_alma_depart_disc_mapper.ComAlmaDepartDiscMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_alma_depart_disc_update.csv')) + primary_keys_alma_cd = [{'alma_cd': columns['alma_cd']} for columns in expect_data_list] + primary_keys_depart_disc_cd = [{'depart_disc_cd': columns['depart_disc_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_alma_depart_disc + WHERE + alma_cd = :alma_cd + AND depart_disc_cd = :depart_disc_cd\ + """ + for param_alma_cd, param_depart_disc_cd in zip(primary_keys_alma_cd, primary_keys_depart_disc_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_alma_cd, **param_depart_disc_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_出身校学部識別テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_alma_depart_disc_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_alma_depart_disc', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_alma_depart_disc_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_alma_depart_disc', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_alma_depart_disc_mapper.ComAlmaDepartDiscMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_alma_depart_disc_mapper.ComAlmaDepartDiscMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_alma_depart_disc_delete.csv')) + primary_keys_alma_cd = [{'alma_cd': columns['alma_cd']} for columns in expect_data_list] + primary_keys_depart_disc_cd = [{'depart_disc_cd': columns['depart_disc_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_alma_depart_disc + WHERE + alma_cd = :alma_cd + AND depart_disc_cd = :depart_disc_cd\ + """ + for param_alma_cd, param_depart_disc_cd in zip(primary_keys_alma_cd, primary_keys_depart_disc_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_alma_cd, **param_depart_disc_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/com_cop_hp_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/com_cop_hp_delete.csv new file mode 100644 index 00000000..bc912e04 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/com_cop_hp_delete.csv @@ -0,0 +1,3 @@ +"112","00","9901649","","B","00","1101813","","2013","1","20170328","20170401","" +"112","00","9904439","","B","00","1101135","","2013","1","20170328","20170401","" +"112","00","9904439","","B","00","1101717","","2013","1","20170328","20170401","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/com_cop_hp_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/com_cop_hp_insert.csv new file mode 100644 index 00000000..37706281 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/com_cop_hp_insert.csv @@ -0,0 +1,7 @@ +"112","00","9901649","","A","00","1101813","","2013","2","20141113","20141114","1" +"112","00","9901649","","A","00","1101813","","2014","2","20141113","20141114","1" +"112","00","9904439","","A","00","1101135","","2013","2","20141113","20141114","2" +"112","00","9904439","","A","00","1101135","","2014","2","20141113","20141114","2" +"112","00","9904439","","A","00","1101717","","2013","2","20141113","20141114","1" +"112","00","9904439","","A","00","1101717","","2014","2","20141113","20141114","1" +"112","99","9999999","99","A","11","1111111","11","2023","0","20141113","20141114","1" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/com_cop_hp_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/com_cop_hp_update.csv new file mode 100644 index 00000000..cecbf3a3 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/com_cop_hp_update.csv @@ -0,0 +1,4 @@ +"112","00","9901649","","B","00","1101813","","2013","3","20141113","20141114","1" +"112","00","9901649","","B","00","1101813","","2014","4","20141113","20141114","1" +"112","99","9999999","99","B","11","1111111","11","2014","4","20141113","20141114","123" +"112","99","9999999","00","B","11","1111111","11","2014","4","20141113","20141114","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/db_com_cop_hp_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/db_com_cop_hp_before_delete.csv new file mode 100644 index 00000000..536cd1c2 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/db_com_cop_hp_before_delete.csv @@ -0,0 +1,7 @@ +"dcf_dsf_inst_cd","cophp_cd","openyear","adddel_div","sortkey","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","001101813","2013","NULL","1","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/11 21:20:37","clsComCopHp" +"009901649","001101813","2014","NULL","1","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/11 21:20:37","clsComCopHp" +"009904439","001101135","2013","NULL","2","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"009904439","001101135","2014","NULL","2","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"009904439","001101717","2013","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"009904439","001101717","2014","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/db_com_cop_hp_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/db_com_cop_hp_before_update.csv new file mode 100644 index 00000000..42519300 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/db_com_cop_hp_before_update.csv @@ -0,0 +1,9 @@ +"dcf_dsf_inst_cd","cophp_cd","openyear","adddel_div","sortkey","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","001101813","2013","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"009901649","001101813","2014","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"009904439","001101135","2013","NULL","2","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"009904439","001101135","2014","NULL","2","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"009904439","001101717","2013","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"009904439","001101717","2014","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"99999999999","11111111111","2014","NULL","0","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"99999999900","11111111111","2014","NULL","0","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/expect_com_cop_hp_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/expect_com_cop_hp_delete.csv new file mode 100644 index 00000000..efcda970 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/expect_com_cop_hp_delete.csv @@ -0,0 +1,4 @@ +"dcf_dsf_inst_cd","cophp_cd","openyear","adddel_div","sortkey","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","001101813","2014","NULL","1","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/11 21:20:37","clsComCopHp" +"009904439","001101135","2014","NULL","2","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"009904439","001101717","2014","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/expect_com_cop_hp_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/expect_com_cop_hp_insert.csv new file mode 100644 index 00000000..8864ba3f --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/expect_com_cop_hp_insert.csv @@ -0,0 +1,8 @@ +"dcf_dsf_inst_cd","cophp_cd","openyear","adddel_div","sortkey","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","001101813","2013","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2023/05/08 20:39:15","com_cop_hp_mapper","2023/05/08 20:39:15","com_cop_hp_mapper" +"009901649","001101813","2014","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2023/05/08 20:39:15","com_cop_hp_mapper","2023/05/08 20:39:15","com_cop_hp_mapper" +"009904439","001101135","2013","NULL","2","20171008","NULL","NULL","NULL","NULL","NULL","2023/05/08 20:39:15","com_cop_hp_mapper","2023/05/08 20:39:15","com_cop_hp_mapper" +"009904439","001101135","2014","NULL","2","20171008","NULL","NULL","NULL","NULL","NULL","2023/05/08 20:39:15","com_cop_hp_mapper","2023/05/08 20:39:15","com_cop_hp_mapper" +"009904439","001101717","2013","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2023/05/08 20:39:15","com_cop_hp_mapper","2023/05/08 20:39:15","com_cop_hp_mapper" +"009904439","001101717","2014","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2023/05/08 20:39:15","com_cop_hp_mapper","2023/05/08 20:39:15","com_cop_hp_mapper" +"99999999999","11111111111","2023","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2023/05/08 20:39:15","com_cop_hp_mapper","2023/05/08 20:39:15","com_cop_hp_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/expect_com_cop_hp_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/expect_com_cop_hp_update.csv new file mode 100644 index 00000000..0ab83cfa --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/expect_com_cop_hp_update.csv @@ -0,0 +1,9 @@ +"dcf_dsf_inst_cd","cophp_cd","openyear","adddel_div","sortkey","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","001101813","2013","NULL","1","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2023/05/10 07:49:28","com_cop_hp_mapper" +"009901649","001101813","2014","NULL","1","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2023/05/10 07:49:28","com_cop_hp_mapper" +"009904439","001101135","2013","NULL","2","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"009904439","001101135","2014","NULL","2","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"009904439","001101717","2013","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"009904439","001101717","2014","NULL","1","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" +"99999999999","11111111111","2014","NULL","123","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2023/05/10 07:57:12","com_cop_hp_mapper" +"99999999900","11111111111","2014","NULL","0","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComCopHp","2017/10/08 20:57:12","clsComCopHp" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/test_com_cop_hp_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/test_com_cop_hp_mapper.py new file mode 100644 index 00000000..29b840e2 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_cop_hp/test_com_cop_hp_mapper.py @@ -0,0 +1,248 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_cop_hp_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComCopHpMapper: + """レイアウト区分112: COM_臨床研修病院""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_臨床研修病院テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_cop_hp_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_cop_hp', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_cop_hp_mapper.ComCopHpMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_cop_hp_mapper.ComCopHpMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_cop_hp_insert.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_cophp_cd = [{'cophp_cd': columns['cophp_cd']} for columns in expect_data_list] + primary_keys_openyear = [{'openyear': columns['openyear']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_cop_hp + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + cophp_cd = :cophp_cd + AND + openyear = :openyear + """ + for param_dcf_pcf_dr_cd, param_cophp_cd, param_openyear in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_cophp_cd, primary_keys_openyear): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_pcf_dr_cd, **param_cophp_cd, **param_openyear}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ['regist_ymd', 'sys_regist_date', 'sys_update_date']: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_臨床研修病院テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_cop_hp_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_cop_hp', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_cop_hp_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_cop_hp', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_cop_hp_mapper.ComCopHpMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_cop_hp_mapper.ComCopHpMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_cop_hp_update.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_cophp_cd = [{'cophp_cd': columns['cophp_cd']} for columns in expect_data_list] + primary_keys_openyear = [{'openyear': columns['openyear']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_cop_hp + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + cophp_cd = :cophp_cd + AND + openyear = :openyear + """ + for param_dcf_pcf_dr_cd, param_cophp_cd, param_openyear in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_cophp_cd, primary_keys_openyear): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_pcf_dr_cd, **param_cophp_cd, **param_openyear}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_臨床研修病院テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_cop_hp_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_cop_hp', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_cop_hp_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_cop_hp', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_cop_hp_mapper.ComCopHpMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_cop_hp_mapper.ComCopHpMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_cop_hp_delete.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_cophp_cd = [{'cophp_cd': columns['cophp_cd']} for columns in expect_data_list] + primary_keys_openyear = [{'openyear': columns['openyear']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_cop_hp + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + cophp_cd = :cophp_cd + AND + openyear = :openyear + """ + for param_dcf_pcf_dr_cd, param_cophp_cd, param_openyear in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_cophp_cd, primary_keys_openyear): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_pcf_dr_cd, **param_cophp_cd, **param_openyear}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/com_dr_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/com_dr_delete.csv new file mode 100644 index 00000000..6b3b6b3c --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/com_dr_delete.csv @@ -0,0 +1,6 @@ +"501","01","222222","33","C","20230425","20230426","7","8","9","10","11","12","1","4","15","06","17","18","19","1","21","022","3","4","25","A26","C27","I28","K29","L30","1","32","033","034","035","231-0036","37","38","126-1-39","40","41","42","43","44","45","46","47","045-625-2048","49","50","20200501","20200502","3","4","55","6" +"501","01","994301","00","C","20230427","20141129","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"501","01","997906","00","C","20230427","20141129","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"501","01","995783","00","C","20230427","20141129","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"501","01","999613","00","C","20230427","20141129","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"501","01","997682","00","C","20230427","20141129","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" 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 new file mode 100644 index 00000000..cf50c90e --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/com_dr_insert.csv @@ -0,0 +1,6 @@ +"501","01","222222","33","A","20230425","20230426","7","8","9","10","11","12","1","4","15","06","17","18","19","1","21","022","3","4","25","A26","C27","I28","K29","L30","1","32","033","034","035","231-0036","37","38","126-1-39","40","41","42","43","44","45","46","47","045-625-2048","49","50","20200501","20200502","3","4","55","6" +"501","01","994301","00","A","20141113","20141114","","","","","菅間 正気","カンマ セイキ","1","3","16","01","14","37","37","3","44","011","1","3","44","A01","C01","I01","K01","C04","","14","104","094","000","231-0862","神奈川県横浜市中区山手町126-1 クレスト山手306","カナガワケン ヨコハマシ ナカク ヤマテチヨウ 126-1 クレストヤマテ 306","126-1-306","04","05","03","00","08","10","07","00","045-625-2067","","","","","1","","","" +"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","","","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/com_dr_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/com_dr_update.csv new file mode 100644 index 00000000..09c509fb --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/com_dr_update.csv @@ -0,0 +1,9 @@ +"501","01","222222","33","A","20230425","20230426","7","8","9","10","11","12","1","4","15","06","17","18","19","1","21","022","3","4","25","A26","C27","I28","K29","L30","1","32","033","034","035","231-0036","37","38","126-1-39","40","41","42","43","44","45","46","47","045-625-2048","49","50","20200501","20200502","3","4","55","6" +"501","99","999999","99","A","20230425","20230426","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"501","01","994301","00","B","20170911","20170912","","01","998099","00","","","2","","","","","","","","","022","2","","","@","","","","","","13","102","022","002","103-0013","東京都中央区日本橋人形町2-7-10-10","トウキヨウト チユウオウク ニホンバシニンギヨウチヨウ 2-7-10-10","2-7-10-10","09","09","09","09","09","09","09","09","045-999-9999","03","B06","20160831","20161125","","","","1" +"501","01","995783","00","B","20170921","20170922","5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","4","04","" +"501","01","997682","00","B","20170922","20170923","","","","","横浜 三紀子","ヨコハマ ミキコ","2","4","3","11","12","99","99","3","52","057","1","3","10","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","B","20170911","20170912","","","","","","","","@","","","","","","@","","","","","","U91","U92","U93","U94","U95","5","","","","","","","","","","","","","","","","","@","","","","","","@","","" +"501","01","999613","00","B","20170901","20170902","@","","","","","","","4","2","09","22","37","11","","","","","@","","","","","","","@","01","002","033","444","555-6666","神奈川県鎌倉市玉縄2-8-30","カナガワケン カマクラシ タマナワ 2-8-30","2-8-30","00","00","00","00","00","00","00","00","","","","","","","","","" +"501","99","999999","90","B","20230425","20230426","@","@","9","10","11","12","1","@","15","06","17","18","19","@","21","022","3","@","25","@","C27","I28","K29","L30","@","32","033","034","035","231-0036","37","38","126-1-39","40","41","42","43","44","45","46","47","@","@","@","@","@","3","@","55","6" +"501","99","999999","00","A","20230425","20230426","","","","","","","","","","","","","","","","","","","","A01","","A03","","A05","","","","","","","","","","","","","","","","","","","","","","","","","","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_before_delete.csv new file mode 100644 index 00000000..6afe1981 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_before_delete.csv @@ -0,0 +1,7 @@ +"dcf_pcf_dr_cd","dr_name_kana","dr_name","birthday_era","birthday_year","birthday_month","birthday_day","birthday","hometown_cd","estab_era","estab_year","estab_y","home_phone_number","home_addr_kana","home_addr","home_postal_number","addr_village_cd","prefc_cd","city_cd","addr_display_number","addr_cnt_kana","addr_cnt","dr_circle_cd","estab_div_cd","sex_cd","delete_sche_reason_cd","addr_unknown_reason_cd","alma_cd","depart_disc_cd","grad_era","grad_year","grad_y","lump_regist_flg","opp_dup_cd","dr_ph_div","use_stop_div","use_stop_reason_cd","use_stop_regist_ymd","use_stop_cancel_ymd","drday_era","drday_year","drday_y","cor_dnfdr_cd","abolish_ymd","delete_flg","filler_1","filler_2","filler_3","filler_4","filler_5","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"0122222233","12","11","4","15","06","17","20030617","18","4","55","2043","045-625-2048","38","37","231-0036","32033034035","32","033","126-1-39","44454647","40414243","19","3","1","7","1","022","3","1","21","1888","6","8910","1","49","50","20200501","20200502","4","25","2013","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_dr_mapper","2023/04/12 00:00:00","com_dr_mapper" +"0199430100","カンマ セイキ","菅間 正気","3","16","01","14","19410114","37","","","NULL","045-999-9999","トウキヨウト チユウオウク ニホンバシニンギヨウチヨウ 2-7-10-10","東京都中央区日本橋人形町2−7−10−10","103-0013","13102022002","13","102","2-7-10-10","09090909","09090909","37","1","2","","","022","2","3","44","1969","1","199809900","1","03","B06","20160831","20161125","3","44","1969","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"0199578300","フナコシ マサノブ","船越 正信","3","29","01","06","19540106","53","4","04","1992","","","","","00000000000","00","000","","00000000","00000000","55","2","1","5","7","039","1","3","53","1978","","NULL","1","02","A05","20051003","","3","53","1978","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"0199768200","ヨコハマ ミキコ","横浜 三紀子","4","3","11","12","19911112","99","","","NULL","03-3579-1698","トウキヨウト イタバシク ホンチヨウ 6-3-301","東京都板橋区本町6−3−301","173-0001","13119047000","13","119","6-3-301","07070600","03030200","99","2","2","","","057","1","3","52","1977","1","NULL","1","","","","","3","10","1935","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"0199790600","オカ モリマサ","丘 守正","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","","5","799","1","NULL","NULL","NULL","","NULL","1","","","","","","","NULL","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"0199961300","フジタ アカネ","藤田 茜","4","2","09","22","19900922","37","","","NULL","","カナガワケン カマクラシ タマナワ 2-8-30","神奈川県鎌倉市玉縄2−8−30","555-6666","01002033444","01","002","2-8-30","00000000","00000000","11","9","2","NULL","NULL","799","1","","","NULL","","0148106500","1","","","","","NULL","NULL","NULL","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_before_update.csv new file mode 100644 index 00000000..1c34701d --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_before_update.csv @@ -0,0 +1,10 @@ +"dcf_pcf_dr_cd","dr_name_kana","dr_name","birthday_era","birthday_year","birthday_month","birthday_day","birthday","hometown_cd","estab_era","estab_year","estab_y","home_phone_number","home_addr_kana","home_addr","home_postal_number","addr_village_cd","prefc_cd","city_cd","addr_display_number","addr_cnt_kana","addr_cnt","dr_circle_cd","estab_div_cd","sex_cd","delete_sche_reason_cd","addr_unknown_reason_cd","alma_cd","depart_disc_cd","grad_era","grad_year","grad_y","lump_regist_flg","opp_dup_cd","dr_ph_div","use_stop_div","use_stop_reason_cd","use_stop_regist_ymd","use_stop_cancel_ymd","drday_era","drday_year","drday_y","cor_dnfdr_cd","abolish_ymd","delete_flg","filler_1","filler_2","filler_3","filler_4","filler_5","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"0122222233","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","aaaa","2023/04/12 00:00:00","aaaaa" +"9999999999","12","11","4","15","06","17","20030617","18","4","55","2043","045-625-2048","38","37","231-0036","32033034035","32","033","126-1-39","44454647","40414243","19","3","1","7","1","022","3","1","21","1888","6","8910","1","49","50","20200501","20200502","4","25","2013","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","aaaa","2023/04/12 00:00:00","aaaa" +"0199430100","カンマ セイキ","菅間 正気","3","16","01","14","19410114","37","","","NULL","045-625-2067","カナガワケン ヨコハマシ ナカク ヤマテチヨウ 126-1 クレストヤマテ 306","神奈川県横浜市中区山手町126−1 クレスト山手306","231-0862","14104094000","14","104","126-1-306","08100700","04050300","37","1","1","","","011","1","3","44","1969","","NULL","1","","","","","3","44","1969","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"0199578300","フナコシ マサノブ","船越 正信","3","29","01","06","19540106","53","","","NULL","","","","","00000000000","00","000","","00000000","00000000","55","2","1","","7","039","1","3","53","1978","","NULL","1","02","A05","20051003","","3","53","1978","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"0199768200","カワサキ ミキコ","川崎 三紀子","3","46","10","03","19711003","99","","","NULL","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","NULL","1","","","","","4","11","1999","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"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","","NULL","1","","","","","","","NULL","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"0199961300","フジタ アカネ","藤田 茜","","","","","NULL","99","","","NULL","","","","","00000000000","00","000","","00000000","00000000","99","9","2","5","6","799","1","","","NULL","","0148106500","1","","","","","4","23","2011","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"9999999990","12","11","4","15","06","17","20030617","18","4","55","2043","045-625-2048","38","37","231-0036","32033034035","32","033","126-1-39","44454647","40414243","19","3","1","7","1","022","3","1","21","1888","6","8910","1","49","50","20200501","20200502","4","25","2013","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","aaaa","2023/04/12 00:00:00","aaaa" +"9999999900","12","11","4","15","06","17","20030617","18","4","55","2043","045-625-2048","38","37","231-0036","32033034035","32","033","126-1-39","44454647","40414243","19","3","1","7","1","022","3","1","21","1888","6","8910","1","49","50","20200501","20200502","4","25","2013","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","aaaa","2023/04/12 00:00:00","aaaa" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_trt_course_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_trt_course_before_delete.csv new file mode 100644 index 00000000..cf12270f --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_trt_course_before_delete.csv @@ -0,0 +1,15 @@ +"trt_course_cd","dcf_pcf_dr_cd","sequence","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"A01","0122222233","4","20141125","NULL","NULL","NULL","NULL","NULL","2014/12/03 16:26:05","PKG_03_1_F1101_011","2014/12/03 16:26:05","PKG_03_1_F1101_011" +"A01","9999999999","4","20141125","NULL","NULL","NULL","NULL","NULL","2014/12/03 16:26:05","PKG_03_1_F1101_011","2014/12/03 16:26:05","PKG_03_1_F1101_011" +"A01","0199578300","1","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"L03","0199578300","5","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"L01","0199578300","2","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"E02","0199578300","3","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"C04","0199578300","4","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"A58","0199768200","2","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"A01","0199768200","1","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"U91","0199790600","1","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"U92","0199790600","2","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"U93","0199790600","3","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"U94","0199790600","4","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"U95","0199790600","5","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_trt_course_before_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_trt_course_before_insert.csv new file mode 100644 index 00000000..f2497d92 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_trt_course_before_insert.csv @@ -0,0 +1,2 @@ +"trt_course_cd","dcf_pcf_dr_cd","sequence","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"A01","0122222233","4","20141125","NULL","NULL","NULL","NULL","NULL","2014/12/03 16:26:05","PKG_03_1_F1101_011","2014/12/03 16:26:05","PKG_03_1_F1101_011" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_trt_course_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_trt_course_before_update.csv new file mode 100644 index 00000000..cf4d0ac7 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_dr_trt_course_before_update.csv @@ -0,0 +1,16 @@ +"trt_course_cd","dcf_pcf_dr_cd","sequence","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"A01","0122222233","4","20141125","NULL","NULL","NULL","NULL","NULL","2014/12/03 16:26:05","PKG_03_1_F1101_011","2014/12/03 16:26:05","PKG_03_1_F1101_011" +"A01","9999999999","4","20141125","NULL","NULL","NULL","NULL","NULL","2014/12/03 16:26:05","PKG_03_1_F1101_011","2014/12/03 16:26:05","PKG_03_1_F1101_011" +"A01","9999999900","4","20141125","NULL","NULL","NULL","NULL","NULL","2014/12/03 16:26:05","PKG_03_1_F1101_011","2014/12/03 16:26:05","PKG_03_1_F1101_011" +"A01","0199578300","1","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_dr_mapper","2017/10/08 20:57:12","com_dr_mapper" +"A01","0199768200","1","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" +"A58","0199768200","2","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" +"C04","0199578300","4","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_dr_mapper","2017/10/08 20:57:12","com_dr_mapper" +"E02","0199578300","3","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_dr_mapper","2017/10/08 20:57:12","com_dr_mapper" +"L03","0199578300","5","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_dr_mapper","2017/10/08 20:57:12","com_dr_mapper" +"L01","0199578300","2","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_dr_mapper","2017/10/08 20:57:12","com_dr_mapper" +"U91","0199790600","1","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" +"U92","0199790600","2","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" +"U93","0199790600","3","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" +"U94","0199790600","4","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" +"U95","0199790600","5","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_era_before.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_era_before.csv new file mode 100644 index 00000000..c11243ae --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/db_com_era_before.csv @@ -0,0 +1,6 @@ +era_cd","era_name","year","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"1","明治","1867","2014/10/24 11:29:55","INIT ","2014/10/24 11:29:55","INIT ","2014/10/24 11:29:55","INIT","2014/10/24 11:29:55","INIT" +"2","大正","1911","2014/10/24 11:29:56","INIT ","2014/10/24 11:29:56","INIT ","2014/10/24 11:29:56","INIT","2014/10/24 11:29:56","INIT" +"3","昭和","1925","2014/10/24 11:29:56","INIT ","2014/10/24 11:29:56","INIT ","2014/10/24 11:29:56","INIT","2014/10/24 11:29:56","INIT" +"4","平成","1988","2014/10/24 11:29:57","INIT ","2014/10/24 11:29:57","INIT ","2014/10/24 11:29:57","INIT","2014/10/24 11:29:57","INIT" +"5","令和","2018","2019/05/07 10:27:29","dwh_supp","2019/05/07 10:27:29","dwh_supp","2019/05/07 10:27:29","dwh_support","2019/05/07 10:27:29","dwh_support" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_delete.csv new file mode 100644 index 00000000..94734929 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_delete.csv @@ -0,0 +1,7 @@ +"dcf_pcf_dr_cd","dr_name_kana","dr_name","birthday_era","birthday_year","birthday_month","birthday_day","birthday","hometown_cd","estab_era","estab_year","estab_y","home_phone_number","home_addr_kana","home_addr","home_postal_number","addr_village_cd","prefc_cd","city_cd","addr_display_number","addr_cnt_kana","addr_cnt","dr_circle_cd","estab_div_cd","sex_cd","delete_sche_reason_cd","addr_unknown_reason_cd","alma_cd","depart_disc_cd","grad_era","grad_year","grad_y","lump_regist_flg","opp_dup_cd","dr_ph_div","use_stop_div","use_stop_reason_cd","use_stop_regist_ymd","use_stop_cancel_ymd","drday_era","drday_year","drday_y","cor_dnfdr_cd","abolish_ymd","delete_flg","filler_1","filler_2","filler_3","filler_4","filler_5","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"0122222233","12","11","4","15","06","17","20030617","18","4","55","2043","045-625-2048","38","37","231-0036","32033034035","32","033","126-1-39","44454647","40414243","19","3","1","7","1","022","3","1","21","1888","6","8910","1","49","50","20200501","20200502","4","25","2013","NULL","20230425","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_dr_mapper","2023/04/12 00:00:00","com_dr_mapper" +"0199430100","カンマ セイキ","菅間 正気","3","16","01","14","19410114","37","","","NULL","045-999-9999","トウキヨウト チユウオウク ニホンバシニンギヨウチヨウ 2-7-10-10","東京都中央区日本橋人形町2−7−10−10","103-0013","13102022002","13","102","2-7-10-10","09090909","09090909","37","1","2","","","022","2","3","44","1969","1","199809900","1","03","B06","20160831","20161125","3","44","1969","NULL","20230427","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/11 21:20:37","com_dr_mapper" +"0199578300","フナコシ マサノブ","船越 正信","3","29","01","06","19540106","53","4","04","1992","","","","","00000000000","00","000","","00000000","00000000","55","2","1","5","7","039","1","3","53","1978","","NULL","1","02","A05","20051003","","3","53","1978","NULL","20230427","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/11 21:20:37","com_dr_mapper" +"0199768200","ヨコハマ ミキコ","横浜 三紀子","4","3","11","12","19911112","99","","","NULL","03-3579-1698","トウキヨウト イタバシク ホンチヨウ 6-3-301","東京都板橋区本町6−3−301","173-0001","13119047000","13","119","6-3-301","07070600","03030200","99","2","2","","","057","1","3","52","1977","1","NULL","1","","","","","3","10","1935","NULL","20230427","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/11 21:20:37","com_dr_mapper" +"0199790600","オカ モリマサ","丘 守正","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","","5","799","1","NULL","NULL","NULL","","NULL","1","","","","","","","NULL","NULL","20230427","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/11 21:20:37","com_dr_mapper" +"0199961300","フジタ アカネ","藤田 茜","4","2","09","22","19900922","37","","","NULL","","カナガワケン カマクラシ タマナワ 2-8-30","神奈川県鎌倉市玉縄2−8−30","555-6666","01002033444","01","002","2-8-30","00000000","00000000","11","9","2","NULL","NULL","799","1","","","NULL","","0148106500","1","","","","","NULL","NULL","NULL","NULL","20230427","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/11 21:20:37","com_dr_mapper" 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 new file mode 100644 index 00000000..bc0d5932 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_insert.csv @@ -0,0 +1,7 @@ +"dcf_pcf_dr_cd","dr_name_kana","dr_name","birthday_era","birthday_year","birthday_month","birthday_day","birthday","hometown_cd","estab_era","estab_year","estab_y","home_phone_number","home_addr_kana","home_addr","home_postal_number","addr_village_cd","prefc_cd","city_cd","addr_display_number","addr_cnt_kana","addr_cnt","dr_circle_cd","estab_div_cd","sex_cd","delete_sche_reason_cd","addr_unknown_reason_cd","alma_cd","depart_disc_cd","grad_era","grad_year","grad_y","lump_regist_flg","opp_dup_cd","dr_ph_div","use_stop_div","use_stop_reason_cd","use_stop_regist_ymd","use_stop_cancel_ymd","drday_era","drday_year","drday_y","cor_dnfdr_cd","abolish_ymd","delete_flg","filler_1","filler_2","filler_3","filler_4","filler_5","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"0122222233","12","11","4","15","06","17","20030617","18","4","55","2043","045-625-2048","38","37","231-0036","32033034035","32","033","126-1-39","44454647","40414243","19","3","1","7","1","022","3","1","21","1888","6","8910","1","49","50","20200501","20200502","4","25","2013","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_dr_mapper","2023/04/12 00:00:00","com_dr_mapper" +"0199430100","カンマ セイキ","菅間 正気","3","16","01","14","19410114","37","","","","045-625-2067","カナガワケン ヨコハマシ ナカク ヤマテチヨウ 126-1 クレストヤマテ 306","神奈川県横浜市中区山手町126-1 クレスト山手306","231-0862","14104094000","14","104","126-1-306","08100700","04050300","37","1","1","","","011","1","3","44","1969","","","1","","","","","3","44","1969","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" +"0199578300","フナコシ マサノブ","船越 正信","3","29","01","06","19540106","53","","","","","","","","00000000000","00","000","","00000000","00000000","55","2","1","","7","039","1","3","53","1978","","","1","02","A05","20051003","","3","53","1978","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" +"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" +"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" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_trt_course_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_trt_course_delete.csv new file mode 100644 index 00000000..900ee683 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_trt_course_delete.csv @@ -0,0 +1,15 @@ +"trt_course_cd","dcf_pcf_dr_cd","sequence","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"A01","0122222233","4","20141125","NULL","NULL","NULL","NULL","NULL","2014/12/03 16:26:05","PKG_03_1_F1101_011","2014/12/03 16:26:05","PKG_03_1_F1101_011" +"A01","0199578300","1","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"A01","0199768200","1","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"A01","9999999999","4","20141125","NULL","NULL","NULL","NULL","NULL","2014/12/03 16:26:05","PKG_03_1_F1101_011","2014/12/03 16:26:05","PKG_03_1_F1101_011" +"A58","0199768200","2","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"C04","0199578300","4","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"E02","0199578300","3","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"L03","0199578300","5","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"L01","0199578300","2","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/08 20:57:12","clsComDrInfo" +"U91","0199790600","1","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"U92","0199790600","2","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"U93","0199790600","3","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"U94","0199790600","4","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" +"U95","0199790600","5","20171011","NULL","NULL","NULL","NULL","NULL","2017/10/11 21:20:37","clsComDrInfo","2017/10/11 21:20:37","clsComDrInfo" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_trt_course_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_trt_course_insert.csv new file mode 100644 index 00000000..eb819263 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_trt_course_insert.csv @@ -0,0 +1,23 @@ +"trt_course_cd","dcf_pcf_dr_cd","sequence","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"A01","0199430100","1","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"A01","0199578300","1","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"A01","0199768200","1","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"A01","0199790600","1","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"A11","0199790600","5","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"A21","0199790600","4","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"A26","0122222233","1","20230427","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_dr_mapper","2023/04/12 00:00:00","com_dr_mapper" +"A31","0199790600","3","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"A58","0199768200","2","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"C01","0199430100","2","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"C04","0199430100","5","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"C04","0199578300","4","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"C27","0122222233","2","20230427","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_dr_mapper","2023/04/12 00:00:00","com_dr_mapper" +"E02","0199578300","3","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"I01","0199430100","3","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"I28","0122222233","3","20230427","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_dr_mapper","2023/04/12 00:00:00","com_dr_mapper" +"K01","0199430100","4","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"K29","0122222233","4","20230427","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_dr_mapper","2023/04/12 00:00:00","com_dr_mapper" +"L01","0199578300","2","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"L01","0199790600","2","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"L03","0199578300","5","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/08 16:16:43","com_dr_mapper","2017/10/08 16:16:43","com_dr_mapper" +"L30","0122222233","5","20230427","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_dr_mapper","2023/04/12 00:00:00","com_dr_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_trt_course_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_trt_course_update.csv new file mode 100644 index 00000000..fa2ab558 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_trt_course_update.csv @@ -0,0 +1,17 @@ +"trt_course_cd","dcf_pcf_dr_cd","sequence","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"A01","0199768200","1","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" +"A01","9999999900","1","20141125","NULL","NULL","NULL","NULL","NULL","2023/04/12 16:26:05","com_dr_mapper","2023/04/12 16:26:05","com_dr_mapper" +"A03","9999999900","3","20141125","NULL","NULL","NULL","NULL","NULL","2023/04/12 16:26:05","com_dr_mapper","2023/04/12 16:26:05","com_dr_mapper" +"A05","9999999900","5","20141125","NULL","NULL","NULL","NULL","NULL","2023/04/12 16:26:05","com_dr_mapper","2023/04/12 16:26:05","com_dr_mapper" +"A01","9999999999","4","20141125","NULL","NULL","NULL","NULL","NULL","2014/12/03 16:26:05","PKG_03_1_F1101_011","2014/12/03 16:26:05","PKG_03_1_F1101_011" +"A26","0122222233","1","20230427","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_dr_mapper","2023/04/12 00:00:00","com_dr_mapper" +"A58","0199768200","2","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" +"C27","0122222233","2","20230427","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_dr_mapper","2023/04/12 00:00:00","com_dr_mapper" +"I28","0122222233","3","20230427","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_dr_mapper","2023/04/12 00:00:00","com_dr_mapper" +"K29","0122222233","4","20230427","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_dr_mapper","2023/04/12 00:00:00","com_dr_mapper" +"L30","0122222233","5","20230427","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","com_dr_mapper","2023/04/12 00:00:00","com_dr_mapper" +"U91","0199790600","1","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" +"U92","0199790600","2","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" +"U93","0199790600","3","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" +"U94","0199790600","4","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" +"U95","0199790600","5","20230427","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:06:51","com_dr_mapper","2017/10/09 18:06:51","com_dr_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_update.csv new file mode 100644 index 00000000..882e4c9e --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/expect_com_dr_update.csv @@ -0,0 +1,9 @@ +"dcf_pcf_dr_cd","dr_name_kana","dr_name","birthday_era","birthday_year","birthday_month","birthday_day","birthday","hometown_cd","estab_era","estab_year","estab_y","home_phone_number","home_addr_kana","home_addr","home_postal_number","addr_village_cd","prefc_cd","city_cd","addr_display_number","addr_cnt_kana","addr_cnt","dr_circle_cd","estab_div_cd","sex_cd","delete_sche_reason_cd","addr_unknown_reason_cd","alma_cd","depart_disc_cd","grad_era","grad_year","grad_y","lump_regist_flg","opp_dup_cd","dr_ph_div","use_stop_div","use_stop_reason_cd","use_stop_regist_ymd","use_stop_cancel_ymd","drday_era","drday_year","drday_y","cor_dnfdr_cd","abolish_ymd","delete_flg","filler_1","filler_2","filler_3","filler_4","filler_5","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"0122222233","12","11","4","15","06","17","20030617","18","4","55","2043","045-625-2048","38","37","231-0036","32033034035","32","033","126-1-39","44454647","40414243","19","3","1","7","1","022","3","1","21","1888","6","8910","1","49","50","20200501","20200502","4","25","2013","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","aaaa","2023/04/12 00:00:00","com_dr_mapper" +"0199430100","カンマ セイキ","菅間 正気","3","16","01","14","19410114","37","","","NULL","045-999-9999","トウキヨウト チユウオウク ニホンバシニンギヨウチヨウ 2-7-10-10","東京都中央区日本橋人形町2-7-10-10","103-0013","13102022002","13","102","2-7-10-10","09090909","09090909","37","1","2","","","022","2","3","44","1969","1","0199809900","1","03","B06","20160831","20161125","3","44","1969","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/09 18:06:51","com_dr_mapper" +"0199578300","フナコシ マサノブ","船越 正信","3","29","01","06","19540106","53","4","04","1992","","","","","00000000000","00","000","","00000000","00000000","55","2","1","5","7","039","1","3","53","1978","","NULL","1","02","A05","20051003","","3","53","1978","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/09 18:06:51","com_dr_mapper" +"0199768200","ヨコハマ ミキコ","横浜 三紀子","4","3","11","12","19911112","99","","","NULL","03-3579-1698","トウキヨウト イタバシク ホンチヨウ 6-3-301","東京都板橋区本町6-3-301","173-0001","13119047000","13","119","6-3-301","07070600","03030200","99","2","2","","","057","1","3","52","1977","1","NULL","1","","","","","3","10","1935","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/09 18:06:51","com_dr_mapper" +"0199790600","オカ モリマサ","丘 守正","","","","","","99","","","","","イバラキケン ヒタチナカシ オオアザミタンダ 3892-4","茨城県ひたちなか市大字三反田3892−4","312-0021","08221095000","08","221","3892-4","08071100","03060500","31","1","1","","5","799","1","","","","","NULL","1","","","","","","","NULL","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/09 18:06:51","com_dr_mapper" +"0199961300","フジタ アカネ","藤田 茜","4","2","09","22","19900922","37","","","NULL","","カナガワケン カマクラシ タマナワ 2-8-30","神奈川県鎌倉市玉縄2-8-30","555-6666","01002033444","01","002","2-8-30","00000000","00000000","11","9","2","","","799","1","","","NULL","","0148106500","1","","","","","","","","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrInfo","2017/10/09 18:06:51","com_dr_mapper" +"9999999990","12","11","","","","","","18","","","","","38","37","231-0036","32033034035","32","033","126-1-39","44454647","40414243","19","3","1","","","022","3","","","","6","","1","","","","","","","","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","aaaa","2023/04/12 00:00:00","com_dr_mapper" +"9999999999","12","11","4","15","06","17","20030617","18","4","55","2043","045-625-2048","38","37","231-0036","32033034035","32","033","126-1-39","44454647","40414243","19","3","1","7","1","022","3","1","21","1888","6","8910","1","49","50","20200501","20200502","4","25","2013","NULL","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","aaaa","2023/04/12 00:00:00","aaaa" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/test_com_dr_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/test_com_dr_mapper.py new file mode 100644 index 00000000..5d45b49b --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr/test_com_dr_mapper.py @@ -0,0 +1,366 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_dr_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComDrMapper: + """レイアウト区分501: COM_医師""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_医師テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_dr_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_dr', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_dr_trt_course', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_era', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む(医師診察科目) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_dr_trt_course_before_insert.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_dr_trt_course', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + # DBデータを読み込む(年号) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_era_before.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_era', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_dr_mapper.ComDrMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_dr_mapper.ComDrMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む(医師) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_dr_insert.csv')) + primary_keys = [f"'{primary_key['dcf_pcf_dr_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_dr WHERE dcf_pcf_dr_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + # 期待値ファイルを読み込む(医師診察科目) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_dr_trt_course_insert.csv')) + primary_keys_course_cd = [{'trt_course_cd': columns['trt_course_cd']} for columns in expect_data_list] + primary_keys_dcf_pcf_dr_cd = [{'dcf_pcf_dr_cd': columns['dcf_pcf_dr_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_dr_trt_course + WHERE + trt_course_cd = :trt_course_cd + AND dcf_pcf_dr_cd = :dcf_pcf_dr_cd\ + """ + for param_course_cd, param_dcf_pcf_dr_cd in zip(primary_keys_course_cd, primary_keys_dcf_pcf_dr_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_course_cd, **param_dcf_pcf_dr_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['sequence', 'regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if actual_col_name == 'sequence': + assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_医師テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_dr_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_dr', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_dr_trt_course', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_era', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む(医師) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_dr_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_dr', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + # DBデータを読み込む(医師診察科目) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_dr_trt_course_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_dr_trt_course', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + # DBデータを読み込む(年号) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_era_before.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_era', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_dr_mapper.ComDrMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_dr_mapper.ComDrMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む(医師) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_dr_update.csv')) + primary_keys = [f"'{primary_key['dcf_pcf_dr_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_dr WHERE dcf_pcf_dr_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + # 期待値ファイルを読み込む(医師診察科目) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_dr_trt_course_update.csv')) + primary_keys_course_cd = [{'trt_course_cd': columns['trt_course_cd']} for columns in expect_data_list] + primary_keys_dcf_pcf_dr_cd = [{'dcf_pcf_dr_cd': columns['dcf_pcf_dr_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_dr_trt_course + WHERE + trt_course_cd = :trt_course_cd + AND dcf_pcf_dr_cd = :dcf_pcf_dr_cd\ + """ + for param_course_cd, param_dcf_pcf_dr_cd in zip(primary_keys_course_cd, primary_keys_dcf_pcf_dr_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_course_cd, **param_dcf_pcf_dr_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['sequence', 'regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name == 'sequence': + assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_医師テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_dr_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_dr', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_dr_trt_course', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_era', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む(医師) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_dr_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_dr', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + # DBデータを読み込む(医師診察科目) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_dr_trt_course_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_dr_trt_course', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + # DBデータを読み込む(年号) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_era_before.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_era', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_dr_mapper.ComDrMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_dr_mapper.ComDrMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_dr_delete.csv')) + primary_keys = [f"'{primary_key['dcf_pcf_dr_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_dr WHERE dcf_pcf_dr_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + # 期待値ファイルを読み込む(医師診察科目) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_dr_trt_course_delete.csv')) + primary_keys_course_cd = [{'trt_course_cd': columns['trt_course_cd']} for columns in expect_data_list] + primary_keys_dcf_pcf_dr_cd = [{'dcf_pcf_dr_cd': columns['dcf_pcf_dr_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_dr_trt_course + WHERE + trt_course_cd = :trt_course_cd + AND dcf_pcf_dr_cd = :dcf_pcf_dr_cd\ + """ + for param_course_cd, param_dcf_pcf_dr_cd in zip(primary_keys_course_cd, primary_keys_dcf_pcf_dr_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_course_cd, **param_dcf_pcf_dr_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['sequence', 'regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name == 'sequence': + assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/com_dr_sosiety_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/com_dr_sosiety_delete.csv new file mode 100644 index 00000000..4e125d4b --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/com_dr_sosiety_delete.csv @@ -0,0 +1,9 @@ +"521","01","994301","00","B","027","1","20160826","20160903","" +"521","01","995783","00","B","027","1","20160826","20160903","" +"521","01","997682","00","B","027","1","20160826","20160903","" +"521","01","997906","00","B","008","1","20170331","20170408","" +"521","01","997906","00","B","223","1","20170407","20170415","" +"521","01","997906","00","B","116","1","20170407","20170415","" +"521","01","999613","00","B","027","1","20170414","20170422","" +"521","01","999613","00","B","223","1","20170414","20170422","" +"521","01","999999","00","B","999","1","20170414","20170422","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/com_dr_sosiety_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/com_dr_sosiety_insert.csv new file mode 100644 index 00000000..7ef35de9 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/com_dr_sosiety_insert.csv @@ -0,0 +1,10 @@ +"521","01","994301","00","A","027","2","20141113","20141114","2003" +"521","01","994301","00","A","223","2","20141113","20141114","2002" +"521","01","995783","00","A","027","2","20141113","20141114","2003" +"521","01","997682","00","A","027","2","20141113","20141114","2014" +"521","01","997906","00","A","027","2","20141113","20141114","2003" +"521","01","997906","00","A","116","2","20141113","20141114","2002" +"521","01","997906","00","A","223","2","20141113","20141114","2002" +"521","01","999613","00","A","027","2","20141113","20141114","2003" +"521","01","999613","00","A","223","2","20141113","20141114","2002" +"521","01","999999","99","A","999","2","20141113","20141114","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/com_dr_sosiety_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/com_dr_sosiety_update.csv new file mode 100644 index 00000000..b592b065 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/com_dr_sosiety_update.csv @@ -0,0 +1,3 @@ +"521","01","994301","00","B","027","2","20170826","20170903","2016" +"521","01","997906","00","B","008","2","20161113","20161114","2003" +"521","01","999999","99","B","999","2","20161113","20161114","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/db_com_dr_sosiety_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/db_com_dr_sosiety_before_delete.csv new file mode 100644 index 00000000..22213e4a --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/db_com_dr_sosiety_before_delete.csv @@ -0,0 +1,11 @@ +"sosiety_cd","dcf_pcf_dr_cd","sosiety_f","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"027","0199430100","2016","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/11 21:20:37","clsComDrSosiety" +"223","0199430100","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"027","0199578300","2003","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"027","0199768200","2014","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"008","0199790600","2003","20171009","20171011","NULL","NULL","NULL","NULL","2017/10/09 14:00:03","clsComDrSosiety","2017/10/11 21:20:37","clsComDrSosiety" +"027","0199790600","2003","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"223","0199790600","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"116","0199790600","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"027","0199961300","2003","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"223","0199961300","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/db_com_dr_sosiety_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/db_com_dr_sosiety_before_update.csv new file mode 100644 index 00000000..0de14d99 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/db_com_dr_sosiety_before_update.csv @@ -0,0 +1,11 @@ +"sosiety_cd","dcf_pcf_dr_cd","sosiety_f","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"027","0199430100","2003","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"223","0199430100","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"027","0199578300","2003","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"027","0199768200","2014","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"027","0199790600","2003","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"116","0199790600","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"223","0199790600","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"027","0199961300","2003","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"223","0199961300","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"999","0199999999","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/expect_com_dr_sosiety_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/expect_com_dr_sosiety_delete.csv new file mode 100644 index 00000000..b614477b --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/expect_com_dr_sosiety_delete.csv @@ -0,0 +1,3 @@ +"sosiety_cd","dcf_pcf_dr_cd","sosiety_f","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"027","0199790600","2003","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"223","0199430100","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/expect_com_dr_sosiety_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/expect_com_dr_sosiety_insert.csv new file mode 100644 index 00000000..d4efb0c6 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/expect_com_dr_sosiety_insert.csv @@ -0,0 +1,10 @@ +"sosiety_cd","dcf_pcf_dr_cd","sosiety_f","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"027","0199430100","2003","20230426","NULL","NULL","NULL","NULL","NULL","2023/04/08 17:05:14","com_dr_sosiety_mapper","2023/04/08 17:05:14","com_dr_sosiety_mapper" +"027","0199578300","2003","20230426","NULL","NULL","NULL","NULL","NULL","2023/04/08 17:05:14","com_dr_sosiety_mapper","2023/04/08 17:05:14","com_dr_sosiety_mapper" +"027","0199768200","2014","20230426","NULL","NULL","NULL","NULL","NULL","2023/04/08 17:05:14","com_dr_sosiety_mapper","2023/04/08 17:05:14","com_dr_sosiety_mapper" +"027","0199790600","2003","20230426","NULL","NULL","NULL","NULL","NULL","2023/04/08 17:05:14","com_dr_sosiety_mapper","2023/04/08 17:05:14","com_dr_sosiety_mapper" +"027","0199961300","2003","20230426","NULL","NULL","NULL","NULL","NULL","2023/04/08 17:05:14","com_dr_sosiety_mapper","2023/04/08 17:05:14","com_dr_sosiety_mapper" +"116","0199790600","2002","20230426","NULL","NULL","NULL","NULL","NULL","2023/04/08 17:05:14","com_dr_sosiety_mapper","2023/04/08 17:05:14","com_dr_sosiety_mapper" +"223","0199430100","2002","20230426","NULL","NULL","NULL","NULL","NULL","2023/04/08 17:05:14","com_dr_sosiety_mapper","2023/04/08 17:05:14","com_dr_sosiety_mapper" +"223","0199790600","2002","20230426","NULL","NULL","NULL","NULL","NULL","2023/04/08 17:05:14","com_dr_sosiety_mapper","2023/04/08 17:05:14","com_dr_sosiety_mapper" +"999","0199999999","","20230426","NULL","NULL","NULL","NULL","NULL","2023/04/08 17:05:14","com_dr_sosiety_mapper","2023/04/08 17:05:14","com_dr_sosiety_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/expect_com_dr_sosiety_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/expect_com_dr_sosiety_update.csv new file mode 100644 index 00000000..a4b0381c --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/expect_com_dr_sosiety_update.csv @@ -0,0 +1,12 @@ +"sosiety_cd","dcf_pcf_dr_cd","sosiety_f","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"008","0199790600","2003","20230426","NULL","NULL","NULL","NULL","NULL","2023/04/09 14:00:03","com_dr_sosiety_mapper","2023/04/09 14:00:03","com_dr_sosiety_mapper" +"027","0199430100","2016","20171008","20230426","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2023/04/09 14:00:03","com_dr_sosiety_mapper" +"027","0199578300","2003","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"027","0199768200","2014","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"027","0199790600","2003","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"027","0199961300","2003","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"116","0199790600","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"223","0199430100","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"223","0199790600","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"223","0199961300","2002","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2017/10/08 20:57:12","clsComDrSosiety" +"999","0199999999","","20171008","20230426","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComDrSosiety","2023/04/08 20:57:12","com_dr_sosiety_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/test_com_dr_sosiety_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/test_com_dr_sosiety_mapper.py new file mode 100644 index 00000000..d577cfa1 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_sosiety/test_com_dr_sosiety_mapper.py @@ -0,0 +1,242 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_dr_sosiety_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComDrSosietyMapper: + """レイアウト区分521: COM_所属学会""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_所属学会テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_dr_sosiety_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_dr_sosiety', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_dr_sosiety_mapper.ComDrSosietyMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_dr_sosiety_mapper.ComDrSosietyMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_dr_sosiety_insert.csv')) + primary_keys_dcf_pcf_dr_cd = [{'dcf_pcf_dr_cd': columns['dcf_pcf_dr_cd']} for columns in expect_data_list] + primary_keys_sosiety_cd = [{'sosiety_cd': columns['sosiety_cd']} for columns in expect_data_list] + actual_data_list = [] + dr_sosiety_select_sql = """\ + SELECT * FROM src05.com_dr_sosiety + WHERE + sosiety_cd = :sosiety_cd + AND + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + \ + """ + for param_sosiety_cd, param_dcf_pcf_dr_cd in zip(primary_keys_sosiety_cd, primary_keys_dcf_pcf_dr_cd): + dr_sosiety_data = self.db.execute_select( + dr_sosiety_select_sql, + {**param_sosiety_cd, **param_dcf_pcf_dr_cd}) + assert len(dr_sosiety_data) == 1, '1件取得できていること' + actual_data_list.append(dr_sosiety_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_所属学会テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_dr_sosiety_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_dr_sosiety', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_dr_sosiety_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_dr_sosiety', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_dr_sosiety_mapper.ComDrSosietyMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_dr_sosiety_mapper.ComDrSosietyMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_dr_sosiety_update.csv')) + primary_keys_dcf_pcf_dr_cd = [{'dcf_pcf_dr_cd': columns['dcf_pcf_dr_cd']} for columns in expect_data_list] + primary_keys_sosiety_cd = [{'sosiety_cd': columns['sosiety_cd']} for columns in expect_data_list] + actual_data_list = [] + dr_sosiety_select_sql = """\ + SELECT * FROM src05.com_dr_sosiety + WHERE + sosiety_cd = :sosiety_cd + AND + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + \ + """ + for param_dcf_pcf_dr_cd, param_sosiety_cd in zip(primary_keys_sosiety_cd, primary_keys_dcf_pcf_dr_cd): + dr_sosiety_data = self.db.execute_select( + dr_sosiety_select_sql, + {**param_sosiety_cd, **param_dcf_pcf_dr_cd}) + assert len(dr_sosiety_data) == 1, '1件取得できていること' + actual_data_list.append(dr_sosiety_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_所属学会テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_dr_sosiety_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_dr_sosiety', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_dr_sosiety_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_dr_sosiety', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_dr_sosiety_mapper.ComDrSosietyMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_dr_sosiety_mapper.ComDrSosietyMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_dr_sosiety_delete.csv')) + primary_keys_dcf_pcf_dr_cd = [{'dcf_pcf_dr_cd': columns['dcf_pcf_dr_cd']} for columns in expect_data_list] + primary_keys_sosiety_cd = [{'sosiety_cd': columns['sosiety_cd']} for columns in expect_data_list] + actual_data_list = [] + dr_sosiety_select_sql = """\ + SELECT * FROM src05.com_dr_sosiety + WHERE + sosiety_cd = :sosiety_cd + AND + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + \ + """ + for param_dcf_pcf_dr_cd, param_sosiety_cd in zip(primary_keys_sosiety_cd, primary_keys_dcf_pcf_dr_cd): + dr_sosiety_data = self.db.execute_select( + dr_sosiety_select_sql, + {**param_sosiety_cd, **param_dcf_pcf_dr_cd}) + assert len(dr_sosiety_data) == 1, '1件取得できていること' + actual_data_list.append(dr_sosiety_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_wrkplace/test_com_dr_wrkplace_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_wrkplace/test_com_dr_wrkplace_mapper.py index 89e65b54..b0d57a25 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_wrkplace/test_com_dr_wrkplace_mapper.py +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_dr_wrkplace/test_com_dr_wrkplace_mapper.py @@ -15,7 +15,7 @@ from tests.testing_utility import (assert_table_results, class TestComDrWrkplaceMapper: - """COM_DCF医師勤務先""" + """レイアウト区分502: COM_DCF医師勤務先""" db: Database batch_context: BatchContext diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/com_hp_assrt_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/com_hp_assrt_delete.csv new file mode 100644 index 00000000..fa9dfadd --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/com_hp_assrt_delete.csv @@ -0,0 +1,7 @@ +"002","1","A","20141113","20141114","" +"002","2","A","20141113","20141114","精神" +"002","3","A","20141113","20141114","結核" +"002","4","A","20141113","20141114","ハンセン" +"002","5","C","20141113","20141114","歯科" +"002","6","A","20141113","20141114","伝染" +"002","7","A","20141113","20141114","診療所" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/com_hp_assrt_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/com_hp_assrt_insert.csv new file mode 100644 index 00000000..e2ee7c48 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/com_hp_assrt_insert.csv @@ -0,0 +1,7 @@ +"002","1","A","20141113","20141114","一般" +"002","2","A","20141113","20141114","精神" +"002","3","A","20141113","20141114","結核" +"002","4","A","20141113","20141114","ハンセン" +"002","5","A","20141113","20141114","伝染" +"002","6","A","20141113","20141114","歯科" +"002","9","A","","","あいうえおかきくけこあいうえおかきくけこあいうえお" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/com_hp_assrt_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/com_hp_assrt_update.csv new file mode 100644 index 00000000..6d0fe490 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/com_hp_assrt_update.csv @@ -0,0 +1,6 @@ +"002","1","A","20141113","20141114","" +"002","2","A","20141113","20141114","精神" +"002","3","A","20141113","20141114","結核" +"002","4","A","20141113","20141114","ハンセン" +"002","5","A","20141113","20141114","歯科" +"002","6","A","20141113","20141114","伝染" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/db_com_hp_assrt_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/db_com_hp_assrt_before_delete.csv new file mode 100644 index 00000000..68440eee --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/db_com_hp_assrt_before_delete.csv @@ -0,0 +1,7 @@ +"hp_assrt_cd","hp_assrt_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"1","","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2017/10/20 9:46:18","clsComHpAssrt" +"2","精神","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2017/10/20 9:46:18","clsComHpAssrt" +"3","結核","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2017/10/20 9:46:18","clsComHpAssrt" +"4","ハンセン","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2017/10/20 9:46:18","clsComHpAssrt" +"5","歯科","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2017/10/20 9:46:18","clsComHpAssrt" +"6","伝染","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2017/10/20 9:46:18","clsComHpAssrt" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/db_com_hp_assrt_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/db_com_hp_assrt_before_update.csv new file mode 100644 index 00000000..79619900 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/db_com_hp_assrt_before_update.csv @@ -0,0 +1,8 @@ +"hp_assrt_cd","hp_assrt_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"1","一般","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2017/10/20 9:39:05","clsComHpAssrt" +"2","精神","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2017/10/20 9:39:05","clsComHpAssrt" +"3","結核","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2017/10/20 9:39:05","clsComHpAssrt" +"4","ハンセン","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2017/10/20 9:39:05","clsComHpAssrt" +"5","伝染","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2017/10/20 9:39:05","clsComHpAssrt" +"6","歯科","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2017/10/20 9:39:05","clsComHpAssrt" +"9","あいうえおかきくけこあいうえおかきくけこあいうえお","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/15 7:39:05","com_hp_assrt_mapper","2023/05/15 7:39:05","aaaaa" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/expect_com_hp_assrt_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/expect_com_hp_assrt_delete.csv new file mode 100644 index 00000000..54dc2039 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/expect_com_hp_assrt_delete.csv @@ -0,0 +1,7 @@ +"hp_assrt_cd","hp_assrt_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"1","","20171020","20230515","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2023/05/14 8:46:18","com_hp_assrt_mapper" +"2","精神","20171020","20230515","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2023/05/14 8:46:18","com_hp_assrt_mapper" +"3","結核","20171020","20230515","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2023/05/14 8:46:18","com_hp_assrt_mapper" +"4","ハンセン","20171020","20230515","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2023/05/14 8:46:18","com_hp_assrt_mapper" +"5","歯科","20171020","20171020","20230515","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2023/05/14 8:46:18","com_hp_assrt_mapper" +"6","伝染","20171020","20230515","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2023/05/14 8:46:18","com_hp_assrt_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/expect_com_hp_assrt_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/expect_com_hp_assrt_insert.csv new file mode 100644 index 00000000..c4343da0 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/expect_com_hp_assrt_insert.csv @@ -0,0 +1,8 @@ +"hp_assrt_cd","hp_assrt_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"1","一般","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/15 7:39:05","com_hp_assrt_mapper","2023/05/15 7:39:05","com_hp_assrt_mapper" +"2","精神","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/15 7:39:05","com_hp_assrt_mapper","2023/05/15 7:39:05","com_hp_assrt_mapper" +"3","結核","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/15 7:39:05","com_hp_assrt_mapper","2023/05/15 7:39:05","com_hp_assrt_mapper" +"4","ハンセン","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/15 7:39:05","com_hp_assrt_mapper","2023/05/15 7:39:05","com_hp_assrt_mapper" +"5","伝染","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/15 7:39:05","com_hp_assrt_mapper","2023/05/15 7:39:05","com_hp_assrt_mapper" +"6","歯科","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/15 7:39:05","com_hp_assrt_mapper","2023/05/15 7:39:05","com_hp_assrt_mapper" +"9","あいうえおかきくけこあいうえおかきくけこあいうえお","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/15 7:39:05","com_hp_assrt_mapper","2023/05/15 7:39:05","com_hp_assrt_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/expect_com_hp_assrt_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/expect_com_hp_assrt_update.csv new file mode 100644 index 00000000..fe04619b --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/expect_com_hp_assrt_update.csv @@ -0,0 +1,8 @@ +"hp_assrt_cd","hp_assrt_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"1","","20171020","20230515","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2023/05/15 8:46:18","com_hp_assrt_mapper" +"2","精神","20171020","20230515","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2023/05/15 8:46:18","com_hp_assrt_mapper" +"3","結核","20171020","20230515","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2023/05/15 8:46:18","com_hp_assrt_mapper" +"4","ハンセン","20171020","20230515","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2023/05/15 8:46:18","com_hp_assrt_mapper" +"5","歯科","20171020","20230515","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2023/05/15 8:46:18","com_hp_assrt_mapper" +"6","伝染","20171020","20230515","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:39:05","clsComHpAssrt","2023/05/15 8:46:18","com_hp_assrt_mapper" +"9","あいうえおかきくけこあいうえおかきくけこあいうえお","20230515","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/15 7:39:05","com_hp_assrt_mapper","2023/05/15 7:39:05","aaaaa" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/test_com_hp_assrt_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/test_com_hp_assrt_mapper.py new file mode 100644 index 00000000..08f02dec --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_hp_assrt/test_com_hp_assrt_mapper.py @@ -0,0 +1,197 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_hp_assrt_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComHpAssrtMapper: + """レイアウト区分002: COM_病院種別""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_病院種別テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_hp_assrt_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_hp_assrt', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_hp_assrt_mapper.ComHpAssrtMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_hp_assrt_mapper.ComHpAssrtMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_hp_assrt_insert.csv')) + primary_keys = [f"'{primary_key['hp_assrt_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_hp_assrt WHERE hp_assrt_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ['regist_ymd', 'sys_regist_date', 'sys_update_date']: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_病院種別テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_hp_assrt_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_hp_assrt', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_hp_assrt_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_hp_assrt', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_hp_assrt_mapper.ComHpAssrtMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_hp_assrt_mapper.ComHpAssrtMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_hp_assrt_update.csv')) + primary_keys = [f"'{primary_key['hp_assrt_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_hp_assrt WHERE hp_assrt_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_病院種別テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_hp_assrt_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_hp_assrt', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_hp_assrt_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_hp_assrt', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_hp_assrt_mapper.ComHpAssrtMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_hp_assrt_mapper.ComHpAssrtMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_hp_assrt_delete.csv')) + primary_keys = [f"'{primary_key['hp_assrt_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_hp_assrt WHERE hp_assrt_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/com_inst_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/com_inst_delete.csv new file mode 100644 index 00000000..5c588736 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/com_inst_delete.csv @@ -0,0 +1,5 @@ +"101","22","33333","44","C","20230606","200230607","8","9","10","11","12","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","あいうえおかきくけこあいうえおかきくけこあいうえお","アイウエオカクキケコアイウエオカクキケコ","7","18","19","20","21","123-4522","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","25","26","27","28","29","30","31","32","33","4","35","36","37","38","39","40","あいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコ","3","202304","5","202306","47","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","8","10","11","2","113","20230114","115","6","7","8","9","0","1","2","3","4","5","6","7","8","99","333333","11" +"101","00","9900146","","C","20160826","20160903","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"101","00","9901649","","C","20160826","20160903","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"101","00","9901679","","C","20160826","20160903","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"101","00","9904439","","C","20160826","20160903","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" 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 new file mode 100644 index 00000000..f597e06a --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/com_inst_insert.csv @@ -0,0 +1,7 @@ +"101","22","33333","44","A","20230606","200230607","8","9","10","11","12","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","あいうえおかきくけこあいうえおかきくけこあいうえお","アイウエオカクキケコアイウエオカクキケコ","7","18","19","20","21","123-4522","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","25","26","27","28","29","30","31","32","33","4","35","36","37","38","39","40","あいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコ","3","202304","5","202306","47","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","8","10","11","2","113","20230114","115","6","7","8","9","0","1","2","3","4","5","6","7","8","99","333333","11" +"101","00","9900146","","A","20141113","20141114","","","","","","医療法人敬老会森岡内科","イリヨウホウジンケイロウカイモリオカナイカ","森岡内科 医療","モリオカナイカ イリヨウ","","36","201","117","002","770-0854","徳島県徳島市徳島本町2-31","トクシマケン トクシマシ トクシマホンチヨウ 2-31","2-31","03","03","04","02","07","06","10","02","","088-623-6161","431","10","01","092029","","板東 章二","バンドウ シヨウジ","","","1","201410","A01","A11","C04","E02","A23","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","7","6","","","","","0","20130729","0","0","0","0","0","0","0","","","","","","","","","","" +"101","00","9900194","","A","20141113","20141114","1","9","","","","一期崎医院","イチゴザキイイン","一期崎医院","イチゴザキイイン","6","43","101","059","000","860-0844","熊本県熊本市中央区水道町1-27 大学堂ビル2階D室","クマモトケン クマモトシ チユウオウク スイドウチヨウ 1-27 ダイガクドウビル 2カイDシツ","1-27-2D","03","06","3","","07","13","09","00","1","","472","10","","","","","","","","","","O01","O02","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","7","6","","","","","0","20090430","0","0","0","0","0","0","0","","","","","","","","","","" +"101","00","9901649","","A","20141113","20141114","","","","","","社会福祉法人明和会特別養護老人ホームあづき","シヤフクメイワカイトクベツヨウゴロウジンホ-ムアヅキ","あづき(特養) 社福","アヅキ シヤフク","","37","322","000","000","761-4100","香川県小豆郡土庄町字半ノ池甲1360-143","カガワケン シヨウズグン トノシヨウチヨウ アザハンノイケコウ 1360-143","","03","06","00","00","07","18","00","00","","0879-62-7707","435","41","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","9","9","","","","","50","","","","","","","","","","","","","","","","00","7201648","" +"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","","","","","","","","","","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/com_inst_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/com_inst_update.csv new file mode 100644 index 00000000..2a13c00e --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/com_inst_update.csv @@ -0,0 +1,10 @@ +"101","22","33333","44","B","20230606","200230607","8","9","10","11","12","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","あいうえおかきくけこあいうえおかきくけこあいうえお","アイウエオカクキケコアイウエオカクキケコ","7","18","19","20","21","123-4522","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","25","26","27","28","29","30","31","32","33","4","35","36","37","38","39","40","あいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコ","3","202304","5","202306","47","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","8","10","11","2","113","20230114","115","6","7","8","9","0","1","2","3","4","5","6","7","8","99","333333","11" +"101","22","33333","99","B","20230606","200230607","8","9","10","11","12","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","あいうえおかきくけこあいうえおかきくけこあいうえお","アイウエオカクキケコアイウエオカクキケコ","7","18","19","20","21","123-4522","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","25","26","27","28","29","30","31","32","33","4","35","36","37","38","39","40","あいうえおかきくけこあいうえおかきくけこ","アイウエオカクキケコ","3","202304","5","202306","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","7","8","8","10","11","2","113","20230114","115","6","7","8","9","0","1","2","3","4","5","6","7","8","99","333333","11" +"101","99","33333","44","B","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"101","99","99999","99","B","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" +"101","00","9900146","","B","20170401","20170404","","2","00","3631462","","","テストイリヨウホウジンケイロウカイモリオカナイカ","","","","","","","","","","","","","","","","","","","","","","221","","","","","","","","","@","","@","A11","C04","E02","A23","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","3","@","","","@","@","@","@","","","","","","","","","","","","","","0","9912345","" +"101","00","9900194","","B","20170401","20170404","@","@","@","","","","","","","@","11","222","333","444","106-0045","東京都港区麻布十番1-5-18 カートブラン麻布十番3F","トウキヨウト ミナトク アザブジユウバン 1-5-18 カ-トブランアザブジユウバン 3F","1-5-18-10-3","3","2","4","2","7","5","13","2","","","","","","","","","","","","","","U21","U23","U18","U15","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"101","00","9901649","","B","20170401","20170404","","","","","","","","あづき(てすと)","","","","","","","","","","","","","","","","","","","","","","60","","","","","","1","201801","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","@","","" +"101","00","9901679","","B","20170401","20170404","","","","","","","","","カゴシマテスト","","","","","","","","","","","","","","","","","","","@","","","","","","","","@","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","","","","","","","","","","@","","","","","","","","","" +"101","00","9904439","","B","20170401","20170404","","","","","","川崎市立テスト病院","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","11","1234567","","","","","","","","","","","","3","","1","","2","","3","","","" +"101","00","9929798","","B","20170401","20170404","","","","","","","","","","6","","","","","","","","","","","","","","","","","@","","","","@","","","@","@","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","91","92","93","94","95","96","97","","","","","","","","","","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_inst_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_inst_before_delete.csv new file mode 100644 index 00000000..6e20eb7b --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_inst_before_delete.csv @@ -0,0 +1,8 @@ +"dcf_dsf_inst_cd","inst_div_cd","addr_unknown_reason_cd","form_inst_name_kana","inst_name_kana","form_inst_name_kanji","inst_name_kanji","rltd_univ_prnt_cd","bed_num","close_flg","estab_sche_flg","close_start_ym","estab_sche_ym","ward_abolish_flg","inst_repre_cd","inst_repre_kana","inst_repre","phone_number_non_flg","unconf_flg","inst_phone_number","inst_addr_kana","inst_addr","postal_number","village_cd","prefc_cd","city_cd","addr_display_number","addr_cnt_kana","addr_cnt","manage_cd","delete_sche_reason_cd","hp_assrt_cd","dup_opp_cd","insp_item_micrb","insp_item_serum","insp_item_blood","insp_item_patho","insp_item_paras","insp_item_biochem","insp_item_ri","re_exam_cd","prmit_bed_num_other","prmit_bed_num_mental","prmit_bed_num_tuber","prmit_bed_num_infection","prmit_bed_num_sum","prmit_bed_num_gen","prmit_bed_num_rcup","prmit_bed_maint_ymd","inst_pharm_div","abolish_ymd","delete_flg","filler_1","filler_2","filler_3","filler_4","filler_5","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"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","aaaa","2023/04/12 00:00:00","aaaa" +"009900146","10","","テストイリヨウホウジンケイロウカイモリオカナイカ","モリオカナイカ イリヨウ","医療法人敬老会森岡内科","森岡内科 医療","","0","","","","","","01092029","バンドウ シヨウジ","板東 章二","","","088-623-6161","トクシマケン トクシマシ トクシマホンチヨウ 2-31","徳島県徳島市徳島本町2-31","770-0854","36201117002","36","201","2-31","07061002","03030402","221","2","7","003631462","","","","","","","","3","0","0","0","0","0","0","0","0","1","","0","","","","","","NULL","","NULL","","2022-01-31 11:38:26","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009900194","10","","イチゴザキイイン","イチゴザキイイン","一期崎医院","一期崎医院","","0","","","","","","","","","1","0","","トウキヨウト ミナトク アザブジユウバン 1-5-18 カ-トブランアザブジユウバン 3F","東京都港区麻布十番1-5-18 カートブラン麻布十番3F","106-0045","11222333444","11","222","1-5-18-10-3","07051302","03020402","472","","7","","","","","","","","","6","0","0","0","0","0","0","0","20090430","1","","0","","","","","","NULL","","NULL","","2022-01-31 11:38:26","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009901649","60","","シヤフクメイワカイトクベツヨウゴロウジンホ-ムアヅキ","アヅキ シヤフク","社会福祉法人明和会特別養護老人ホームあづき","あづき(てすと)","","50","","1","","201801","","","","","","","0879-62-7707","カガワケン シヨウズグン トノシヨウチヨウ アザハンノイケコウ 1360-143","香川県小豆郡土庄町字半ノ池甲1360-143","761-4100","37322000000","37","322","","07180000","03060000","435","","1","","","","","","","","","9","0","0","0","0","0","0","0","0","1","","0","","","","","","NULL","","NULL","","2022-01-31 11:38:26","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009901679","60","","カゴシマシイシカイリンシヨウケンサセンタ-","カゴシマテスト","鹿児島市医師会臨床検査センター","鹿児島市医師会臨床検査センター","","0","","","","","1","01148013","カイエダ タケル","海江田 健","","","","カゴシマケン カゴシマシ カジヤチヨウ 3-10","鹿児島県鹿児島市加治屋町3-10","892-0846","46201017000","46","201","3-10","08070800","04040400","470","","9","","","","","","","","","9","0","0","0","0","0","0","0","0","1","","0","","","","","","NULL","","NULL","","2022-01-31 11:38:27","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009904439","01","","カワサキシリツイダビヨウイン","イダビヨウイン シリツ","川崎市立テスト病院","井田病院 市立","111234567","370","","","","","","","","","","","044-766-2188","カナガワケン カワサキシ ナカハラク イダ 2-27-1","神奈川県川崎市中原区井田2-27-1","211-0035","14133001002","14","133","2-27-1","08120402","04060202","221","","1","","3","","1","","2","","3","3","343","0","27","0","370","343","0","20140811","1","","0","","","","","","NULL","","NULL","","2022-01-31 11:38:27","clsComInstInfo","2022-02-01 14:52:44","clsComInstInfo" +"009929798","10","6","パ-ソナルヘルスマナビノクリニツク","パ-ソナルヘルスマナビノクリニツク","パーソナルヘルス学びのクリニック","パーソナルヘルス学びのCL","","0","","","","","","","","","","","","トウキヨウト ミナトク ミナミアオヤマ 2-2-1 ウインアオヤマ 405","東京都港区南青山2-2-15 ウイン青山405","107-0062","13103025002","13","103","2-2-15-405","07050802","03020302","472","","7","","","","","","","","","6","95","92","93","94","91","96","97","20130415","1","","0","","","","","","NULL","","NULL","","2022-01-31 11:38:28","clsComInstInfo","2022-02-01 14:52:44","clsComInstInfo" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_inst_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_inst_before_update.csv new file mode 100644 index 00000000..0b1ad996 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_inst_before_update.csv @@ -0,0 +1,11 @@ +"dcf_dsf_inst_cd","inst_div_cd","addr_unknown_reason_cd","form_inst_name_kana","inst_name_kana","form_inst_name_kanji","inst_name_kanji","rltd_univ_prnt_cd","bed_num","close_flg","estab_sche_flg","close_start_ym","estab_sche_ym","ward_abolish_flg","inst_repre_cd","inst_repre_kana","inst_repre","phone_number_non_flg","unconf_flg","inst_phone_number","inst_addr_kana","inst_addr","postal_number","village_cd","prefc_cd","city_cd","addr_display_number","addr_cnt_kana","addr_cnt","manage_cd","delete_sche_reason_cd","hp_assrt_cd","dup_opp_cd","insp_item_micrb","insp_item_serum","insp_item_blood","insp_item_patho","insp_item_paras","insp_item_biochem","insp_item_ri","re_exam_cd","prmit_bed_num_other","prmit_bed_num_mental","prmit_bed_num_tuber","prmit_bed_num_infection","prmit_bed_num_sum","prmit_bed_num_gen","prmit_bed_num_rcup","prmit_bed_maint_ymd","inst_pharm_div","abolish_ymd","delete_flg","filler_1","filler_2","filler_3","filler_4","filler_5","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"223333344","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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" +"223333399","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" +"993333344","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","aaaa","2023/04/12 00:00:00","aaaa" +"999999999","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","aaaa","2023/04/12 00:00:00","aaaa" +"009900146","10","","イリヨウホウジンケイロウカイモリオカナイカ","モリオカナイカ イリヨウ","医療法人敬老会森岡内科","森岡内科 医療","1","0","1","","201410","","1","01092029","バンドウ シヨウジ","板東 章二","","","088-623-6161","トクシマケン トクシマシ トクシマホンチヨウ 2-31","徳島県徳島市徳島本町2-31","770-0854","36201117002","36","201","2-31","07061002","03030402","431","","7","","","","","","","","","6","0","0","0","0","0","0","0","20130729","1","","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","clsComInstInfo","2022-01-31 11:38:26","clsComInstInfo" +"009900194","10","6","イチゴザキイイン","イチゴザキイイン","一期崎医院","一期崎医院","","0","","","","","","","","","1","1","","クマモトケン クマモトシ チユウオウク スイドウチヨウ 1-27 ダイガクドウビル 2カイDシツ","熊本県熊本市中央区水道町1-27 大学堂ビル2階D室","860-0844","43101059000","43","101","1-27-2D","07130900","03060300","472","9","7","003631463","","","","","","","","6","0","0","0","0","0","0","0","20090430","1","","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","clsComInstInfo","2022-01-31 11:38:26","clsComInstInfo" +"009901649","41","","シヤフクメイワカイトクベツヨウゴロウジンホ-ムアヅキ","アヅキ シヤフク","社会福祉法人明和会特別養護老人ホームあづき","あづき(特養) 社福","","50","","","","","","","","","","","0879-62-7707","カガワケン シヨウズグン トノシヨウチヨウ アザハンノイケコウ 1360-143","香川県小豆郡土庄町字半ノ池甲1360-143","761-4100","37322000000","37","322","","07180000","03060000","435","","9","","","","","","","","","9","NULL","NULL","NULL","NULL","NULL","NULL","NULL","","1","","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","clsComInstInfo","2022-01-31 11:38:26","clsComInstInfo" +"009901679","60","","カゴシマシイシカイリンシヨウケンサセンタ-","カゴシマシイシカイリンシヨウケンサセンタ-","鹿児島市医師会臨床検査センター","鹿児島市医師会臨床検査センター","","0","","","","","","01148013","カイエダ タケル","海江田 健","","","099-226-8827","カゴシマケン カゴシマシ カジヤチヨウ 3-10","鹿児島県鹿児島市加治屋町3-10","892-0846","46201017000","46","201","3-10","08070800","04040400","470","","9","","1","1","1","1","1","1","1","9","NULL","NULL","NULL","NULL","NULL","NULL","NULL","","1","","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"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","","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"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","","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_spcare_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_spcare_before_delete.csv new file mode 100644 index 00000000..cc988dcc --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_spcare_before_delete.csv @@ -0,0 +1,4 @@ +"dcf_chld_inst_cd","dcf_prnt_inst_cd","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"223333344","9933333311","20230427","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"009900146","09912345","20220201","20220201","NULL","NULL","NULL","NULL","NULL","2022-02-01 11:08:29","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009901649","NULL","20220131","20220201","20220201","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_spcare_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_spcare_before_update.csv new file mode 100644 index 00000000..9bc1f8ff --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_spcare_before_update.csv @@ -0,0 +1,5 @@ +"dcf_chld_inst_cd","dcf_prnt_inst_cd","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"223333344","9933333311","20230508","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"993333344","9933333311","20230508","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","aaaa","2023/05/01 16:16:43","aaaa" +"999999999","9933333311","20230508","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","aaaa","2023/05/01 16:16:43","aaaa" +"009901649","007201648","20220131","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/01 11:38:27","clsComInstInfo","2023/05/01 11:38:27","clsComInstInfo" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_trt_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_trt_before_delete.csv new file mode 100644 index 00000000..557be371 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_trt_before_delete.csv @@ -0,0 +1,66 @@ +"dcf_dsf_inst_cd","trt_course_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"223333344","100","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","101","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","102","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","103","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","104","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","105","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","106","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","47","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","48","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","49","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","50","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","51","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","52","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","53","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","54","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","55","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","56","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","57","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","58","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","59","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","60","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","61","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","62","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","63","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","64","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","65","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","66","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","67","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","68","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","69","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","70","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","71","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","72","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","73","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","74","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","75","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","76","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","77","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","78","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","79","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","80","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","81","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","82","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","83","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","84","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","85","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","86","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","87","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","88","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","89","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","90","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","91","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","92","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","93","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","94","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","95","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","96","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","97","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","98","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","99","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"009900194","U15","20220201","NULL","NULL","NULL","NULL","NULL","2022-02-01 14:52:43","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009900194","U18","20220201","NULL","NULL","NULL","NULL","NULL","2022-02-01 14:52:43","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009900194","U21","20220201","NULL","NULL","NULL","NULL","NULL","2022-02-01 14:52:43","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009900194","U23","20220201","NULL","NULL","NULL","NULL","NULL","2022-02-01 14:52:43","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009900146","U15","20220201","NULL","NULL","NULL","NULL","NULL","2022-02-01 14:52:43","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_trt_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_trt_before_update.csv new file mode 100644 index 00000000..46080fbc --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/db_com_trt_before_update.csv @@ -0,0 +1,48 @@ +"dcf_dsf_inst_cd","trt_course_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"223333344","999","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"993333344","999","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","aaaa","2023/05/01 16:16:43","aaaa" +"999999999","999","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","aaaa","2023/05/01 16:16:43","aaaa" +"009900146","A01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","clsComInstInfo","2022-01-31 11:38:26","clsComInstInfo" +"009900146","A11","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","clsComInstInfo","2022-01-31 11:38:26","clsComInstInfo" +"009900146","A23","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","clsComInstInfo","2022-01-31 11:38:26","clsComInstInfo" +"009900146","C04","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","clsComInstInfo","2022-01-31 11:38:26","clsComInstInfo" +"009900146","E02","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","clsComInstInfo","2022-01-31 11:38:26","clsComInstInfo" +"009900194","O01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","clsComInstInfo","2022-01-31 11:38:26","clsComInstInfo" +"009900194","O02","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","clsComInstInfo","2022-01-31 11:38:26","clsComInstInfo" +"009904439","A01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","A03","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","A12","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","A22","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","A34","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","A41","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","A56","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","A57","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","A58","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","A61","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","A65","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","A81","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","B01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","B04","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","B11","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","B22","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","B31","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","C01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","C04","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","C05","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","D02","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","E02","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","F01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","F08","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","G06","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","H02","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009904439","I01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","J01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","K01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","M01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","N03","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","O01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","P02","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-01-31 11:38:27","clsComInstInfo" +"009904439","P03","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009929798","A01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009929798","A57","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" +"009929798","I01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-01-31 11:38:28","clsComInstInfo" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_inst_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_inst_delete.csv new file mode 100644 index 00000000..b2dde439 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_inst_delete.csv @@ -0,0 +1,8 @@ +"dcf_dsf_inst_cd","inst_div_cd","addr_unknown_reason_cd","form_inst_name_kana","inst_name_kana","form_inst_name_kanji","inst_name_kanji","rltd_univ_prnt_cd","bed_num","close_flg","estab_sche_flg","close_start_ym","estab_sche_ym","ward_abolish_flg","inst_repre_cd","inst_repre_kana","inst_repre","phone_number_non_flg","unconf_flg","inst_phone_number","inst_addr_kana","inst_addr","postal_number","village_cd","prefc_cd","city_cd","addr_display_number","addr_cnt_kana","addr_cnt","manage_cd","delete_sche_reason_cd","hp_assrt_cd","dup_opp_cd","insp_item_micrb","insp_item_serum","insp_item_blood","insp_item_patho","insp_item_paras","insp_item_biochem","insp_item_ri","re_exam_cd","prmit_bed_num_other","prmit_bed_num_mental","prmit_bed_num_tuber","prmit_bed_num_infection","prmit_bed_num_sum","prmit_bed_num_gen","prmit_bed_num_rcup","prmit_bed_maint_ymd","inst_pharm_div","abolish_ymd","delete_flg","filler_1","filler_2","filler_3","filler_4","filler_5","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","10","","テストイリヨウホウジンケイロウカイモリオカナイカ","モリオカナイカ イリヨウ","医療法人敬老会森岡内科","森岡内科 医療","","0","","","","","","01092029","バンドウ シヨウジ","板東 章二","","","088-623-6161","トクシマケン トクシマシ トクシマホンチヨウ 2-31","徳島県徳島市徳島本町2-31","770-0854","36201117002","36","201","2-31","07061002","03030402","221","2","7","003631462","","","","","","","","3","0","0","0","0","0","0","0","0","1","20160826","0","","","","","","NULL","","NULL","","2022-01-31 11:38:26","clsComInstInfo","2022-02-01 15:50:39","com_inst_mapper" +"009900194","10","","イチゴザキイイン","イチゴザキイイン","一期崎医院","一期崎医院","","0","","","","","","","","","1","0","","トウキヨウト ミナトク アザブジユウバン 1-5-18 カ-トブランアザブジユウバン 3F","東京都港区麻布十番1-5-18 カートブラン麻布十番3F","106-0045","11222333444","11","222","1-5-18-10-3","07051302","03020402","472","","7","","","","","","","","","6","0","0","0","0","0","0","0","20090430","1","","0","","","","","","NULL","","NULL","","2022-01-31 11:38:26","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009901649","60","","シヤフクメイワカイトクベツヨウゴロウジンホ-ムアヅキ","アヅキ シヤフク","社会福祉法人明和会特別養護老人ホームあづき","あづき(てすと)","","50","","1","","201801","","","","","","","0879-62-7707","カガワケン シヨウズグン トノシヨウチヨウ アザハンノイケコウ 1360-143","香川県小豆郡土庄町字半ノ池甲1360-143","761-4100","37322000000","37","322","","07180000","03060000","435","","1","","","","","","","","","9","0","0","0","0","0","0","0","0","1","20160826","0","","","","","","NULL","","NULL","","2022-01-31 11:38:26","clsComInstInfo","2022-02-01 15:50:39","com_inst_mapper" +"009901679","60","","カゴシマシイシカイリンシヨウケンサセンタ-","カゴシマテスト","鹿児島市医師会臨床検査センター","鹿児島市医師会臨床検査センター","","0","","","","","1","01148013","カイエダ タケル","海江田 健","","","","カゴシマケン カゴシマシ カジヤチヨウ 3-10","鹿児島県鹿児島市加治屋町3-10","892-0846","46201017000","46","201","3-10","08070800","04040400","470","","9","","","","","","","","","9","0","0","0","0","0","0","0","0","1","20160826","0","","","","","","NULL","","NULL","","2022-01-31 11:38:27","clsComInstInfo","2022-02-01 15:50:39","com_inst_mapper" +"009904439","01","","カワサキシリツイダビヨウイン","イダビヨウイン シリツ","川崎市立テスト病院","井田病院 市立","111234567","370","","","","","","","","","","","044-766-2188","カナガワケン カワサキシ ナカハラク イダ 2-27-1","神奈川県川崎市中原区井田2-27-1","211-0035","14133001002","14","133","2-27-1","08120402","04060202","221","","1","","3","","1","","2","","3","3","343","0","27","0","370","343","0","20140811","1","20160826","0","","","","","","NULL","","NULL","","2022-01-31 11:38:27","clsComInstInfo","2022-02-01 15:50:39","com_inst_mapper" +"009929798","10","6","パ-ソナルヘルスマナビノクリニツク","パ-ソナルヘルスマナビノクリニツク","パーソナルヘルス学びのクリニック","パーソナルヘルス学びのCL","","0","","","","","","","","","","","","トウキヨウト ミナトク ミナミアオヤマ 2-2-1 ウインアオヤマ 405","東京都港区南青山2-2-15 ウイン青山405","107-0062","13103025002","13","103","2-2-15-405","07050802","03020302","472","","7","","","","","","","","","6","95","92","93","94","91","96","97","20130415","1","","0","","","","","","NULL","","NULL","","2022-01-31 11:38:28","clsComInstInfo","2022-02-01 14:52:44","clsComInstInfo" +"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","20230606","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2023/04/12 00:00:00","aaaa","2023/04/12 00:00:00","com_inst_mapper" 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 new file mode 100644 index 00000000..97617e35 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_inst_insert.csv @@ -0,0 +1,8 @@ +"dcf_dsf_inst_cd","inst_div_cd","addr_unknown_reason_cd","form_inst_name_kana","inst_name_kana","form_inst_name_kanji","inst_name_kanji","rltd_univ_prnt_cd","bed_num","close_flg","estab_sche_flg","close_start_ym","estab_sche_ym","ward_abolish_flg","inst_repre_cd","inst_repre_kana","inst_repre","phone_number_non_flg","unconf_flg","inst_phone_number","inst_addr_kana","inst_addr","postal_number","village_cd","prefc_cd","city_cd","addr_display_number","addr_cnt_kana","addr_cnt","manage_cd","delete_sche_reason_cd","hp_assrt_cd","dup_opp_cd","insp_item_micrb","insp_item_serum","insp_item_blood","insp_item_patho","insp_item_paras","insp_item_biochem","insp_item_ri","re_exam_cd","prmit_bed_num_other","prmit_bed_num_mental","prmit_bed_num_tuber","prmit_bed_num_infection","prmit_bed_num_sum","prmit_bed_num_gen","prmit_bed_num_rcup","prmit_bed_maint_ymd","inst_pharm_div","abolish_ymd","delete_flg","filler_1","filler_2","filler_3","filler_4","filler_5","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","10","","イリヨウホウジンケイロウカイモリオカナイカ","モリオカナイカ イリヨウ","医療法人敬老会森岡内科","森岡内科 医療","","0","1","","201410","","","01092029","バンドウ シヨウジ","板東 章二","","","088-623-6161","トクシマケン トクシマシ トクシマホンチヨウ 2-31","徳島県徳島市徳島本町2-31","770-0854","36201117002","36","201","2-31","07061002","03030402","431","","7","","","","","","","","","6","0","0","0","0","0","0","0","20130729","1","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","com_inst_mapper","2022-01-31 11:38:26","com_inst_mapper" +"009900194","10","6","イチゴザキイイン","イチゴザキイイン","一期崎医院","一期崎医院","","0","","","","","","","","","1","1","","クマモトケン クマモトシ チユウオウク スイドウチヨウ 1-27 ダイガクドウビル 2カイDシツ","熊本県熊本市中央区水道町1-27 大学堂ビル2階D室","860-0844","43101059000","43","101","1-27-2D","07130900","03060300","472","9","7","","","","","","","","","6","0","0","0","0","0","0","0","20090430","1","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","com_inst_mapper","2022-01-31 11:38:26","com_inst_mapper" +"009901649","41","","シヤフクメイワカイトクベツヨウゴロウジンホ-ムアヅキ","アヅキ シヤフク","社会福祉法人明和会特別養護老人ホームあづき","あづき(特養) 社福","","50","","","","","","","","","","","0879-62-7707","カガワケン シヨウズグン トノシヨウチヨウ アザハンノイケコウ 1360-143","香川県小豆郡土庄町字半ノ池甲1360-143","761-4100","37322000000","37","322","","07180000","03060000","435","","9","","","","","","","","","9","NULL","NULL","NULL","NULL","NULL","NULL","NULL","","1","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","com_inst_mapper","2022-01-31 11:38:26","com_inst_mapper" +"009901679","60","","カゴシマシイシカイリンシヨウケンサセンタ-","カゴシマシイシカイリンシヨウケンサセンタ-","鹿児島市医師会臨床検査センター","鹿児島市医師会臨床検査センター","","0","","","","","","01148013","カイエダ タケル","海江田 健","","","099-226-8827","カゴシマケン カゴシマシ カジヤチヨウ 3-10","鹿児島県鹿児島市加治屋町3-10","892-0846","46201017000","46","201","3-10","08070800","04040400","470","","9","","1","1","1","1","1","1","1","9","NULL","NULL","NULL","NULL","NULL","NULL","NULL","","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" +"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" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_inst_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_inst_update.csv new file mode 100644 index 00000000..f2aa0ac2 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_inst_update.csv @@ -0,0 +1,11 @@ +"dcf_dsf_inst_cd","inst_div_cd","addr_unknown_reason_cd","form_inst_name_kana","inst_name_kana","form_inst_name_kanji","inst_name_kanji","rltd_univ_prnt_cd","bed_num","close_flg","estab_sche_flg","close_start_ym","estab_sche_ym","ward_abolish_flg","inst_repre_cd","inst_repre_kana","inst_repre","phone_number_non_flg","unconf_flg","inst_phone_number","inst_addr_kana","inst_addr","postal_number","village_cd","prefc_cd","city_cd","addr_display_number","addr_cnt_kana","addr_cnt","manage_cd","delete_sche_reason_cd","hp_assrt_cd","dup_opp_cd","insp_item_micrb","insp_item_serum","insp_item_blood","insp_item_patho","insp_item_paras","insp_item_biochem","insp_item_ri","re_exam_cd","prmit_bed_num_other","prmit_bed_num_mental","prmit_bed_num_tuber","prmit_bed_num_infection","prmit_bed_num_sum","prmit_bed_num_gen","prmit_bed_num_rcup","prmit_bed_maint_ymd","inst_pharm_div","abolish_ymd","delete_flg","filler_1","filler_2","filler_3","filler_4","filler_5","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","10","","テストイリヨウホウジンケイロウカイモリオカナイカ","モリオカナイカ イリヨウ","医療法人敬老会森岡内科","森岡内科 医療","","NULL","","","","","","01092029","バンドウ シヨウジ","板東 章二","","","088-623-6161","トクシマケン トクシマシ トクシマホンチヨウ 2-31","徳島県徳島市徳島本町2-31","770-0854","36201117002","36","201","2-31","07061002","03030402","221","2","7","003631462","","","","","","","","3","NULL","NULL","NULL","NULL","NULL","NULL","NULL","","1","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","clsComInstInfo","2022-02-01 11:08:28","com_inst_mapper" +"009900194","10","","イチゴザキイイン","イチゴザキイイン","一期崎医院","一期崎医院","","0","","","","","","","","","1","","","トウキヨウト ミナトク アザブジユウバン 1-5-18 カ-トブランアザブジユウバン 3F","東京都港区麻布十番1-5-18 カートブラン麻布十番3F","106-0045","11222333444","11","222","1-5-18-10-3","07051302","03020402","472","","7","","","","","","","","","6","0","0","0","0","0","0","0","20090430","1","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","clsComInstInfo","2022-02-01 11:08:29","com_inst_mapper" +"009901649","60","","シヤフクメイワカイトクベツヨウゴロウジンホ-ムアヅキ","アヅキ シヤフク","社会福祉法人明和会特別養護老人ホームあづき","あづき(てすと)","","50","","1","","201801","","","","","","","0879-62-7707","カガワケン シヨウズグン トノシヨウチヨウ アザハンノイケコウ 1360-143","香川県小豆郡土庄町字半ノ池甲1360-143","761-4100","37322000000","37","322","","07180000","03060000","435","","1","","","","","","","","","9","","","","","","","","","1","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","clsComInstInfo","2022-02-01 11:08:29","com_inst_mapper" +"009901679","60","","カゴシマシイシカイリンシヨウケンサセンタ-","カゴシマテスト","鹿児島市医師会臨床検査センター","鹿児島市医師会臨床検査センター","","0","","","","","1","01148013","カイエダ タケル","海江田 健","","","","カゴシマケン カゴシマシ カジヤチヨウ 3-10","鹿児島県鹿児島市加治屋町3-10","892-0846","46201017000","46","201","3-10","08070800","04040400","470","","9","","","","","","","","","9","","","","","","","","","1","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","clsComInstInfo","2022-02-01 11:08:29","com_inst_mapper" +"009904439","01","","カワサキシリツイダビヨウイン","イダビヨウイン シリツ","川崎市立テスト病院","井田病院 市立","111234567","370","","","","","","","","","","","044-766-2188","カナガワケン カワサキシ ナカハラク イダ 2-27-1","神奈川県川崎市中原区井田2-27-1","211-0035","14133001002","14","133","2-27-1","08120402","04060202","221","","1","","3","","1","","2","","3","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","clsComInstInfo","2022-02-01 11:08:29","com_inst_mapper" +"009929798","10","6","パ-ソナルヘルスマナビノクリニツク","パ-ソナルヘルスマナビノクリニツク","パーソナルヘルス学びのクリニック","パーソナルヘルス学びのCL","","0","","","","","","","","","","","","トウキヨウト ミナトク ミナミアオヤマ 2-2-1 ウインアオヤマ 405","東京都港区南青山2-2-15 ウイン青山405","107-0062","13103025002","13","103","2-2-15-405","07050802","03020302","472","","7","","","","","","","","","6","95","92","93","94","91","96","97","20130415","1","NULL","0","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","clsComInstInfo","2022-02-01 11:08:30","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" +"223333399","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" +"993333344","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","aaaa","2023/04/12 00:00:00","aaaa" +"999999999","37","","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","アイウエオカクキケコアイウエオカクキケコ","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","あいうえおかきくけこあいうえおかきくけこあいうえお","","NULL","","","","","","","","","","","","アイウエオカクキケコアイウエオカクキケコアイウエオカクキケコ","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","123-4522","18192021","18","19","25","30313233","26272829","36","","7","","","","","","","","","8","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","aaaa","2023/04/12 00:00:00","com_inst_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_spcare_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_spcare_delete.csv new file mode 100644 index 00000000..9cede581 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_spcare_delete.csv @@ -0,0 +1,4 @@ +"dcf_chld_inst_cd","dcf_prnt_inst_cd","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","09912345","20220201","20220201","NULL","NULL","NULL","NULL","NULL","2022/02/01 11:08:29","clsComInstInfo","2022/02/01 14:52:43","clsComInstInfo" +"009901649","NULL","20220131","20220201","20220201","NULL","NULL","NULL","NULL","2022/01/31 11:38:27","clsComInstInfo","2022/02/01 14:52:43","clsComInstInfo" +"223333344","9933333311","20230427","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_spcare_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_spcare_insert.csv new file mode 100644 index 00000000..a07ed27d --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_spcare_insert.csv @@ -0,0 +1,3 @@ +"dcf_chld_inst_cd","dcf_prnt_inst_cd","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","007201648","20220131","NULL","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"223333344","9933333311","20230427","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_spcare_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_spcare_update.csv new file mode 100644 index 00000000..b85d46c8 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_spcare_update.csv @@ -0,0 +1,7 @@ +"dcf_chld_inst_cd","dcf_prnt_inst_cd","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","09912345","20220201","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/01 11:08:29","com_inst_mapper","2023/05/01 14:52:43","com_inst_mapper" +"009901649","","20220131","20230508","20230508","NULL","NULL","NULL","NULL","2023/05/01 11:38:27","clsComInstInfo","2023/05/01 14:52:43","com_inst_mapper" +"223333344","9933333311","20230508","20230508","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333399","9933333311","20230508","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"993333344","9933333311","20230508","NULL","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","aaaa","2023/05/01 16:16:43","aaaa" +"999999999","","20230508","20230508","20230508","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","aaaa","2023/05/01 16:16:43","com_inst_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_trt_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_trt_delete.csv new file mode 100644 index 00000000..bfd476b6 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_trt_delete.csv @@ -0,0 +1,66 @@ +"dcf_dsf_inst_cd","trt_course_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","U15","20220201","NULL","NULL","NULL","NULL","NULL","2022-02-01 14:52:43","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009900194","U15","20220201","NULL","NULL","NULL","NULL","NULL","2022-02-01 14:52:43","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009900194","U18","20220201","NULL","NULL","NULL","NULL","NULL","2022-02-01 14:52:43","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009900194","U21","20220201","NULL","NULL","NULL","NULL","NULL","2022-02-01 14:52:43","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"009900194","U23","20220201","NULL","NULL","NULL","NULL","NULL","2022-02-01 14:52:43","clsComInstInfo","2022-02-01 14:52:43","clsComInstInfo" +"223333344","100","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","101","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","102","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","103","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","104","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","105","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","106","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","47","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","48","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","49","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","50","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","51","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","52","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","53","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","54","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","55","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","56","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","57","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","58","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","59","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","60","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","61","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","62","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","63","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","64","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","65","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","66","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","67","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","68","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","69","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","70","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","71","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","72","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","73","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","74","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","75","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","76","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","77","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","78","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","79","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","80","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","81","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","82","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","83","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","84","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","85","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","86","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","87","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","88","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","89","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","90","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","91","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","92","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","93","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","94","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","95","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","96","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","97","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","98","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","99","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_trt_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_trt_insert.csv new file mode 100644 index 00000000..78a3a2de --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_trt_insert.csv @@ -0,0 +1,105 @@ +"dcf_dsf_inst_cd","trt_course_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","A01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","com_inst_mapper","2022-01-31 11:38:26","com_inst_mapper" +"009904439","A01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009929798","A01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","A03","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009900146","A11","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","com_inst_mapper","2022-01-31 11:38:26","com_inst_mapper" +"009904439","A12","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009904439","A22","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009900146","A23","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","com_inst_mapper","2022-01-31 11:38:26","com_inst_mapper" +"009904439","A34","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009904439","A41","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","A56","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","A57","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009929798","A57","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","A58","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","A61","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","A65","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","A81","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009904439","B01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009904439","B04","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","B11","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","B22","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","B31","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","C01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009900146","C04","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","com_inst_mapper","2022-01-31 11:38:26","com_inst_mapper" +"009904439","C04","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009904439","C05","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","D02","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009900146","E02","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","com_inst_mapper","2022-01-31 11:38:26","com_inst_mapper" +"009904439","E02","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009904439","F01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009904439","F08","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","G06","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","H02","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","I01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009929798","I01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"009904439","J01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009904439","K01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009904439","M01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009904439","N03","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009900194","O01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","com_inst_mapper","2022-01-31 11:38:26","com_inst_mapper" +"009904439","O01","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009900194","O02","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:26","com_inst_mapper","2022-01-31 11:38:26","com_inst_mapper" +"009904439","P02","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:27","com_inst_mapper","2022-01-31 11:38:27","com_inst_mapper" +"009904439","P03","20220131","NULL","NULL","NULL","NULL","NULL","2022-01-31 11:38:28","com_inst_mapper","2022-01-31 11:38:28","com_inst_mapper" +"223333344","100","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","101","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","102","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","103","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","104","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","105","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","106","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","47","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","48","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","49","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","50","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","51","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","52","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","53","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","54","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","55","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","56","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","57","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","58","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","59","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","60","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","61","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","62","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","63","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","64","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","65","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","66","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","67","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","68","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","69","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","70","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","71","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","72","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","73","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","74","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","75","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","76","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","77","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","78","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","79","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","80","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","81","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","82","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","83","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","84","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","85","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","86","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","87","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","88","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","89","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","90","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","91","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","92","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","93","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","94","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","95","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","96","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","97","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","98","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","99","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_trt_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_trt_update.csv new file mode 100644 index 00000000..8d4e9a35 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/expect_com_trt_update.csv @@ -0,0 +1,66 @@ +"dcf_dsf_inst_cd","trt_course_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900194","U15","20220201","NULL","NULL","NULL","NULL","NULL","2023/05/01 14:52:43","com_inst_mapper","2023/05/01 14:52:43","com_inst_mapper" +"009900194","U18","20220201","NULL","NULL","NULL","NULL","NULL","2023/05/01 14:52:43","com_inst_mapper","2023/05/01 14:52:43","com_inst_mapper" +"009900194","U21","20220201","NULL","NULL","NULL","NULL","NULL","2023/05/01 14:52:43","com_inst_mapper","2023/05/01 14:52:43","com_inst_mapper" +"009900194","U23","20220201","NULL","NULL","NULL","NULL","NULL","2023/05/01 14:52:43","com_inst_mapper","2023/05/01 14:52:43","com_inst_mapper" +"223333344","100","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","101","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","102","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","103","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","104","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","105","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","106","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","47","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","48","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","49","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","50","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","51","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","52","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","53","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","54","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","55","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","56","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","57","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","58","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","59","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","60","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","61","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","62","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","63","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","64","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","65","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","66","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","67","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","68","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","69","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","70","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","71","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","72","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","73","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","74","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","75","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","76","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","77","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","78","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","79","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","80","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","81","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","82","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","83","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","84","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","85","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","86","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","87","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","88","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","89","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","90","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","91","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","92","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","93","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","94","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","95","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","96","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","97","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","98","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"223333344","99","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","com_inst_mapper","2023/05/01 16:16:43","com_inst_mapper" +"993333344","999","20230427","NULL","NULL","NULL","NULL","NULL","2023/05/01 16:16:43","aaaa","2023/05/01 16:16:43","aaaa" 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 new file mode 100644 index 00000000..4c4058d8 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst/test_com_inst_mapper.py @@ -0,0 +1,468 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_inst_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComInstMapper: + """レイアウト区分101: COM_施設""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_施設テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_inst_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_inst', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_inst_trt_course', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_spcare_med_office_dat', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_inst_mapper.ComInstMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_inst_mapper.ComInstMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む(施設) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_inst_insert.csv')) + primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_inst WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = [ + 'bed_num', + 'prmit_bed_num_other', + 'prmit_bed_num_mental', + 'prmit_bed_num_tuber', + 'prmit_bed_num_infection', + 'prmit_bed_num_sum', + 'prmit_bed_num_gen', + 'prmit_bed_num_rcup', + 'regist_ymd', + 'regist_ymd', + 'sys_update_date', + 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if actual_col_name in [ + 'bed_num', + 'prmit_bed_num_other', + 'prmit_bed_num_mental', + 'prmit_bed_num_tuber', + 'prmit_bed_num_infection', + 'prmit_bed_num_sum', + 'prmit_bed_num_gen', + 'prmit_bed_num_rcup']: + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + # 期待値ファイルを読み込む(施設診療科目) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_trt_insert.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_trt_course_cd = [{'trt_course_cd': columns['trt_course_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_inst_trt_course + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND trt_course_cd = :trt_course_cd\ + """ + for primary_keys_dcf_dsf_inst_cd, primary_keys_trt_course_cd in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_trt_course_cd): + sp_trt_data = self.db.execute_select( + sp_field_select_sql, + {**primary_keys_dcf_dsf_inst_cd, **primary_keys_trt_course_cd}) + assert len(sp_trt_data) == 1, '1件取得できていること' + actual_data_list.append(sp_trt_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + # 期待値ファイルを読み込む(特養医務室データ) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_spcare_insert.csv')) + 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) + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_施設テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_inst_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_inst', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_inst_trt_course', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_spcare_med_office_dat', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # テストデータをDBに登録 + # DBデータを読み込む(施設) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_inst_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_inst', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + # DBデータを読み込む(施設診療科目) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_trt_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_inst_trt_course', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + # DBデータを読み込む(特養医務室) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_spcare_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_spcare_med_office_dat', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_inst_mapper.ComInstMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_inst_mapper.ComInstMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む(施設) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_inst_update.csv')) + primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_inst WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + # 期待値検査 + ignore_columns = [ + 'bed_num', + 'prmit_bed_num_other', + 'prmit_bed_num_mental', + 'prmit_bed_num_tuber', + 'prmit_bed_num_infection', + 'prmit_bed_num_sum', + 'prmit_bed_num_gen', + 'prmit_bed_num_rcup', + 'regist_ymd', + 'regist_ymd', + 'sys_update_date', + 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name in [ + 'bed_num', + 'prmit_bed_num_other', + 'prmit_bed_num_mental', + 'prmit_bed_num_tuber', + 'prmit_bed_num_infection', + 'prmit_bed_num_sum', + 'prmit_bed_num_gen', + 'prmit_bed_num_rcup']: + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + # 期待値ファイルを読み込む(施設診療科目) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_trt_update.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_trt_course_cd = [{'trt_course_cd': columns['trt_course_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_inst_trt_course + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND trt_course_cd = :trt_course_cd\ + """ + for primary_keys_dcf_dsf_inst_cd, primary_keys_trt_course_cd in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_trt_course_cd): + sp_trt_data = self.db.execute_select( + sp_field_select_sql, + {**primary_keys_dcf_dsf_inst_cd, **primary_keys_trt_course_cd}) + assert len(sp_trt_data) == 1, '1件取得できていること' + actual_data_list.append(sp_trt_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + # 期待値ファイルを読み込む(特養医務室データ) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_spcare_update.csv')) + 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) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_施設テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_inst_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_inst', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_inst_trt_course', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_spcare_med_office_dat', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む(施設) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_inst_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_inst', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + # DBデータを読み込む(施設診療科目) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_trt_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_inst_trt_course', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + # DBデータを読み込む(特養医務室) + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_spcare_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_spcare_med_office_dat', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_inst_mapper.ComInstMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_inst_mapper.ComInstMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む(施設) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_inst_delete.csv')) + primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_inst WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = [ + 'bed_num', + 'prmit_bed_num_other', + 'prmit_bed_num_mental', + 'prmit_bed_num_tuber', + 'prmit_bed_num_infection', + 'prmit_bed_num_sum', + 'prmit_bed_num_gen', + 'prmit_bed_num_rcup', + 'regist_ymd', + 'regist_ymd', + 'sys_update_date', + 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name in [ + 'bed_num', + 'prmit_bed_num_other', + 'prmit_bed_num_mental', + 'prmit_bed_num_tuber', + 'prmit_bed_num_infection', + 'prmit_bed_num_sum', + 'prmit_bed_num_gen', + 'prmit_bed_num_rcup']: + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + # 期待値ファイルを読み込む(施設診療科目) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_trt_delete.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_trt_course_cd = [{'trt_course_cd': columns['trt_course_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_inst_trt_course + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND trt_course_cd = :trt_course_cd\ + """ + for primary_keys_dcf_dsf_inst_cd, primary_keys_trt_course_cd in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_trt_course_cd): + sp_trt_data = self.db.execute_select( + sp_field_select_sql, + {**primary_keys_dcf_dsf_inst_cd, **primary_keys_trt_course_cd}) + assert len(sp_trt_data) == 1, '1件取得できていること' + actual_data_list.append(sp_trt_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + # 期待値ファイルを読み込む(特養医務室データ) + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_spcare_delete.csv')) + 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) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/com_inst_att_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/com_inst_att_delete.csv new file mode 100644 index 00000000..baf15d84 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/com_inst_att_delete.csv @@ -0,0 +1,6 @@ +"111","123","456789","99","B","1","NULL","NULL","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" +"111","00","9900146","","B","1","20160905","20160910","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"111","00","9900615","","B","1","20160905","20160910","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"111","00","9901806","","B","1","20160905","20160910","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"111","00","9901918","","B","1","20160905","20160910","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"111","00","9904136","","B","1","20160905","20160910","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" 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 new file mode 100644 index 00000000..57045790 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/com_inst_att_insert.csv @@ -0,0 +1,20 @@ +"111","123","456789","99","A","0","NULL","NULL","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" +"111","00","9900146","","A","2","20141113","20141114","1","20080701","","","","","1","20100401","","","","","1","","20011022","","1","20130501","","1","20130501","","1","20130501","","1","20130501","","1","20130501","","1","20130501","","","","20081130","1","20130501","","1","99","","","","","","","","","","","","","","","","","","","","1","20130501","","1","20140401","","1","20130501","","1","01","02","03","04","","","","","","","1","20130501","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","1","4","","","","","","","","","","","20040229","1","20031030","","1","20050914","","1","1","","1","","","","","","1","20090401","","","","1","217","5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","31","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195604" +"111","00","9900194","","A","2","20141113","20141114","1","20060501","","","","","","","","","","","","","","20111231","","","","","","","1","20130801","","1","20140501","","1","20120401","","","","","","","","","","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20091101","","1","20131101","","1","01","02","03","","","","","","","","1","20080601","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","08","20130705","","","","","","","20110331","1","20040331","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198204" +"111","00","9900615","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"111","00","9900631","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20120401","","1","20060401","","1","19971001","","","1","1","3991","6","19990930","","","","","","6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"111","00","9900700","","A","2","20141113","20141114","1","20100701","","","","","1","20100401","","","","","1","","20080514","","1","20080401","","","","","1","20140401","","1","20061101","","1","20080401","","1","20120601","","","","","1","20080601","","1","99","","","","","","","","","","","","","","","","","","","","1","20061101","","1","20061101","","1","20080401","","1","01","02","03","","","","","","","","1","20061101","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","1","4","","","","","","","","20061118","1","20030401","","","","","1","20031030","","1","1","1","1","","","","","","","","","","","1","169","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","31","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195310" +"111","00","9901649","","A","2","20141113","20141114","","","","1","2009","","","","","","","","","","","","","","","","","","1","20121201","","1","20080901","","","","20080331","","","","","","","1","20080701","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","","","","1","01","02","03","","","","","","","","1","19970701","","1","20130101","","1","20060401","","","","","1","9","1","I001","43","20061001","","","","","","43","1","B999","120","","","","","","","","","","","","","","","","1","12","20131101","","","","","","","","","","","","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198004" +"111","00","9901806","","A","2","20141113","20141114","1","20090401","","","","","1","20100401","","","","","1","","20130806","","1","20080401","","","","","1","20131101","","1","20000401","","1","20080401","","","","","","","","1","20130901","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20020401","","1","20110701","","1","01","02","03","","","","","","","","1","19960401","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","1","8","","","","20010731","1","13","20140502","","","","20040229","1","20031030","","1","20031030","","1","1","","1","","","","","","","","","1","1","1","202","1","198","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","31","34","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195011" +"111","00","9901820","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","19981130","1","20030601","","","","","1","01","02","","","","","","","","","","","","1","20140301","","","","","","","","1","1","1","","","","","4101","116","20090501","","116","1","B999","40","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","196405" +"111","00","9901918","","A","2","20141113","20141114","","","","","","","","","","","","","1","84.6","20020218","","","","","","","","1","20130901","","1","20051001","","1","20120101","","","","","","","","1","19780401","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","","","20070531","","","","1","01","02","03","04","","","","","","","","","20070228","","","","","","","","","","1","1","1","I002","84","20120101","","","","","","84","1","B999","177","","","","","","","","","","","","","","","","1","11","20110506","","","","","","","","","","","","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","3404537","","196601" +"111","00","9902043","","A","2","20141113","20141114","1","20140401","","","","20140331","","","","","","","","","","","","","","","","","1","20130501","","1","20100401","","1","20100401","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20100601","","","","","1","20100401","","1","01","02","","","","","","","","","","","","","","","","","","","","","1","9","1","I002","48","20110401","","","","","","48","1","B999","224","1","M999","40","1","K999","4","","","1","1","4","","","","","","","","","","","","","","","1","20040331","","1","1","","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","201004" +"111","00","9902175","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20111001","","1","20111001","","1","20111001","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20110331","","","","","1","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","199704" +"111","00","9902728","","A","2","20141113","20141114","1","20090401","","","","","","","","","","","","","","","","","","","","","1","20140401","","1","20140401","","1","20120801","","","","","1","20100401","","","","20040131","1","99","","","","","","","","","","","","","","","","","","","","1","20040214","","1","20100801","","1","20120401","","1","01","02","03","04","","","","","","","1","20030801","","","","","","","","","","","","","","","","","20040430","","","","20040430","","","","","","","","","","","","","","","","","","","","1","08","20121207","","","","","","","","1","20080919","","","1","1","","","","","","","","","","1","1","1","198","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","5303814","","198005" +"111","00","9903500","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","2","9","1","I001","26","20061001","","","","","","26","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198912" +"111","00","9904136","","A","2","20141113","20141114","1","20080701","","","","","","","","","","","1","","20111125","","1","20110401","","1","20130501","","1","20120601","","1","20110401","","1","20110401","","","","","","","","1","20110401","","1","99","","","","","","","","","","","","","","","","","","","","1","20110401","","1","20110801","","1","20110401","","1","01","02","03","04","","","","","","","1","20110401","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","1","1","1","10","","","","","1","13","20140307","","","","","1","19990401","","1","20040331","","1","1","1","1","","","","","","","","","1","","1","228","5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","34","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195208" +"111","00","9904439","","A","2","20141113","20141114","1","20060401","","","","","","","20100331","","","","1","97.9","20041105","","","","","","","","1","20130401","","1","20140401","","1","20100701","","","","","","","","1","20020201","","1","99","","","","","","","","","","","","","","","","","","","","1","20140401","","1","20140401","","","","","1","01","02","03","","","","","","","","1","20131101","","","","","","","","","","","1","1","1","I001","54","20120401","","","","","20040930","54","1","B999","450","","","","","","","","","","","","1","21","20130901","","1","13","20130906","","","","","1","20041001","","","","","1","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198812" +"111","00","9906696","","A","2","20141113","20141114","1","20060601","","","","","","","","","","","1","","20100401","","1","20080401","","","","","1","20140401","","1","20020401","","1","20080701","","","","","","","","1","20090401","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20040501","","","","20081130","1","01","02","03","04","","","","","","","1","19970901","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","13","20140404","","","","","1","20031030","","1","20031027","","","1","1","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","8106522","","199708" +"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" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/com_inst_att_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/com_inst_att_update.csv new file mode 100644 index 00000000..ad999396 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/com_inst_att_update.csv @@ -0,0 +1,5 @@ +"111","123","456789","99","A","0","NULL","NULL","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" +"111","00","9900631","","B","","20141113","20141114","1","20171009","","1","2017","20171009","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","@","","","@","","","","","","","@","@","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","3","","","","","","","","","","","","","","","","","","","","1","1","2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","0","12","","20","" +"111","00","9901649","","B","","20141113","20141114","","","","1","2009","20171010","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","201710" +"111","00","9990146","","B","","20171113","20171114","@","","","@","","","@","","","@","","","@","","","","@","","","@","","","@","","","@","","","@","","","@","","","@","","","@","","","@","","","","","","","","","","","","","","","","","","","","","@","","","@","","","@","","","@","","","","","","","","","","","@","","","@","","","@","","","@","","","@","@","@","","","","","","","","","","@","","","@","","","@","","","@","","","@","","@","","","","@","","","","@","","","","","","","","","@","@","","","@","@","","","","@","","","@","@","@","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","@","","","","","","","","","","","","","","","","","","","","","@","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","@","","","","@" +"111","99","9999999","99","B","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/db_com_inst_att_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/db_com_inst_att_before_delete.csv new file mode 100644 index 00000000..ba1b07af --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/db_com_inst_att_before_delete.csv @@ -0,0 +1,23 @@ +"dcf_dsf_inst_cd","dpc_flag","dpc_specday","dpc_cancelday","predpc_flag","predpc_specday","predpc_cancelday","cancer_flag","cancer_specday","cancer_cancelday","funchpflag","funchpokdate","funchpcandate","areasuphpflag","areasuphpintrate","areasuphpokdate","areasuphpcandate","acuthpaddflag","acuthpaddokdate","acuthpaddcandate","genadmisiionflag","genadmisiionfokdate","genadmisiionfcandate","assistanceflag","assistanceokdate","assistancecandate","diagnosistreatment_flag","diagnosistreatment_specday","diagnosistreatment_cancelday","safety_flag","safety_specday","safety_cancelday","highrisk_flag","highrisk_specday","highrisk_cancelday","infantandholiday_flag","infantandholiday_specday","infantandholiday_cancelday","ophpflag","ophpokdate","ophpcandate","critical_flag","critical_code01","critical_code02","critical_code03","critical_code04","critical_code05","critical_code06","critical_code07","critical_code08","critical_code09","critical_code10","critical_code11","critical_code12","critical_code13","critical_code14","critical_code15","critical_code16","critical_code17","critical_code18","critical_code19","critical_code20","drgmgthpflag","drgmgthpokdate","drgmgthpcandate","imagediagnosis_flag","imagediagnosis_specifiedday","imagediagnosis_cancelday","chemotherapy_flag","chemotherapy_specday","chemotherapy_cancelday","rehabilitation_flag","rehabilitation_code01","rehabilitation_code02","rehabilitation_code03","rehabilitation_code04","rehabilitation_code05","rehabilitation_code06","rehabilitation_code07","rehabilitation_code08","rehabilitation_code09","rehabilitation_code10","anesthetizingmanage_flag","anesthetizingmanage_specday","anesthetizingmanage_cancelday","homerecuperation_flag","homerecuperation_specday","homerecuperation_cancelday","synthesiswhenstaying_flag","synthesiswhenstaying_specday","synthesiswhenstaying_cancelday","homelateflag","homelateokday","homelatecanday","caremixkind","fullmoveflag","resthpflag","resthpcarekind","resthpbednum","resthpokdate","resthpcandate","resthpcarenrskind","resthpcarebednum","resthpcareokdate","resthpcarecandate","resthpsbednum","nrmhpflag","nrmhpcarekind","nrmhpbedtotalnum","menthpflag","menthpcarekind","menthpbednum","tubhpflag","tubhpcarekind","tubhpbednum","infhpflag","infhpflag1","infhpflag2","infhpbedflag","infhpbednum","hospiceflag","hospicebednum","hospiceokdate","hospicecandate","hpfuncestflag","hpfuncestkind","hpfuncestokdate","hpfuncestcandate","clolyhpkind","clolyhpokdate","clolyhpcandate","clhpkind","clhpokdate","clhpcandate","cldephpkind","cldephpokdate","cldephpcandate","disasthpflag","d1emerhpflag","d2emerhpflag","d3emerhpflag","emergencyclinic","trialcoreflag","trialcore_div","trialcoreokdate","trialcorecandate","dementiaflag","dementiaokdate","dementiacandate","sphealth_exploration","sphealth_guidance","hiadhpflag","hiadhpcode1","hiadhpkind1","hiadhpcode2","hiadhpkind2","hiadhpcode3","hiadhpkind3","hiadhpcode4","hiadhpkind4","hiadhpcode5","hiadhpkind5","hiadhpcode6","hiadhpkind6","hiadhpcode7","hiadhpkind7","hiadhpcode8","hiadhpkind8","hiadhpcode9","hiadhpkind9","hiadhpcode10","hiadhpkind10","hiadhpcode11","hiadhpkind11","hiadhpcode12","hiadhpkind12","hiadhpcode13","hiadhpkind13","hiadhpcode14","hiadhpkind14","hiadhpcode15","hiadhpkind15","hiadhpcode16","hiadhpkind16","hiadhpcode17","hiadhpkind17","hiadhpcode18","hiadhpkind18","hiadhpcode19","hiadhpkind19","hiadhpcode20","hiadhpkind20","hiadhpcode21","hiadhpkind21","hiadhpcode22","hiadhpkind22","hiadhpcode23","hiadhpkind23","hiadhpcode24","hiadhpkind24","hiadhpcode25","hiadhpkind25","hiadhpcode26","hiadhpkind26","hiadhpcode27","hiadhpkind27","hiadhpcode28","hiadhpkind28","hiadhpcode29","hiadhpkind29","hiadhpcode30","hiadhpkind30","hiadhpcode31","hiadhpkind31","hiadhpcode32","hiadhpkind32","hiadhpcode33","hiadhpkind33","hiadhpcode34","hiadhpkind34","hiadhpcode35","hiadhpkind35","hiadhpcode36","hiadhpkind36","hiadhpcode37","hiadhpkind37","hiadhpcode38","hiadhpkind38","hiadhpcode39","hiadhpkind39","hiadhpcode40","hiadhpkind40","hitechhpflag","hitechhpkind1","hitechhpkind2","hitechhpkind3","hitechhpkind4","hitechhpkind5","hitechhpkind6","hitechhpkind7","hitechhpkind8","hitechhpkind9","hitechhpkind10","hitechhpkind11","hitechhpkind12","hitechhpkind13","hitechhpkind14","hitechhpkind15","hitechhpkind16","hitechhpkind17","hitechhpkind18","hitechhpkind19","hitechhpkind20","policymedical_flag","policymedical_code01","policymedical_content01","policymedical_code02","policymedical_content02","policymedical_code03","policymedical_content03","policymedical_code04","policymedical_content04","policymedical_code05","policymedical_content05","policymedical_code06","policymedical_content06","policymedical_code07","policymedical_content07","policymedical_code08","policymedical_content08","policymedical_code09","policymedical_content09","policymedical_code10","policymedical_content10","policymedical_code11","policymedical_content11","policymedical_code12","policymedical_content12","policymedical_code13","policymedical_content13","policymedical_code14","policymedical_content14","policymedical_code15","policymedical_content15","policymedical_code16","policymedical_content16","policymedical_code17","policymedical_content17","policymedical_code18","policymedical_content18","policymedical_code19","policymedical_content19","policymedical_code20","policymedical_content20","visitcarestflag","visitcarestation_id","visitcarestation_code","visitcarestation_yobi","opendate","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"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" +"99999999999","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" +"009900146","1","20171009","20171009","2","2017","20171009","3","20171009","20171009","4","19940928","20171009","5","99.9","20171009","20171009","6","20120401","20171009","7","20171009","20171009","8","20171009","20171009","9","20121201","20171009","A","20090701","20171009","B","20061101","20171009","C","20171009","20171009","D","20171009","20171009","E","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","F","20100401","20171009","G","20140401","20171009","H","20140401","20171009","I","01","02","03","04","05","06","07","08","09","10","J","20140401","20171009","K","20171009","20171009","L","20171009","20171009","M","20171009","20171009","N","O","P","1234","9999","20171009","20171009","2234","8888","20171009","20171009","7777","Q","3234","6666","R","4234","5555","S","5234","4444","T","T","T","U","3333","V","2222","20171009","20171009","W","08","20100402","20171009","X","20171009","20060331","1","20041001","20171009","1","20040331","20171009","Y","Z","Z","Z","1","2","2","20070702","20171009","3","20171009","20171009","4","5","6","001","1","002","1","003","1","004","1","005","1","006","1","007","1","008","1","009","1","010","1","011","1","012","1","013","1","014","1","015","1","016","1","017","1","018","1","019","1","020","1","021","1","022","1","023","1","024","1","025","1","026","1","027","1","028","1","029","1","030","1","031","1","032","1","033","1","034","1","035","1","036","1","037","1","038","1","039","1","040","1","7","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","8","A1","1","A2","1","A3","1","A4","1","A5","1","A6","1","A7","1","A8","1","A9","1","B0","1","B1","1","B2","1","B3","1","B4","1","B5","1","B6","1","B7","1","B8","1","B9","1","C0","1","9","00","1234567","","192202","20171008","20171009","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/09 18:23:21","clsComInstAtt" +"009900194","1","20060501","","","","","","","","","","","","NULL","","20111231","","","","","","","1","20130801","","1","20140501","","1","20120401","","","","","","","","","","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20091101","","1","20131101","","1","01","02","03","","","","","","","","1","20080601","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","08","20130705","","","","","","","20110331","1","20040331","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198204","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009900615","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009900631","1","20171009","","1","2017","20171009","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","NULL","NULL","NULL","NULL","NULL","NULL","1","19971001","","","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","3","","","","","","","","","","","","","","","","","","","","1","1","2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","0","12","","20","","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/11 20:39:02","clsComInstAtt" +"009900700","1","20100701","","","","","1","20100401","","","","","1","NULL","20080514","","1","20080401","","","","","1","20140401","","1","20061101","","1","20080401","","1","20120601","","","","","1","20080601","","1","99","","","","","","","","","","","","","","","","","","","","1","20061101","","1","20061101","","1","20080401","","1","01","02","03","","","","","","","","1","20061101","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","1","1","4","","NULL","","","","","","20061118","1","20030401","","","","","1","20031030","","1","1","1","1","","","","","","","","","","","1","169","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","31","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195310","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009901649","","","","1","2009","20171010","","","","","","","","NULL","","","","","","","","","1","20121201","","1","20080901","","","","20080331","","","","","","","1","20080701","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","","","","1","01","02","03","","","","","","","","1","19970701","","1","20130101","","1","20060401","","","","","1","9","1","I001","43","20061001","","","NULL","","","43","1","B999","120","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","12","20131101","","","","","","","","","","","","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","201710","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/11 20:39:02","clsComInstAtt" +"009901806","1","20090401","","","","","1","20100401","","","","","1","NULL","20130806","","1","20080401","","","","","1","20131101","","1","20000401","","1","20080401","","","","","","","","1","20130901","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20020401","","1","20110701","","1","01","02","03","","","","","","","","1","19960401","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","1","1","8","","NULL","","20010731","1","13","20140502","","","","20040229","1","20031030","","1","20031030","","1","1","","1","","","","","","","","","1","1","1","202","1","198","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","31","34","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195011","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009901820","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","19981130","1","20030601","","","","","1","01","02","","","","","","","","","","","","1","20140301","","","","","","","","1","1","1","","NULL","","","4101","116","20090501","","116","1","B999","40","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","1","","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","196405","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009901918","","","","","","","","","","","","","1","84.6","20020218","","","","","","","","1","20130901","","1","20051001","","1","20120101","","","","","","","","1","19780401","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","","","20070531","","","","1","01","02","03","04","","","","","","","","","20070228","","","","","","","","","","1","1","1","I002","84","20120101","","","NULL","","","84","1","B999","177","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","11","20110506","","","","","","","","","","","","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","3404537","","196601","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009902043","1","20140401","","","","20140331","","","","","","","","NULL","","","","","","","","","1","20130501","","1","20100401","","1","20100401","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20100601","","","","","1","20100401","","1","01","02","","","","","","","","","","","","","","","","","","","","","1","9","1","I002","48","20110401","","","NULL","","","48","1","B999","224","1","M999","40","1","K999","4","","","1","1","4","","NULL","","","","","","","","","","","","","1","20040331","","1","1","","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","201004","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009902175","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20111001","","1","20111001","","1","20111001","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","20110331","","","","","1","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","199704","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009902728","1","20090401","","","","","","","","","","","","NULL","","","","","","","","","1","20140401","","1","20140401","","1","20120801","","","","","1","20100401","","","","20040131","1","99","","","","","","","","","","","","","","","","","","","","1","20040214","","1","20100801","","1","20120401","","1","01","02","03","04","","","","","","","1","20030801","","","","","","","","","","","","","","","NULL","","20040430","","NULL","","20040430","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","08","20121207","","","","","","","","1","20080919","","","1","1","","","","","","","","","","1","1","1","198","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","5303814","","198005","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009903500","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","2","9","1","I001","26","20061001","","","NULL","","","26","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198912","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009904136","1","20080701","","","","","","","","","","","1","NULL","20111125","","1","20110401","","1","20130501","","1","20120601","","1","20110401","","1","20110401","","","","","","","","1","20110401","","1","99","","","","","","","","","","","","","","","","","","","","1","20110401","","1","20110801","","1","20110401","","1","01","02","03","04","","","","","","","1","20110401","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","1","1","1","1","10","","NULL","","","1","13","20140307","","","","","1","19990401","","1","20040331","","1","1","1","1","","","","","","","","","1","","1","228","5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","34","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195208","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009904439","1","20060401","","","","","","","20100331","","","","1","97.9","20041105","","","","","","","","1","20130401","","1","20140401","","1","20100701","","","","","","","","1","20020201","","1","99","","","","","","","","","","","","","","","","","","","","1","20140401","","1","20140401","","","","","1","01","02","03","","","","","","","","1","20131101","","","","","","","","","","","1","1","1","I001","54","20120401","","","NULL","","20040930","54","1","B999","450","","","NULL","","","NULL","","","","","NULL","1","21","20130901","","1","13","20130906","","","","","1","20041001","","","","","1","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198812","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009906696","1","20060601","","","","","","","","","","","1","NULL","20100401","","1","20080401","","","","","1","20140401","","1","20020401","","1","20080701","","","","","","","","1","20090401","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20040501","","","","20081130","1","01","02","03","04","","","","","","","1","19970901","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","13","20140404","","","","","1","20031030","","1","20031027","","","1","1","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","8106522","","199708","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009908576","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","1","20080401","","","","","","","","","","","","","","","","","","20070831","","","20070831","","","","2","9","1","I001","33","20130401","","","NULL","","","33","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","200704","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"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","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"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","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009990146","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171009","20171011","NULL","NULL","NULL","NULL","2017/10/09 18:31:09","clsComInstAtt","2017/10/11 20:39:02","clsComInstAtt" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/db_com_inst_att_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/db_com_inst_att_before_update.csv new file mode 100644 index 00000000..b867c731 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/db_com_inst_att_before_update.csv @@ -0,0 +1,6 @@ +"dcf_dsf_inst_cd","dpc_flag","dpc_specday","dpc_cancelday","predpc_flag","predpc_specday","predpc_cancelday","cancer_flag","cancer_specday","cancer_cancelday","funchpflag","funchpokdate","funchpcandate","areasuphpflag","areasuphpintrate","areasuphpokdate","areasuphpcandate","acuthpaddflag","acuthpaddokdate","acuthpaddcandate","genadmisiionflag","genadmisiionfokdate","genadmisiionfcandate","assistanceflag","assistanceokdate","assistancecandate","diagnosistreatment_flag","diagnosistreatment_specday","diagnosistreatment_cancelday","safety_flag","safety_specday","safety_cancelday","highrisk_flag","highrisk_specday","highrisk_cancelday","infantandholiday_flag","infantandholiday_specday","infantandholiday_cancelday","ophpflag","ophpokdate","ophpcandate","critical_flag","critical_code01","critical_code02","critical_code03","critical_code04","critical_code05","critical_code06","critical_code07","critical_code08","critical_code09","critical_code10","critical_code11","critical_code12","critical_code13","critical_code14","critical_code15","critical_code16","critical_code17","critical_code18","critical_code19","critical_code20","drgmgthpflag","drgmgthpokdate","drgmgthpcandate","imagediagnosis_flag","imagediagnosis_specifiedday","imagediagnosis_cancelday","chemotherapy_flag","chemotherapy_specday","chemotherapy_cancelday","rehabilitation_flag","rehabilitation_code01","rehabilitation_code02","rehabilitation_code03","rehabilitation_code04","rehabilitation_code05","rehabilitation_code06","rehabilitation_code07","rehabilitation_code08","rehabilitation_code09","rehabilitation_code10","anesthetizingmanage_flag","anesthetizingmanage_specday","anesthetizingmanage_cancelday","homerecuperation_flag","homerecuperation_specday","homerecuperation_cancelday","synthesiswhenstaying_flag","synthesiswhenstaying_specday","synthesiswhenstaying_cancelday","homelateflag","homelateokday","homelatecanday","caremixkind","fullmoveflag","resthpflag","resthpcarekind","resthpbednum","resthpokdate","resthpcandate","resthpcarenrskind","resthpcarebednum","resthpcareokdate","resthpcarecandate","resthpsbednum","nrmhpflag","nrmhpcarekind","nrmhpbedtotalnum","menthpflag","menthpcarekind","menthpbednum","tubhpflag","tubhpcarekind","tubhpbednum","infhpflag","infhpflag1","infhpflag2","infhpbedflag","infhpbednum","hospiceflag","hospicebednum","hospiceokdate","hospicecandate","hpfuncestflag","hpfuncestkind","hpfuncestokdate","hpfuncestcandate","clolyhpkind","clolyhpokdate","clolyhpcandate","clhpkind","clhpokdate","clhpcandate","cldephpkind","cldephpokdate","cldephpcandate","disasthpflag","d1emerhpflag","d2emerhpflag","d3emerhpflag","emergencyclinic","trialcoreflag","trialcore_div","trialcoreokdate","trialcorecandate","dementiaflag","dementiaokdate","dementiacandate","sphealth_exploration","sphealth_guidance","hiadhpflag","hiadhpcode1","hiadhpkind1","hiadhpcode2","hiadhpkind2","hiadhpcode3","hiadhpkind3","hiadhpcode4","hiadhpkind4","hiadhpcode5","hiadhpkind5","hiadhpcode6","hiadhpkind6","hiadhpcode7","hiadhpkind7","hiadhpcode8","hiadhpkind8","hiadhpcode9","hiadhpkind9","hiadhpcode10","hiadhpkind10","hiadhpcode11","hiadhpkind11","hiadhpcode12","hiadhpkind12","hiadhpcode13","hiadhpkind13","hiadhpcode14","hiadhpkind14","hiadhpcode15","hiadhpkind15","hiadhpcode16","hiadhpkind16","hiadhpcode17","hiadhpkind17","hiadhpcode18","hiadhpkind18","hiadhpcode19","hiadhpkind19","hiadhpcode20","hiadhpkind20","hiadhpcode21","hiadhpkind21","hiadhpcode22","hiadhpkind22","hiadhpcode23","hiadhpkind23","hiadhpcode24","hiadhpkind24","hiadhpcode25","hiadhpkind25","hiadhpcode26","hiadhpkind26","hiadhpcode27","hiadhpkind27","hiadhpcode28","hiadhpkind28","hiadhpcode29","hiadhpkind29","hiadhpcode30","hiadhpkind30","hiadhpcode31","hiadhpkind31","hiadhpcode32","hiadhpkind32","hiadhpcode33","hiadhpkind33","hiadhpcode34","hiadhpkind34","hiadhpcode35","hiadhpkind35","hiadhpcode36","hiadhpkind36","hiadhpcode37","hiadhpkind37","hiadhpcode38","hiadhpkind38","hiadhpcode39","hiadhpkind39","hiadhpcode40","hiadhpkind40","hitechhpflag","hitechhpkind1","hitechhpkind2","hitechhpkind3","hitechhpkind4","hitechhpkind5","hitechhpkind6","hitechhpkind7","hitechhpkind8","hitechhpkind9","hitechhpkind10","hitechhpkind11","hitechhpkind12","hitechhpkind13","hitechhpkind14","hitechhpkind15","hitechhpkind16","hitechhpkind17","hitechhpkind18","hitechhpkind19","hitechhpkind20","policymedical_flag","policymedical_code01","policymedical_content01","policymedical_code02","policymedical_content02","policymedical_code03","policymedical_content03","policymedical_code04","policymedical_content04","policymedical_code05","policymedical_content05","policymedical_code06","policymedical_content06","policymedical_code07","policymedical_content07","policymedical_code08","policymedical_content08","policymedical_code09","policymedical_content09","policymedical_code10","policymedical_content10","policymedical_code11","policymedical_content11","policymedical_code12","policymedical_content12","policymedical_code13","policymedical_content13","policymedical_code14","policymedical_content14","policymedical_code15","policymedical_content15","policymedical_code16","policymedical_content16","policymedical_code17","policymedical_content17","policymedical_code18","policymedical_content18","policymedical_code19","policymedical_content19","policymedical_code20","policymedical_content20","visitcarestflag","visitcarestation_id","visitcarestation_code","visitcarestation_yobi","opendate","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"12345678999","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171009","20171011","NULL","NULL","NULL","NULL","2017/10/09 18:31:09","clsComInstAtt","2017/10/11 20:39:02","clsComInstAtt" +"009900631","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20120401","","1","20060401","","1","19971001","","","1","1","3991","6","19990930","","","NULL","","","6","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009901649","","","","1","2009","","","","","","","","","NULL","","","","","","","","","1","20121201","","1","20080901","","","","20080331","","","","","","","1","20080701","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","","","","1","01","02","03","","","","","","","","1","19970701","","1","20130101","","1","20060401","","","","","1","9","1","I001","43","20061001","","","NULL","","","43","1","B999","120","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","12","20131101","","","","","","","","","","","","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198004","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009990146","1","20171009","20171009","2","2017","20171009","3","20171009","20171009","4","19940928","20171009","5","99.9","20171009","20171009","6","20120401","20171009","7","20171009","20171009","8","20171009","20171009","9","20121201","20171009","A","20090701","20171009","B","20061101","20171009","C","20171009","20171009","D","20171009","20171009","E","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","F","20100401","20171009","G","20140401","20171009","H","20140401","20171009","I","01","02","03","04","05","06","07","08","09","10","J","20140401","20171009","K","20171009","20171009","L","20171009","20171009","M","20171009","20171009","N","O","P","1234","9999","20171009","20171009","2234","8888","20171009","20171009","7777","Q","3234","6666","R","4234","5555","S","5234","4444","T","T","T","U","3333","V","2222","20171009","20171009","W","08","20100402","20171009","X","20171009","20060331","1","20041001","20171009","1","20040331","20171009","Y","Z","Z","Z","1","2","2","20070702","20171009","3","20171009","20171009","4","5","6","001","1","002","1","003","1","004","1","005","1","006","1","007","1","008","1","009","1","010","1","011","1","012","1","013","1","014","1","015","1","016","1","017","1","018","1","019","1","020","1","021","1","022","1","023","1","024","1","025","1","026","1","027","1","028","1","029","1","030","1","031","1","032","1","033","1","034","1","035","1","036","1","037","1","038","1","039","1","040","1","7","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","8","A1","1","A2","1","A3","1","A4","1","A5","1","A6","1","A7","1","A8","1","A9","1","B0","1","B1","1","B2","1","B3","1","B4","1","B5","1","B6","1","B7","1","B8","1","B9","1","C0","1","9","00","1234567","","192202","20171009","NULL","NULL","NULL","NULL","NULL","2017/10/09 18:31:09","clsComInstAtt","2017/10/09 18:31:09","clsComInstAtt" +"99999999999","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","20171009","20230509","NULL","NULL","NULL","NULL","2017/10/09 18:31:09","aaaa","2023/05/09 10:10:10","aaaa" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/expect_com_inst_att_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/expect_com_inst_att_delete.csv new file mode 100644 index 00000000..9c17fa45 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/expect_com_inst_att_delete.csv @@ -0,0 +1,17 @@ +"dcf_dsf_inst_cd","dpc_flag","dpc_specday","dpc_cancelday","predpc_flag","predpc_specday","predpc_cancelday","cancer_flag","cancer_specday","cancer_cancelday","funchpflag","funchpokdate","funchpcandate","areasuphpflag","areasuphpintrate","areasuphpokdate","areasuphpcandate","acuthpaddflag","acuthpaddokdate","acuthpaddcandate","genadmisiionflag","genadmisiionfokdate","genadmisiionfcandate","assistanceflag","assistanceokdate","assistancecandate","diagnosistreatment_flag","diagnosistreatment_specday","diagnosistreatment_cancelday","safety_flag","safety_specday","safety_cancelday","highrisk_flag","highrisk_specday","highrisk_cancelday","infantandholiday_flag","infantandholiday_specday","infantandholiday_cancelday","ophpflag","ophpokdate","ophpcandate","critical_flag","critical_code01","critical_code02","critical_code03","critical_code04","critical_code05","critical_code06","critical_code07","critical_code08","critical_code09","critical_code10","critical_code11","critical_code12","critical_code13","critical_code14","critical_code15","critical_code16","critical_code17","critical_code18","critical_code19","critical_code20","drgmgthpflag","drgmgthpokdate","drgmgthpcandate","imagediagnosis_flag","imagediagnosis_specifiedday","imagediagnosis_cancelday","chemotherapy_flag","chemotherapy_specday","chemotherapy_cancelday","rehabilitation_flag","rehabilitation_code01","rehabilitation_code02","rehabilitation_code03","rehabilitation_code04","rehabilitation_code05","rehabilitation_code06","rehabilitation_code07","rehabilitation_code08","rehabilitation_code09","rehabilitation_code10","anesthetizingmanage_flag","anesthetizingmanage_specday","anesthetizingmanage_cancelday","homerecuperation_flag","homerecuperation_specday","homerecuperation_cancelday","synthesiswhenstaying_flag","synthesiswhenstaying_specday","synthesiswhenstaying_cancelday","homelateflag","homelateokday","homelatecanday","caremixkind","fullmoveflag","resthpflag","resthpcarekind","resthpbednum","resthpokdate","resthpcandate","resthpcarenrskind","resthpcarebednum","resthpcareokdate","resthpcarecandate","resthpsbednum","nrmhpflag","nrmhpcarekind","nrmhpbedtotalnum","menthpflag","menthpcarekind","menthpbednum","tubhpflag","tubhpcarekind","tubhpbednum","infhpflag","infhpflag1","infhpflag2","infhpbedflag","infhpbednum","hospiceflag","hospicebednum","hospiceokdate","hospicecandate","hpfuncestflag","hpfuncestkind","hpfuncestokdate","hpfuncestcandate","clolyhpkind","clolyhpokdate","clolyhpcandate","clhpkind","clhpokdate","clhpcandate","cldephpkind","cldephpokdate","cldephpcandate","disasthpflag","d1emerhpflag","d2emerhpflag","d3emerhpflag","emergencyclinic","trialcoreflag","trialcore_div","trialcoreokdate","trialcorecandate","dementiaflag","dementiaokdate","dementiacandate","sphealth_exploration","sphealth_guidance","hiadhpflag","hiadhpcode1","hiadhpkind1","hiadhpcode2","hiadhpkind2","hiadhpcode3","hiadhpkind3","hiadhpcode4","hiadhpkind4","hiadhpcode5","hiadhpkind5","hiadhpcode6","hiadhpkind6","hiadhpcode7","hiadhpkind7","hiadhpcode8","hiadhpkind8","hiadhpcode9","hiadhpkind9","hiadhpcode10","hiadhpkind10","hiadhpcode11","hiadhpkind11","hiadhpcode12","hiadhpkind12","hiadhpcode13","hiadhpkind13","hiadhpcode14","hiadhpkind14","hiadhpcode15","hiadhpkind15","hiadhpcode16","hiadhpkind16","hiadhpcode17","hiadhpkind17","hiadhpcode18","hiadhpkind18","hiadhpcode19","hiadhpkind19","hiadhpcode20","hiadhpkind20","hiadhpcode21","hiadhpkind21","hiadhpcode22","hiadhpkind22","hiadhpcode23","hiadhpkind23","hiadhpcode24","hiadhpkind24","hiadhpcode25","hiadhpkind25","hiadhpcode26","hiadhpkind26","hiadhpcode27","hiadhpkind27","hiadhpcode28","hiadhpkind28","hiadhpcode29","hiadhpkind29","hiadhpcode30","hiadhpkind30","hiadhpcode31","hiadhpkind31","hiadhpcode32","hiadhpkind32","hiadhpcode33","hiadhpkind33","hiadhpcode34","hiadhpkind34","hiadhpcode35","hiadhpkind35","hiadhpcode36","hiadhpkind36","hiadhpcode37","hiadhpkind37","hiadhpcode38","hiadhpkind38","hiadhpcode39","hiadhpkind39","hiadhpcode40","hiadhpkind40","hitechhpflag","hitechhpkind1","hitechhpkind2","hitechhpkind3","hitechhpkind4","hitechhpkind5","hitechhpkind6","hitechhpkind7","hitechhpkind8","hitechhpkind9","hitechhpkind10","hitechhpkind11","hitechhpkind12","hitechhpkind13","hitechhpkind14","hitechhpkind15","hitechhpkind16","hitechhpkind17","hitechhpkind18","hitechhpkind19","hitechhpkind20","policymedical_flag","policymedical_code01","policymedical_content01","policymedical_code02","policymedical_content02","policymedical_code03","policymedical_content03","policymedical_code04","policymedical_content04","policymedical_code05","policymedical_content05","policymedical_code06","policymedical_content06","policymedical_code07","policymedical_content07","policymedical_code08","policymedical_content08","policymedical_code09","policymedical_content09","policymedical_code10","policymedical_content10","policymedical_code11","policymedical_content11","policymedical_code12","policymedical_content12","policymedical_code13","policymedical_content13","policymedical_code14","policymedical_content14","policymedical_code15","policymedical_content15","policymedical_code16","policymedical_content16","policymedical_code17","policymedical_content17","policymedical_code18","policymedical_content18","policymedical_code19","policymedical_content19","policymedical_code20","policymedical_content20","visitcarestflag","visitcarestation_id","visitcarestation_code","visitcarestation_yobi","opendate","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900194","1","20060501","","","","","","","","","","","","NULL","","20111231","","","","","","","1","20130801","","1","20140501","","1","20120401","","","","","","","","","","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20091101","","1","20131101","","1","01","02","03","","","","","","","","1","20080601","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","08","20130705","","","","","","","20110331","1","20040331","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198204","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009900631","1","20171009","","1","2017","20171009","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","NULL","NULL","NULL","NULL","NULL","NULL","1","19971001","","","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","3","","","","","","","","","","","","","","","","","","","","1","1","2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","0","12","","20","","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/11 20:39:02","clsComInstAtt" +"009900700","1","20100701","","","","","1","20100401","","","","","1","NULL","20080514","","1","20080401","","","","","1","20140401","","1","20061101","","1","20080401","","1","20120601","","","","","1","20080601","","1","99","","","","","","","","","","","","","","","","","","","","1","20061101","","1","20061101","","1","20080401","","1","01","02","03","","","","","","","","1","20061101","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","1","1","4","","NULL","","","","","","20061118","1","20030401","","","","","1","20031030","","1","1","1","1","","","","","","","","","","","1","169","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","31","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195310","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009901649","","","","1","2009","20171010","","","","","","","","NULL","","","","","","","","","1","20121201","","1","20080901","","","","20080331","","","","","","","1","20080701","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","","","","1","01","02","03","","","","","","","","1","19970701","","1","20130101","","1","20060401","","","","","1","9","1","I001","43","20061001","","","NULL","","","43","1","B999","120","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","12","20131101","","","","","","","","","","","","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","201710","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/11 20:39:02","clsComInstAtt" +"009901820","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","19981130","1","20030601","","","","","1","01","02","","","","","","","","","","","","1","20140301","","","","","","","","1","1","1","","NULL","","","4101","116","20090501","","116","1","B999","40","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","1","","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","196405","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009902043","1","20140401","","","","20140331","","","","","","","","NULL","","","","","","","","","1","20130501","","1","20100401","","1","20100401","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20100601","","","","","1","20100401","","1","01","02","","","","","","","","","","","","","","","","","","","","","1","9","1","I002","48","20110401","","","NULL","","","48","1","B999","224","1","M999","40","1","K999","4","","","1","1","4","","NULL","","","","","","","","","","","","","1","20040331","","1","1","","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","201004","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009902175","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20111001","","1","20111001","","1","20111001","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","20110331","","","","","1","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","199704","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009902728","1","20090401","","","","","","","","","","","","NULL","","","","","","","","","1","20140401","","1","20140401","","1","20120801","","","","","1","20100401","","","","20040131","1","99","","","","","","","","","","","","","","","","","","","","1","20040214","","1","20100801","","1","20120401","","1","01","02","03","04","","","","","","","1","20030801","","","","","","","","","","","","","","","NULL","","20040430","","NULL","","20040430","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","08","20121207","","","","","","","","1","20080919","","","1","1","","","","","","","","","","1","1","1","198","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","5303814","","198005","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009903500","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","2","9","1","I001","26","20061001","","","NULL","","","26","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198912","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009904439","1","20060401","","","","","","","20100331","","","","1","97.9","20041105","","","","","","","","1","20130401","","1","20140401","","1","20100701","","","","","","","","1","20020201","","1","99","","","","","","","","","","","","","","","","","","","","1","20140401","","1","20140401","","","","","1","01","02","03","","","","","","","","1","20131101","","","","","","","","","","","1","1","1","I001","54","20120401","","","NULL","","20040930","54","1","B999","450","","","NULL","","","NULL","","","","","NULL","1","21","20130901","","1","13","20130906","","","","","1","20041001","","","","","1","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198812","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009906696","1","20060601","","","","","","","","","","","1","NULL","20100401","","1","20080401","","","","","1","20140401","","1","20020401","","1","20080701","","","","","","","","1","20090401","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20040501","","","","20081130","1","01","02","03","04","","","","","","","1","19970901","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","13","20140404","","","","","1","20031030","","1","20031027","","","1","1","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","8106522","","199708","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009908576","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","1","20080401","","","","","","","","","","","","","","","","","","20070831","","","20070831","","","","2","9","1","I001","33","20130401","","","NULL","","","33","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","200704","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"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","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"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","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2017/10/08 20:57:12","clsComInstAtt" +"009990146","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171009","20171011","NULL","NULL","NULL","NULL","2017/10/09 18:31:09","clsComInstAtt","2017/10/11 20:39:02","clsComInstAtt" +"99999999999","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" 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 new file mode 100644 index 00000000..264abcbe --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/expect_com_inst_att_insert.csv @@ -0,0 +1,21 @@ +"dcf_dsf_inst_cd","dpc_flag","dpc_specday","dpc_cancelday","predpc_flag","predpc_specday","predpc_cancelday","cancer_flag","cancer_specday","cancer_cancelday","funchpflag","funchpokdate","funchpcandate","areasuphpflag","areasuphpintrate","areasuphpokdate","areasuphpcandate","acuthpaddflag","acuthpaddokdate","acuthpaddcandate","genadmisiionflag","genadmisiionfokdate","genadmisiionfcandate","assistanceflag","assistanceokdate","assistancecandate","diagnosistreatment_flag","diagnosistreatment_specday","diagnosistreatment_cancelday","safety_flag","safety_specday","safety_cancelday","highrisk_flag","highrisk_specday","highrisk_cancelday","infantandholiday_flag","infantandholiday_specday","infantandholiday_cancelday","ophpflag","ophpokdate","ophpcandate","critical_flag","critical_code01","critical_code02","critical_code03","critical_code04","critical_code05","critical_code06","critical_code07","critical_code08","critical_code09","critical_code10","critical_code11","critical_code12","critical_code13","critical_code14","critical_code15","critical_code16","critical_code17","critical_code18","critical_code19","critical_code20","drgmgthpflag","drgmgthpokdate","drgmgthpcandate","imagediagnosis_flag","imagediagnosis_specifiedday","imagediagnosis_cancelday","chemotherapy_flag","chemotherapy_specday","chemotherapy_cancelday","rehabilitation_flag","rehabilitation_code01","rehabilitation_code02","rehabilitation_code03","rehabilitation_code04","rehabilitation_code05","rehabilitation_code06","rehabilitation_code07","rehabilitation_code08","rehabilitation_code09","rehabilitation_code10","anesthetizingmanage_flag","anesthetizingmanage_specday","anesthetizingmanage_cancelday","homerecuperation_flag","homerecuperation_specday","homerecuperation_cancelday","synthesiswhenstaying_flag","synthesiswhenstaying_specday","synthesiswhenstaying_cancelday","homelateflag","homelateokday","homelatecanday","caremixkind","fullmoveflag","resthpflag","resthpcarekind","resthpbednum","resthpokdate","resthpcandate","resthpcarenrskind","resthpcarebednum","resthpcareokdate","resthpcarecandate","resthpsbednum","nrmhpflag","nrmhpcarekind","nrmhpbedtotalnum","menthpflag","menthpcarekind","menthpbednum","tubhpflag","tubhpcarekind","tubhpbednum","infhpflag","infhpflag1","infhpflag2","infhpbedflag","infhpbednum","hospiceflag","hospicebednum","hospiceokdate","hospicecandate","hpfuncestflag","hpfuncestkind","hpfuncestokdate","hpfuncestcandate","clolyhpkind","clolyhpokdate","clolyhpcandate","clhpkind","clhpokdate","clhpcandate","cldephpkind","cldephpokdate","cldephpcandate","disasthpflag","d1emerhpflag","d2emerhpflag","d3emerhpflag","emergencyclinic","trialcoreflag","trialcore_div","trialcoreokdate","trialcorecandate","dementiaflag","dementiaokdate","dementiacandate","sphealth_exploration","sphealth_guidance","hiadhpflag","hiadhpcode1","hiadhpkind1","hiadhpcode2","hiadhpkind2","hiadhpcode3","hiadhpkind3","hiadhpcode4","hiadhpkind4","hiadhpcode5","hiadhpkind5","hiadhpcode6","hiadhpkind6","hiadhpcode7","hiadhpkind7","hiadhpcode8","hiadhpkind8","hiadhpcode9","hiadhpkind9","hiadhpcode10","hiadhpkind10","hiadhpcode11","hiadhpkind11","hiadhpcode12","hiadhpkind12","hiadhpcode13","hiadhpkind13","hiadhpcode14","hiadhpkind14","hiadhpcode15","hiadhpkind15","hiadhpcode16","hiadhpkind16","hiadhpcode17","hiadhpkind17","hiadhpcode18","hiadhpkind18","hiadhpcode19","hiadhpkind19","hiadhpcode20","hiadhpkind20","hiadhpcode21","hiadhpkind21","hiadhpcode22","hiadhpkind22","hiadhpcode23","hiadhpkind23","hiadhpcode24","hiadhpkind24","hiadhpcode25","hiadhpkind25","hiadhpcode26","hiadhpkind26","hiadhpcode27","hiadhpkind27","hiadhpcode28","hiadhpkind28","hiadhpcode29","hiadhpkind29","hiadhpcode30","hiadhpkind30","hiadhpcode31","hiadhpkind31","hiadhpcode32","hiadhpkind32","hiadhpcode33","hiadhpkind33","hiadhpcode34","hiadhpkind34","hiadhpcode35","hiadhpkind35","hiadhpcode36","hiadhpkind36","hiadhpcode37","hiadhpkind37","hiadhpcode38","hiadhpkind38","hiadhpcode39","hiadhpkind39","hiadhpcode40","hiadhpkind40","hitechhpflag","hitechhpkind1","hitechhpkind2","hitechhpkind3","hitechhpkind4","hitechhpkind5","hitechhpkind6","hitechhpkind7","hitechhpkind8","hitechhpkind9","hitechhpkind10","hitechhpkind11","hitechhpkind12","hitechhpkind13","hitechhpkind14","hitechhpkind15","hitechhpkind16","hitechhpkind17","hitechhpkind18","hitechhpkind19","hitechhpkind20","policymedical_flag","policymedical_code01","policymedical_content01","policymedical_code02","policymedical_content02","policymedical_code03","policymedical_content03","policymedical_code04","policymedical_content04","policymedical_code05","policymedical_content05","policymedical_code06","policymedical_content06","policymedical_code07","policymedical_content07","policymedical_code08","policymedical_content08","policymedical_code09","policymedical_content09","policymedical_code10","policymedical_content10","policymedical_code11","policymedical_content11","policymedical_code12","policymedical_content12","policymedical_code13","policymedical_content13","policymedical_code14","policymedical_content14","policymedical_code15","policymedical_content15","policymedical_code16","policymedical_content16","policymedical_code17","policymedical_content17","policymedical_code18","policymedical_content18","policymedical_code19","policymedical_content19","policymedical_code20","policymedical_content20","visitcarestflag","visitcarestation_id","visitcarestation_code","visitcarestation_yobi","opendate","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","1","20080701","","","","","1","20100401","","","","","1","NULL","20011022","","1","20130501","","1","20130501","","1","20130501","","1","20130501","","1","20130501","","1","20130501","","","","20081130","1","20130501","","1","99","","","","","","","","","","","","","","","","","","","","1","20130501","","1","20140401","","1","20130501","","1","01","02","03","04","","","","","","","1","20130501","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","1","1","4","","NULL","","","","","","","","","20040229","1","20031030","","1","20050914","","1","1","","1","","","","","","1","20090401","","","","1","217","5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","31","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195604","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" +"009900194","1","20060501","","","","","","","","","","","","NULL","","20111231","","","","","","","1","20130801","","1","20140501","","1","20120401","","","","","","","","","","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20091101","","1","20131101","","1","01","02","03","","","","","","","","1","20080601","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","08","20130705","","","","","","","20110331","1","20040331","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198204","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" +"009900615","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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" +"009900631","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20120401","","1","20060401","","1","19971001","","","1","1","3991","6","19990930","","","NULL","","","6","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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" +"009900700","1","20100701","","","","","1","20100401","","","","","1","NULL","20080514","","1","20080401","","","","","1","20140401","","1","20061101","","1","20080401","","1","20120601","","","","","1","20080601","","1","99","","","","","","","","","","","","","","","","","","","","1","20061101","","1","20061101","","1","20080401","","1","01","02","03","","","","","","","","1","20061101","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","1","1","4","","NULL","","","","","","20061118","1","20030401","","","","","1","20031030","","1","1","1","1","","","","","","","","","","","1","169","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","31","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195310","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" +"009901649","","","","1","2009","","","","","","","","","NULL","","","","","","","","","1","20121201","","1","20080901","","","","20080331","","","","","","","1","20080701","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","","","","1","01","02","03","","","","","","","","1","19970701","","1","20130101","","1","20060401","","","","","1","9","1","I001","43","20061001","","","NULL","","","43","1","B999","120","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","12","20131101","","","","","","","","","","","","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198004","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" +"009901806","1","20090401","","","","","1","20100401","","","","","1","NULL","20130806","","1","20080401","","","","","1","20131101","","1","20000401","","1","20080401","","","","","","","","1","20130901","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20020401","","1","20110701","","1","01","02","03","","","","","","","","1","19960401","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","1","1","8","","NULL","","20010731","1","13","20140502","","","","20040229","1","20031030","","1","20031030","","1","1","","1","","","","","","","","","1","1","1","202","1","198","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","31","34","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195011","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" +"009901820","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","19981130","1","20030601","","","","","1","01","02","","","","","","","","","","","","1","20140301","","","","","","","","1","1","1","","NULL","","","4101","116","20090501","","116","1","B999","40","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","1","","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","196405","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" +"009901918","","","","","","","","","","","","","1","84.6","20020218","","","","","","","","1","20130901","","1","20051001","","1","20120101","","","","","","","","1","19780401","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","","","20070531","","","","1","01","02","03","04","","","","","","","","","20070228","","","","","","","","","","1","1","1","I002","84","20120101","","","NULL","","","84","1","B999","177","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","11","20110506","","","","","","","","","","","","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","3404537","","196601","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" +"009902043","1","20140401","","","","20140331","","","","","","","","NULL","","","","","","","","","1","20130501","","1","20100401","","1","20100401","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20100601","","","","","1","20100401","","1","01","02","","","","","","","","","","","","","","","","","","","","","1","9","1","I002","48","20110401","","","NULL","","","48","1","B999","224","1","M999","40","1","K999","4","","","1","1","4","","NULL","","","","","","","","","","","","","1","20040331","","1","1","","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","201004","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" +"009902175","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20111001","","1","20111001","","1","20111001","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","20110331","","","","","1","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","199704","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" +"009902728","1","20090401","","","","","","","","","","","","NULL","","","","","","","","","1","20140401","","1","20140401","","1","20120801","","","","","1","20100401","","","","20040131","1","99","","","","","","","","","","","","","","","","","","","","1","20040214","","1","20100801","","1","20120401","","1","01","02","03","04","","","","","","","1","20030801","","","","","","","","","","","","","","","NULL","","20040430","","NULL","","20040430","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","08","20121207","","","","","","","","1","20080919","","","1","1","","","","","","","","","","1","1","1","198","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","5303814","","198005","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" +"009903500","","","","","","","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","2","9","1","I001","26","20061001","","","NULL","","","26","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198912","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" +"009904136","1","20080701","","","","","","","","","","","1","NULL","20111125","","1","20110401","","1","20130501","","1","20120601","","1","20110401","","1","20110401","","","","","","","","1","20110401","","1","99","","","","","","","","","","","","","","","","","","","","1","20110401","","1","20110801","","1","20110401","","1","01","02","03","04","","","","","","","1","20110401","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","1","1","1","1","10","","NULL","","","1","13","20140307","","","","","1","19990401","","1","20040331","","1","1","1","1","","","","","","","","","1","","1","228","5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","34","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195208","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" +"009904439","1","20060401","","","","","","","20100331","","","","1","97.9","20041105","","","","","","","","1","20130401","","1","20140401","","1","20100701","","","","","","","","1","20020201","","1","99","","","","","","","","","","","","","","","","","","","","1","20140401","","1","20140401","","","","","1","01","02","03","","","","","","","","1","20131101","","","","","","","","","","","1","1","1","I001","54","20120401","","","NULL","","20040930","54","1","B999","450","","","NULL","","","NULL","","","","","NULL","1","21","20130901","","1","13","20130906","","","","","1","20041001","","","","","1","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198812","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" +"009906696","1","20060601","","","","","","","","","","","1","NULL","20100401","","1","20080401","","","","","1","20140401","","1","20020401","","1","20080701","","","","","","","","1","20090401","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20040501","","","","20081130","1","01","02","03","04","","","","","","","1","19970901","","","","","","","","","","","","","","","NULL","","","","NULL","","","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","13","20140404","","","","","1","20031030","","1","20031027","","","1","1","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","8106522","","199708","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" +"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" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/expect_com_inst_att_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/expect_com_inst_att_update.csv new file mode 100644 index 00000000..ecb59fbf --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/expect_com_inst_att_update.csv @@ -0,0 +1,7 @@ +"dcf_dsf_inst_cd","dpc_flag","dpc_specday","dpc_cancelday","predpc_flag","predpc_specday","predpc_cancelday","cancer_flag","cancer_specday","cancer_cancelday","funchpflag","funchpokdate","funchpcandate","areasuphpflag","areasuphpintrate","areasuphpokdate","areasuphpcandate","acuthpaddflag","acuthpaddokdate","acuthpaddcandate","genadmisiionflag","genadmisiionfokdate","genadmisiionfcandate","assistanceflag","assistanceokdate","assistancecandate","diagnosistreatment_flag","diagnosistreatment_specday","diagnosistreatment_cancelday","safety_flag","safety_specday","safety_cancelday","highrisk_flag","highrisk_specday","highrisk_cancelday","infantandholiday_flag","infantandholiday_specday","infantandholiday_cancelday","ophpflag","ophpokdate","ophpcandate","critical_flag","critical_code01","critical_code02","critical_code03","critical_code04","critical_code05","critical_code06","critical_code07","critical_code08","critical_code09","critical_code10","critical_code11","critical_code12","critical_code13","critical_code14","critical_code15","critical_code16","critical_code17","critical_code18","critical_code19","critical_code20","drgmgthpflag","drgmgthpokdate","drgmgthpcandate","imagediagnosis_flag","imagediagnosis_specifiedday","imagediagnosis_cancelday","chemotherapy_flag","chemotherapy_specday","chemotherapy_cancelday","rehabilitation_flag","rehabilitation_code01","rehabilitation_code02","rehabilitation_code03","rehabilitation_code04","rehabilitation_code05","rehabilitation_code06","rehabilitation_code07","rehabilitation_code08","rehabilitation_code09","rehabilitation_code10","anesthetizingmanage_flag","anesthetizingmanage_specday","anesthetizingmanage_cancelday","homerecuperation_flag","homerecuperation_specday","homerecuperation_cancelday","synthesiswhenstaying_flag","synthesiswhenstaying_specday","synthesiswhenstaying_cancelday","homelateflag","homelateokday","homelatecanday","caremixkind","fullmoveflag","resthpflag","resthpcarekind","resthpbednum","resthpokdate","resthpcandate","resthpcarenrskind","resthpcarebednum","resthpcareokdate","resthpcarecandate","resthpsbednum","nrmhpflag","nrmhpcarekind","nrmhpbedtotalnum","menthpflag","menthpcarekind","menthpbednum","tubhpflag","tubhpcarekind","tubhpbednum","infhpflag","infhpflag1","infhpflag2","infhpbedflag","infhpbednum","hospiceflag","hospicebednum","hospiceokdate","hospicecandate","hpfuncestflag","hpfuncestkind","hpfuncestokdate","hpfuncestcandate","clolyhpkind","clolyhpokdate","clolyhpcandate","clhpkind","clhpokdate","clhpcandate","cldephpkind","cldephpokdate","cldephpcandate","disasthpflag","d1emerhpflag","d2emerhpflag","d3emerhpflag","emergencyclinic","trialcoreflag","trialcore_div","trialcoreokdate","trialcorecandate","dementiaflag","dementiaokdate","dementiacandate","sphealth_exploration","sphealth_guidance","hiadhpflag","hiadhpcode1","hiadhpkind1","hiadhpcode2","hiadhpkind2","hiadhpcode3","hiadhpkind3","hiadhpcode4","hiadhpkind4","hiadhpcode5","hiadhpkind5","hiadhpcode6","hiadhpkind6","hiadhpcode7","hiadhpkind7","hiadhpcode8","hiadhpkind8","hiadhpcode9","hiadhpkind9","hiadhpcode10","hiadhpkind10","hiadhpcode11","hiadhpkind11","hiadhpcode12","hiadhpkind12","hiadhpcode13","hiadhpkind13","hiadhpcode14","hiadhpkind14","hiadhpcode15","hiadhpkind15","hiadhpcode16","hiadhpkind16","hiadhpcode17","hiadhpkind17","hiadhpcode18","hiadhpkind18","hiadhpcode19","hiadhpkind19","hiadhpcode20","hiadhpkind20","hiadhpcode21","hiadhpkind21","hiadhpcode22","hiadhpkind22","hiadhpcode23","hiadhpkind23","hiadhpcode24","hiadhpkind24","hiadhpcode25","hiadhpkind25","hiadhpcode26","hiadhpkind26","hiadhpcode27","hiadhpkind27","hiadhpcode28","hiadhpkind28","hiadhpcode29","hiadhpkind29","hiadhpcode30","hiadhpkind30","hiadhpcode31","hiadhpkind31","hiadhpcode32","hiadhpkind32","hiadhpcode33","hiadhpkind33","hiadhpcode34","hiadhpkind34","hiadhpcode35","hiadhpkind35","hiadhpcode36","hiadhpkind36","hiadhpcode37","hiadhpkind37","hiadhpcode38","hiadhpkind38","hiadhpcode39","hiadhpkind39","hiadhpcode40","hiadhpkind40","hitechhpflag","hitechhpkind1","hitechhpkind2","hitechhpkind3","hitechhpkind4","hitechhpkind5","hitechhpkind6","hitechhpkind7","hitechhpkind8","hitechhpkind9","hitechhpkind10","hitechhpkind11","hitechhpkind12","hitechhpkind13","hitechhpkind14","hitechhpkind15","hitechhpkind16","hitechhpkind17","hitechhpkind18","hitechhpkind19","hitechhpkind20","policymedical_flag","policymedical_code01","policymedical_content01","policymedical_code02","policymedical_content02","policymedical_code03","policymedical_content03","policymedical_code04","policymedical_content04","policymedical_code05","policymedical_content05","policymedical_code06","policymedical_content06","policymedical_code07","policymedical_content07","policymedical_code08","policymedical_content08","policymedical_code09","policymedical_content09","policymedical_code10","policymedical_content10","policymedical_code11","policymedical_content11","policymedical_code12","policymedical_content12","policymedical_code13","policymedical_content13","policymedical_code14","policymedical_content14","policymedical_code15","policymedical_content15","policymedical_code16","policymedical_content16","policymedical_code17","policymedical_content17","policymedical_code18","policymedical_content18","policymedical_code19","policymedical_content19","policymedical_code20","policymedical_content20","visitcarestflag","visitcarestation_id","visitcarestation_code","visitcarestation_yobi","opendate","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900631","1","20171009","","1","2017","20171009","","","","","","","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","NULL","NULL","NULL","NULL","NULL","NULL","1","19971001","","","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","","","NULL","","","NULL","","","NULL","","","","","NULL","","NULL","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","3","","","","","","","","","","","","","","","","","","","","1","1","2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","0","12","","20","","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2023/05/09 10:39:02","com_inst_att_mapper" +"009901649","","","","1","2009","20171010","","","","","","","","NULL","","","","","","","","","1","20121201","","1","20080901","","","","20080331","","","","","","","1","20080701","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","","","","1","01","02","03","","","","","","","","1","19970701","","1","20130101","","1","20060401","","","","","1","9","1","I001","43","20061001","","","NULL","","","43","1","B999","120","","","NULL","","","NULL","","","","","NULL","","NULL","","","1","12","20131101","","","","","","","","","","","","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","201710","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2023/05/09 10:39:02","com_inst_att_mapper" +"009990146","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","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","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComInstAtt","2023/05/09 10:39:02","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","20171009","20230509","NULL","NULL","NULL","NULL","2017/10/09 18:31:09","clsComInstAtt","2023/05/09 10:10:10","com_inst_att_mapper" +"99999999999","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","20171009","20230509","NULL","NULL","NULL","NULL","2017/10/09 18:31:09","aaaa","2023/05/09 10:10:10","aaaa" + diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/test_com_inst_att_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/test_com_inst_att_mapper.py new file mode 100644 index 00000000..0721905d --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_inst_att/test_com_inst_att_mapper.py @@ -0,0 +1,232 @@ +import os.path as path +from datetime import datetime +from decimal import Decimal + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_inst_att_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComInstAttMapper: + """レイアウト区分111: COM_施設属性""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + # smallint型のカラム群 + smallint_columns = [ + 'areasuphpintrate', + 'resthpbednum', + 'resthpcarebednum', + 'resthpsbednum', + 'nrmhpbedtotalnum', + 'menthpbednum', + 'tubhpbednum', + 'infhpbednum', + 'hospicebednum' + ] + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_施設属性テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_inst_att_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_inst_att', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_inst_att_mapper.ComInstAttMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_inst_att_mapper.ComInstAttMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_inst_att_insert.csv')) + primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_inst_att WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + self.smallint_columns + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if actual_col_name in self.smallint_columns: + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + if actual_col_name == 'areasuphpintrate': + assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_施設属性テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_inst_att_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_inst_att', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_inst_att_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_inst_att', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_inst_att_mapper.ComInstAttMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_inst_att_mapper.ComInstAttMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_inst_att_update.csv')) + primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_inst_att WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + self.smallint_columns + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name in self.smallint_columns: + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + if actual_col_name == 'areasuphpintrate': + assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_施設属性テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_inst_att_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_inst_att', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_inst_att_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_inst_att', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_inst_att_mapper.ComInstAttMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_inst_att_mapper.ComInstAttMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_inst_att_delete.csv')) + primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_inst_att WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + self.smallint_columns + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name in self.smallint_columns: + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + if actual_col_name == 'areasuphpintrate': + assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/com_med_area_city_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/com_med_area_city_delete.csv new file mode 100644 index 00000000..631fe4f9 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/com_med_area_city_delete.csv @@ -0,0 +1,3 @@ +"124","01","01","B","01","202","1","20141113","20141114","","" +"124","01","01","B","01","900","1","20141113","20141114","01","02" +"124","01","01","B","01","331","1","20141113","20141114","01","01" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/com_med_area_city_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/com_med_area_city_insert.csv new file mode 100644 index 00000000..e8bf727d --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/com_med_area_city_insert.csv @@ -0,0 +1,3 @@ +"124","01","01","A","01","202","2","20141113","20141114","01","03" +"124","01","01","A","01","236","2","20141113","20141114","","" +"124","01","01","B","01","331","2","20141113","20141114","01","01" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/com_med_area_city_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/com_med_area_city_update.csv new file mode 100644 index 00000000..7ec208ae --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/com_med_area_city_update.csv @@ -0,0 +1,3 @@ +"124","01","01","A","01","202","2","20141113","20141114","","" +"124","01","01","A","01","236","2","20141113","20141114","01","02" +"124","01","01","B","01","331","2","20141113","20141114","01","01" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/db_com_med_area_city_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/db_com_med_area_city_before_delete.csv new file mode 100644 index 00000000..756a99ce --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/db_com_med_area_city_before_delete.csv @@ -0,0 +1,4 @@ +"prefc_cd","med_sphe_cd","jis_prefc_cd","jis_city_cd","zen_prefcode","zen_medareacode","mod_ymd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","01","01","202","","","NULL","20171020","20171020","NULL","NULL","NULL","NULL","2017/10/20 10:54:42","clsComMedAreaCity","2017/10/20 11:26:33","clsComMedAreaCity" +"01","01","01","236","01","02","NULL","20171020","20171020","NULL","NULL","NULL","NULL","2017/10/20 10:54:42","clsComMedAreaCity","2017/10/20 11:26:33","clsComMedAreaCity" +"01","01","01","331","01","01","NULL","20171020","20171020","NULL","NULL","NULL","NULL","2017/10/20 10:54:42","clsComMedAreaCity","2017/10/20 11:26:33","clsComMedAreaCity" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/db_com_med_area_city_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/db_com_med_area_city_before_update.csv new file mode 100644 index 00000000..dc0c8280 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/db_com_med_area_city_before_update.csv @@ -0,0 +1,4 @@ +"prefc_cd","med_sphe_cd","jis_prefc_cd","jis_city_cd","zen_prefcode","zen_medareacode","mod_ymd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","01","01","202","01","03","NULL","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:54:42","clsComMedAreaCity","2017/10/20 10:54:42","clsComMedAreaCity" +"01","01","01","236","","","NULL","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:54:42","clsComMedAreaCity","2017/10/20 10:54:42","clsComMedAreaCity" +"01","01","01","331","01","01","NULL","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 10:54:42","clsComMedAreaCity","2017/10/20 10:54:42","clsComMedAreaCity" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/expect_com_med_area_city_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/expect_com_med_area_city_delete.csv new file mode 100644 index 00000000..378928e3 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/expect_com_med_area_city_delete.csv @@ -0,0 +1,2 @@ +"prefc_cd","med_sphe_cd","jis_prefc_cd","jis_city_cd","zen_prefcode","zen_medareacode","mod_ymd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","01","01","236","01","02","NULL","20171020","20171020","NULL","NULL","NULL","NULL","2017/10/20 10:54:42","clsComMedAreaCity","2017/10/20 11:26:33","clsComMedAreaCity" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/expect_com_med_area_city_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/expect_com_med_area_city_insert.csv new file mode 100644 index 00000000..35406b92 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/expect_com_med_area_city_insert.csv @@ -0,0 +1,4 @@ +"prefc_cd","med_sphe_cd","jis_prefc_cd","jis_city_cd","zen_prefcode","zen_medareacode","mod_ymd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","01","01","202","01","03","NULL","20230512","NULL","NULL","NULL","NULL","NULL","2023/05/12 10:54:42","com_med_area_city_mapper","2023/05/12 10:54:42","com_med_area_city_mapper" +"01","01","01","236","","","NULL","20230512","NULL","NULL","NULL","NULL","NULL","2023/05/12 10:54:42","com_med_area_city_mapper","2023/05/12 10:54:42","com_med_area_city_mapper" +"01","01","01","331","01","01","NULL","20230512","NULL","NULL","NULL","NULL","NULL","2023/05/12 10:54:42","com_med_area_city_mapper","2023/05/12 10:54:42","com_med_area_city_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/expect_com_med_area_city_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/expect_com_med_area_city_update.csv new file mode 100644 index 00000000..e45e2614 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/expect_com_med_area_city_update.csv @@ -0,0 +1,4 @@ +"prefc_cd","med_sphe_cd","jis_prefc_cd","jis_city_cd","zen_prefcode","zen_medareacode","mod_ymd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","01","01","202","","","NULL","20171020","20230512","NULL","NULL","NULL","NULL","2017/10/20 10:54:42","clsComMedAreaCity","2023/05/12 11:26:33","com_med_area_city_mapper" +"01","01","01","236","01","02","NULL","20171020","20230512","NULL","NULL","NULL","NULL","2017/10/20 10:54:42","clsComMedAreaCity","2023/05/12 11:26:33","com_med_area_city_mapper" +"01","01","01","331","01","01","NULL","20171020","20230512","NULL","NULL","NULL","NULL","2017/10/20 10:54:42","clsComMedAreaCity","2023/05/12 11:26:33","com_med_area_city_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/test_com_med_area_city_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/test_com_med_area_city_mapper.py new file mode 100644 index 00000000..0b208ab0 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_area_city/test_com_med_area_city_mapper.py @@ -0,0 +1,271 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_med_area_city_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComMedAreaCityMapper: + """レイアウト区分124: COM_医療圏都道府県市町村対応表""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_医療圏都道府県市町村対応表テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_med_area_city_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_med_area_city', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_med_area_city_mapper.ComMedAreaCityMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_med_area_city_mapper.ComMedAreaCityMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_med_area_city_insert.csv')) + primary_keys_prefc_cd = [{'prefc_cd': columns['prefc_cd']} for columns in expect_data_list] + primary_keys_med_sphe_cd = [{'med_sphe_cd': columns['med_sphe_cd']} for columns in expect_data_list] + primary_keys_jis_prefc_cd = [{'jis_prefc_cd': columns['jis_prefc_cd']} for columns in expect_data_list] + primary_keys_jis_city_cd = [{'jis_city_cd': columns['jis_city_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_med_area_city + WHERE + prefc_cd = :prefc_cd + AND + med_sphe_cd = :med_sphe_cd + AND + jis_prefc_cd = :jis_prefc_cd + AND + jis_city_cd = :jis_city_cd + """ + for param_prefc_cd, param_med_sphe_cd, param_keys_jis_prefc_cd, param_jis_city_cd in zip( + primary_keys_prefc_cd, + primary_keys_med_sphe_cd, + primary_keys_jis_prefc_cd, + primary_keys_jis_city_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_prefc_cd, **param_med_sphe_cd, **param_keys_jis_prefc_cd, **param_jis_city_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_医療圏都道府県市町村対応表テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_med_area_city_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_med_area_city', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_med_area_city_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_med_area_city', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_med_area_city_mapper.ComMedAreaCityMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_med_area_city_mapper.ComMedAreaCityMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_med_area_city_update.csv')) + primary_keys_prefc_cd = [{'prefc_cd': columns['prefc_cd']} for columns in expect_data_list] + primary_keys_med_sphe_cd = [{'med_sphe_cd': columns['med_sphe_cd']} for columns in expect_data_list] + primary_keys_jis_prefc_cd = [{'jis_prefc_cd': columns['jis_prefc_cd']} for columns in expect_data_list] + primary_keys_jis_city_cd = [{'jis_city_cd': columns['jis_city_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_med_area_city + WHERE + prefc_cd = :prefc_cd + AND + med_sphe_cd = :med_sphe_cd + AND + jis_prefc_cd = :jis_prefc_cd + AND + jis_city_cd = :jis_city_cd + """ + for param_prefc_cd, param_med_sphe_cd, param_keys_jis_prefc_cd, param_jis_city_cd in zip( + primary_keys_prefc_cd, + primary_keys_med_sphe_cd, + primary_keys_jis_prefc_cd, + primary_keys_jis_city_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_prefc_cd, **param_med_sphe_cd, **param_keys_jis_prefc_cd, **param_jis_city_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_physical_delete(self): + """ + Cases: + COM_医療圏都道府県市町村対応表テーブルのレコードを1件物理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_med_area_city_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_med_area_city', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_med_area_city_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_med_area_city', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_med_area_city_mapper.ComMedAreaCityMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_med_area_city_mapper.ComMedAreaCityMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_med_area_city_delete.csv')) + actual_record_count = self.db.execute_select('SELECT COUNT(*) AS count_num FROM src05.com_med_area_city')[0]['count_num'] + assert actual_record_count == len(expect_data_list), 'DBのレコード件数が期待値の件数と一致すること' + primary_keys_prefc_cd = [{'prefc_cd': columns['prefc_cd']} for columns in expect_data_list] + primary_keys_med_sphe_cd = [{'med_sphe_cd': columns['med_sphe_cd']} for columns in expect_data_list] + primary_keys_jis_prefc_cd = [{'jis_prefc_cd': columns['jis_prefc_cd']} for columns in expect_data_list] + primary_keys_jis_city_cd = [{'jis_city_cd': columns['jis_city_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_med_area_city + WHERE + prefc_cd = :prefc_cd + AND + med_sphe_cd = :med_sphe_cd + AND + jis_prefc_cd = :jis_prefc_cd + AND + jis_city_cd = :jis_city_cd + """ + for param_prefc_cd, param_med_sphe_cd, param_keys_jis_prefc_cd, param_jis_city_cd in zip( + primary_keys_prefc_cd, + primary_keys_med_sphe_cd, + primary_keys_jis_prefc_cd, + primary_keys_jis_city_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_prefc_cd, **param_med_sphe_cd, **param_keys_jis_prefc_cd, **param_jis_city_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/com_med_prefc_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/com_med_prefc_delete.csv new file mode 100644 index 00000000..2416d338 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/com_med_prefc_delete.csv @@ -0,0 +1,3 @@ +"121","01","C","20141118","20141122","20130501","20130329","18967","19615","20130201","648","143","205","20130201","62","98","94","20130201","-4" +"121","09","C","20141118","20141122","","","","","","","","","","","","","","" +"121","03","C","20141118","20141122","20170101","20170329","9420","9454","20170930","39","39","139","20170930","707","70","70","20170930","7" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/com_med_prefc_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/com_med_prefc_insert.csv new file mode 100644 index 00000000..0f161d10 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/com_med_prefc_insert.csv @@ -0,0 +1,4 @@ +"121","01","A","20141118","20141122","20130501","20130329","18967","19615","20130201","648","143","205","20130201","62","98","94","20130201","-4" +"121","02","A","20141118","20141122","20160601","20130722","3870","4511","20130101","641","60","66","20130101","6","32","20","20130101","-12" +"121","03","A","20141118","20141122","20140101","20130329","4420","4454","20120930","34","30","137","20120930","107","40","40","20120930","0" +"121","99","A","","","20140101","20130329","123456","123456","20120930","1234567","123456","123456","20120930","1234567","123456","123465","20120930","1234567" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/com_med_prefc_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/com_med_prefc_update.csv new file mode 100644 index 00000000..0c5f5b39 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/com_med_prefc_update.csv @@ -0,0 +1,3 @@ +"121","01","A","20141118","20141122","20130501","20130329","18967","19615","20130201","648","143","205","20130201","62","98","94","20130201","-4" +"121","02","A","20141118","20141122","","","","","","","","","","","","","","" +"121","03","B","20141118","20141122","20170101","20170329","9420","9454","20170930","39","39","139","20170930","707","70","70","20170930","7" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/db_com_med_prefc_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/db_com_med_prefc_before_delete.csv new file mode 100644 index 00000000..892066e1 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/db_com_med_prefc_before_delete.csv @@ -0,0 +1,4 @@ +"pref_code","rev_date","post_date","psy_bednumtg","psy_bednumgen","psy_bednumdate","psy_eqbednum","tb_bednumtg","tb_bednumgen","tb_bednumdate","tb_eqbednum","inf_bednumtg","inf_bednumgen","inf_bednumdate","inf_eqbednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","20130501","20130329","18967","19615","20130201","648","143","205","20130201","62","98","94","20130201","-4","20171019","20171019","NULL","NULL","NULL","NULL","2017/10/19 12:00:05","clsComMedPrefc","2017/10/19 12:01:04","clsComMedPrefc" +"02","","","NULL","NULL","","","NULL","NULL","","","NULL","NULL","","","20171019","20171019","NULL","NULL","NULL","NULL","2017/10/19 12:00:05","clsComMedPrefc","2017/10/19 12:01:04","clsComMedPrefc" +"03","20170101","20170329","9420","9454","20170930","39","39","139","20170930","707","70","70","20170930","7","20171019","20171019","NULL","NULL","NULL","NULL","2017/10/19 12:00:05","clsComMedPrefc","2017/10/19 12:01:04","clsComMedPrefc" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/db_com_med_prefc_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/db_com_med_prefc_before_update.csv new file mode 100644 index 00000000..d5ea9119 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/db_com_med_prefc_before_update.csv @@ -0,0 +1,4 @@ +"pref_code","rev_date","post_date","psy_bednumtg","psy_bednumgen","psy_bednumdate","psy_eqbednum","tb_bednumtg","tb_bednumgen","tb_bednumdate","tb_eqbednum","inf_bednumtg","inf_bednumgen","inf_bednumdate","inf_eqbednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","20130501","20130329","18967","19615","20130201","648","143","205","20130201","62","98","94","20130201","-4","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 12:00:05","clsComMedPrefc","2017/10/19 12:00:05","clsComMedPrefc" +"02","20160601","20130722","3870","4511","20130101","641","60","66","20130101","6","32","20","20130101","-12","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 12:00:05","clsComMedPrefc","2017/10/19 12:00:05","clsComMedPrefc" +"03","20140101","20130329","4420","4454","20120930","34","30","137","20120930","107","40","40","20120930","0","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 12:00:05","clsComMedPrefc","2017/10/19 12:00:05","clsComMedPrefc" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/expect_com_med_prefc_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/expect_com_med_prefc_delete.csv new file mode 100644 index 00000000..891196ec --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/expect_com_med_prefc_delete.csv @@ -0,0 +1,2 @@ +"pref_code","rev_date","post_date","psy_bednumtg","psy_bednumgen","psy_bednumdate","psy_eqbednum","tb_bednumtg","tb_bednumgen","tb_bednumdate","tb_eqbednum","inf_bednumtg","inf_bednumgen","inf_bednumdate","inf_eqbednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"02","","","NULL","NULL","","","NULL","NULL","","","NULL","NULL","","","20171019","20171019","NULL","NULL","NULL","NULL","2017/10/19 12:00:05","clsComMedPrefc","2017/10/19 12:01:04","clsComMedPrefc" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/expect_com_med_prefc_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/expect_com_med_prefc_insert.csv new file mode 100644 index 00000000..a6b694f7 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/expect_com_med_prefc_insert.csv @@ -0,0 +1,5 @@ +"pref_code","rev_date","post_date","psy_bednumtg","psy_bednumgen","psy_bednumdate","psy_eqbednum","tb_bednumtg","tb_bednumgen","tb_bednumdate","tb_eqbednum","inf_bednumtg","inf_bednumgen","inf_bednumdate","inf_eqbednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","20130501","20130329","18967","19615","20130201","648","143","205","20130201","62","98","94","20130201","-4","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 12:00:05","com_med_prefc_mapper","2023/05/11 12:00:05","com_med_prefc_mapper" +"02","20160601","20130722","3870","4511","20130101","641","60","66","20130101","6","32","20","20130101","-12","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 12:00:05","com_med_prefc_mapper","2023/05/11 12:00:05","com_med_prefc_mapper" +"03","20140101","20130329","4420","4454","20120930","34","30","137","20120930","107","40","40","20120930","0","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 12:00:05","com_med_prefc_mapper","2023/05/11 12:00:05","com_med_prefc_mapper" +"99","20140101","20130329","123456","123456","20120930","1234567","123456","123456","20120930","1234567","123456","123465","20120930","1234567","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 12:00:05","com_med_prefc_mapper","2023/05/11 12:00:05","com_med_prefc_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/expect_com_med_prefc_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/expect_com_med_prefc_update.csv new file mode 100644 index 00000000..7d595e49 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/expect_com_med_prefc_update.csv @@ -0,0 +1,4 @@ +"pref_code","rev_date","post_date","psy_bednumtg","psy_bednumgen","psy_bednumdate","psy_eqbednum","tb_bednumtg","tb_bednumgen","tb_bednumdate","tb_eqbednum","inf_bednumtg","inf_bednumgen","inf_bednumdate","inf_eqbednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","20130501","20130329","18967","19615","20130201","648","143","205","20130201","62","98","94","20130201","-4","20171019","20230511","NULL","NULL","NULL","NULL","2017/10/19 12:00:05","clsComMedPrefc","2023/05/11 12:01:04","com_med_prefc_mapper" +"02","","","NULL","NULL","","","NULL","NULL","","","NULL","NULL","","","20171019","20230511","NULL","NULL","NULL","NULL","2017/10/19 12:00:05","clsComMedPrefc","2023/05/11 12:01:04","com_med_prefc_mapper" +"03","20170101","20170329","9420","9454","20170930","39","39","139","20170930","707","70","70","20170930","7","20171019","20230511","NULL","NULL","NULL","NULL","2017/10/19 12:00:05","clsComMedPrefc","2023/05/11 12:01:04","com_med_prefc_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/test_com_med_prefc_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/test_com_med_prefc_mapper.py new file mode 100644 index 00000000..02424dbd --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_med_prefc/test_com_med_prefc_mapper.py @@ -0,0 +1,222 @@ +import os.path as path +from datetime import datetime +from decimal import Decimal + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_med_prefc_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComMedPrefcMapper: + """レイアウト区分121: COM_医療圏都道府県""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + # decimal型のカラム群 + decimal_columns = [ + 'psy_bednumtg', + 'psy_bednumgen', + 'tb_bednumtg', + 'tb_bednumgen', + 'inf_bednumtg', + 'inf_bednumgen' + ] + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_医療圏都道府県テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_med_prefc_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_med_prefc', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_med_prefc_mapper.ComMedPrefcMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_med_prefc_mapper.ComMedPrefcMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_med_prefc_insert.csv')) + primary_keys = [f"'{primary_key['pref_code']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_med_prefc WHERE pref_code IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + self.decimal_columns + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if actual_col_name in self.decimal_columns: + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_医療圏都道府県テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_med_prefc_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_med_prefc', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_med_prefc_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_med_prefc', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_med_prefc_mapper.ComMedPrefcMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_med_prefc_mapper.ComMedPrefcMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_med_prefc_update.csv')) + primary_keys = [f"'{primary_key['pref_code']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_med_prefc WHERE pref_code IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + self.decimal_columns + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name in self.decimal_columns: + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_physical_delete(self): + """ + Cases: + COM_医療圏都道府県テーブルのレコードを1件物理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_med_prefc_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_med_prefc', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_med_prefc_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_med_prefc', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_med_prefc_mapper.ComMedPrefcMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_med_prefc_mapper.ComMedPrefcMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_med_prefc_delete.csv')) + actual_record_count = self.db.execute_select('SELECT COUNT(*) AS count_num FROM src05.com_med_prefc')[0]['count_num'] + assert actual_record_count == len(expect_data_list), 'DBのレコード件数が期待値の件数と一致すること' + primary_keys = [f"'{primary_key['pref_code']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_med_prefc WHERE pref_code IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + self.decimal_columns + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name in self.decimal_columns: + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_nurse_assrt/test_com_nurse_assrt_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_nurse_assrt/test_com_nurse_assrt_mapper.py index e7bea2a5..49bf7c8f 100644 --- a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_nurse_assrt/test_com_nurse_assrt_mapper.py +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_nurse_assrt/test_com_nurse_assrt_mapper.py @@ -4,7 +4,8 @@ from datetime import datetime import pytest from src.batch.common.batch_context import BatchContext -from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_nurse_assrt_mapper +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import \ + com_nurse_assrt_mapper from src.db.database import Database from tests.testing_utility import (assert_table_results, create_db_data_from_csv, @@ -15,7 +16,7 @@ from tests.testing_utility import (assert_table_results, class TestComNurseAssrtMapper: - """レイアウト区分004: COM_出身校""" + """レイアウト区分023: COM_看護種別""" db: Database batch_context: BatchContext diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/com_policy_med_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/com_policy_med_delete.csv new file mode 100644 index 00000000..ca4cadce --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/com_policy_med_delete.csv @@ -0,0 +1,8 @@ +"028","01","A","20141113","20141114","" +"028","02","A","20141113","20141114","循環器病" +"028","03","A","20141113","20141114","精神疾患" +"028","04","C","20141113","20141114","神経・筋疾患(筋ジスを含む)" +"028","05","A","20141113","20141114","成育" +"028","06","A","20141113","20141114","呼吸器疾患(結核を含む)" +"028","07","A","20141113","20141114","心臓病" +"028","99","C","20141113","20141114","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/com_policy_med_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/com_policy_med_insert.csv new file mode 100644 index 00000000..dc5032cd --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/com_policy_med_insert.csv @@ -0,0 +1,7 @@ +"028","01","A","20141113","20141114","がん" +"028","02","A","20141113","20141114","循環器病" +"028","03","A","20141113","20141114","精神疾患" +"028","04","A","20141113","20141114","神経・筋疾患(筋ジスを含む)" +"028","05","A","20141113","20141114","成育" +"028","06","A","20141113","20141114","呼吸器疾患(結核を含む)" +"028","99","A","20141113","20141114","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかき" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/com_policy_med_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/com_policy_med_update.csv new file mode 100644 index 00000000..700df5d8 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/com_policy_med_update.csv @@ -0,0 +1,7 @@ +"028","01","A","20141113","20141114","" +"028","02","A","20141113","20141114","循環器病" +"028","03","A","20141113","20141114","精神疾患" +"028","04","A","20141113","20141114","神経・筋疾患(筋ジスを含む)" +"028","05","A","20141113","20141114","呼吸器疾患(結核を含む)" +"028","06","A","20141113","20141114","成育" +"028","99","A","20141113","20141114","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかき" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/db_com_policy_med_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/db_com_policy_med_before_delete.csv new file mode 100644 index 00000000..6b9e4adf --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/db_com_policy_med_before_delete.csv @@ -0,0 +1,7 @@ +"policy_med_cd","field_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","がん","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2017/10/19 15:06:43","clsComPolicyMed" +"02","循環器病","20171019","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2017/10/19 15:12:57","clsComPolicyMed" +"03","精神疾患","20171019","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2017/10/19 15:12:57","clsComPolicyMed" +"04","神経・筋疾患(筋ジスを含む)","20171019","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2017/10/19 15:12:57","clsComPolicyMed" +"05","呼吸器疾患(結核を含む)","20171019","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2017/10/19 15:12:57","clsComPolicyMed" +"06","成育","20171019","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2017/10/19 15:12:57","clsComPolicyMed" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/db_com_policy_med_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/db_com_policy_med_before_update.csv new file mode 100644 index 00000000..8595b154 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/db_com_policy_med_before_update.csv @@ -0,0 +1,8 @@ +"policy_med_cd","field_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","がん","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2022/10/19 15:06:43","clsComPolicyMed" +"02","循環器病","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2022/10/19 15:06:43","clsComPolicyMed" +"03","精神疾患","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2022/10/19 15:06:43","clsComPolicyMed" +"04","神経・筋疾患(筋ジスを含む)","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2022/10/19 15:06:43","clsComPolicyMed" +"05","成育","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2022/10/19 15:06:43","clsComPolicyMed" +"06","呼吸器疾患(結核を含む)","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2022/10/19 15:06:43","clsComPolicyMed" +"99","あああ","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2022/10/19 15:06:43","clsComPolicyMed" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/expect_com_policy_med_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/expect_com_policy_med_delete.csv new file mode 100644 index 00000000..33d4b95f --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/expect_com_policy_med_delete.csv @@ -0,0 +1,8 @@ +"policy_med_cd","field_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","がん","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2017/10/19 15:06:43","clsComPolicyMed" +"02","循環器病","20171019","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2022/10/20 17:36:27","com_policy_med_mapper" +"03","精神疾患","20171019","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2022/10/20 17:36:27","com_policy_med_mapper" +"04","神経・筋疾患(筋ジスを含む)","20171019","20171019","20230425","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2022/10/20 17:36:27","com_policy_med_mapper" +"05","成育","20171019","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2022/10/20 17:36:27","com_policy_med_mapper" +"06","呼吸器疾患(結核を含む)","20171019","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2022/10/20 17:36:27","com_policy_med_mapper" +"07","心臓病","20230425","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 15:21:20","com_policy_med_mapper","2022/10/20 17:36:27","com_policy_med_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/expect_com_policy_med_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/expect_com_policy_med_insert.csv new file mode 100644 index 00000000..84587999 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/expect_com_policy_med_insert.csv @@ -0,0 +1,8 @@ +"policy_med_cd","field_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","がん","20230425","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 15:06:43","com_policy_med_mapper","2022/10/19 15:06:43","com_policy_med_mapper" +"02","循環器病","20230425","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 15:06:43","com_policy_med_mapper","2022/10/19 15:06:43","com_policy_med_mapper" +"03","精神疾患","20230425","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 15:06:43","com_policy_med_mapper","2022/10/19 15:06:43","com_policy_med_mapper" +"04","神経・筋疾患(筋ジスを含む)","20230425","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 15:06:43","com_policy_med_mapper","2022/10/19 15:06:43","com_policy_med_mapper" +"05","成育","20230425","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 15:06:43","com_policy_med_mapper","2022/10/19 15:06:43","com_policy_med_mapper" +"06","呼吸器疾患(結核を含む)","20230425","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 15:06:43","com_policy_med_mapper","2022/10/19 15:06:43","com_policy_med_mapper" +"99","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかき","20230425","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 15:06:43","com_policy_med_mapper","2022/10/19 15:06:43","com_policy_med_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/expect_com_policy_med_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/expect_com_policy_med_update.csv new file mode 100644 index 00000000..284e516f --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/expect_com_policy_med_update.csv @@ -0,0 +1,8 @@ +"policy_med_cd","field_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","がん","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2017/10/19 15:06:43","clsComPolicyMed" +"02","循環器病","20171019","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2023/04/19 15:12:57","com_policy_med_mapper" +"03","精神疾患","20171019","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2023/04/19 15:12:57","com_policy_med_mapper" +"04","神経・筋疾患(筋ジスを含む)","20171019","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2023/04/19 15:12:57","com_policy_med_mapper" +"05","呼吸器疾患(結核を含む)","20171019","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2023/04/19 15:12:57","com_policy_med_mapper" +"06","成育","20171019","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2023/04/19 15:12:57","com_policy_med_mapper" +"99","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかき","20171019","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:06:43","clsComPolicyMed","2023/04/19 15:12:57","com_policy_med_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/test_com_policy_med_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/test_com_policy_med_mapper.py new file mode 100644 index 00000000..e0729d17 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_policy_med/test_com_policy_med_mapper.py @@ -0,0 +1,197 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_policy_med_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComPolicyMedpMapper: + """ レイアウト区分028: COM_政策医療 """ + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """ テスト実行前後処理 """ + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_政策医療テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_policy_med_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_policy_med', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_policy_med_mapper.ComPolicyMedMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_policy_med_mapper.ComPolicyMedMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_policy_med_insert.csv')) + primary_keys = [f"'{primary_key['policy_med_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_policy_med WHERE policy_med_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_政策医療テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_policy_med_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_policy_med', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_policy_med_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_policy_med', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_policy_med_mapper.ComPolicyMedMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_policy_med_mapper.ComPolicyMedMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_policy_med_update.csv')) + primary_keys = [f"'{primary_key['policy_med_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_policy_med WHERE policy_med_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_政策医療テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_policy_med_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_policy_med', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_policy_med_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_policy_med', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_policy_med_mapper.ComPolicyMedMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_policy_med_mapper.ComPolicyMedMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_policy_med_delete.csv')) + primary_keys = [f"'{primary_key['policy_med_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_policy_med WHERE policy_med_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/com_prefc_med_base_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/com_prefc_med_base_delete.csv new file mode 100644 index 00000000..fc160243 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/com_prefc_med_base_delete.csv @@ -0,0 +1,3 @@ +"132","00","9900194","","B","1","20170406","20170408","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"132","00","9901649","","B","1","20170406","20170408","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"132","00","9929798","","B","1","20170406","20170408","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/com_prefc_med_base_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/com_prefc_med_base_insert.csv new file mode 100644 index 00000000..81dd90b1 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/com_prefc_med_base_insert.csv @@ -0,0 +1,6 @@ +"132","00","9900146","","A","2","20141113","20141114","20140624","","1","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20130401","20140331","49.8","20130401","20140331","","","","","","","","","","","","","","","","","","","","39.3","","","","","","","","20130401","20140331" +"132","00","9900194","","A","2","20141113","20141114","20121101","http://www.hospital.misawa.aomori.jp/","1","1","1","0","20100401","20110331","1","1","1","1","1","1","1","1","1","1","1","1","1","1","3","205.4","","","","","","","","20100401","20110331","468.1","20100401","20110331","8.3","20100401","20110331","","","","","","","","","","","","","","","","","18.7","","","","","","0.0","","20100401","20110331" +"132","00","9901649","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"132","00","9901679","","A","2","20141113","20141114","20140627","http://www.kai-sei-kai.com/","1","","","","","","1","1","1","1","1","","1","","","","","1","","1","2","58.5","229.2","102.3","131.3","","","","","20130401","20140331","96.0","20130401","20140331","","","","","","","","","","","","","","","","","","","","20.4","641.3","533.2","749.2","","","","","20130401","20140331" +"132","00","9929798","","A","2","20141113","20141114","20130611","http://www.urakawa.jrc.or.jp/","1","","","","","","1","1","1","1","1","","1","","","","","","","1","1","114.6","46.6","","","39.9","0.0","0.0","","20120401","20130331","481.6","20120401","20130331","16.2","20120401","20130331","","","","","","","","","","","","","","","","","15.6","555.3","","","169.4","0.0","0.0","","20120401","20130331" +"132","99","9999999","99","A","2","20141113","20141114","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/com_prefc_med_base_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/com_prefc_med_base_update.csv new file mode 100644 index 00000000..7c7c790a --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/com_prefc_med_base_update.csv @@ -0,0 +1,6 @@ +"132","00","9900146","","B","","20141113","20141114","@","http://yahoo.co.jp/","@","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20171009","20171009","55.5","","","","","","","","","","","","","","","","","","","","","","","55.5","66.6","","","","","","","" +"132","00","9900194","","B","","20141113","20141114","20121101","http://www.hospital.misawa.aomori.jp/","","","@","","","","","","","","@","","@","@","","","","","","","","@","","","","","","","","","","@","","","@","","","111","112","113","114","115","116","117","118","20170101","20171010","","","","","","","@","","","","","","","","","" +"132","00","9901679","","B","","20141113","20141114","20171009","","","","","","","","@","@","@","@","","","","","1","2","3","5","4","@","","@","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","@","","","","","","","","","" +"132","99","9999999","99","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" +"132","99","9999999","00","A","2","20141113","20141114","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@" +"132","99","9999999","11","A","2","20141113","20141114","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/db_com_prefc_med_base_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/db_com_prefc_med_base_before_delete.csv new file mode 100644 index 00000000..71ec28ac --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/db_com_prefc_med_base_before_delete.csv @@ -0,0 +1,6 @@ +"dcf_dsf_inst_cd","info_date","home_page","hppre_flg","expre_flg","trial_flg","trial_contcount","trialwhet_from","trialwhet_to","equipment_flg","cos_disease_flg","cos_surgery","specialclinic_flg","establishment_flg","critical_flg","cop_system","sys_exists_flg","sys_inspection","sys_prescription","sys_reserv","icduse_flg","echart_flg","fulltime_flg","fulltime_count","ge_patient_avg","mt_patient_avg","mc_patient_avg","ca_patient_avg","pys_patient_avg","tub_patient_avg","inf_patient_avg","patient_avg_sum","patient_avg_from","patient_avg_to","cl_patient_avg","cl_patient_avg_from","cl_patient_avg_to","hm_patient_avg","hm_patient_avg_from","hm_patient_avg_to","ge_patient_ex","mt_patient_ex","mc_patient_ex","ca_patient_ex","pys_patient_ex","tub_patient_ex","inf_patient_ex","patient_ex_sum","patient_ex_from","patient_ex_to","cl_patient_ex","cl_patient_ex_from","cl_patient_ex_to","hm_patient_ex","hm_patient_ex_from","hm_patient_ex_to","ge_stay_avg","mt_stay_avg","mc_stay_avg","ca_stay_avg","pys_stay_avg","tub_stay_avg","inf_stay_avg","stay_avg_sum","stay_avg_from","stay_avg_to","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","NULL","http://yahoo.co.jp/","NULL","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20171009","20171009","55.5","","","","","","","","","","","","","","","","","","","","","","39.3","","","","","","","","20130401","20140331","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/11 21:20:37","clsComPrefcMedBase" +"009900194","20121101","http://www.hospital.misawa.aomori.jp/","1","1","NULL","NULL","NULL","NULL","1","1","1","1","NULL","1","NULL","NULL","NULL","NULL","NULL","1","1","1","3","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","111","112","113","114","115","116","117","118","20170101","20171010","","","","","","","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/11 21:20:37","clsComPrefcMedBase" +"009901649","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase" +"009901679","20171009","http://www.kai-sei-kai.com/","1","","","","","","NULL","NULL","NULL","NULL","1","","1","","","","","5","4","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","96.0","20130401","20140331","","","","","","","","","","","","","","","","","","","","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/11 21:20:37","clsComPrefcMedBase" +"009929798","20130611","http://www.urakawa.jrc.or.jp/","1","","","","","","1","1","1","1","1","","1","","","","","","","1","1","114.6","46.6","","","39.9","0.0","0.0","","20120401","20130331","481.6","20120401","20130331","16.2","20120401","20130331","","","","","","","","","","","","","","","","","15.6","555.3","","","169.4","0.0","0.0","","20120401","20130331","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/db_com_prefc_med_base_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/db_com_prefc_med_base_before_update.csv new file mode 100644 index 00000000..36e197b0 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/db_com_prefc_med_base_before_update.csv @@ -0,0 +1,9 @@ +"dcf_dsf_inst_cd","info_date","home_page","hppre_flg","expre_flg","trial_flg","trial_contcount","trialwhet_from","trialwhet_to","equipment_flg","cos_disease_flg","cos_surgery","specialclinic_flg","establishment_flg","critical_flg","cop_system","sys_exists_flg","sys_inspection","sys_prescription","sys_reserv","icduse_flg","echart_flg","fulltime_flg","fulltime_count","ge_patient_avg","mt_patient_avg","mc_patient_avg","ca_patient_avg","pys_patient_avg","tub_patient_avg","inf_patient_avg","patient_avg_sum","patient_avg_from","patient_avg_to","cl_patient_avg","cl_patient_avg_from","cl_patient_avg_to","hm_patient_avg","hm_patient_avg_from","hm_patient_avg_to","ge_patient_ex","mt_patient_ex","mc_patient_ex","ca_patient_ex","pys_patient_ex","tub_patient_ex","inf_patient_ex","patient_ex_sum","patient_ex_from","patient_ex_to","cl_patient_ex","cl_patient_ex_from","cl_patient_ex_to","hm_patient_ex","hm_patient_ex_from","hm_patient_ex_to","ge_stay_avg","mt_stay_avg","mc_stay_avg","ca_stay_avg","pys_stay_avg","tub_stay_avg","inf_stay_avg","stay_avg_sum","stay_avg_from","stay_avg_to","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","20140624","","1","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20130401","20140331","49.8","20130401","20140331","","","","","","","","","","","","","","","","","","","","39.3","","","","","","","","20130401","20140331","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase" +"009900194","20121101","http://www.hospital.misawa.aomori.jp/","1","1","1","0","20100401","20110331","1","1","1","1","1","1","1","1","1","1","1","1","1","1","3","205.4","","","","","","","","20100401","20110331","468.1","20100401","20110331","8.3","20100401","20110331","","","","","","","","","","","","","","","","","18.7","","","","","","0.0","","20100401","20110331","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase" +"009901649","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase" +"009901679","20140627","http://www.kai-sei-kai.com/","1","","","","","","1","1","1","1","1","","1","","","","","1","","1","2","58.5","229.2","102.3","131.3","","","","","20130401","20140331","96.0","20130401","20140331","","","","","","","","","","","","","","","","","","","","20.4","641.3","533.2","749.2","","","","","20130401","20140331","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase" +"009929798","20130611","http://www.urakawa.jrc.or.jp/","1","","","","","","1","1","1","1","1","","1","","","","","","","1","1","114.6","46.6","","","39.9","0.0","0.0","","20120401","20130331","481.6","20120401","20130331","16.2","20120401","20130331","","","","","","","","","","","","","","","","","15.6","555.3","","","169.4","0.0","0.0","","20120401","20130331","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase" +"99999999900","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","20130331","NULL","NULL","NULL","NULL","NULL","2000/05/09 20:39:15","aaaaa","2000/05/09 20:39:15","aaaaa" +"99999999999","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","20130331","NULL","NULL","NULL","NULL","NULL","2000/05/09 20:39:15","aaaaa","2000/05/09 20:39:15","aaaaa" +"99999999911","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/expect_com_prefc_med_base_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/expect_com_prefc_med_base_delete.csv new file mode 100644 index 00000000..8c2f6318 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/expect_com_prefc_med_base_delete.csv @@ -0,0 +1,3 @@ +"dcf_dsf_inst_cd","info_date","home_page","hppre_flg","expre_flg","trial_flg","trial_contcount","trialwhet_from","trialwhet_to","equipment_flg","cos_disease_flg","cos_surgery","specialclinic_flg","establishment_flg","critical_flg","cop_system","sys_exists_flg","sys_inspection","sys_prescription","sys_reserv","icduse_flg","echart_flg","fulltime_flg","fulltime_count","ge_patient_avg","mt_patient_avg","mc_patient_avg","ca_patient_avg","pys_patient_avg","tub_patient_avg","inf_patient_avg","patient_avg_sum","patient_avg_from","patient_avg_to","cl_patient_avg","cl_patient_avg_from","cl_patient_avg_to","hm_patient_avg","hm_patient_avg_from","hm_patient_avg_to","ge_patient_ex","mt_patient_ex","mc_patient_ex","ca_patient_ex","pys_patient_ex","tub_patient_ex","inf_patient_ex","patient_ex_sum","patient_ex_from","patient_ex_to","cl_patient_ex","cl_patient_ex_from","cl_patient_ex_to","hm_patient_ex","hm_patient_ex_from","hm_patient_ex_to","ge_stay_avg","mt_stay_avg","mc_stay_avg","ca_stay_avg","pys_stay_avg","tub_stay_avg","inf_stay_avg","stay_avg_sum","stay_avg_from","stay_avg_to","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","NULL","http://yahoo.co.jp/","NULL","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20171009","20171009","55.5","","","","","","","","","","","","","","","","","","","","","","39.3","","","","","","","","20130401","20140331","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/11 21:20:37","clsComPrefcMedBase" +"009901679","20171009","http://www.kai-sei-kai.com/","1","","","","","","NULL","NULL","NULL","NULL","1","","1","","","","","5","4","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","96.0","20130401","20140331","","","","","","","","","","","","","","","","","","","","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/11 21:20:37","clsComPrefcMedBase" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/expect_com_prefc_med_base_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/expect_com_prefc_med_base_insert.csv new file mode 100644 index 00000000..306d8b30 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/expect_com_prefc_med_base_insert.csv @@ -0,0 +1,7 @@ +"dcf_dsf_inst_cd","info_date","home_page","hppre_flg","expre_flg","trial_flg","trial_contcount","trialwhet_from","trialwhet_to","equipment_flg","cos_disease_flg","cos_surgery","specialclinic_flg","establishment_flg","critical_flg","cop_system","sys_exists_flg","sys_inspection","sys_prescription","sys_reserv","icduse_flg","echart_flg","fulltime_flg","fulltime_count","ge_patient_avg","mt_patient_avg","mc_patient_avg","ca_patient_avg","pys_patient_avg","tub_patient_avg","inf_patient_avg","patient_avg_sum","patient_avg_from","patient_avg_to","cl_patient_avg","cl_patient_avg_from","cl_patient_avg_to","hm_patient_avg","hm_patient_avg_from","hm_patient_avg_to","ge_patient_ex","mt_patient_ex","mc_patient_ex","ca_patient_ex","pys_patient_ex","tub_patient_ex","inf_patient_ex","patient_ex_sum","patient_ex_from","patient_ex_to","cl_patient_ex","cl_patient_ex_from","cl_patient_ex_to","hm_patient_ex","hm_patient_ex_from","hm_patient_ex_to","ge_stay_avg","mt_stay_avg","mc_stay_avg","ca_stay_avg","pys_stay_avg","tub_stay_avg","inf_stay_avg","stay_avg_sum","stay_avg_from","stay_avg_to","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","20140624","","1","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20130401","20140331","49.8","20130401","20140331","","","","","","","","","","","","","","","","","","","","39.3","","","","","","","","20130401","20140331","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/09 20:39:15","com_prefc_med_base_mapper","2023/05/09 20:39:15","com_prefc_med_base_mapper" +"009900194","20121101","http://www.hospital.misawa.aomori.jp/","1","1","1","0","20100401","20110331","1","1","1","1","1","1","1","1","1","1","1","1","1","1","3","205.4","","","","","","","","20100401","20110331","468.1","20100401","20110331","8.3","20100401","20110331","","","","","","","","","","","","","","","","","18.7","","","","","","0.0","","20100401","20110331","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/09 20:39:15","com_prefc_med_base_mapper","2023/05/09 20:39:15","com_prefc_med_base_mapper" +"009901649","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/09 20:39:15","com_prefc_med_base_mapper","2023/05/09 20:39:15","com_prefc_med_base_mapper" +"009901679","20140627","http://www.kai-sei-kai.com/","1","","","","","","1","1","1","1","1","","1","","","","","1","","1","2","58.5","229.2","102.3","131.3","","","","","20130401","20140331","96.0","20130401","20140331","","","","","","","","","","","","","","","","","","","","20.4","641.3","533.2","749.2","","","","","20130401","20140331","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/09 20:39:15","com_prefc_med_base_mapper","2023/05/09 20:39:15","com_prefc_med_base_mapper" +"009929798","20130611","http://www.urakawa.jrc.or.jp/","1","","","","","","1","1","1","1","1","","1","","","","","","","1","1","114.6","46.6","","","39.9","0.0","0.0","","20120401","20130331","481.6","20120401","20130331","16.2","20120401","20130331","","","","","","","","","","","","","","","","","15.6","555.3","","","169.4","0.0","0.0","","20120401","20130331","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/09 20:39:15","com_prefc_med_base_mapper","2023/05/09 20:39:15","com_prefc_med_base_mapper" +"99999999999","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","20130331","NULL","NULL","NULL","NULL","NULL","2023/05/09 20:39:15","com_prefc_med_base_mapper","2023/05/09 20:39:15","com_prefc_med_base_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/expect_com_prefc_med_base_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/expect_com_prefc_med_base_update.csv new file mode 100644 index 00000000..032b6891 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/expect_com_prefc_med_base_update.csv @@ -0,0 +1,9 @@ +"dcf_dsf_inst_cd","info_date","home_page","hppre_flg","expre_flg","trial_flg","trial_contcount","trialwhet_from","trialwhet_to","equipment_flg","cos_disease_flg","cos_surgery","specialclinic_flg","establishment_flg","critical_flg","cop_system","sys_exists_flg","sys_inspection","sys_prescription","sys_reserv","icduse_flg","echart_flg","fulltime_flg","fulltime_count","ge_patient_avg","mt_patient_avg","mc_patient_avg","ca_patient_avg","pys_patient_avg","tub_patient_avg","inf_patient_avg","patient_avg_sum","patient_avg_from","patient_avg_to","cl_patient_avg","cl_patient_avg_from","cl_patient_avg_to","hm_patient_avg","hm_patient_avg_from","hm_patient_avg_to","ge_patient_ex","mt_patient_ex","mc_patient_ex","ca_patient_ex","pys_patient_ex","tub_patient_ex","inf_patient_ex","patient_ex_sum","patient_ex_from","patient_ex_to","cl_patient_ex","cl_patient_ex_from","cl_patient_ex_to","hm_patient_ex","hm_patient_ex_from","hm_patient_ex_to","ge_stay_avg","mt_stay_avg","mc_stay_avg","ca_stay_avg","pys_stay_avg","tub_stay_avg","inf_stay_avg","stay_avg_sum","stay_avg_from","stay_avg_to","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","NULL","http://yahoo.co.jp/","NULL","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20171009","20171009","55.5","","","","","","","","","","","","","","","","","","","","","","39.3","","","","","","","","20130401","20140331","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2023/05/09 11:49:28","com_prefc_med_base_mapper" +"009900194","20121101","http://www.hospital.misawa.aomori.jp/","1","1","NULL","NULL","NULL","NULL","1","1","1","1","NULL","1","NULL","NULL","NULL","NULL","NULL","1","1","1","3","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","111","112","113","114","115","116","117","118","20170101","20171010","","","","","","","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2023/05/09 14:52:00","com_prefc_med_base_mapper" +"009901649","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase" +"009901679","20171009","http://www.kai-sei-kai.com/","1","","","","","","NULL","NULL","NULL","NULL","1","","1","","","","","5","4","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","96.0","20130401","20140331","","","","","","","","","","","","","","","","","","","","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2023/05/09 11:49:28","com_prefc_med_base_mapper" +"009929798","20130611","http://www.urakawa.jrc.or.jp/","1","","","","","","1","1","1","1","1","","1","","","","","","","1","1","114.6","46.6","","","39.9","0.0","0.0","","20120401","20130331","481.6","20120401","20130331","16.2","20120401","20130331","","","","","","","","","","","","","","","","","15.6","555.3","","","169.4","0.0","0.0","","20120401","20130331","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase" +"99999999900","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20130331","20230510","NULL","NULL","NULL","NULL","2000/05/09 20:39:15","aaaaa","2000/05/09 20:39:15","com_prefc_med_base_mapper" +"99999999911","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2000/05/09 20:39:15","com_prefc_med_base_mapper" +"99999999999","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","20130331","NULL","NULL","NULL","NULL","NULL","2000/05/09 20:39:15","aaaaa","2000/05/09 20:39:15","aaaaa" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/test_com_prefc_med_base_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/test_com_prefc_med_base_mapper.py new file mode 100644 index 00000000..ab6fca06 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_base/test_com_prefc_med_base_mapper.py @@ -0,0 +1,196 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_prefc_med_base_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComPrefcMedBaseMapper: + """レイアウト区分132: COM_都道府県医療機能情報(基本)""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_都道府県医療機能情報(基本)テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_base_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_base', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_base_mapper.ComPrefcMedBaseMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_base_mapper.ComPrefcMedBaseMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_base_insert.csv')) + primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_prefc_med_base WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ['regist_ymd', 'sys_regist_date', 'sys_update_date']: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_都道府県医療機能情報(基本)テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_base_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_base', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_base_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_prefc_med_base', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_base_mapper.ComPrefcMedBaseMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_base_mapper.ComPrefcMedBaseMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_base_update.csv')) + primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_prefc_med_base WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_都道府県医療機能情報(基本)テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_base_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_base', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_base_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_prefc_med_base', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_base_mapper.ComPrefcMedBaseMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_base_mapper.ComPrefcMedBaseMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_base_delete.csv')) + primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_prefc_med_base WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/com_prefc_med_dis_treat_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/com_prefc_med_dis_treat_delete.csv new file mode 100644 index 00000000..7c1bb46d --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/com_prefc_med_dis_treat_delete.csv @@ -0,0 +1,4 @@ +"134","00","9901679","","B","2201","1","20141205","20141213","" +"134","00","9901679","","B","2203","1","20141205","20141213","" +"134","00","9901679","","B","2205","1","20141205","20141213","" +"134","00","9901679","","B","2206","1","20141205","20141213","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/com_prefc_med_dis_treat_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/com_prefc_med_dis_treat_insert.csv new file mode 100644 index 00000000..037c46c2 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/com_prefc_med_dis_treat_insert.csv @@ -0,0 +1,8 @@ +"134","00","9901649","","A","1001","2","20141113","20141114","" +"134","00","9901679","","A","2201","2","20141113","20141114","" +"134","00","9901679","","A","2203","2","20141113","20141114","2789" +"134","00","9901679","","A","2205","2","20141113","20141114","2033" +"134","00","9901679","","A","2206","2","20141113","20141114","0" +"134","00","9929798","","A","0902","2","20141113","20141114","" +"134","00","9929798","","A","0915","2","20141113","20141114","" +"134","99","9999999","99","A","1234","2","20141113","20141114","123456" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/com_prefc_med_dis_treat_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/com_prefc_med_dis_treat_update.csv new file mode 100644 index 00000000..4def216a --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/com_prefc_med_dis_treat_update.csv @@ -0,0 +1,7 @@ +"134","00","9901649","","B","1001","2","20141113","20141114","0" +"134","00","9901679","","B","2203","2","20141113","20141114","@" +"134","00","9901679","","B","2205","2","20141113","20141114","1987" +"134","00","9901679","","B","2206","2","20141113","20141114","@" +"134","00","9929798","","B","0902","2","20141113","20141114","0" +"134","00","9929798","","B","0915","2","20141113","20141114","543" +"134","99","9999999","99","B","1234","2","20141113","20141114","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/db_com_prefc_med_dis_treat_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/db_com_prefc_med_dis_treat_before_delete.csv new file mode 100644 index 00000000..ee268b92 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/db_com_prefc_med_dis_treat_before_delete.csv @@ -0,0 +1,8 @@ +"dcf_dsf_inst_cd","treatment_code","pre_num","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","1001","0","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat" +"009901679","2201","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat" +"009901679","2203","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat" +"009901679","2205","1987","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat" +"009901679","2206","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat" +"009929798","0902","0","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat" +"009929798","0915","543","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/db_com_prefc_med_dis_treat_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/db_com_prefc_med_dis_treat_before_update.csv new file mode 100644 index 00000000..aad1b86e --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/db_com_prefc_med_dis_treat_before_update.csv @@ -0,0 +1,9 @@ +"dcf_dsf_inst_cd","treatment_code","pre_num","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","1001","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat" +"009901679","2201","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat" +"009901679","2203","2789","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat" +"009901679","2205","2033","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat" +"009901679","2206","0","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat" +"009929798","0902","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat" +"009929798","0915","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat" +"99999999999","1234","1111","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/expect_com_prefc_med_dis_treat_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/expect_com_prefc_med_dis_treat_delete.csv new file mode 100644 index 00000000..d1d53673 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/expect_com_prefc_med_dis_treat_delete.csv @@ -0,0 +1,4 @@ +"dcf_dsf_inst_cd","treatment_code","pre_num","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","1001","0","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat" +"009929798","0902","0","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat" +"009929798","0915","543","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/expect_com_prefc_med_dis_treat_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/expect_com_prefc_med_dis_treat_insert.csv new file mode 100644 index 00000000..819aa6dc --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/expect_com_prefc_med_dis_treat_insert.csv @@ -0,0 +1,10 @@ +"dcf_dsf_inst_cd","treatment_code","pre_num","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","1001","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper" +"009901679","2201","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper" +"009901679","2203","2789","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper" +"009901679","2205","2033","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper" +"009901679","2206","0","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper" +"009929798","0902","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper" +"009929798","0915","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper" +"009929798","0915","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper" +"99999999999","1234","123456","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/expect_com_prefc_med_dis_treat_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/expect_com_prefc_med_dis_treat_update.csv new file mode 100644 index 00000000..baecab69 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/expect_com_prefc_med_dis_treat_update.csv @@ -0,0 +1,9 @@ +"dcf_dsf_inst_cd","treatment_code","pre_num","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","1001","0","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2023/05/11 08:49:28","com_prefc_med_dis_treat_mapper" +"009901679","2201","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat" +"009901679","2203","NULL","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2023/05/11 08:49:28","com_prefc_med_dis_treat_mapper" +"009901679","2205","1987","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2023/05/11 08:49:28","com_prefc_med_dis_treat_mapper" +"009901679","2206","NULL","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2023/05/11 08:49:28","com_prefc_med_dis_treat_mapper" +"009929798","0902","0","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2023/05/11 08:49:28","com_prefc_med_dis_treat_mapper" +"009929798","0915","543","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2023/05/11 08:49:28","com_prefc_med_dis_treat_mapper" +"99999999999","1234","1111","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/test_com_prefc_med_dis_treat_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/test_com_prefc_med_dis_treat_mapper.py new file mode 100644 index 00000000..a0597df9 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_dis_treat/test_com_prefc_med_dis_treat_mapper.py @@ -0,0 +1,251 @@ +import os.path as path +from datetime import datetime +from decimal import Decimal + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_prefc_med_dis_treat_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComPrefcMedDisTreatMapper: + """レイアウト区分134: COM_都道府県医療機能情報(疾患治療)""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_都道府県医療機能情報(疾患治療)テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_dis_treat_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_dis_treat', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_dis_treat_mapper.ComPrefcMedDisTreatMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_dis_treat_mapper.ComPrefcMedDisTreatMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_dis_treat_insert.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_treatment_code = [{'treatment_code': columns['treatment_code']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_prefc_med_dis_treat + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + treatment_code = :treatment_code + """ + for param_dcf_dsf_inst_cd, param_treatment_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_treatment_code): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_dsf_inst_cd, **param_treatment_code}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['pre_num', 'regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if actual_col_name == 'pre_num': + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_都道府県医療機能情報(疾患治療)テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_dis_treat_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_dis_treat', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_dis_treat_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_prefc_med_dis_treat', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_dis_treat_mapper.ComPrefcMedDisTreatMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_dis_treat_mapper.ComPrefcMedDisTreatMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_dis_treat_update.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_treatment_code = [{'treatment_code': columns['treatment_code']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_prefc_med_dis_treat + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + treatment_code = :treatment_code + """ + for param_dcf_dsf_inst_cd, param_treatment_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_treatment_code): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_dsf_inst_cd, **param_treatment_code}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['pre_num', 'regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name == 'pre_num': + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_都道府県医療機能情報(疾患治療)テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_dis_treat_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_dis_treat', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_dis_treat_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_prefc_med_dis_treat', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_dis_treat_mapper.ComPrefcMedDisTreatMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_dis_treat_mapper.ComPrefcMedDisTreatMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_dis_treat_delete.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_treatment_code = [{'treatment_code': columns['treatment_code']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_prefc_med_dis_treat + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + treatment_code = :treatment_code + """ + for param_dcf_dsf_inst_cd, param_treatment_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_treatment_code): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_dsf_inst_cd, **param_treatment_code}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['pre_num', 'regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name == 'pre_num': + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/com_prefc_med_equpment_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/com_prefc_med_equpment_delete.csv new file mode 100644 index 00000000..826055ac --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/com_prefc_med_equpment_delete.csv @@ -0,0 +1,3 @@ +"133","00","9900194","","B","008","1","20141211","20141213","" +"133","00","9901649","","B","009","1","20141211","20141213","" +"133","00","9901679","","B","015","1","20141211","20141213","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/com_prefc_med_equpment_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/com_prefc_med_equpment_insert.csv new file mode 100644 index 00000000..b5882b97 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/com_prefc_med_equpment_insert.csv @@ -0,0 +1,6 @@ +"133","00","9900146","","A","012","2","20141113","20141114","0" +"133","00","9900194","","A","008","2","20141113","20141114","32" +"133","00","9901649","","A","009","2","20141113","20141114","3" +"133","00","9901679","","A","015","2","20141113","20141114","" +"133","00","9904439","","A","006","2","20141113","20141114","" +"133","00","9929798","","A","010","2","20141113","20141114","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/com_prefc_med_equpment_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/com_prefc_med_equpment_update.csv new file mode 100644 index 00000000..24111866 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/com_prefc_med_equpment_update.csv @@ -0,0 +1,7 @@ +"133","99","9999999","99","B","111","2","20141113","20141114","" +"133","00","9900146","","B","012","2","20141113","20141114","@" +"133","00","9900194","","B","008","2","20141113","20141114","@" +"133","00","9901649","","B","009","2","20141113","20141114","6" +"133","00","9901679","","B","015","2","20141113","20141114","@" +"133","00","9904439","","B","006","2","20141113","20141114","10" +"133","00","9929798","","B","010","2","20141113","20141114","9" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/db_com_prefc_med_equpment_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/db_com_prefc_med_equpment_before_delete.csv new file mode 100644 index 00000000..94330b4f --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/db_com_prefc_med_equpment_before_delete.csv @@ -0,0 +1,7 @@ +"dcf_dsf_inst_cd","equipment_code","bednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","012","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment" +"009900194","008","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment" +"009901649","009","6","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment" +"009901679","015","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment" +"009904439","006","10","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment" +"009929798","010","9","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/db_com_prefc_med_equpment_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/db_com_prefc_med_equpment_before_update.csv new file mode 100644 index 00000000..c75a3f89 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/db_com_prefc_med_equpment_before_update.csv @@ -0,0 +1,8 @@ +"dcf_dsf_inst_cd","equipment_code","bednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","012","0","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment" +"009900194","008","32","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment" +"009901649","009","3","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment" +"009901679","015","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment" +"009904439","006","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment" +"009929798","010","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment" +"99999999999","111","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/expect_com_prefc_med_equpment_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/expect_com_prefc_med_equpment_delete.csv new file mode 100644 index 00000000..32074199 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/expect_com_prefc_med_equpment_delete.csv @@ -0,0 +1,4 @@ +"dcf_dsf_inst_cd","equipment_code","bednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","012","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment" +"009904439","006","10","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment" +"009929798","010","9","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/expect_com_prefc_med_equpment_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/expect_com_prefc_med_equpment_insert.csv new file mode 100644 index 00000000..caad9918 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/expect_com_prefc_med_equpment_insert.csv @@ -0,0 +1,7 @@ +"dcf_dsf_inst_cd","equipment_code","bednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","012","0","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 10:57:12","com_prefc_med_equpment_mapper","2023/05/10 10:57:12","com_prefc_med_equpment_mapper" +"009900194","008","32","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 10:57:12","com_prefc_med_equpment_mapper","2023/05/10 10:57:12","com_prefc_med_equpment_mapper" +"009901649","009","3","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 10:57:12","com_prefc_med_equpment_mapper","2023/05/10 10:57:12","com_prefc_med_equpment_mapper" +"009901679","015","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 10:57:12","com_prefc_med_equpment_mapper","2023/05/10 10:57:12","com_prefc_med_equpment_mapper" +"009904439","006","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 10:57:12","com_prefc_med_equpment_mapper","2023/05/10 10:57:12","com_prefc_med_equpment_mapper" +"009929798","010","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 10:57:12","com_prefc_med_equpment_mapper","2023/05/10 10:57:12","com_prefc_med_equpment_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/expect_com_prefc_med_equpment_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/expect_com_prefc_med_equpment_update.csv new file mode 100644 index 00000000..88bc0809 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/expect_com_prefc_med_equpment_update.csv @@ -0,0 +1,8 @@ +"dcf_dsf_inst_cd","equipment_code","bednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","012","NULL","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2023/05/10 11:49:28","com_prefc_med_equpment_mapper" +"009900194","008","NULL","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2023/05/10 11:49:28","com_prefc_med_equpment_mapper" +"009901649","009","6","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2023/05/10 11:49:28","com_prefc_med_equpment_mapper" +"009901679","015","NULL","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2023/05/10 11:49:28","com_prefc_med_equpment_mapper" +"009904439","006","10","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2023/05/10 11:49:28","com_prefc_med_equpment_mapper" +"009929798","010","9","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2023/05/10 11:49:28","com_prefc_med_equpment_mapper" +"99999999999","111","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/test_com_prefc_med_equpment_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/test_com_prefc_med_equpment_mapper.py new file mode 100644 index 00000000..78d33244 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_equpment/test_com_prefc_med_equpment_mapper.py @@ -0,0 +1,250 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_prefc_med_equpment_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComPrefcMedEqupmentMapper: + """レイアウト区分133: COM_都道府県医療機能情報(施設設備)""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_都道府県医療機能情報(施設設備)テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_equpment_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_equpment', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_equpment_mapper.ComPrefcMedEqupmentMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_equpment_mapper.ComPrefcMedEqupmentMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_equpment_insert.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_equipment_code = [{'equipment_code': columns['equipment_code']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_prefc_med_equpment + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + equipment_code = :equipment_code + """ + for param_dcf_dsf_inst_cd, param_equipment_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_equipment_code): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_dsf_inst_cd, **param_equipment_code}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['bednum', 'regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if actual_col_name == 'bednum': + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_都道府県医療機能情報(施設設備)テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_equpment_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_equpment', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_equpment_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_prefc_med_equpment', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_equpment_mapper.ComPrefcMedEqupmentMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_equpment_mapper.ComPrefcMedEqupmentMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_equpment_update.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_equipment_code = [{'equipment_code': columns['equipment_code']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_prefc_med_equpment + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + equipment_code = :equipment_code + """ + for param_dcf_dsf_inst_cd, param_equipment_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_equipment_code): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_dsf_inst_cd, **param_equipment_code}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['bednum', 'regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name == 'bednum': + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_都道府県医療機能情報(施設設備)テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_equpment_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_equpment', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_equpment_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_prefc_med_equpment', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_equpment_mapper.ComPrefcMedEqupmentMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_equpment_mapper.ComPrefcMedEqupmentMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_equpment_delete.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_equipment_code = [{'equipment_code': columns['equipment_code']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_prefc_med_equpment + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + equipment_code = :equipment_code + """ + for param_dcf_dsf_inst_cd, param_equipment_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_equipment_code): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_dsf_inst_cd, **param_equipment_code}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['bednum', 'regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name == 'bednum': + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/com_prefc_med_sojourn_ope_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/com_prefc_med_sojourn_ope_delete.csv new file mode 100644 index 00000000..0e25331e --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/com_prefc_med_sojourn_ope_delete.csv @@ -0,0 +1,3 @@ +"135","00","9901679","","B","101","1","20141210","20141213" +"135","00","9901679","","B","102","1","20141209","20141213" +"135","00","9901679","","B","111","1","20141208","20141213" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/com_prefc_med_sojourn_ope_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/com_prefc_med_sojourn_ope_insert.csv new file mode 100644 index 00000000..daf6f1f9 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/com_prefc_med_sojourn_ope_insert.csv @@ -0,0 +1,7 @@ +"135","00","9900146","","A","213","2","20141113","20141114" +"135","00","9900146","","A","214","2","20141113","20141114" +"135","00","9900146","","A","215","2","20141113","20141114" +"135","00","9901679","","A","101","2","20141113","20141114" +"135","00","9901679","","A","102","2","20141113","20141114" +"135","00","9929798","","A","110","2","20141113","20141114" +"135","00","9929798","","A","111","2","20141113","20141114" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/com_prefc_med_sojourn_ope_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/com_prefc_med_sojourn_ope_update.csv new file mode 100644 index 00000000..5c75d14c --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/com_prefc_med_sojourn_ope_update.csv @@ -0,0 +1,4 @@ +"135","00","9901679","","B","101","2","20141113","20141114" +"135","00","9901679","","B","111","2","20141113","20141114" +"135","00","9929798","","B","111","2","20141113","20141114" +"135","00","9929798","","B","211","2","20141113","20141114" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/db_com_prefc_med_sojourn_ope_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/db_com_prefc_med_sojourn_ope_before_delete.csv new file mode 100644 index 00000000..90f5e825 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/db_com_prefc_med_sojourn_ope_before_delete.csv @@ -0,0 +1,10 @@ +"dcf_dsf_inst_cd","cos_surgery_code","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","213","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009900146","214","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009900146","215","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009901679","101","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/11 21:20:37","clsPrefcMedSojournOp" +"009901679","102","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009901679","111","20171011","20171011","NULL","NULL","NULL","NULL","2017/10/11 11:49:28","clsPrefcMedSojournOp","2017/10/11 21:20:37","clsPrefcMedSojournOp" +"009929798","110","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009929798","111","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/11 21:20:37","clsPrefcMedSojournOp" +"009929798","211","20171011","20171011","NULL","NULL","NULL","NULL","2017/10/11 11:49:28","clsPrefcMedSojournOp","2017/10/11 21:20:37","clsPrefcMedSojournOp" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/db_com_prefc_med_sojourn_ope_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/db_com_prefc_med_sojourn_ope_before_update.csv new file mode 100644 index 00000000..72dda2ae --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/db_com_prefc_med_sojourn_ope_before_update.csv @@ -0,0 +1,8 @@ +"dcf_dsf_inst_cd","cos_surgery_code","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","213","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009900146","214","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009900146","215","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009901679","101","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009901679","102","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009929798","110","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009929798","111","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/expect_com_prefc_med_sojourn_ope_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/expect_com_prefc_med_sojourn_ope_delete.csv new file mode 100644 index 00000000..5adfd71e --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/expect_com_prefc_med_sojourn_ope_delete.csv @@ -0,0 +1,7 @@ +"dcf_dsf_inst_cd","cos_surgery_code","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","213","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009900146","214","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009900146","215","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009929798","110","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009929798","111","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/11 21:20:37","clsPrefcMedSojournOp" +"009929798","211","20171011","20171011","NULL","NULL","NULL","NULL","2017/10/11 11:49:28","clsPrefcMedSojournOp","2017/10/11 21:20:37","clsPrefcMedSojournOp" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/expect_com_prefc_med_sojourn_ope_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/expect_com_prefc_med_sojourn_ope_insert.csv new file mode 100644 index 00000000..995277be --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/expect_com_prefc_med_sojourn_ope_insert.csv @@ -0,0 +1,8 @@ +"dcf_dsf_inst_cd","cos_surgery_code","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","213","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper" +"009900146","214","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper" +"009900146","215","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper" +"009901679","101","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper" +"009901679","102","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper" +"009929798","110","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper" +"009929798","111","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/expect_com_prefc_med_sojourn_ope_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/expect_com_prefc_med_sojourn_ope_update.csv new file mode 100644 index 00000000..d4377bc4 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/expect_com_prefc_med_sojourn_ope_update.csv @@ -0,0 +1,10 @@ +"dcf_dsf_inst_cd","cos_surgery_code","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009900146","213","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009900146","214","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009900146","215","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009901679","101","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2023/05/11 10:49:28","com_prefc_med_sojourn_ope_mapper" +"009901679","102","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009901679","111","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:49:28","com_prefc_med_sojourn_ope_mapper","2023/05/11 10:49:28","com_prefc_med_sojourn_ope_mapper" +"009929798","110","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp" +"009929798","111","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2023/05/11 10:49:28","com_prefc_med_sojourn_ope_mapper" +"009929798","211","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:49:28","com_prefc_med_sojourn_ope_mapper","2023/05/11 10:49:28","com_prefc_med_sojourn_ope_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/test_com_prefc_med_sojourn_ope_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/test_com_prefc_med_sojourn_ope_mapper.py new file mode 100644 index 00000000..ad87a43a --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sojourn_ope/test_com_prefc_med_sojourn_ope_mapper.py @@ -0,0 +1,238 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_prefc_med_sojourn_ope_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComPrefcMedSojournOpeMapper: + """レイアウト区分135: COM_都道府県医療機能情報(短期滞在手術)""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_都道府県医療機能情報(短期滞在手術)テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_sojourn_ope_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_sojourn_ope', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_sojourn_ope_mapper.ComPrefcMedSojournOpeMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_sojourn_ope_mapper.ComPrefcMedSojournOpeMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_sojourn_ope_insert.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_cos_surgery_code = [{'cos_surgery_code': columns['cos_surgery_code']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_prefc_med_sojourn_ope + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + cos_surgery_code = :cos_surgery_code + """ + for param_dcf_dsf_inst_cd, param_cos_surgery_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_cos_surgery_code): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_dsf_inst_cd, **param_cos_surgery_code}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_都道府県医療機能情報(短期滞在手術)テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_sojourn_ope_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_sojourn_ope', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_sojourn_ope_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_prefc_med_sojourn_ope', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_sojourn_ope_mapper.ComPrefcMedSojournOpeMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_sojourn_ope_mapper.ComPrefcMedSojournOpeMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_sojourn_ope_update.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_cos_surgery_code = [{'cos_surgery_code': columns['cos_surgery_code']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_prefc_med_sojourn_ope + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + cos_surgery_code = :cos_surgery_code + """ + for param_dcf_dsf_inst_cd, param_cos_surgery_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_cos_surgery_code): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_dsf_inst_cd, **param_cos_surgery_code}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_都道府県医療機能情報(短期滞在手術)テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_sojourn_ope_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_sojourn_ope', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_sojourn_ope_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_prefc_med_sojourn_ope', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_sojourn_ope_mapper.ComPrefcMedSojournOpeMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_sojourn_ope_mapper.ComPrefcMedSojournOpeMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_sojourn_ope_delete.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_cos_surgery_code = [{'cos_surgery_code': columns['cos_surgery_code']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_prefc_med_sojourn_ope + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + cos_surgery_code = :cos_surgery_code + """ + for param_dcf_dsf_inst_cd, param_cos_surgery_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_cos_surgery_code): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_dsf_inst_cd, **param_cos_surgery_code}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/com_prefc_med_sp_outpat_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/com_prefc_med_sp_outpat_delete.csv new file mode 100644 index 00000000..4ce0fddb --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/com_prefc_med_sp_outpat_delete.csv @@ -0,0 +1 @@ +"136","00","9929798","","B","テスト ストーマ(人工肛門・人工膀胱)専門外来","1","20141211","20141213","","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/com_prefc_med_sp_outpat_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/com_prefc_med_sp_outpat_insert.csv new file mode 100644 index 00000000..ae233f9b --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/com_prefc_med_sp_outpat_insert.csv @@ -0,0 +1,7 @@ +"136","00","9901649","","A","テスト 小児 内分泌・腎臓外来","2","20141113","20141114","5","030" +"136","00","9904439","","A","テスト アルコール症専門外来","2","20141113","20141114","1","019" +"136","00","9904439","","A","テスト メンタルヘルス専門外来","2","20141113","20141114","7","019" +"136","00","9904439","","A","テスト 禁煙専門外来","2","20141113","20141114","2","001" +"136","00","9904439","","A","テスト 糖尿病外来","2","20141113","20141114","7","006" +"136","00","9929798","","A","テスト ストーマ(人工肛門・人工膀胱)専門外来","2","20141113","20141114","1","014" +"136","99","9999999","99","A","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","2","20141113","20141114","111","222" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/com_prefc_med_sp_outpat_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/com_prefc_med_sp_outpat_update.csv new file mode 100644 index 00000000..e157aee6 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/com_prefc_med_sp_outpat_update.csv @@ -0,0 +1,6 @@ +"136","00","9901649","","B","テスト 小児 内分泌・腎臓外来","2","20141113","20141114","5","019" +"136","00","9904439","","B","テスト 禁煙専門外来","2","20141113","20141114","2","@" +"136","00","9904439","","B","テスト 糖尿病外来","2","20141113","20141114","7","001" +"136","00","9929798","","B","テスト ストーマ(人工肛門・人工膀胱)専門外来","2","20141113","20141114","1","@" +"136","99","9999999","11","B","あいうえお","2","20141113","20141114","","999" +"136","99","9999999","99","B","あいうえお","2","20141113","20141114","","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/db_com_prefc_med_sp_outpat_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/db_com_prefc_med_sp_outpat_before_delete.csv new file mode 100644 index 00000000..6e0c952c --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/db_com_prefc_med_sp_outpat_before_delete.csv @@ -0,0 +1,7 @@ +"dcf_dsf_inst_cd","specialclinic_name","sort_key","sectsub_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","テスト 小児 内分泌・腎臓外来","5","019","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp" +"009904439","テスト アルコール症専門外来","1","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" +"009904439","テスト メンタルヘルス専門外来","7","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" +"009904439","テスト 禁煙専門外来","2","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp" +"009904439","テスト 糖尿病外来","7","001","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp" +"009929798","テスト ストーマ(人工肛門・人工膀胱)専門外来","1","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/db_com_prefc_med_sp_outpat_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/db_com_prefc_med_sp_outpat_before_update.csv new file mode 100644 index 00000000..3266575e --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/db_com_prefc_med_sp_outpat_before_update.csv @@ -0,0 +1,9 @@ +"dcf_dsf_inst_cd","specialclinic_name","sort_key","sectsub_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","テスト 小児 内分泌・腎臓外来","5","030","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" +"009904439","テスト アルコール症専門外来","1","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" +"009904439","テスト メンタルヘルス専門外来","7","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" +"009904439","テスト 禁煙専門外来","2","001","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" +"009904439","テスト 糖尿病外来","7","006","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" +"009929798","テスト ストーマ(人工肛門・人工膀胱)専門外来","1","014","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" +"99999999911","あいうえお","123","123","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" +"99999999999","あいうえお","123","123","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/expect_com_prefc_med_sp_outpat_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/expect_com_prefc_med_sp_outpat_delete.csv new file mode 100644 index 00000000..6184e1ce --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/expect_com_prefc_med_sp_outpat_delete.csv @@ -0,0 +1,6 @@ +"dcf_dsf_inst_cd","specialclinic_name","sort_key","sectsub_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","テスト 小児 内分泌・腎臓外来","5","019","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp" +"009904439","テスト アルコール症専門外来","1","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" +"009904439","テスト メンタルヘルス専門外来","7","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" +"009904439","テスト 禁煙専門外来","2","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp" +"009904439","テスト 糖尿病外来","7","001","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/expect_com_prefc_med_sp_outpat_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/expect_com_prefc_med_sp_outpat_insert.csv new file mode 100644 index 00000000..26abd18a --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/expect_com_prefc_med_sp_outpat_insert.csv @@ -0,0 +1,8 @@ +"dcf_dsf_inst_cd","specialclinic_name","sort_key","sectsub_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","テスト 小児 内分泌・腎臓外来","5","030","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper" +"009904439","テスト アルコール症専門外来","1","019","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper" +"009904439","テスト メンタルヘルス専門外来","7","019","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper" +"009904439","テスト 禁煙専門外来","2","001","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper" +"009904439","テスト 糖尿病外来","7","006","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper" +"009929798","テスト ストーマ(人工肛門・人工膀胱)専門外来","1","014","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper" +"99999999999","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","111","222","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/expect_com_prefc_med_sp_outpat_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/expect_com_prefc_med_sp_outpat_update.csv new file mode 100644 index 00000000..33d5e48f --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/expect_com_prefc_med_sp_outpat_update.csv @@ -0,0 +1,9 @@ +"dcf_dsf_inst_cd","specialclinic_name","sort_key","sectsub_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"009901649","テスト 小児 内分泌・腎臓外来","5","019","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2023/05/11 11:49:28","com_prefc_med_sp_outpat_mapper" +"009904439","テスト アルコール症専門外来","1","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" +"009904439","テスト メンタルヘルス専門外来","7","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" +"009904439","テスト 禁煙専門外来","2","NULL","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2023/05/11 11:49:28","com_prefc_med_sp_outpat_mapper" +"009904439","テスト 糖尿病外来","7","001","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2023/05/11 11:49:28","com_prefc_med_sp_outpat_mapper" +"009929798","テスト ストーマ(人工肛門・人工膀胱)専門外来","1","NULL","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2023/05/11 11:49:28","com_prefc_med_sp_outpat_mapper" +"99999999911","あいうえお","123","999","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2023/05/11 11:57:12","com_prefc_med_sp_outpat_mapper" +"99999999999","あいうえお","123","123","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/test_com_prefc_med_sp_outpat_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/test_com_prefc_med_sp_outpat_mapper.py new file mode 100644 index 00000000..04932cf8 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_prefc_med_sp_outpat/test_com_prefc_med_sp_outpat_mapper.py @@ -0,0 +1,238 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_prefc_med_sp_outpat_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComPrefcMedSpOutpatMapper: + """レイアウト区分136: COM_都道府県医療機能情報(専門外来)""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_都道府県医療機能情報(専門外来)テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_sp_outpat_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_sp_outpat', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_sp_outpat_mapper.ComPrefcMedSpOutpatMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_sp_outpat_mapper.ComPrefcMedSpOutpatMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_sp_outpat_insert.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_specialclinic_name = [{'specialclinic_name': columns['specialclinic_name']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_prefc_med_sp_outpat + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + specialclinic_name = :specialclinic_name + """ + for param_dcf_dsf_inst_cd, param_specialclinic_name in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_specialclinic_name): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_dsf_inst_cd, **param_specialclinic_name}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_都道府県医療機能情報(専門外来)テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_sp_outpat_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_sp_outpat', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_sp_outpat_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_prefc_med_sp_outpat', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_sp_outpat_mapper.ComPrefcMedSpOutpatMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_sp_outpat_mapper.ComPrefcMedSpOutpatMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_sp_outpat_update.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_specialclinic_name = [{'specialclinic_name': columns['specialclinic_name']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_prefc_med_sp_outpat + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + specialclinic_name = :specialclinic_name + """ + for param_dcf_dsf_inst_cd, param_specialclinic_name in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_specialclinic_name): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_dsf_inst_cd, **param_specialclinic_name}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_都道府県医療機能情報(専門外来)テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_sp_outpat_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_sp_outpat', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_sp_outpat_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_prefc_med_sp_outpat', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_prefc_med_sp_outpat_mapper.ComPrefcMedSpOutpatMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_prefc_med_sp_outpat_mapper.ComPrefcMedSpOutpatMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_sp_outpat_delete.csv')) + primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list] + primary_keys_specialclinic_name = [{'specialclinic_name': columns['specialclinic_name']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_prefc_med_sp_outpat + WHERE + dcf_dsf_inst_cd = :dcf_dsf_inst_cd + AND + specialclinic_name = :specialclinic_name + """ + for param_dcf_dsf_inst_cd, param_specialclinic_name in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_specialclinic_name): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_dsf_inst_cd, **param_specialclinic_name}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/com_regn_critic_pass_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/com_regn_critic_pass_delete.csv new file mode 100644 index 00000000..4c50f5fc --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/com_regn_critic_pass_delete.csv @@ -0,0 +1,4 @@ +"026","01","C","20141113","20141114","" +"026","99","A","20141113","20141114","不明" +"026","02","A","20141113","20141114","骨折" +"026","98","C","20141113","20141114","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/com_regn_critic_pass_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/com_regn_critic_pass_insert.csv new file mode 100644 index 00000000..09a4e485 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/com_regn_critic_pass_insert.csv @@ -0,0 +1,3 @@ +"026","01","A","20141113","20141114","大腿骨頸部骨折" +"026","99","A","20141113","20141114","不明" +"026","55","A","20141113","20141114","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこくけこあいうえおかきくけこあいうえおかき" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/com_regn_critic_pass_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/com_regn_critic_pass_update.csv new file mode 100644 index 00000000..7b84a0ff --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/com_regn_critic_pass_update.csv @@ -0,0 +1,3 @@ +"026","01","A","20141113","20141114","頸部骨折" +"026","99","A","20141113","20141114","" +"026","55","A","20141113","20141114","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこくけこあいうえおかきくけこあいうえおかき" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/db_com_regn_critic_pass_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/db_com_regn_critic_pass_before_delete.csv new file mode 100644 index 00000000..bd263ca7 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/db_com_regn_critic_pass_before_delete.csv @@ -0,0 +1,3 @@ +"regn_co_critic_pass_cd","disease_name_kanji","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","大腿骨頸部骨折","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 11:09:17","clsComRegnCriticPass","2017/10/19 11:09:17","clsComRegnCriticPass" +"99","不明","20171019","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 11:09:17","clsComRegnCriticPass","2017/10/19 11:09:51","clsComRegnCriticPass" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/db_com_regn_critic_pass_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/db_com_regn_critic_pass_before_update.csv new file mode 100644 index 00000000..e8c2ba1e --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/db_com_regn_critic_pass_before_update.csv @@ -0,0 +1,4 @@ +"regn_co_critic_pass_cd","disease_name_kanji","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","大腿骨頸部骨折","20230423","NULL","NULL","NULL","NULL","NULL","NULL","2023/03/24 10:04:58","com_regn_critic_pass_mapper","2023/03/24 10:04:58","com_regn_critic_pass_mapper" +"55","","20230423","NULL","NULL","NULL","NULL","NULL","NULL","2023/03/24 10:04:58","com_regn_critic_pass_mapper","2023/03/24 10:04:58","com_regn_critic_pass_mapper" +"99","不明","20171024","NULL","NULL","NULL","NULL","NULL","NULL","2023/03/24 10:04:58","clsComRegnCriticPass","2023/03/24 10:04:58","clsComRegnCriticPass" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/expect_com_regn_critic_pass_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/expect_com_regn_critic_pass_delete.csv new file mode 100644 index 00000000..12548de0 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/expect_com_regn_critic_pass_delete.csv @@ -0,0 +1,4 @@ +"regn_co_critic_pass_cd","disease_name_kanji","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","大腿骨頸部骨折","20171019","NULL","20230420","NULL","NULL","NULL","NULL","2017/10/19 11:09:17","clsComRegnCriticPass","2017/10/19 11:09:17","com_regn_critic_pass_mapper" +"02","骨折","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 11:18:53","com_regn_critic_pass_mapper","2017/10/19 11:18:53","com_regn_critic_pass_mapper" +"99","不明","20171019","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 11:09:17","clsComRegnCriticPass","2017/10/19 11:09:51","com_regn_critic_pass_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/expect_com_regn_critic_pass_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/expect_com_regn_critic_pass_insert.csv new file mode 100644 index 00000000..81ce5d4b --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/expect_com_regn_critic_pass_insert.csv @@ -0,0 +1,4 @@ +"regn_co_critic_pass_cd","disease_name_kanji","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","大腿骨頸部骨折","20230423","NULL","NULL","NULL","NULL","NULL","NULL","2023/03/24 10:04:58","com_regn_critic_pass_mapper","2023/03/24 10:04:58","com_regn_critic_pass_mapper" +"55","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこくけこあいうえおかきくけこあいうえおかき","20230423","NULL","NULL","NULL","NULL","NULL","NULL","2023/03/24 10:04:58","com_regn_critic_pass_mapper","2023/03/24 10:04:58","com_regn_critic_pass_mapper" +"99","不明","20171024","NULL","NULL","NULL","NULL","NULL","NULL","2023/03/24 10:04:58","com_regn_critic_pass_mapper","2023/03/24 10:04:58","com_regn_critic_pass_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/expect_com_regn_critic_pass_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/expect_com_regn_critic_pass_update.csv new file mode 100644 index 00000000..68d07075 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/expect_com_regn_critic_pass_update.csv @@ -0,0 +1,4 @@ +"regn_co_critic_pass_cd","disease_name_kanji","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","頸部骨折","20230423","20230423","NULL","NULL","NULL","NULL","NULL","2023/03/24 10:04:58","com_regn_critic_pass_mapper","2023/03/24 10:04:58","com_regn_critic_pass_mapper" +"55","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこくけこあいうえおかきくけこあいうえおかき","20230423","20230423","NULL","NULL","NULL","NULL","NULL","2023/03/24 10:04:58","com_regn_critic_pass_mapper","2023/03/24 10:04:58","com_regn_critic_pass_mapper" +"99","不明","20171024","NULL","NULL","NULL","NULL","NULL","NULL","2023/03/24 10:04:58","clsComRegnCriticPass","2023/03/24 10:04:58","clsComRegnCriticPass" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/test_com_regn_critic_pass_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/test_com_regn_critic_pass_mapper.py new file mode 100644 index 00000000..738d7ea4 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_regn_critic_pass/test_com_regn_critic_pass_mapper.py @@ -0,0 +1,197 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_regn_critic_pass_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComRegnCriticPassMapper: + """レイアウト区分026: COM_地域連携クリティカルパス""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_地域連携クリティカルパス校テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_regn_critic_pass_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_regn_critic_pass', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_regn_critic_pass_mapper.ComRegnCriticPassMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_regn_critic_pass_mapper.ComRegnCriticPassMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_regn_critic_pass_insert.csv')) + primary_keys = [f"'{primary_key['regn_co_critic_pass_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_regn_critic_pass WHERE regn_co_critic_pass_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ['regist_ymd', 'sys_regist_date', 'sys_update_date']: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_地域連携クリティカルパス校テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_regn_critic_pass_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_regn_critic_pass', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_regn_critic_pass_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_regn_critic_pass', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_regn_critic_pass_mapper.ComRegnCriticPassMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_regn_critic_pass_mapper.ComRegnCriticPassMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_regn_critic_pass_update.csv')) + primary_keys = [f"'{primary_key['regn_co_critic_pass_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_regn_critic_pass WHERE regn_co_critic_pass_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_地域連携クリティカルパス校テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_regn_critic_pass_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_regn_critic_pass', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_regn_critic_pass_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_regn_critic_pass', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_regn_critic_pass_mapper.ComRegnCriticPassMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_regn_critic_pass_mapper.ComRegnCriticPassMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_regn_critic_pass_delete.csv')) + primary_keys = [f"'{primary_key['regn_co_critic_pass_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_regn_critic_pass WHERE regn_co_critic_pass_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/com_rehabili_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/com_rehabili_delete.csv new file mode 100644 index 00000000..85d5cb95 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/com_rehabili_delete.csv @@ -0,0 +1,7 @@ +"027","01","A","20141113","20141114","" +"027","02","A","20141113","20141114","運動器リハビリテーション" +"027","03","A","20141113","20141114","呼吸器リハビリテーション" +"027","04","C","20141113","20141114","廃用症候群リハビリテーション" +"027","05","A","20141113","20141114","心大血管疾患リハビリテーション" +"027","06","A","20141113","20141114","糖尿病リハビリテーション" +"027","99","C","20141113","20141114","糖尿病リハビリテーション" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/com_rehabili_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/com_rehabili_insert.csv new file mode 100644 index 00000000..a3d3096b --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/com_rehabili_insert.csv @@ -0,0 +1,6 @@ +"027","01","A","20141113","20141114","脳血管疾患等リハビリテーション" +"027","02","A","20141113","20141114","運動器リハビリテーション" +"027","03","A","20141113","20141114","呼吸器リハビリテーション" +"027","04","A","20141113","20141114","心大血管疾患リハビリテーション" +"027","05","A","20141113","20141114","廃用症候群リハビリテーション" +"027","99","A","20141113","20141114","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかき" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/com_rehabili_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/com_rehabili_update.csv new file mode 100644 index 00000000..a9450b84 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/com_rehabili_update.csv @@ -0,0 +1,5 @@ +"027","01","A","20141113","20141114","" +"027","02","A","20141113","20141114","運動器リハビリテーション" +"027","03","A","20141113","20141114","呼吸器リハビリテーション" +"027","04","A","20141113","20141114","廃用症候群リハビリテーション" +"027","05","A","20141113","20141114","心大血管疾患リハビリテーション" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/db_com_rehabili_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/db_com_rehabili_before_delete.csv new file mode 100644 index 00000000..50610683 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/db_com_rehabili_before_delete.csv @@ -0,0 +1,6 @@ +"rehabili_cd","rehabili_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","脳血管疾患等リハビリテーション","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2017/10/19 14:44:23","clsComRehabili" +"02","運動器リハビリテーション","20171019","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2017/10/19 14:51:32","clsComRehabili" +"03","呼吸器リハビリテーション","20171019","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2017/10/19 14:51:32","clsComRehabili" +"04","廃用症候群リハビリテーション","20171019","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2017/10/19 14:51:32","clsComRehabili" +"05","心大血管疾患リハビリテーション","20171019","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2017/10/19 14:51:32","clsComRehabili" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/db_com_rehabili_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/db_com_rehabili_before_update.csv new file mode 100644 index 00000000..5990cb40 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/db_com_rehabili_before_update.csv @@ -0,0 +1,6 @@ +"rehabili_cd","rehabili_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","脳血管疾患等リハビリテーション","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2017/10/19 14:44:23","clsComRehabili" +"02","運動器リハビリテーション","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2017/10/19 14:44:23","clsComRehabili" +"03","呼吸器リハビリテーション","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2017/10/19 14:44:23","clsComRehabili" +"04","心大血管疾患リハビリテーション","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2017/10/19 14:44:23","clsComRehabili" +"05","廃用症候群リハビリテーション","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2017/10/19 14:44:23","clsComRehabili" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/expect_com_rehabili_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/expect_com_rehabili_delete.csv new file mode 100644 index 00000000..fa1a79eb --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/expect_com_rehabili_delete.csv @@ -0,0 +1,7 @@ +"rehabili_cd","rehabili_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","脳血管疾患等リハビリテーション","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2017/10/19 14:44:23","clsComRehabili" +"02","運動器リハビリテーション","20171019","20230423","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2022/10/19 15:01:11","com_rehabili_mapper" +"03","呼吸器リハビリテーション","20171019","20230423","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2022/10/19 15:01:11","com_rehabili_mapper" +"04","廃用症候群リハビリテーション","20171019","20171019","20230423","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2022/10/19 15:01:11","com_rehabili_mapper" +"05","心大血管疾患リハビリテーション","20171019","20230423","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2022/10/19 15:01:11","com_rehabili_mapper" +"06","糖尿病リハビリテーション","20230423","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 15:01:11","com_rehabili_mapper","2022/10/19 15:01:11","com_rehabili_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/expect_com_rehabili_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/expect_com_rehabili_insert.csv new file mode 100644 index 00000000..1e292c75 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/expect_com_rehabili_insert.csv @@ -0,0 +1,7 @@ +"rehabili_cd","rehabili_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","脳血管疾患等リハビリテーション","20230423","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 14:44:23","com_rehabili_mapper","2022/10/19 14:44:23","com_rehabili_mapper" +"02","運動器リハビリテーション","20230423","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 14:44:23","com_rehabili_mapper","2022/10/19 14:44:23","com_rehabili_mapper" +"03","呼吸器リハビリテーション","20230423","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 14:44:23","com_rehabili_mapper","2022/10/19 14:44:23","com_rehabili_mapper" +"04","心大血管疾患リハビリテーション","20230423","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 14:44:23","com_rehabili_mapper","2022/10/19 14:44:23","com_rehabili_mapper" +"05","廃用症候群リハビリテーション","20230423","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 14:44:23","com_rehabili_mapper","2022/10/19 14:44:23","com_rehabili_mapper" +"99","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかき","20230423","NULL","NULL","NULL","NULL","NULL","NULL","2022/10/19 14:44:23","com_rehabili_mapper","2022/10/19 14:44:23","com_rehabili_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/expect_com_rehabili_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/expect_com_rehabili_update.csv new file mode 100644 index 00000000..f39d0ed8 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/expect_com_rehabili_update.csv @@ -0,0 +1,6 @@ +"rehabili_cd","rehabili_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","脳血管疾患等リハビリテーション","20171019","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2017/10/19 14:44:23","clsComRehabili" +"02","運動器リハビリテーション","20171019","20230423","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2022/10/19 14:51:32","com_rehabili_mapper" +"03","呼吸器リハビリテーション","20171019","20230423","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2022/10/19 14:51:32","com_rehabili_mapper" +"04","廃用症候群リハビリテーション","20171019","20230423","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2022/10/19 14:51:32","com_rehabili_mapper" +"05","心大血管疾患リハビリテーション","20171019","20230423","NULL","NULL","NULL","NULL","NULL","2017/10/19 14:44:23","clsComRehabili","2022/10/19 14:51:32","com_rehabili_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/test_com_rehabili_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/test_com_rehabili_mapper.py new file mode 100644 index 00000000..29d44f4b --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_rehabili/test_com_rehabili_mapper.py @@ -0,0 +1,197 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_rehabili_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComRehabiliMapper: + """レイアウト区分027: COM_疾患別リハビリテーション科""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_疾患別リハビリテーション科テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_rehabili_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_rehabili', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_rehabili_mapper.ComRehabiliMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_rehabili_mapper.ComRehabiliMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_rehabili_insert.csv')) + primary_keys = [f"'{primary_key['rehabili_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_rehabili WHERE rehabili_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_疾患別リハビリテーション科テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_rehabili_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_rehabili', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_rehabili_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_rehabili', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_rehabili_mapper.ComRehabiliMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_rehabili_mapper.ComRehabiliMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_rehabili_update.csv')) + primary_keys = [f"'{primary_key['rehabili_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_rehabili WHERE rehabili_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_疾患別リハビリテーション科テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_rehabili_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_rehabili', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_rehabili_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_rehabili', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_rehabili_mapper.ComRehabiliMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_rehabili_mapper.ComRehabiliMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_rehabili_delete.csv')) + primary_keys = [f"'{primary_key['rehabili_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_rehabili WHERE rehabili_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/com_snd_med_sphe_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/com_snd_med_sphe_delete.csv new file mode 100644 index 00000000..61c5c614 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/com_snd_med_sphe_delete.csv @@ -0,0 +1,3 @@ +"123","01","01","C","20141113","20141114","","","","","","" +"123","01","02","C","20141113","20141114","南檜山圏","1","213","216","20130201","3" +"123","01","09","C","20141113","20141114","北渡島檜山圏","1","389","484","20130201","95" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/com_snd_med_sphe_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/com_snd_med_sphe_insert.csv new file mode 100644 index 00000000..690a500f --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/com_snd_med_sphe_insert.csv @@ -0,0 +1,4 @@ +"123","01","01","A","20141113","20141114","南渡島圏","1","4475","5020","20130201","545" +"123","01","02","A","20141113","20141114","","","","","","" +"123","01","03","B","20141113","20141114","北渡島檜山圏","1","389","484","20130201","95" +"123","99","99","A","","","あいうえおかきくけこあいうえおかきくけこ","9","123456","123456","20130201","1234567" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/com_snd_med_sphe_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/com_snd_med_sphe_update.csv new file mode 100644 index 00000000..348ff11c --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/com_snd_med_sphe_update.csv @@ -0,0 +1,3 @@ +"123","01","01","A","20141113","20141114","","","","","","" +"123","01","02","A","20141113","20141114","南檜山圏","1","213","216","20130201","3" +"123","01","03","B","20141113","20141114","北渡島檜山圏","1","389","484","20130201","95" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/db_com_snd_med_sphe_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/db_com_snd_med_sphe_before_delete.csv new file mode 100644 index 00000000..8fab7f4b --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/db_com_snd_med_sphe_before_delete.csv @@ -0,0 +1,4 @@ +"prefc_cd","med_sphe_cd","thrd_cd","snd_med_sphe_name","requd_bed_or_equip_target","exist_bed_num","exist_bed_num_regist_ymd","plsmns_bed_num","mod_ymd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","01","","","NULL","NULL","","","NULL","20171019","20171019","NULL","NULL","NULL","NULL","2017/10/19 17:35:59","clsComSndMedSphe","2017/10/19 17:38:48","clsComSndMedSphe" +"01","02","1","南檜山圏","213","216","20130201","3","NULL","20171019","20171019","NULL","NULL","NULL","NULL","2017/10/19 17:35:59","clsComSndMedSphe","2017/10/19 17:38:48","clsComSndMedSphe" +"01","03","1","北渡島檜山圏","389","484","20130201","95","NULL","20171019","20171019","NULL","NULL","NULL","NULL","2017/10/19 17:35:59","clsComSndMedSphe","2017/10/19 17:38:48","clsComSndMedSphe" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/db_com_snd_med_sphe_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/db_com_snd_med_sphe_before_update.csv new file mode 100644 index 00000000..23b503f5 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/db_com_snd_med_sphe_before_update.csv @@ -0,0 +1,4 @@ +"prefc_cd","med_sphe_cd","thrd_cd","snd_med_sphe_name","requd_bed_or_equip_target","exist_bed_num","exist_bed_num_regist_ymd","plsmns_bed_num","mod_ymd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","01","1","南渡島圏","4475","5020","20130201","545","NULL","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 17:35:59","clsComSndMedSphe","2017/10/19 17:35:59","clsComSndMedSphe" +"01","02","","","NULL","NULL","","","NULL","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 17:35:59","clsComSndMedSphe","2017/10/19 17:35:59","clsComSndMedSphe" +"01","03","1","北渡島檜山圏","389","484","20130201","95","NULL","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 17:35:59","clsComSndMedSphe","2017/10/19 17:35:59","clsComSndMedSphe" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/expect_com_snd_med_sphe_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/expect_com_snd_med_sphe_delete.csv new file mode 100644 index 00000000..3ec5fff5 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/expect_com_snd_med_sphe_delete.csv @@ -0,0 +1,2 @@ +"prefc_cd","med_sphe_cd","thrd_cd","snd_med_sphe_name","requd_bed_or_equip_target","exist_bed_num","exist_bed_num_regist_ymd","plsmns_bed_num","mod_ymd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","03","1","北渡島檜山圏","389","484","20130201","95","NULL","20171019","20171019","NULL","NULL","NULL","NULL","2017/10/19 17:35:59","clsComSndMedSphe","2017/10/19 17:38:48","clsComSndMedSphe" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/expect_com_snd_med_sphe_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/expect_com_snd_med_sphe_insert.csv new file mode 100644 index 00000000..f5a43770 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/expect_com_snd_med_sphe_insert.csv @@ -0,0 +1,5 @@ +"prefc_cd","med_sphe_cd","thrd_cd","snd_med_sphe_name","requd_bed_or_equip_target","exist_bed_num","exist_bed_num_regist_ymd","plsmns_bed_num","mod_ymd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","01","1","南渡島圏","4475","5020","20130201","545","NULL","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/12 05:35:59","com_snd_med_sphe_mapper","2023/05/12 05:35:59","com_snd_med_sphe_mapper" +"01","02","","","NULL","NULL","","","NULL","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/12 05:35:59","com_snd_med_sphe_mapper","2023/05/12 05:35:59","com_snd_med_sphe_mapper" +"01","03","1","北渡島檜山圏","389","484","20130201","95","NULL","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/12 05:35:59","com_snd_med_sphe_mapper","2023/05/12 05:35:59","com_snd_med_sphe_mapper" +"99","99","9","あいうえおかきくけこあいうえおかきくけこ","123456","123456","20130201","1234567","NULL","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/12 05:35:59","com_snd_med_sphe_mapper","2023/05/12 05:35:59","com_snd_med_sphe_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/expect_com_snd_med_sphe_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/expect_com_snd_med_sphe_update.csv new file mode 100644 index 00000000..6e212e05 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/expect_com_snd_med_sphe_update.csv @@ -0,0 +1,4 @@ +"prefc_cd","med_sphe_cd","thrd_cd","snd_med_sphe_name","requd_bed_or_equip_target","exist_bed_num","exist_bed_num_regist_ymd","plsmns_bed_num","mod_ymd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","01","","","NULL","NULL","","","NULL","20171019","20230512","NULL","NULL","NULL","NULL","2017/10/19 17:35:59","clsComSndMedSphe","2023/05/12 05:38:48","com_snd_med_sphe_mapper" +"01","02","1","南檜山圏","213","216","20130201","3","NULL","20171019","20230512","NULL","NULL","NULL","NULL","2017/10/19 17:35:59","clsComSndMedSphe","2023/05/12 05:38:48","com_snd_med_sphe_mapper" +"01","03","1","北渡島檜山圏","389","484","20130201","95","NULL","20171019","20230512","NULL","NULL","NULL","NULL","2017/10/19 17:35:59","clsComSndMedSphe","2023/05/12 05:38:48","com_snd_med_sphe_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/test_com_snd_med_sphe_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/test_com_snd_med_sphe_mapper.py new file mode 100644 index 00000000..82e12baa --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_snd_med_sphe/test_com_snd_med_sphe_mapper.py @@ -0,0 +1,257 @@ +import os.path as path +from datetime import datetime +from decimal import Decimal + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_snd_med_sphe_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComSndMedSphe: + """レイアウト区分123: COM_医療圏二次医療圏""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + # decimal型のカラム群 + decimal_columns = [ + 'requd_bed_or_equip_target', + 'exist_bed_num' + ] + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_医療圏二次医療圏テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_snd_med_sphe_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_snd_med_sphe', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_snd_med_sphe_mapper.ComSndMedSphe = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_snd_med_sphe_mapper.ComSndMedSpheMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_snd_med_sphe_insert.csv')) + primary_keys_prefc_cd = [{'prefc_cd': columns['prefc_cd']} for columns in expect_data_list] + primary_keys_med_sphe_cd = [{'med_sphe_cd': columns['med_sphe_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_snd_med_sphe + WHERE + prefc_cd = :prefc_cd + AND med_sphe_cd = :med_sphe_cd\ + """ + for param_prefc_cd, param_med_sphe_cd in zip(primary_keys_prefc_cd, primary_keys_med_sphe_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_prefc_cd, **param_med_sphe_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + self.decimal_columns + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if actual_col_name in self.decimal_columns: + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_医療圏二次医療圏テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_snd_med_sphe_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_snd_med_sphe', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_snd_med_sphe_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_snd_med_sphe', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_snd_med_sphe_mapper.ComSndMedSphe = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_snd_med_sphe_mapper.ComSndMedSpheMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_snd_med_sphe_update.csv')) + primary_keys_prefc_cd = [{'prefc_cd': columns['prefc_cd']} for columns in expect_data_list] + primary_keys_med_sphe_cd = [{'med_sphe_cd': columns['med_sphe_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_snd_med_sphe + WHERE + prefc_cd = :prefc_cd + AND med_sphe_cd = :med_sphe_cd\ + """ + for param_prefc_cd, param_med_sphe_cd in zip(primary_keys_prefc_cd, primary_keys_med_sphe_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_prefc_cd, **param_med_sphe_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + self.decimal_columns + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name in self.decimal_columns: + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_physical_delete(self): + """ + Cases: + COM_医療圏二次医療圏テーブルのレコードを1件物理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_snd_med_sphe_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_snd_med_sphe', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_snd_med_sphe_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_snd_med_sphe', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_snd_med_sphe_mapper.ComSndMedSphe = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_snd_med_sphe_mapper.ComSndMedSpheMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_snd_med_sphe_delete.csv')) + actual_record_count = self.db.execute_select('SELECT COUNT(*) AS count_num FROM src05.com_snd_med_sphe')[0]['count_num'] + assert actual_record_count == len(expect_data_list), 'DBのレコード件数が期待値の件数と一致すること' + primary_keys_prefc_cd = [{'prefc_cd': columns['prefc_cd']} for columns in expect_data_list] + primary_keys_med_sphe_cd = [{'med_sphe_cd': columns['med_sphe_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_snd_med_sphe + WHERE + prefc_cd = :prefc_cd + AND med_sphe_cd = :med_sphe_cd\ + """ + for param_prefc_cd, param_med_sphe_cd in zip(primary_keys_prefc_cd, primary_keys_med_sphe_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_prefc_cd, **param_med_sphe_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + self.decimal_columns + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + if actual_col_name in self.decimal_columns: + if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0: + assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/com_sp_field_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/com_sp_field_delete.csv new file mode 100644 index 00000000..350bb655 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/com_sp_field_delete.csv @@ -0,0 +1,6 @@ +"511","01","994301","00","B","0003","1","20161113","20161114","1","20170401","@","","","" +"511","01","995783","00","C","0003","2","20161113","20161114","1","20170221","1","20140810","","" +"511","01","997906","00","B","0032","2","","","","","","","","" +"511","01","997906","99","B","0032","2","","","","","","","","" +"511","01","994301","99","B","0003","1","","","","","","","","" +"511","01","995783","99","C","0003","","","","","","","","","" 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 new file mode 100644 index 00000000..b6e91047 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/com_sp_field_insert.csv @@ -0,0 +1,7 @@ +"511","01","994301","00","A","0003","2","20141113","20141114","","","1","20140401","","" +"511","01","995783","00","A","0003","2","20141113","20141114","","","1","20140401","","" +"511","01","997682","00","A","0004","2","20141113","20141114","1","20131112","","","","" +"511","01","997906","00","A","0032","2","20141113","20141114","1","20130821","","","1","20130821" +"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" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/com_sp_field_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/com_sp_field_update.csv new file mode 100644 index 00000000..b7585d8d --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/com_sp_field_update.csv @@ -0,0 +1,5 @@ +"511","01","994301","00","B","0003","2","20161113","20161114","1","20170401","@","","","" +"511","01","995783","00","B","0003","2","20161113","20161114","1","20170221","1","20140810","","" +"511","01","997906","00","B","0032","2","20170330","20170401","@","","","","@","" +"511","01","999613","00","B","0056","2","20161113","20161114","1","20180706","1","20170101","1","20180706" +"511","01","999613","00","B","9999","","","","","","","","","" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/db_com_sp_field_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/db_com_sp_field_before_delete.csv new file mode 100644 index 00000000..e88fa5e0 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/db_com_sp_field_before_delete.csv @@ -0,0 +1,7 @@ +"dcf_pcf_dr_cd","specialst_cd","specialst_maint_div","specialst_flg","specialst_publsh_ymd","ackn_med_flg","ackn_med_publsh_ymd","guide_med_flg","guide_med_publsh_ymd","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"0199430100","0003","2","1","20170401","","","","","20171008","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/09 20:21:51","com_sp_field_mapper" +"0199578300","0003","2","1","20170221","1","20140810","","","20171008","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/09 20:21:51","com_sp_field_mapper" +"0199768200","0004","2","1","20131112","","","","","20171008","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/08 17:05:14","clsComSpField" +"0199790600","0032","2","","","","","","","20171008","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/09 20:21:51","com_sp_field_mapper" +"0199961300","0056","2","1","20180706","1","20170101","1","20180706","20171008","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/09 20:21:51","com_sp_field_mapper" +"0199961300","9999","2","1","20140706","1","20140401","1","20140706","20171008","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/08 17:05:14","clsComSpField" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/db_com_sp_field_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/db_com_sp_field_before_update.csv new file mode 100644 index 00000000..9167aa40 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/db_com_sp_field_before_update.csv @@ -0,0 +1,7 @@ +"dcf_pcf_dr_cd","specialst_cd","specialst_maint_div","specialst_flg","specialst_publsh_ymd","ackn_med_flg","ackn_med_publsh_ymd","guide_med_flg","guide_med_publsh_ymd","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"0199430100","0003","2","","","1","20140401","","","20171008","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/08 17:05:14","clsComSpField" +"0199578300","0003","2","","","1","20140401","","","20171008","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/08 17:05:14","clsComSpField" +"0199768200","0004","2","1","20131112","","","","","20171008","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/08 17:05:14","clsComSpField" +"0199790600","0032","2","1","20130821","","","1","20130821","20171008","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/08 17:05:14","clsComSpField" +"0199961300","0056","2","1","20140706","","","1","20140706","20171008","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/08 17:05:14","clsComSpField" +"0199961300","9999","2","1","20140706","1","20140401","1","20140706","20171008","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/08 17:05:14","clsComSpField" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/expect_com_sp_field_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/expect_com_sp_field_delete.csv new file mode 100644 index 00000000..20feb37e --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/expect_com_sp_field_delete.csv @@ -0,0 +1,6 @@ +"dcf_pcf_dr_cd","specialst_cd","specialst_maint_div","specialst_flg","specialst_publsh_ymd","ackn_med_flg","ackn_med_publsh_ymd","guide_med_flg","guide_med_publsh_ymd","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"0199578300","0003","2","1","20170221","1","20140810","","","20171008","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/09 20:21:51","com_sp_field_mapper" +"0199768200","0004","2","1","20131112","","","","","20171008","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/08 17:05:14","clsComSpField" +"0199790600","0032","2","","","","","","","20171008","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/09 20:21:51","com_sp_field_mapper" +"0199961300","0056","2","1","20180706","1","20170101","1","20180706","20171008","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/09 20:21:51","com_sp_field_mapper" +"0199961300","9999","2","1","20140706","1","20140401","1","20140706","20171008","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/08 17:05:14","clsComSpField" 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 new file mode 100644 index 00000000..f8720d26 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/expect_com_sp_field_insert.csv @@ -0,0 +1,8 @@ +"dcf_pcf_dr_cd","specialst_cd","specialst_maint_div","specialst_flg","specialst_publsh_ymd","ackn_med_flg","ackn_med_publsh_ymd","guide_med_flg","guide_med_publsh_ymd","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"0199430100","0003","2","","","1","20140401","","","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" +"0199578300","0003","2","","","1","20140401","","","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" +"0199768200","0004","2","1","20131112","","","","","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" +"0199790600","0032","2","1","20130821","","","1","20130821","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" +"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" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/expect_com_sp_field_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/expect_com_sp_field_update.csv new file mode 100644 index 00000000..73bf0e1b --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/expect_com_sp_field_update.csv @@ -0,0 +1,6 @@ +"dcf_pcf_dr_cd","specialst_cd","specialst_maint_div","specialst_flg","specialst_publsh_ymd","ackn_med_flg","ackn_med_publsh_ymd","guide_med_flg","guide_med_publsh_ymd","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"0199430100","0003","2","1","20170401","","","","","20171008","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/09 20:21:51","com_sp_field_mapper" +"0199578300","0003","2","1","20170221","1","20140810","","","20171008","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/09 20:21:51","com_sp_field_mapper" +"0199768200","0004","2","1","20131112","","","","","20171008","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/08 17:05:14","clsComSpField" +"0199790600","0032","2","","","","","","","20171008","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/09 20:21:51","com_sp_field_mapper" +"0199961300","0056","2","1","20180706","1","20170101","1","20180706","20171008","20230425","NULL","NULL","NULL","NULL","NULL","2017/10/08 17:05:14","clsComSpField","2017/10/09 20:21:51","com_sp_field_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/test_com_sp_field_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/test_com_sp_field_mapper.py new file mode 100644 index 00000000..44798884 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_sp_field/test_com_sp_field_mapper.py @@ -0,0 +1,236 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_sp_field_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComSpFieldMapper: + """レイアウト区分511: COM_専門分野""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_専門分野テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_sp_field_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_sp_field', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_sp_field_mapper.ComSpFieldMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_sp_field_mapper.ComSpFieldMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_sp_field_insert.csv')) + primary_keys_dcf_pcf_dr_cd = [{'dcf_pcf_dr_cd': columns['dcf_pcf_dr_cd']} for columns in expect_data_list] + primary_keys_specialst_cd = [{'specialst_cd': columns['specialst_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_sp_field + WHERE + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + AND specialst_cd = :specialst_cd\ + """ + for param_dcf_pcf_dr_cd, param_specialst_cd in zip(primary_keys_dcf_pcf_dr_cd, primary_keys_specialst_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_pcf_dr_cd, **param_specialst_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_専門分野テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_sp_field_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_sp_field', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_sp_field_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_sp_field', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_sp_field_mapper.ComSpFieldMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_sp_field_mapper.ComSpFieldMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_sp_field_update.csv')) + primary_keys_dcf_pcf_dr_cd = [{'dcf_pcf_dr_cd': columns['dcf_pcf_dr_cd']} for columns in expect_data_list] + primary_keys_specialst_cd = [{'specialst_cd': columns['specialst_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_sp_field + WHERE + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + AND specialst_cd = :specialst_cd\ + """ + for param_dcf_pcf_dr_cd, param_specialst_cd in zip(primary_keys_dcf_pcf_dr_cd, primary_keys_specialst_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_pcf_dr_cd, **param_specialst_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_専門分野テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_sp_field_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_sp_field', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_sp_field_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_sp_field', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_sp_field_mapper.ComSpFieldMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_sp_field_mapper.ComSpFieldMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_sp_field_delete.csv')) + primary_keys_dcf_pcf_dr_cd = [{'dcf_pcf_dr_cd': columns['dcf_pcf_dr_cd']} for columns in expect_data_list] + primary_keys_specialst_cd = [{'specialst_cd': columns['specialst_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_sp_field + WHERE + dcf_pcf_dr_cd = :dcf_pcf_dr_cd + AND specialst_cd = :specialst_cd\ + """ + for param_dcf_pcf_dr_cd, param_specialst_cd in zip(primary_keys_dcf_pcf_dr_cd, primary_keys_specialst_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_dcf_pcf_dr_cd, **param_specialst_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/com_thrd_med_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/com_thrd_med_delete.csv new file mode 100644 index 00000000..39844d66 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/com_thrd_med_delete.csv @@ -0,0 +1,3 @@ +"122","01","1","C","20141118","20141122","" +"122","01","2","C","20141118","20141122","オホーツク" +"122","01","9","C","20141118","20141122","道北" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/com_thrd_med_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/com_thrd_med_insert.csv new file mode 100644 index 00000000..6c299222 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/com_thrd_med_insert.csv @@ -0,0 +1,4 @@ +"122","01","1","A","20141118","20141122","道南" +"122","01","2","A","20141118","20141122","" +"122","01","3","A","20141118","20141122","道北" +"122","99","12345678","A","","","あいうえおかきくけこあいうえおかきくけこ" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/com_thrd_med_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/com_thrd_med_update.csv new file mode 100644 index 00000000..3050ce0d --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/com_thrd_med_update.csv @@ -0,0 +1,3 @@ +"122","01","1","A","20141118","20141122","" +"122","01","2","A","20141118","20141122","オホーツク" +"122","01","3","B","20141118","20141122","道北" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/db_com_thrd_med_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/db_com_thrd_med_before_delete.csv new file mode 100644 index 00000000..475396aa --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/db_com_thrd_med_before_delete.csv @@ -0,0 +1,4 @@ +"prefcode","thrd_cd","thrd_med_sphe_name","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","1","","20171019","20171019","NULL","NULL","NULL","NULL","2017/10/19 15:58:13","clsComThrdMed","2017/10/19 16:10:36","clsComThrdMed" +"01","2","オホーツク","20171019","20171019","NULL","NULL","NULL","NULL","2017/10/19 15:58:13","clsComThrdMed","2017/10/19 16:10:36","clsComThrdMed" +"01","3","道北","20171019","20171019","NULL","NULL","NULL","NULL","2017/10/19 15:58:13","clsComThrdMed","2017/10/19 16:10:36","clsComThrdMed" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/db_com_thrd_med_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/db_com_thrd_med_before_update.csv new file mode 100644 index 00000000..5c15d8c0 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/db_com_thrd_med_before_update.csv @@ -0,0 +1,4 @@ +"prefcode","thrd_cd","thrd_med_sphe_name","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","1","道南","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:58:13","clsComThrdMed","2017/10/19 15:58:13","clsComThrdMed" +"01","2","","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:58:13","clsComThrdMed","2017/10/19 15:58:13","clsComThrdMed" +"01","3","道北","20171019","NULL","NULL","NULL","NULL","NULL","2017/10/19 15:58:13","clsComThrdMed","2017/10/19 15:58:13","clsComThrdMed" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/expect_com_thrd_med_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/expect_com_thrd_med_delete.csv new file mode 100644 index 00000000..513fbde7 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/expect_com_thrd_med_delete.csv @@ -0,0 +1,2 @@ +"prefcode","thrd_cd","thrd_med_sphe_name","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","3","道北","20171019","20171019","NULL","NULL","NULL","NULL","2017/10/19 15:58:13","clsComThrdMed","2017/10/19 16:10:36","clsComThrdMed" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/expect_com_thrd_med_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/expect_com_thrd_med_insert.csv new file mode 100644 index 00000000..68dc24d7 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/expect_com_thrd_med_insert.csv @@ -0,0 +1,5 @@ +"prefcode","thrd_cd","thrd_med_sphe_name","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","1","道南","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 15:58:13","com_thrd_med_mapper","2023/05/11 15:58:13","com_thrd_med_mapper" +"01","2","","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 15:58:13","com_thrd_med_mapper","2023/05/11 15:58:13","com_thrd_med_mapper" +"01","3","道北","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 15:58:13","com_thrd_med_mapper","2023/05/11 15:58:13","com_thrd_med_mapper" +"99","12345678","あいうえおかきくけこあいうえおかきくけこ","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 15:58:13","com_thrd_med_mapper","2023/05/11 15:58:13","com_thrd_med_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/expect_com_thrd_med_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/expect_com_thrd_med_update.csv new file mode 100644 index 00000000..29268282 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/expect_com_thrd_med_update.csv @@ -0,0 +1,4 @@ +"prefcode","thrd_cd","thrd_med_sphe_name","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"01","1","","20171019","20230511","NULL","NULL","NULL","NULL","2017/10/19 15:58:13","clsComThrdMed","2023/05/11 16:10:36","com_thrd_med_mapper" +"01","2","オホーツク","20171019","20230511","NULL","NULL","NULL","NULL","2017/10/19 15:58:13","clsComThrdMed","2023/05/11 16:10:36","com_thrd_med_mapper" +"01","3","道北","20171019","20230511","NULL","NULL","NULL","NULL","2017/10/19 15:58:13","clsComThrdMed","2023/05/11 16:10:36","com_thrd_med_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/test_com_thrd_med_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/test_com_thrd_med_mapper.py new file mode 100644 index 00000000..5440f431 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_thrd_med/test_com_thrd_med_mapper.py @@ -0,0 +1,238 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_thrd_med_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComThrdMedMapper: + """レイアウト区分122: COM_医療圏3次マスタ""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_医療圏3次マスタテーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_thrd_med_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_thrd_med', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_thrd_med_mapper.ComThrdMedMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_thrd_med_mapper.ComThrdMedMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_thrd_med_insert.csv')) + primary_keys_prefcode = [{'prefcode': columns['prefcode']} for columns in expect_data_list] + primary_keys_thrd_cd = [{'thrd_cd': columns['thrd_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_thrd_med + WHERE + prefcode = :prefcode + AND thrd_cd = :thrd_cd\ + """ + for param_prefcode, param_thrd_cd in zip(primary_keys_prefcode, primary_keys_thrd_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_prefcode, **param_thrd_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_医療圏3次マスタテーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_thrd_med_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_thrd_med', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_thrd_med_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_thrd_med', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_thrd_med_mapper.ComThrdMedMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_thrd_med_mapper.ComThrdMedMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_thrd_med_update.csv')) + primary_keys_prefcode = [{'prefcode': columns['prefcode']} for columns in expect_data_list] + primary_keys_thrd_cd = [{'thrd_cd': columns['thrd_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_thrd_med + WHERE + prefcode = :prefcode + AND thrd_cd = :thrd_cd\ + """ + for param_prefcode, param_thrd_cd in zip(primary_keys_prefcode, primary_keys_thrd_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_prefcode, **param_thrd_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_physical_delete(self): + """ + Cases: + COM_医療圏3次マスタテーブルのレコードを1件物理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_thrd_med_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_thrd_med', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_thrd_med_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_thrd_med', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_thrd_med_mapper.ComThrdMedMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_thrd_med_mapper.ComThrdMedMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_thrd_med_delete.csv')) + actual_record_count = self.db.execute_select('SELECT COUNT(*) AS count_num FROM src05.com_thrd_med')[0]['count_num'] + assert actual_record_count == len(expect_data_list), 'DBのレコード件数が期待値の件数と一致すること' + primary_keys_prefcode = [{'prefcode': columns['prefcode']} for columns in expect_data_list] + primary_keys_thrd_cd = [{'thrd_cd': columns['thrd_cd']} for columns in expect_data_list] + actual_data_list = [] + sp_field_select_sql = """\ + SELECT * FROM src05.com_thrd_med + WHERE + prefcode = :prefcode + AND thrd_cd = :thrd_cd\ + """ + for param_prefcode, param_thrd_cd in zip(primary_keys_prefcode, primary_keys_thrd_cd): + sp_field_data = self.db.execute_select( + sp_field_select_sql, + {**param_prefcode, **param_thrd_cd}) + assert len(sp_field_data) == 1, '1件取得できていること' + actual_data_list.append(sp_field_data[0]) + + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/__init__.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/com_trt_course_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/com_trt_course_delete.csv new file mode 100644 index 00000000..a676cbda --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/com_trt_course_delete.csv @@ -0,0 +1,7 @@ +"001","A01","A","20141113","20141114","","","" +"001","A02","A","20141113","20141114","腫瘍","腫瘍科","シユヨウカ" +"001","A03","A","20141113","20141114","腫内","腫瘍内科","シユヨウナイカ" +"001","A04","C","20141113","20141114","腫疼","腫瘍内科(疼痛緩和)","シユヨウナイカ(トウツウカンワ)" +"001","A05","A","20141113","20141114","内循","内科(循環器)","ナイカ(ジユンカンキ)" +"001","A06","A","20141113","20141114","血腫","血液・腫瘍内科","ケツエキ.シユヨウナイカ" +"001","A07","A","20141113","20141114","内薬","内科(薬物療法)","ナイカ(ヤクブツリヨウホウ)" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/com_trt_course_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/com_trt_course_insert.csv new file mode 100644 index 00000000..e3b96df2 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/com_trt_course_insert.csv @@ -0,0 +1,7 @@ +"001","A01","A","20141113","20141114","内","一般内科","イツパンナイカ" +"001","A02","A","20141113","20141114","腫瘍","腫瘍科","シユヨウカ" +"001","A03","A","20141113","20141114","腫内","腫瘍内科","シユヨウナイカ" +"001","A04","A","20141113","20141114","腫疼","腫瘍内科(疼痛緩和)","シユヨウナイカ(トウツウカンワ)" +"001","A05","A","20141113","20141114","血腫","血液・腫瘍内科","ケツエキ.シユヨウナイカ" +"001","A06","A","20141113","20141114","内循","内科(循環器)","ナイカ(ジユンカンキ)" +"001","999","A","","","あいうえ","あいうえおかきくけこあいうえおかきくけこ","アイウエオカキクケコアイウエオカキクケコケコ" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/com_trt_course_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/com_trt_course_update.csv new file mode 100644 index 00000000..e092df90 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/com_trt_course_update.csv @@ -0,0 +1,6 @@ +"001","A01","A","20141113","20141114","","","" +"001","A02","A","20141113","20141114","腫瘍","腫瘍科","シユヨウカ" +"001","A03","A","20141113","20141114","腫内","腫瘍内科","シユヨウナイカ" +"001","A04","A","20141113","20141114","腫疼","腫瘍内科(疼痛緩和)","シユヨウナイカ(トウツウカンワ)" +"001","A05","A","20141113","20141114","内循","内科(循環器)","ナイカ(ジユンカンキ)" +"001","A06","A","20141113","20141114","血腫","血液・腫瘍内科","ケツエキ.シユヨウナイカ" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/db_com_trt_course_before_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/db_com_trt_course_before_delete.csv new file mode 100644 index 00000000..19181a3b --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/db_com_trt_course_before_delete.csv @@ -0,0 +1,7 @@ +"trt_course_cd","trt_course_name_kana","trt_course_name_abb","trt_course_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"A01","","","","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 8:59:56","clsComTrtCourse" +"A02","シユヨウカ","腫瘍","腫瘍科","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 8:59:56","clsComTrtCourse" +"A03","シユヨウナイカ","腫内","腫瘍内科","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 8:59:56","clsComTrtCourse" +"A04","シユヨウナイカ(トウツウカンワ)","腫疼","腫瘍内科(疼痛緩和)","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 8:59:56","clsComTrtCourse" +"A05","ナイカ(ジユンカンキ)","内循","内科(循環器)","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 8:59:56","clsComTrtCourse" +"A06","ケツエキ.シユヨウナイカ","血腫","血液・腫瘍内科","20171020","20171020","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 8:59:56","clsComTrtCourse" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/db_com_trt_course_before_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/db_com_trt_course_before_update.csv new file mode 100644 index 00000000..2dc257c0 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/db_com_trt_course_before_update.csv @@ -0,0 +1,7 @@ +"trt_course_cd","trt_course_name_kana","trt_course_name_abb","trt_course_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"A01","イツパンナイカ","内","一般内科","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 8:54:31","clsComTrtCourse" +"A02","シユヨウカ","腫瘍","腫瘍科","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 8:54:31","clsComTrtCourse" +"A03","シユヨウナイカ","腫内","腫瘍内科","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 8:54:31","clsComTrtCourse" +"A04","シユヨウナイカ(トウツウカンワ)","腫疼","腫瘍内科(疼痛緩和)","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 8:54:31","clsComTrtCourse" +"A05","ケツエキ.シユヨウナイカ","血腫","血液・腫瘍内科","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 8:54:31","clsComTrtCourse" +"A06","ナイカ(ジユンカンキ)","内循","内科(循環器)","20171020","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 8:54:31","clsComTrtCourse" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/expect_com_trt_course_delete.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/expect_com_trt_course_delete.csv new file mode 100644 index 00000000..a60d80b4 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/expect_com_trt_course_delete.csv @@ -0,0 +1,8 @@ +"trt_course_cd","trt_course_name_kana","trt_course_name_abb","trt_course_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"A01","","","","20171020","20230512","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 9:16:56","com_trt_course_mapper" +"A02","シユヨウカ","腫瘍","腫瘍科","20171020","20230512","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 9:16:56","com_trt_course_mapper" +"A03","シユヨウナイカ","腫内","腫瘍内科","20171020","20230512","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 9:16:56","com_trt_course_mapper" +"A04","シユヨウナイカ(トウツウカンワ)","腫疼","腫瘍内科(疼痛緩和)","20171020","20171020","20230512","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2023/05/11 09:16:56","com_trt_course_mapper" +"A05","ナイカ(ジユンカンキ)","内循","内科(循環器)","20171020","20230512","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 9:16:56","com_trt_course_mapper" +"A06","ケツエキ.シユヨウナイカ","血腫","血液・腫瘍内科","20171020","20230512","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2017/10/20 9:16:56","com_trt_course_mapper" +"A07","ナイカ(ヤクブツリヨウホウ)","内薬","内科(薬物療法)","20230512","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 9:16:56","com_trt_course_mapper","2017/10/20 9:16:56","com_trt_course_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/expect_com_trt_course_insert.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/expect_com_trt_course_insert.csv new file mode 100644 index 00000000..6c9ce9f1 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/expect_com_trt_course_insert.csv @@ -0,0 +1,8 @@ +"trt_course_cd","trt_course_name_kana","trt_course_name_abb","trt_course_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"999","アイウエオカキクケコアイウエオカキクケコケコ","あいうえ","あいうえおかきくけこあいうえおかきくけこ","20230512","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","com_trt_course_mapper","2017/10/20 8:54:31","com_trt_course_mapper" +"A01","イツパンナイカ","内","一般内科","20230512","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","com_trt_course_mapper","2017/10/20 8:54:31","com_trt_course_mapper" +"A02","シユヨウカ","腫瘍","腫瘍科","20230512","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","com_trt_course_mapper","2017/10/20 8:54:31","com_trt_course_mapper" +"A03","シユヨウナイカ","腫内","腫瘍内科","20230512","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","com_trt_course_mapper","2017/10/20 8:54:31","com_trt_course_mapper" +"A04","シユヨウナイカ(トウツウカンワ)","腫疼","腫瘍内科(疼痛緩和)","20230512","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","com_trt_course_mapper","2017/10/20 8:54:31","com_trt_course_mapper" +"A05","ケツエキ.シユヨウナイカ","血腫","血液・腫瘍内科","20230512","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","com_trt_course_mapper","2017/10/20 8:54:31","com_trt_course_mapper" +"A06","ナイカ(ジユンカンキ)","内循","内科(循環器)","20230512","NULL","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","com_trt_course_mapper","2017/10/20 8:54:31","com_trt_course_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/expect_com_trt_course_update.csv b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/expect_com_trt_course_update.csv new file mode 100644 index 00000000..1bc94e34 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/expect_com_trt_course_update.csv @@ -0,0 +1,7 @@ +"trt_course_cd","trt_course_name_kana","trt_course_name_abb","trt_course_name","regist_ymd","update_ymd","delete_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id" +"A01","","","","20171020","20230512","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2023/05/12 8:59:56","com_trt_course_mapper" +"A02","シユヨウカ","腫瘍","腫瘍科","20171020","20230512","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2023/05/12 8:59:56","com_trt_course_mapper" +"A03","シユヨウナイカ","腫内","腫瘍内科","20171020","20230512","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2023/05/12 8:59:56","com_trt_course_mapper" +"A04","シユヨウナイカ(トウツウカンワ)","腫疼","腫瘍内科(疼痛緩和)","20171020","20230512","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2023/05/12 8:59:56","com_trt_course_mapper" +"A05","ナイカ(ジユンカンキ)","内循","内科(循環器)","20171020","20230512","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2023/05/12 8:59:56","com_trt_course_mapper" +"A06","ケツエキ.シユヨウナイカ","血腫","血液・腫瘍内科","20171020","20230512","NULL","NULL","NULL","NULL","NULL","2017/10/20 8:54:31","clsComTrtCourse","2023/05/12 8:59:56","com_trt_course_mapper" diff --git a/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/test_com_trt_course_mapper.py b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/test_com_trt_course_mapper.py new file mode 100644 index 00000000..9646fc63 --- /dev/null +++ b/ecs/jskult-batch-daily/tests/batch/ultmarc/utmp_tables/table_mapper/com_trt_course/test_com_trt_course_mapper.py @@ -0,0 +1,197 @@ +import os.path as path +from datetime import datetime + +import pytest + +from src.batch.common.batch_context import BatchContext +from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_trt_course_mapper +from src.db.database import Database +from tests.testing_utility import (assert_table_results, + create_db_data_from_csv, + create_delete_sql_with_parameter, + create_insert_sql_with_parameter, + create_ultmarc_table_mapper_sut, + create_ultmarc_test_data_from_csv) + + +class TestComTrtCourseMapper: + """レイアウト区分001: COM_診療科目""" + + db: Database + batch_context: BatchContext + test_file_path: str = path.dirname(__file__) + + @pytest.fixture(autouse=True, scope='function') + def pre_test(self, database: Database): + """テスト実行前後処理""" + self.batch_context = BatchContext.get_instance() + # setup + self.db = database + self.db.connect() + self.db.begin() + + # testing + yield + + # teardown + self.db.rollback() + self.db.disconnect() + + def test_insert_record(self): + """ + Cases: + COM_診療科目テーブルにレコードを登録する + Arranges: + - CSVデータを用意し、読み込む + - 追加対象となるレコードを削除する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_trt_course_insert.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_trt_course', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_trt_course_mapper.ComTrtCourseMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_trt_course_mapper.ComTrtCourseMapper, f'{line_number}行目:マッパークラスが期通りか' + + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_trt_course_insert.csv')) + primary_keys = [f"'{primary_key['trt_course_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_trt_course WHERE trt_course_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ['regist_ymd', 'sys_regist_date', 'sys_update_date']: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_update_record(self): + """ + Cases: + COM_診療科目テーブルのレコードを更新する + Arranges: + - CSVデータを用意し、読み込む + - 更新対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_trt_course_update.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_trt_course', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_trt_course_before_update.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_trt_course', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_trt_course_mapper.ComTrtCourseMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_trt_course_mapper.ComTrtCourseMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_trt_course_update.csv')) + primary_keys = [f"'{primary_key['trt_course_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_trt_course WHERE trt_course_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' + + def test_logical_delete(self): + """ + Cases: + COM_診療科目テーブルのレコードを1件論理削除する + Arranges: + - CSVデータを用意し、読み込む + - 削除対象となるレコードを登録する + Expects: + - 登録内容が期待値と一致すること + """ + + # Arrange + # 処理日設定 + self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d') + # テスト用のCSVを読み込む + test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_trt_course_delete.csv')) + # 一旦全データをDBから削除 + delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_trt_course', {'1': '1'}) + self.db.execute(delete_sql, delete_parameter) + # テストデータをDBに登録 + # DBデータを読み込む + test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_trt_course_before_delete.csv')) + for test_data in test_sql_data_list: + insert_sql, insert_parameter = create_insert_sql_with_parameter( + 'src05.com_trt_course', + test_data.keys(), + test_data.values() + ) + self.db.execute(insert_sql, insert_parameter) + + # Act + for line_number, line in enumerate(test_dat_file, start=1): + sut: com_trt_course_mapper.ComTrtCourseMapper = create_ultmarc_table_mapper_sut(line, self.db) + assert type(sut) is com_trt_course_mapper.ComTrtCourseMapper, f'{line_number}行目:マッパークラスが期通りか' + sut.make_query() + sut.execute_queries() + + # Assert + # 期待値ファイルを読み込む + expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_trt_course_delete.csv')) + primary_keys = [f"'{primary_key['trt_course_cd']}'" for primary_key in expect_data_list] + actual_select_sql = f"SELECT * FROM src05.com_trt_course WHERE trt_course_cd IN ({','.join(primary_keys)})" + actual_data_list = self.db.execute_select(actual_select_sql) + # 期待値検査 + ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns) + # 動的日付項目の個別確認 + line_number = 0 + for actual_row, expect_row in zip(actual_data_list, expect_data_list): + line_number += 1 + for actual_col_name, expect_col_name in zip(actual_row, expect_row): + if actual_col_name in ignore_columns: + if expect_row[expect_col_name] is None: + assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと' + else: + assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること' diff --git a/rds_mysql/stored_procedure/src05/v_inst_merge_t_create.sql b/rds_mysql/stored_procedure/src05/v_inst_merge_t_create.sql index fb609b8c..6a6f9dd7 100644 --- a/rds_mysql/stored_procedure/src05/v_inst_merge_t_create.sql +++ b/rds_mysql/stored_procedure/src05/v_inst_merge_t_create.sql @@ -40,7 +40,8 @@ BEGIN fcl_name, fcl_kn_name, fmt_addr, - prft_cd + prft_cd, + fcl_type ) SELECT vhmv.v_inst_cd, @@ -48,7 +49,8 @@ BEGIN fmv.fcl_name, fmv.fcl_kn_name, fmv.fmt_addr, - fmv.prft_cd + fmv.prft_cd, + fmv.fcl_type FROM src05.vop_hco_merge_v vhmv, src05.fcl_mst_v fmv @@ -66,7 +68,6 @@ BEGIN WHERE vhmv.v_inst_cd_merg = fmv.v_inst_cd AND STR_TO_DATE(vhmv.apply_dt, '%Y-%m-%d') <= src05.get_syor_date() - AND ((fmv.fcl_type IN ('A1','A0')) OR fmv.fcl_type BETWEEN '20' AND '29') AND fmv.rec_sts_kbn != '9'; call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,