Merge branch 'develop' into feature-NEWDWH2021-1005_jskimport_testcodesample
This commit is contained in:
commit
2732a86e41
@ -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)
|
||||
|
||||
|
||||
|
||||
@ -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()
|
||||
@ -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()
|
||||
|
||||
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
@ -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}')
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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]
|
||||
@ -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])
|
||||
@ -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]
|
||||
@ -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])
|
||||
@ -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 # 個人コード(個人コード)
|
||||
|
||||
@ -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]
|
||||
@ -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
|
||||
]
|
||||
@ -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
|
||||
@ -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()
|
||||
@ -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 # 医療機器評価名称(漢字)
|
||||
|
||||
@ -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
|
||||
@ -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 # 修正区分
|
||||
|
||||
@ -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]
|
||||
@ -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])
|
||||
@ -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])
|
||||
@ -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])
|
||||
@ -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])
|
||||
@ -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])
|
||||
@ -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]
|
||||
@ -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]
|
||||
@ -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
|
||||
@ -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])
|
||||
@ -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]
|
||||
@ -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]
|
||||
@ -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
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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}')
|
||||
|
||||
@ -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"
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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}が、期待値以降であること'
|
||||
@ -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",""
|
||||
|
@ -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"
|
||||
|
@ -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",""
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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}が、期待値以降であること'
|
||||
@ -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","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
|
@ -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","","",""
|
||||
|
@ -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","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
Can't render this file because it contains an unexpected character in line 1 and column 7.
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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}が、期待値以降であること'
|
||||
@ -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",""
|
||||
|
@ -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",""
|
||||
|
@ -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",""
|
||||
|
@ -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"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user