Merge branch 'develop' into feature-NEWDWH2021-1061
# Conflicts: # ecs/jskult-batch-daily/src/jobctrl_daily.py
This commit is contained in:
commit
51c5da7416
@ -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
|
||||
@ -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
|
||||
File diff suppressed because it is too large
Load Diff
@ -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,104 @@
|
||||
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):
|
||||
"""レイアウト区分133: 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,104 @@
|
||||
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):
|
||||
"""レイアウト区分132: 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,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,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,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):
|
||||
"""レイアウト区分133: 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):
|
||||
"""レイアウト区分132: 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):
|
||||
"""レイアウト区分132: 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])
|
||||
@ -30,6 +30,20 @@ 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.null_mapper import \
|
||||
NullMapper
|
||||
|
||||
@ -39,9 +53,9 @@ COM_TABLE_LIST = {
|
||||
# COM_医師学会
|
||||
"521": ComDrSosietyMapper,
|
||||
# COM_施設属性
|
||||
"111": NullMapper,
|
||||
"111": ComInstAttMapper,
|
||||
# COM_臨床研修病院
|
||||
"112": NullMapper,
|
||||
"112": ComCopHpMapper,
|
||||
# COM_医師
|
||||
"501": ComDrMapper,
|
||||
# COM_施設
|
||||
@ -53,15 +67,15 @@ COM_TABLE_LIST = {
|
||||
# COM_専門分野
|
||||
"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,
|
||||
# COM_病院種別
|
||||
|
||||
@ -8,7 +8,7 @@ from src.batch.batch_functions import (
|
||||
from src.batch.common.batch_context import BatchContext
|
||||
from src.batch.common.calendar_file import CalendarFile
|
||||
from src.batch.dcf_inst_merge import create_dcf_inst_merge
|
||||
from src.batch.laundering import create_mst_inst
|
||||
from src.batch.laundering mst_inst_laundering
|
||||
from src.batch.ultmarc import ultmarc_process
|
||||
from src.error.exceptions import BatchOperationException
|
||||
from src.logging.get_logger import get_logger
|
||||
@ -92,7 +92,7 @@ def exec():
|
||||
|
||||
try:
|
||||
logger.info('メルク施設マスタ作成:起動')
|
||||
create_mst_inst.exec()
|
||||
mst_inst_laundering.exec()
|
||||
logger.info('メルク施設マスタ作成:終了')
|
||||
except BatchOperationException as e:
|
||||
logger.exception(f'メルク施設マスタ作成 エラー(異常終了){e}')
|
||||
|
||||
@ -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}が、期待値以降であること'
|
||||
@ -28,13 +28,13 @@ class TestComInstMapper:
|
||||
# setup
|
||||
self.db = database
|
||||
self.db.connect()
|
||||
# self.db.begin()
|
||||
self.db.begin()
|
||||
|
||||
# testing
|
||||
yield
|
||||
|
||||
# teardown
|
||||
# self.db.rollback()
|
||||
self.db.rollback()
|
||||
self.db.disconnect()
|
||||
|
||||
def test_insert_record(self):
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
"111","123","456789","99","B","1","NULL","NULL","9","20230510","20230511","2","2023","20230514","5","20230516","20230517","8","20230519","20230520","1","22.1","20230523","20230524","5","20230526","20230527","8","20230529","20230530","1","20230502","20230503","4","20230505","20230506","7","20230508","20230509","0","20230501","20230402","3","20230404","20230405","6","20230407","20230408","9","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","0","20230701","20230702","3","20230704","20230705","6","20230707","20230708","9","80","81","82","83","84","85","86","87","88","89","0","20230901","20230902","3","20230904","20230905","6","20230907","20230908","9","20231001","20231011","2","3","4","105","106","20231007","20231008","109","110","20231101","20231102","113","4","0115","116","7","0118","119","0","0121","122","3","4","5","6","127","8","129","20230130","20230131","2","33","20230104","20230105","6","20230107","20230108","9","20230104","20230101","2","20230103","20230104","5","6","7","8","9","0","1","20230102","20230403","4","20230105","20230106","7","8","9","160","1","162","3","164","5","166","7","168","9","170","1","172","3","174","5","176","7","178","9","180","1","182","3","184","5","186","7","188","9","190","1","192","3","194","5","196","7","198","9","200","1","202","3","204","5","206","7","208","9","210","1","212","3","214","5","216","7","218","9","220","1","222","3","224","5","226","7","228","9","230","1","232","3","234","5","236","7","238","9","0","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","1","62","3","64","5","66","7","68","9","70","1","72","3","74","5","76","7","78","9","80","1","82","3","84","5","86","7","88","9","90","1","92","3","94","5","96","7","98","9","00","1","2","3","0000304","05","202303"
|
||||
"111","00","9900146","","B","1","20160905","20160910","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"111","00","9900615","","B","1","20160905","20160910","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"111","00","9901806","","B","1","20160905","20160910","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"111","00","9901918","","B","1","20160905","20160910","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"111","00","9904136","","B","1","20160905","20160910","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
|
Can't render this file because it has a wrong number of fields in line 2.
|
@ -0,0 +1,20 @@
|
||||
"111","123","456789","99","A","0","NULL","NULL","9","20230510","20230511","2","2023","20230514","5","20230516","20230517","8","20230519","20230520","1","22.1","20230523","20230524","5","20230526","20230527","8","20230529","20230530","1","20230502","20230503","4","20230505","20230506","7","20230508","20230509","0","20230501","20230402","3","20230404","20230405","6","20230407","20230408","9","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","0","20230701","20230702","3","20230704","20230705","6","20230707","20230708","9","80","81","82","83","84","85","86","87","88","89","0","20230901","20230902","3","20230904","20230905","6","20230907","20230908","9","20231001","20231011","2","3","4","105","106","20231007","20231008","109","110","20231101","20231102","113","4","0115","116","7","0118","119","0","0121","122","3","4","5","6","127","8","129","20230130","20230131","2","33","20230104","20230105","6","20230107","20230108","9","20230104","20230101","2","20230103","20230104","5","6","7","8","9","0","1","20230102","20230403","4","20230105","20230106","7","8","9","160","1","162","3","164","5","166","7","168","9","170","1","172","3","174","5","176","7","178","9","180","1","182","3","184","5","186","7","188","9","190","1","192","3","194","5","196","7","198","9","200","1","202","3","204","5","206","7","208","9","210","1","212","3","214","5","216","7","218","9","220","1","222","3","224","5","226","7","228","9","230","1","232","3","234","5","236","7","238","9","0","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","1","62","3","64","5","66","7","68","9","70","1","72","3","74","5","76","7","78","9","80","1","82","3","84","5","86","7","88","9","90","1","92","3","94","5","96","7","98","9","00","1","2","3","0000304","05","202303"
|
||||
"111","00","9900146","","A","2","20141113","20141114","1","20080701","","","","","1","20100401","","","","","1","","20011022","","1","20130501","","1","20130501","","1","20130501","","1","20130501","","1","20130501","","1","20130501","","","","20081130","1","20130501","","1","99","","","","","","","","","","","","","","","","","","","","1","20130501","","1","20140401","","1","20130501","","1","01","02","03","04","","","","","","","1","20130501","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","1","4","","","","","","","","","","","20040229","1","20031030","","1","20050914","","1","1","","1","","","","","","1","20090401","","","","1","217","5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","31","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195604"
|
||||
"111","00","9900194","","A","2","20141113","20141114","1","20060501","","","","","","","","","","","","","","20111231","","","","","","","1","20130801","","1","20140501","","1","20120401","","","","","","","","","","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20091101","","1","20131101","","1","01","02","03","","","","","","","","1","20080601","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","08","20130705","","","","","","","20110331","1","20040331","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198204"
|
||||
"111","00","9900615","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"111","00","9900631","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20120401","","1","20060401","","1","19971001","","","1","1","3991","6","19990930","","","","","","6","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"111","00","9900700","","A","2","20141113","20141114","1","20100701","","","","","1","20100401","","","","","1","","20080514","","1","20080401","","","","","1","20140401","","1","20061101","","1","20080401","","1","20120601","","","","","1","20080601","","1","99","","","","","","","","","","","","","","","","","","","","1","20061101","","1","20061101","","1","20080401","","1","01","02","03","","","","","","","","1","20061101","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","1","4","","","","","","","","20061118","1","20030401","","","","","1","20031030","","1","1","1","1","","","","","","","","","","","1","169","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","31","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195310"
|
||||
"111","00","9901649","","A","2","20141113","20141114","","","","1","2009","","","","","","","","","","","","","","","","","","1","20121201","","1","20080901","","","","20080331","","","","","","","1","20080701","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","","","","1","01","02","03","","","","","","","","1","19970701","","1","20130101","","1","20060401","","","","","1","9","1","I001","43","20061001","","","","","","43","1","B999","120","","","","","","","","","","","","","","","","1","12","20131101","","","","","","","","","","","","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198004"
|
||||
"111","00","9901806","","A","2","20141113","20141114","1","20090401","","","","","1","20100401","","","","","1","","20130806","","1","20080401","","","","","1","20131101","","1","20000401","","1","20080401","","","","","","","","1","20130901","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20020401","","1","20110701","","1","01","02","03","","","","","","","","1","19960401","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","1","8","","","","20010731","1","13","20140502","","","","20040229","1","20031030","","1","20031030","","1","1","","1","","","","","","","","","1","1","1","202","1","198","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","31","34","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195011"
|
||||
"111","00","9901820","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","19981130","1","20030601","","","","","1","01","02","","","","","","","","","","","","1","20140301","","","","","","","","1","1","1","","","","","4101","116","20090501","","116","1","B999","40","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","196405"
|
||||
"111","00","9901918","","A","2","20141113","20141114","","","","","","","","","","","","","1","84.6","20020218","","","","","","","","1","20130901","","1","20051001","","1","20120101","","","","","","","","1","19780401","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","","","20070531","","","","1","01","02","03","04","","","","","","","","","20070228","","","","","","","","","","1","1","1","I002","84","20120101","","","","","","84","1","B999","177","","","","","","","","","","","","","","","","1","11","20110506","","","","","","","","","","","","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","3404537","","196601"
|
||||
"111","00","9902043","","A","2","20141113","20141114","1","20140401","","","","20140331","","","","","","","","","","","","","","","","","1","20130501","","1","20100401","","1","20100401","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20100601","","","","","1","20100401","","1","01","02","","","","","","","","","","","","","","","","","","","","","1","9","1","I002","48","20110401","","","","","","48","1","B999","224","1","M999","40","1","K999","4","","","1","1","4","","","","","","","","","","","","","","","1","20040331","","1","1","","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","201004"
|
||||
"111","00","9902175","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20111001","","1","20111001","","1","20111001","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20110331","","","","","1","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","199704"
|
||||
"111","00","9902728","","A","2","20141113","20141114","1","20090401","","","","","","","","","","","","","","","","","","","","","1","20140401","","1","20140401","","1","20120801","","","","","1","20100401","","","","20040131","1","99","","","","","","","","","","","","","","","","","","","","1","20040214","","1","20100801","","1","20120401","","1","01","02","03","04","","","","","","","1","20030801","","","","","","","","","","","","","","","","","20040430","","","","20040430","","","","","","","","","","","","","","","","","","","","1","08","20121207","","","","","","","","1","20080919","","","1","1","","","","","","","","","","1","1","1","198","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","5303814","","198005"
|
||||
"111","00","9903500","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","2","9","1","I001","26","20061001","","","","","","26","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198912"
|
||||
"111","00","9904136","","A","2","20141113","20141114","1","20080701","","","","","","","","","","","1","","20111125","","1","20110401","","1","20130501","","1","20120601","","1","20110401","","1","20110401","","","","","","","","1","20110401","","1","99","","","","","","","","","","","","","","","","","","","","1","20110401","","1","20110801","","1","20110401","","1","01","02","03","04","","","","","","","1","20110401","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","1","1","1","10","","","","","1","13","20140307","","","","","1","19990401","","1","20040331","","1","1","1","1","","","","","","","","","1","","1","228","5","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","34","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195208"
|
||||
"111","00","9904439","","A","2","20141113","20141114","1","20060401","","","","","","","20100331","","","","1","97.9","20041105","","","","","","","","1","20130401","","1","20140401","","1","20100701","","","","","","","","1","20020201","","1","99","","","","","","","","","","","","","","","","","","","","1","20140401","","1","20140401","","","","","1","01","02","03","","","","","","","","1","20131101","","","","","","","","","","","1","1","1","I001","54","20120401","","","","","20040930","54","1","B999","450","","","","","","","","","","","","1","21","20130901","","1","13","20130906","","","","","1","20041001","","","","","1","1","1","","","","","","","","","","1","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","198812"
|
||||
"111","00","9906696","","A","2","20141113","20141114","1","20060601","","","","","","","","","","","1","","20100401","","1","20080401","","","","","1","20140401","","1","20020401","","1","20080701","","","","","","","","1","20090401","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20040501","","","","20081130","1","01","02","03","04","","","","","","","1","19970901","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","13","20140404","","","","","1","20031030","","1","20031027","","","1","1","","","","","","","","","","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","00","8106522","","199708"
|
||||
"111","00","9908576","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","1","20080401","","","","","","","","","","","","","","","","","","20070831","","","20070831","","","","2","9","1","I001","33","20130401","","","","","","33","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","200704"
|
||||
"111","00","9910624","","A","2","20141113","20141114","1","20030401","","","","","1","20120401","","1","19940201","","","","","","1","20120401","","","","","","","","1","20121201","","1","20090701","","1","20061101","","","","","","","","1","99","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20140401","","1","20140401","","1","01","02","03","04","","","","","","","1","20140401","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","08","20100402","","","","20060331","1","20041001","","1","20040331","","1","1","1","","","1","2","20070702","","","","","1","1","1","002","1","006","1","051","4","004","1","100","2","165","1","035","1","168","1","118","1","101","1","182","","202","1","214","5","149","","197","1","198","","177","1","183","1","213","5","217","5","212","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","11","31","34","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","192202"
|
||||
"111","00","9929798","","A","2","20141113","20141114","1","20080701","","","","","","","","","","","","","","","","","","","","","1","20100401","","1","20090301","","1","20100401","","","","20080531","","","","1","19971201","","","","","","","","","","","","","","","","","","","","","","","1","20100401","","","","","1","20080401","","1","01","02","03","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","13","20140106","","","","","","","","1","20040331","","","1","1","","","","","","","","","","1","1","1","168","1","197","1","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","195305"
|
||||
|
@ -0,0 +1,5 @@
|
||||
"111","123","456789","99","A","0","NULL","NULL","9","20230510","20230511","2","2023","20230514","5","20230516","20230517","8","20230519","20230520","1","22.1","20230523","20230524","5","20230526","20230527","8","20230529","20230530","1","20230502","20230503","4","20230505","20230506","7","20230508","20230509","0","20230501","20230402","3","20230404","20230405","6","20230407","20230408","9","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","0","20230701","20230702","3","20230704","20230705","6","20230707","20230708","9","80","81","82","83","84","85","86","87","88","89","0","20230901","20230902","3","20230904","20230905","6","20230907","20230908","9","20231001","20231011","2","3","4","105","106","20231007","20231008","109","110","20231101","20231102","113","4","0115","116","7","0118","119","0","0121","122","3","4","5","6","127","8","129","20230130","20230131","2","33","20230104","20230105","6","20230107","20230108","9","20230104","20230101","2","20230103","20230104","5","6","7","8","9","0","1","20230102","20230403","4","20230105","20230106","7","8","9","160","1","162","3","164","5","166","7","168","9","170","1","172","3","174","5","176","7","178","9","180","1","182","3","184","5","186","7","188","9","190","1","192","3","194","5","196","7","198","9","200","1","202","3","204","5","206","7","208","9","210","1","212","3","214","5","216","7","218","9","220","1","222","3","224","5","226","7","228","9","230","1","232","3","234","5","236","7","238","9","0","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","1","62","3","64","5","66","7","68","9","70","1","72","3","74","5","76","7","78","9","80","1","82","3","84","5","86","7","88","9","90","1","92","3","94","5","96","7","98","9","00","1","2","3","0000304","05","202303"
|
||||
"111","00","9900631","","B","","20141113","20141114","1","20171009","","1","2017","20171009","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","@","","","@","","","","","","","@","@","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","3","","","","","","","","","","","","","","","","","","","","1","1","2","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1","0","12","","20",""
|
||||
"111","00","9901649","","B","","20141113","20141114","","","","1","2009","20171010","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","201710"
|
||||
"111","00","9990146","","B","","20171113","20171114","@","","","@","","","@","","","@","","","@","","","","@","","","@","","","@","","","@","","","@","","","@","","","@","","","@","","","@","","","","","","","","","","","","","","","","","","","","","@","","","@","","","@","","","@","","","","","","","","","","","@","","","@","","","@","","","@","","","@","@","@","","","","","","","","","","@","","","@","","","@","","","@","","","@","","@","","","","@","","","","@","","","","","","","","","@","@","","","@","@","","","","@","","","@","@","@","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","@","","","","","","","","","","","","","","","","","","","","","@","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","@","","","","@"
|
||||
"111","99","9999999","99","B","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,232 @@
|
||||
import os.path as path
|
||||
from datetime import datetime
|
||||
from decimal import Decimal
|
||||
|
||||
import pytest
|
||||
|
||||
from src.batch.common.batch_context import BatchContext
|
||||
from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_inst_att_mapper
|
||||
from src.db.database import Database
|
||||
from tests.testing_utility import (assert_table_results,
|
||||
create_db_data_from_csv,
|
||||
create_delete_sql_with_parameter,
|
||||
create_insert_sql_with_parameter,
|
||||
create_ultmarc_table_mapper_sut,
|
||||
create_ultmarc_test_data_from_csv)
|
||||
|
||||
|
||||
class TestComInstAttMapper:
|
||||
"""レイアウト区分111: COM_施設属性"""
|
||||
|
||||
db: Database
|
||||
batch_context: BatchContext
|
||||
test_file_path: str = path.dirname(__file__)
|
||||
|
||||
# smallint型のカラム群
|
||||
smallint_columns = [
|
||||
'areasuphpintrate',
|
||||
'resthpbednum',
|
||||
'resthpcarebednum',
|
||||
'resthpsbednum',
|
||||
'nrmhpbedtotalnum',
|
||||
'menthpbednum',
|
||||
'tubhpbednum',
|
||||
'infhpbednum',
|
||||
'hospicebednum'
|
||||
]
|
||||
|
||||
@pytest.fixture(autouse=True, scope='function')
|
||||
def pre_test(self, database: Database):
|
||||
"""テスト実行前後処理"""
|
||||
self.batch_context = BatchContext.get_instance()
|
||||
# setup
|
||||
self.db = database
|
||||
self.db.connect()
|
||||
self.db.begin()
|
||||
|
||||
# testing
|
||||
yield
|
||||
|
||||
# teardown
|
||||
self.db.rollback()
|
||||
self.db.disconnect()
|
||||
|
||||
def test_insert_record(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_施設属性テーブルにレコードを登録する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 追加対象となるレコードを削除する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_inst_att_insert.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_inst_att', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_inst_att_mapper.ComInstAttMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_inst_att_mapper.ComInstAttMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_inst_att_insert.csv'))
|
||||
primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list]
|
||||
actual_select_sql = f"SELECT * FROM src05.com_inst_att WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})"
|
||||
actual_data_list = self.db.execute_select(actual_select_sql)
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + self.smallint_columns
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if actual_col_name in self.smallint_columns:
|
||||
if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0:
|
||||
if actual_col_name == 'areasuphpintrate':
|
||||
assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること'
|
||||
else:
|
||||
assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_update_record(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_施設属性テーブルのレコードを更新する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 更新対象となるレコードを登録する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_inst_att_update.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_inst_att', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
# テストデータをDBに登録
|
||||
# DBデータを読み込む
|
||||
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_inst_att_before_update.csv'))
|
||||
for test_data in test_sql_data_list:
|
||||
insert_sql, insert_parameter = create_insert_sql_with_parameter(
|
||||
'src05.com_inst_att',
|
||||
test_data.keys(),
|
||||
test_data.values()
|
||||
)
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_inst_att_mapper.ComInstAttMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_inst_att_mapper.ComInstAttMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_inst_att_update.csv'))
|
||||
primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list]
|
||||
actual_select_sql = f"SELECT * FROM src05.com_inst_att WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})"
|
||||
actual_data_list = self.db.execute_select(actual_select_sql)
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date'] + self.smallint_columns
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
if actual_col_name in self.smallint_columns:
|
||||
if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0:
|
||||
if actual_col_name == 'areasuphpintrate':
|
||||
assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること'
|
||||
else:
|
||||
assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_logical_delete(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_施設属性テーブルのレコードを1件論理削除する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 削除対象となるレコードを登録する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_inst_att_delete.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_inst_att', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
# テストデータをDBに登録
|
||||
# DBデータを読み込む
|
||||
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_inst_att_before_delete.csv'))
|
||||
for test_data in test_sql_data_list:
|
||||
insert_sql, insert_parameter = create_insert_sql_with_parameter(
|
||||
'src05.com_inst_att',
|
||||
test_data.keys(),
|
||||
test_data.values()
|
||||
)
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_inst_att_mapper.ComInstAttMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_inst_att_mapper.ComInstAttMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_inst_att_delete.csv'))
|
||||
primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list]
|
||||
actual_select_sql = f"SELECT * FROM src05.com_inst_att WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})"
|
||||
actual_data_list = self.db.execute_select(actual_select_sql)
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'update_ymd', 'delete_ymd', 'sys_update_date', 'sys_regist_date'] + self.smallint_columns
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
if actual_col_name in self.smallint_columns:
|
||||
if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0:
|
||||
if actual_col_name == 'areasuphpintrate':
|
||||
assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること'
|
||||
else:
|
||||
assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
@ -0,0 +1,3 @@
|
||||
"132","00","9900194","","B","1","20170406","20170408","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"132","00","9901649","","B","1","20170406","20170408","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"132","00","9929798","","B","1","20170406","20170408","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
|
@ -0,0 +1,6 @@
|
||||
"132","00","9900146","","A","2","20141113","20141114","20140624","","1","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20130401","20140331","49.8","20130401","20140331","","","","","","","","","","","","","","","","","","","","39.3","","","","","","","","20130401","20140331"
|
||||
"132","00","9900194","","A","2","20141113","20141114","20121101","http://www.hospital.misawa.aomori.jp/","1","1","1","0","20100401","20110331","1","1","1","1","1","1","1","1","1","1","1","1","1","1","3","205.4","","","","","","","","20100401","20110331","468.1","20100401","20110331","8.3","20100401","20110331","","","","","","","","","","","","","","","","","18.7","","","","","","0.0","","20100401","20110331"
|
||||
"132","00","9901649","","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"132","00","9901679","","A","2","20141113","20141114","20140627","http://www.kai-sei-kai.com/","1","","","","","","1","1","1","1","1","","1","","","","","1","","1","2","58.5","229.2","102.3","131.3","","","","","20130401","20140331","96.0","20130401","20140331","","","","","","","","","","","","","","","","","","","","20.4","641.3","533.2","749.2","","","","","20130401","20140331"
|
||||
"132","00","9929798","","A","2","20141113","20141114","20130611","http://www.urakawa.jrc.or.jp/","1","","","","","","1","1","1","1","1","","1","","","","","","","1","1","114.6","46.6","","","39.9","0.0","0.0","","20120401","20130331","481.6","20120401","20130331","16.2","20120401","20130331","","","","","","","","","","","","","","","","","15.6","555.3","","","169.4","0.0","0.0","","20120401","20130331"
|
||||
"132","99","9999999","99","A","2","20141113","20141114","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331"
|
||||
|
@ -0,0 +1,6 @@
|
||||
"132","00","9900146","","B","","20141113","20141114","@","http://yahoo.co.jp/","@","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20171009","20171009","55.5","","","","","","","","","","","","","","","","","","","","","","","55.5","66.6","","","","","","",""
|
||||
"132","00","9900194","","B","","20141113","20141114","20121101","http://www.hospital.misawa.aomori.jp/","","","@","","","","","","","","@","","@","@","","","","","","","","@","","","","","","","","","","@","","","@","","","111","112","113","114","115","116","117","118","20170101","20171010","","","","","","","@","","","","","","","","",""
|
||||
"132","00","9901679","","B","","20141113","20141114","20171009","","","","","","","","@","@","@","@","","","","","1","2","3","5","4","@","","@","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","@","","","","","","","","",""
|
||||
"132","99","9999999","99","A","2","20141113","20141114","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
|
||||
"132","99","9999999","00","A","2","20141113","20141114","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@"
|
||||
"132","99","9999999","11","A","2","20141113","20141114","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331"
|
||||
|
@ -0,0 +1,6 @@
|
||||
"dcf_dsf_inst_cd","info_date","home_page","hppre_flg","expre_flg","trial_flg","trial_contcount","trialwhet_from","trialwhet_to","equipment_flg","cos_disease_flg","cos_surgery","specialclinic_flg","establishment_flg","critical_flg","cop_system","sys_exists_flg","sys_inspection","sys_prescription","sys_reserv","icduse_flg","echart_flg","fulltime_flg","fulltime_count","ge_patient_avg","mt_patient_avg","mc_patient_avg","ca_patient_avg","pys_patient_avg","tub_patient_avg","inf_patient_avg","patient_avg_sum","patient_avg_from","patient_avg_to","cl_patient_avg","cl_patient_avg_from","cl_patient_avg_to","hm_patient_avg","hm_patient_avg_from","hm_patient_avg_to","ge_patient_ex","mt_patient_ex","mc_patient_ex","ca_patient_ex","pys_patient_ex","tub_patient_ex","inf_patient_ex","patient_ex_sum","patient_ex_from","patient_ex_to","cl_patient_ex","cl_patient_ex_from","cl_patient_ex_to","hm_patient_ex","hm_patient_ex_from","hm_patient_ex_to","ge_stay_avg","mt_stay_avg","mc_stay_avg","ca_stay_avg","pys_stay_avg","tub_stay_avg","inf_stay_avg","stay_avg_sum","stay_avg_from","stay_avg_to","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","NULL","http://yahoo.co.jp/","NULL","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20171009","20171009","55.5","","","","","","","","","","","","","","","","","","","","","","39.3","","","","","","","","20130401","20140331","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/11 21:20:37","clsComPrefcMedBase"
|
||||
"009900194","20121101","http://www.hospital.misawa.aomori.jp/","1","1","NULL","NULL","NULL","NULL","1","1","1","1","NULL","1","NULL","NULL","NULL","NULL","NULL","1","1","1","3","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","111","112","113","114","115","116","117","118","20170101","20171010","","","","","","","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/11 21:20:37","clsComPrefcMedBase"
|
||||
"009901649","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase"
|
||||
"009901679","20171009","http://www.kai-sei-kai.com/","1","","","","","","NULL","NULL","NULL","NULL","1","","1","","","","","5","4","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","96.0","20130401","20140331","","","","","","","","","","","","","","","","","","","","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/11 21:20:37","clsComPrefcMedBase"
|
||||
"009929798","20130611","http://www.urakawa.jrc.or.jp/","1","","","","","","1","1","1","1","1","","1","","","","","","","1","1","114.6","46.6","","","39.9","0.0","0.0","","20120401","20130331","481.6","20120401","20130331","16.2","20120401","20130331","","","","","","","","","","","","","","","","","15.6","555.3","","","169.4","0.0","0.0","","20120401","20130331","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase"
|
||||
|
@ -0,0 +1,9 @@
|
||||
"dcf_dsf_inst_cd","info_date","home_page","hppre_flg","expre_flg","trial_flg","trial_contcount","trialwhet_from","trialwhet_to","equipment_flg","cos_disease_flg","cos_surgery","specialclinic_flg","establishment_flg","critical_flg","cop_system","sys_exists_flg","sys_inspection","sys_prescription","sys_reserv","icduse_flg","echart_flg","fulltime_flg","fulltime_count","ge_patient_avg","mt_patient_avg","mc_patient_avg","ca_patient_avg","pys_patient_avg","tub_patient_avg","inf_patient_avg","patient_avg_sum","patient_avg_from","patient_avg_to","cl_patient_avg","cl_patient_avg_from","cl_patient_avg_to","hm_patient_avg","hm_patient_avg_from","hm_patient_avg_to","ge_patient_ex","mt_patient_ex","mc_patient_ex","ca_patient_ex","pys_patient_ex","tub_patient_ex","inf_patient_ex","patient_ex_sum","patient_ex_from","patient_ex_to","cl_patient_ex","cl_patient_ex_from","cl_patient_ex_to","hm_patient_ex","hm_patient_ex_from","hm_patient_ex_to","ge_stay_avg","mt_stay_avg","mc_stay_avg","ca_stay_avg","pys_stay_avg","tub_stay_avg","inf_stay_avg","stay_avg_sum","stay_avg_from","stay_avg_to","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","20140624","","1","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20130401","20140331","49.8","20130401","20140331","","","","","","","","","","","","","","","","","","","","39.3","","","","","","","","20130401","20140331","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase"
|
||||
"009900194","20121101","http://www.hospital.misawa.aomori.jp/","1","1","1","0","20100401","20110331","1","1","1","1","1","1","1","1","1","1","1","1","1","1","3","205.4","","","","","","","","20100401","20110331","468.1","20100401","20110331","8.3","20100401","20110331","","","","","","","","","","","","","","","","","18.7","","","","","","0.0","","20100401","20110331","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase"
|
||||
"009901649","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase"
|
||||
"009901679","20140627","http://www.kai-sei-kai.com/","1","","","","","","1","1","1","1","1","","1","","","","","1","","1","2","58.5","229.2","102.3","131.3","","","","","20130401","20140331","96.0","20130401","20140331","","","","","","","","","","","","","","","","","","","","20.4","641.3","533.2","749.2","","","","","20130401","20140331","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase"
|
||||
"009929798","20130611","http://www.urakawa.jrc.or.jp/","1","","","","","","1","1","1","1","1","","1","","","","","","","1","1","114.6","46.6","","","39.9","0.0","0.0","","20120401","20130331","481.6","20120401","20130331","16.2","20120401","20130331","","","","","","","","","","","","","","","","","15.6","555.3","","","169.4","0.0","0.0","","20120401","20130331","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase"
|
||||
"99999999900","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","20130331","NULL","NULL","NULL","NULL","NULL","2000/05/09 20:39:15","aaaaa","2000/05/09 20:39:15","aaaaa"
|
||||
"99999999999","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","20130331","NULL","NULL","NULL","NULL","NULL","2000/05/09 20:39:15","aaaaa","2000/05/09 20:39:15","aaaaa"
|
||||
"99999999911","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase"
|
||||
|
@ -0,0 +1,3 @@
|
||||
"dcf_dsf_inst_cd","info_date","home_page","hppre_flg","expre_flg","trial_flg","trial_contcount","trialwhet_from","trialwhet_to","equipment_flg","cos_disease_flg","cos_surgery","specialclinic_flg","establishment_flg","critical_flg","cop_system","sys_exists_flg","sys_inspection","sys_prescription","sys_reserv","icduse_flg","echart_flg","fulltime_flg","fulltime_count","ge_patient_avg","mt_patient_avg","mc_patient_avg","ca_patient_avg","pys_patient_avg","tub_patient_avg","inf_patient_avg","patient_avg_sum","patient_avg_from","patient_avg_to","cl_patient_avg","cl_patient_avg_from","cl_patient_avg_to","hm_patient_avg","hm_patient_avg_from","hm_patient_avg_to","ge_patient_ex","mt_patient_ex","mc_patient_ex","ca_patient_ex","pys_patient_ex","tub_patient_ex","inf_patient_ex","patient_ex_sum","patient_ex_from","patient_ex_to","cl_patient_ex","cl_patient_ex_from","cl_patient_ex_to","hm_patient_ex","hm_patient_ex_from","hm_patient_ex_to","ge_stay_avg","mt_stay_avg","mc_stay_avg","ca_stay_avg","pys_stay_avg","tub_stay_avg","inf_stay_avg","stay_avg_sum","stay_avg_from","stay_avg_to","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","NULL","http://yahoo.co.jp/","NULL","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20171009","20171009","55.5","","","","","","","","","","","","","","","","","","","","","","39.3","","","","","","","","20130401","20140331","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/11 21:20:37","clsComPrefcMedBase"
|
||||
"009901679","20171009","http://www.kai-sei-kai.com/","1","","","","","","NULL","NULL","NULL","NULL","1","","1","","","","","5","4","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","96.0","20130401","20140331","","","","","","","","","","","","","","","","","","","","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/11 21:20:37","clsComPrefcMedBase"
|
||||
|
@ -0,0 +1,7 @@
|
||||
"dcf_dsf_inst_cd","info_date","home_page","hppre_flg","expre_flg","trial_flg","trial_contcount","trialwhet_from","trialwhet_to","equipment_flg","cos_disease_flg","cos_surgery","specialclinic_flg","establishment_flg","critical_flg","cop_system","sys_exists_flg","sys_inspection","sys_prescription","sys_reserv","icduse_flg","echart_flg","fulltime_flg","fulltime_count","ge_patient_avg","mt_patient_avg","mc_patient_avg","ca_patient_avg","pys_patient_avg","tub_patient_avg","inf_patient_avg","patient_avg_sum","patient_avg_from","patient_avg_to","cl_patient_avg","cl_patient_avg_from","cl_patient_avg_to","hm_patient_avg","hm_patient_avg_from","hm_patient_avg_to","ge_patient_ex","mt_patient_ex","mc_patient_ex","ca_patient_ex","pys_patient_ex","tub_patient_ex","inf_patient_ex","patient_ex_sum","patient_ex_from","patient_ex_to","cl_patient_ex","cl_patient_ex_from","cl_patient_ex_to","hm_patient_ex","hm_patient_ex_from","hm_patient_ex_to","ge_stay_avg","mt_stay_avg","mc_stay_avg","ca_stay_avg","pys_stay_avg","tub_stay_avg","inf_stay_avg","stay_avg_sum","stay_avg_from","stay_avg_to","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","20140624","","1","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20130401","20140331","49.8","20130401","20140331","","","","","","","","","","","","","","","","","","","","39.3","","","","","","","","20130401","20140331","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/09 20:39:15","com_prefc_med_base_mapper","2023/05/09 20:39:15","com_prefc_med_base_mapper"
|
||||
"009900194","20121101","http://www.hospital.misawa.aomori.jp/","1","1","1","0","20100401","20110331","1","1","1","1","1","1","1","1","1","1","1","1","1","1","3","205.4","","","","","","","","20100401","20110331","468.1","20100401","20110331","8.3","20100401","20110331","","","","","","","","","","","","","","","","","18.7","","","","","","0.0","","20100401","20110331","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/09 20:39:15","com_prefc_med_base_mapper","2023/05/09 20:39:15","com_prefc_med_base_mapper"
|
||||
"009901649","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/09 20:39:15","com_prefc_med_base_mapper","2023/05/09 20:39:15","com_prefc_med_base_mapper"
|
||||
"009901679","20140627","http://www.kai-sei-kai.com/","1","","","","","","1","1","1","1","1","","1","","","","","1","","1","2","58.5","229.2","102.3","131.3","","","","","20130401","20140331","96.0","20130401","20140331","","","","","","","","","","","","","","","","","","","","20.4","641.3","533.2","749.2","","","","","20130401","20140331","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/09 20:39:15","com_prefc_med_base_mapper","2023/05/09 20:39:15","com_prefc_med_base_mapper"
|
||||
"009929798","20130611","http://www.urakawa.jrc.or.jp/","1","","","","","","1","1","1","1","1","","1","","","","","","","1","1","114.6","46.6","","","39.9","0.0","0.0","","20120401","20130331","481.6","20120401","20130331","16.2","20120401","20130331","","","","","","","","","","","","","","","","","15.6","555.3","","","169.4","0.0","0.0","","20120401","20130331","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/09 20:39:15","com_prefc_med_base_mapper","2023/05/09 20:39:15","com_prefc_med_base_mapper"
|
||||
"99999999999","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","20130331","NULL","NULL","NULL","NULL","NULL","2023/05/09 20:39:15","com_prefc_med_base_mapper","2023/05/09 20:39:15","com_prefc_med_base_mapper"
|
||||
|
@ -0,0 +1,9 @@
|
||||
"dcf_dsf_inst_cd","info_date","home_page","hppre_flg","expre_flg","trial_flg","trial_contcount","trialwhet_from","trialwhet_to","equipment_flg","cos_disease_flg","cos_surgery","specialclinic_flg","establishment_flg","critical_flg","cop_system","sys_exists_flg","sys_inspection","sys_prescription","sys_reserv","icduse_flg","echart_flg","fulltime_flg","fulltime_count","ge_patient_avg","mt_patient_avg","mc_patient_avg","ca_patient_avg","pys_patient_avg","tub_patient_avg","inf_patient_avg","patient_avg_sum","patient_avg_from","patient_avg_to","cl_patient_avg","cl_patient_avg_from","cl_patient_avg_to","hm_patient_avg","hm_patient_avg_from","hm_patient_avg_to","ge_patient_ex","mt_patient_ex","mc_patient_ex","ca_patient_ex","pys_patient_ex","tub_patient_ex","inf_patient_ex","patient_ex_sum","patient_ex_from","patient_ex_to","cl_patient_ex","cl_patient_ex_from","cl_patient_ex_to","hm_patient_ex","hm_patient_ex_from","hm_patient_ex_to","ge_stay_avg","mt_stay_avg","mc_stay_avg","ca_stay_avg","pys_stay_avg","tub_stay_avg","inf_stay_avg","stay_avg_sum","stay_avg_from","stay_avg_to","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","NULL","http://yahoo.co.jp/","NULL","","","","","","1","1","","","","","","","","","","","","","","18.8","","","","","","","","20171009","20171009","55.5","","","","","","","","","","","","","","","","","","","","","","39.3","","","","","","","","20130401","20140331","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2023/05/09 11:49:28","com_prefc_med_base_mapper"
|
||||
"009900194","20121101","http://www.hospital.misawa.aomori.jp/","1","1","NULL","NULL","NULL","NULL","1","1","1","1","NULL","1","NULL","NULL","NULL","NULL","NULL","1","1","1","3","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","111","112","113","114","115","116","117","118","20170101","20171010","","","","","","","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2023/05/09 14:52:00","com_prefc_med_base_mapper"
|
||||
"009901649","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase"
|
||||
"009901679","20171009","http://www.kai-sei-kai.com/","1","","","","","","NULL","NULL","NULL","NULL","1","","1","","","","","5","4","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","96.0","20130401","20140331","","","","","","","","","","","","","","","","","","","","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2023/05/09 11:49:28","com_prefc_med_base_mapper"
|
||||
"009929798","20130611","http://www.urakawa.jrc.or.jp/","1","","","","","","1","1","1","1","1","","1","","","","","","","1","1","114.6","46.6","","","39.9","0.0","0.0","","20120401","20130331","481.6","20120401","20130331","16.2","20120401","20130331","","","","","","","","","","","","","","","","","15.6","555.3","","","169.4","0.0","0.0","","20120401","20130331","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2017/10/08 20:57:12","clsComPrefcMedBase"
|
||||
"99999999900","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","NULL","20130331","20230510","NULL","NULL","NULL","NULL","2000/05/09 20:39:15","aaaaa","2000/05/09 20:39:15","com_prefc_med_base_mapper"
|
||||
"99999999911","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedBase","2000/05/09 20:39:15","com_prefc_med_base_mapper"
|
||||
"99999999999","20130611","aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbz","1","2","3","4444","20150101","20160101","1","1","1","1","1","1","1","1","1","1","1","1","1","1","123","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","12345.6","20120401","20130331","12345.6","20120401","20130331","123467","123467","123467","123467","123467","123467","123467","123467","20200202","20200202","123467","20200202","20200202","123467","20200202","20200202","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","12345.6","20120401","20130331","20130331","NULL","NULL","NULL","NULL","NULL","2000/05/09 20:39:15","aaaaa","2000/05/09 20:39:15","aaaaa"
|
||||
|
@ -0,0 +1,196 @@
|
||||
import os.path as path
|
||||
from datetime import datetime
|
||||
|
||||
import pytest
|
||||
|
||||
from src.batch.common.batch_context import BatchContext
|
||||
from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_prefc_med_base_mapper
|
||||
from src.db.database import Database
|
||||
from tests.testing_utility import (assert_table_results,
|
||||
create_db_data_from_csv,
|
||||
create_delete_sql_with_parameter,
|
||||
create_insert_sql_with_parameter,
|
||||
create_ultmarc_table_mapper_sut,
|
||||
create_ultmarc_test_data_from_csv)
|
||||
|
||||
|
||||
class TestComPrefcMedBaseMapper:
|
||||
"""レイアウト区分132: COM_都道府県医療機能情報(基本)"""
|
||||
|
||||
db: Database
|
||||
batch_context: BatchContext
|
||||
test_file_path: str = path.dirname(__file__)
|
||||
|
||||
@pytest.fixture(autouse=True, scope='function')
|
||||
def pre_test(self, database: Database):
|
||||
"""テスト実行前後処理"""
|
||||
self.batch_context = BatchContext.get_instance()
|
||||
# setup
|
||||
self.db = database
|
||||
self.db.connect()
|
||||
self.db.begin()
|
||||
|
||||
# testing
|
||||
yield
|
||||
|
||||
# teardown
|
||||
self.db.rollback()
|
||||
self.db.disconnect()
|
||||
|
||||
def test_insert_record(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(基本)テーブルにレコードを登録する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 追加対象となるレコードを削除する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_base_insert.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_base', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_base_mapper.ComPrefcMedBaseMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_base_mapper.ComPrefcMedBaseMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_base_insert.csv'))
|
||||
primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list]
|
||||
actual_select_sql = f"SELECT * FROM src05.com_prefc_med_base WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})"
|
||||
actual_data_list = self.db.execute_select(actual_select_sql)
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ['regist_ymd', 'sys_regist_date', 'sys_update_date']:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_update_record(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(基本)テーブルのレコードを更新する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 更新対象となるレコードを登録する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_base_update.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_base', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
# テストデータをDBに登録
|
||||
# DBデータを読み込む
|
||||
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_base_before_update.csv'))
|
||||
for test_data in test_sql_data_list:
|
||||
insert_sql, insert_parameter = create_insert_sql_with_parameter(
|
||||
'src05.com_prefc_med_base',
|
||||
test_data.keys(),
|
||||
test_data.values()
|
||||
)
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_base_mapper.ComPrefcMedBaseMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_base_mapper.ComPrefcMedBaseMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_base_update.csv'))
|
||||
primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list]
|
||||
actual_select_sql = f"SELECT * FROM src05.com_prefc_med_base WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})"
|
||||
actual_data_list = self.db.execute_select(actual_select_sql)
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_logical_delete(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(基本)テーブルのレコードを1件論理削除する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 削除対象となるレコードを登録する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_base_delete.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_base', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
# テストデータをDBに登録
|
||||
# DBデータを読み込む
|
||||
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_base_before_delete.csv'))
|
||||
for test_data in test_sql_data_list:
|
||||
insert_sql, insert_parameter = create_insert_sql_with_parameter(
|
||||
'src05.com_prefc_med_base',
|
||||
test_data.keys(),
|
||||
test_data.values()
|
||||
)
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_base_mapper.ComPrefcMedBaseMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_base_mapper.ComPrefcMedBaseMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_base_delete.csv'))
|
||||
primary_keys = [f"'{primary_key['dcf_dsf_inst_cd']}'" for primary_key in expect_data_list]
|
||||
actual_select_sql = f"SELECT * FROM src05.com_prefc_med_base WHERE dcf_dsf_inst_cd IN ({','.join(primary_keys)})"
|
||||
actual_data_list = self.db.execute_select(actual_select_sql)
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
@ -0,0 +1,4 @@
|
||||
"134","00","9901679","","B","2201","1","20141205","20141213",""
|
||||
"134","00","9901679","","B","2203","1","20141205","20141213",""
|
||||
"134","00","9901679","","B","2205","1","20141205","20141213",""
|
||||
"134","00","9901679","","B","2206","1","20141205","20141213",""
|
||||
|
@ -0,0 +1,8 @@
|
||||
"134","00","9901649","","A","1001","2","20141113","20141114",""
|
||||
"134","00","9901679","","A","2201","2","20141113","20141114",""
|
||||
"134","00","9901679","","A","2203","2","20141113","20141114","2789"
|
||||
"134","00","9901679","","A","2205","2","20141113","20141114","2033"
|
||||
"134","00","9901679","","A","2206","2","20141113","20141114","0"
|
||||
"134","00","9929798","","A","0902","2","20141113","20141114",""
|
||||
"134","00","9929798","","A","0915","2","20141113","20141114",""
|
||||
"134","99","9999999","99","A","1234","2","20141113","20141114","123456"
|
||||
|
@ -0,0 +1,7 @@
|
||||
"134","00","9901649","","B","1001","2","20141113","20141114","0"
|
||||
"134","00","9901679","","B","2203","2","20141113","20141114","@"
|
||||
"134","00","9901679","","B","2205","2","20141113","20141114","1987"
|
||||
"134","00","9901679","","B","2206","2","20141113","20141114","@"
|
||||
"134","00","9929798","","B","0902","2","20141113","20141114","0"
|
||||
"134","00","9929798","","B","0915","2","20141113","20141114","543"
|
||||
"134","99","9999999","99","B","1234","2","20141113","20141114",""
|
||||
|
@ -0,0 +1,8 @@
|
||||
"dcf_dsf_inst_cd","treatment_code","pre_num","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009901649","1001","0","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat"
|
||||
"009901679","2201","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat"
|
||||
"009901679","2203","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat"
|
||||
"009901679","2205","1987","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat"
|
||||
"009901679","2206","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat"
|
||||
"009929798","0902","0","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat"
|
||||
"009929798","0915","543","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat"
|
||||
|
@ -0,0 +1,9 @@
|
||||
"dcf_dsf_inst_cd","treatment_code","pre_num","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009901649","1001","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat"
|
||||
"009901679","2201","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat"
|
||||
"009901679","2203","2789","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat"
|
||||
"009901679","2205","2033","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat"
|
||||
"009901679","2206","0","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat"
|
||||
"009929798","0902","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat"
|
||||
"009929798","0915","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat"
|
||||
"99999999999","1234","1111","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat"
|
||||
|
@ -0,0 +1,4 @@
|
||||
"dcf_dsf_inst_cd","treatment_code","pre_num","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009901649","1001","0","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat"
|
||||
"009929798","0902","0","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat"
|
||||
"009929798","0915","543","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/11 21:20:37","clsPrefcMedDisTreat"
|
||||
|
@ -0,0 +1,10 @@
|
||||
"dcf_dsf_inst_cd","treatment_code","pre_num","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009901649","1001","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper"
|
||||
"009901679","2201","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper"
|
||||
"009901679","2203","2789","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper"
|
||||
"009901679","2205","2033","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper"
|
||||
"009901679","2206","0","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper"
|
||||
"009929798","0902","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper"
|
||||
"009929798","0915","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper"
|
||||
"009929798","0915","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper"
|
||||
"99999999999","1234","123456","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper","2023/05/10 20:57:12","com_prefc_med_dis_treat_mapper"
|
||||
|
@ -0,0 +1,9 @@
|
||||
"dcf_dsf_inst_cd","treatment_code","pre_num","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009901649","1001","0","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2023/05/11 08:49:28","com_prefc_med_dis_treat_mapper"
|
||||
"009901679","2201","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat"
|
||||
"009901679","2203","NULL","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2023/05/11 08:49:28","com_prefc_med_dis_treat_mapper"
|
||||
"009901679","2205","1987","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2023/05/11 08:49:28","com_prefc_med_dis_treat_mapper"
|
||||
"009901679","2206","NULL","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2023/05/11 08:49:28","com_prefc_med_dis_treat_mapper"
|
||||
"009929798","0902","0","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2023/05/11 08:49:28","com_prefc_med_dis_treat_mapper"
|
||||
"009929798","0915","543","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2023/05/11 08:49:28","com_prefc_med_dis_treat_mapper"
|
||||
"99999999999","1234","1111","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedDisTreat","2017/10/08 20:57:12","clsPrefcMedDisTreat"
|
||||
|
@ -0,0 +1,251 @@
|
||||
import os.path as path
|
||||
from datetime import datetime
|
||||
from decimal import Decimal
|
||||
|
||||
import pytest
|
||||
|
||||
from src.batch.common.batch_context import BatchContext
|
||||
from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_prefc_med_dis_treat_mapper
|
||||
from src.db.database import Database
|
||||
from tests.testing_utility import (assert_table_results,
|
||||
create_db_data_from_csv,
|
||||
create_delete_sql_with_parameter,
|
||||
create_insert_sql_with_parameter,
|
||||
create_ultmarc_table_mapper_sut,
|
||||
create_ultmarc_test_data_from_csv)
|
||||
|
||||
|
||||
class TestComPrefcMedDisTreatMapper:
|
||||
"""レイアウト区分134: COM_都道府県医療機能情報(疾患治療)"""
|
||||
|
||||
db: Database
|
||||
batch_context: BatchContext
|
||||
test_file_path: str = path.dirname(__file__)
|
||||
|
||||
@pytest.fixture(autouse=True, scope='function')
|
||||
def pre_test(self, database: Database):
|
||||
"""テスト実行前後処理"""
|
||||
self.batch_context = BatchContext.get_instance()
|
||||
# setup
|
||||
self.db = database
|
||||
self.db.connect()
|
||||
self.db.begin()
|
||||
|
||||
# testing
|
||||
yield
|
||||
|
||||
# teardown
|
||||
self.db.rollback()
|
||||
self.db.disconnect()
|
||||
|
||||
def test_insert_record(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(疾患治療)テーブルにレコードを登録する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 追加対象となるレコードを削除する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_dis_treat_insert.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_dis_treat', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_dis_treat_mapper.ComPrefcMedDisTreatMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_dis_treat_mapper.ComPrefcMedDisTreatMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_dis_treat_insert.csv'))
|
||||
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list]
|
||||
primary_keys_treatment_code = [{'treatment_code': columns['treatment_code']} for columns in expect_data_list]
|
||||
actual_data_list = []
|
||||
sp_field_select_sql = """\
|
||||
SELECT * FROM src05.com_prefc_med_dis_treat
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
|
||||
AND
|
||||
treatment_code = :treatment_code
|
||||
"""
|
||||
for param_dcf_dsf_inst_cd, param_treatment_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_treatment_code):
|
||||
sp_field_data = self.db.execute_select(
|
||||
sp_field_select_sql,
|
||||
{**param_dcf_dsf_inst_cd, **param_treatment_code})
|
||||
assert len(sp_field_data) == 1, '1件取得できていること'
|
||||
actual_data_list.append(sp_field_data[0])
|
||||
|
||||
# 期待値検査
|
||||
ignore_columns = ['pre_num', 'regist_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if actual_col_name == 'pre_num':
|
||||
if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0:
|
||||
assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_update_record(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(疾患治療)テーブルのレコードを更新する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 更新対象となるレコードを登録する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_dis_treat_update.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_dis_treat', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
# テストデータをDBに登録
|
||||
# DBデータを読み込む
|
||||
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_dis_treat_before_update.csv'))
|
||||
for test_data in test_sql_data_list:
|
||||
insert_sql, insert_parameter = create_insert_sql_with_parameter(
|
||||
'src05.com_prefc_med_dis_treat',
|
||||
test_data.keys(),
|
||||
test_data.values()
|
||||
)
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_dis_treat_mapper.ComPrefcMedDisTreatMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_dis_treat_mapper.ComPrefcMedDisTreatMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_dis_treat_update.csv'))
|
||||
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list]
|
||||
primary_keys_treatment_code = [{'treatment_code': columns['treatment_code']} for columns in expect_data_list]
|
||||
actual_data_list = []
|
||||
sp_field_select_sql = """\
|
||||
SELECT * FROM src05.com_prefc_med_dis_treat
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
|
||||
AND
|
||||
treatment_code = :treatment_code
|
||||
"""
|
||||
for param_dcf_dsf_inst_cd, param_treatment_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_treatment_code):
|
||||
sp_field_data = self.db.execute_select(
|
||||
sp_field_select_sql,
|
||||
{**param_dcf_dsf_inst_cd, **param_treatment_code})
|
||||
assert len(sp_field_data) == 1, '1件取得できていること'
|
||||
actual_data_list.append(sp_field_data[0])
|
||||
|
||||
# 期待値検査
|
||||
ignore_columns = ['pre_num', 'regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
if actual_col_name == 'pre_num':
|
||||
if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0:
|
||||
assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_logical_delete(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(疾患治療)テーブルのレコードを1件論理削除する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 削除対象となるレコードを登録する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_dis_treat_delete.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_dis_treat', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
# テストデータをDBに登録
|
||||
# DBデータを読み込む
|
||||
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_dis_treat_before_delete.csv'))
|
||||
for test_data in test_sql_data_list:
|
||||
insert_sql, insert_parameter = create_insert_sql_with_parameter(
|
||||
'src05.com_prefc_med_dis_treat',
|
||||
test_data.keys(),
|
||||
test_data.values()
|
||||
)
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_dis_treat_mapper.ComPrefcMedDisTreatMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_dis_treat_mapper.ComPrefcMedDisTreatMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_dis_treat_delete.csv'))
|
||||
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list]
|
||||
primary_keys_treatment_code = [{'treatment_code': columns['treatment_code']} for columns in expect_data_list]
|
||||
actual_data_list = []
|
||||
sp_field_select_sql = """\
|
||||
SELECT * FROM src05.com_prefc_med_dis_treat
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
|
||||
AND
|
||||
treatment_code = :treatment_code
|
||||
"""
|
||||
for param_dcf_dsf_inst_cd, param_treatment_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_treatment_code):
|
||||
sp_field_data = self.db.execute_select(
|
||||
sp_field_select_sql,
|
||||
{**param_dcf_dsf_inst_cd, **param_treatment_code})
|
||||
assert len(sp_field_data) == 1, '1件取得できていること'
|
||||
actual_data_list.append(sp_field_data[0])
|
||||
|
||||
# 期待値検査
|
||||
ignore_columns = ['pre_num', 'regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
if actual_col_name == 'pre_num':
|
||||
if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0:
|
||||
assert actual_row[actual_col_name] == Decimal(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
@ -0,0 +1,3 @@
|
||||
"133","00","9900194","","B","008","1","20141211","20141213",""
|
||||
"133","00","9901649","","B","009","1","20141211","20141213",""
|
||||
"133","00","9901679","","B","015","1","20141211","20141213",""
|
||||
|
@ -0,0 +1,6 @@
|
||||
"133","00","9900146","","A","012","2","20141113","20141114","0"
|
||||
"133","00","9900194","","A","008","2","20141113","20141114","32"
|
||||
"133","00","9901649","","A","009","2","20141113","20141114","3"
|
||||
"133","00","9901679","","A","015","2","20141113","20141114",""
|
||||
"133","00","9904439","","A","006","2","20141113","20141114",""
|
||||
"133","00","9929798","","A","010","2","20141113","20141114",""
|
||||
|
@ -0,0 +1,7 @@
|
||||
"133","99","9999999","99","B","111","2","20141113","20141114",""
|
||||
"133","00","9900146","","B","012","2","20141113","20141114","@"
|
||||
"133","00","9900194","","B","008","2","20141113","20141114","@"
|
||||
"133","00","9901649","","B","009","2","20141113","20141114","6"
|
||||
"133","00","9901679","","B","015","2","20141113","20141114","@"
|
||||
"133","00","9904439","","B","006","2","20141113","20141114","10"
|
||||
"133","00","9929798","","B","010","2","20141113","20141114","9"
|
||||
|
@ -0,0 +1,7 @@
|
||||
"dcf_dsf_inst_cd","equipment_code","bednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","012","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment"
|
||||
"009900194","008","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment"
|
||||
"009901649","009","6","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment"
|
||||
"009901679","015","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment"
|
||||
"009904439","006","10","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment"
|
||||
"009929798","010","9","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment"
|
||||
|
@ -0,0 +1,8 @@
|
||||
"dcf_dsf_inst_cd","equipment_code","bednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","012","0","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment"
|
||||
"009900194","008","32","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment"
|
||||
"009901649","009","3","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment"
|
||||
"009901679","015","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment"
|
||||
"009904439","006","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment"
|
||||
"009929798","010","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment"
|
||||
"99999999999","111","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment"
|
||||
|
@ -0,0 +1,4 @@
|
||||
"dcf_dsf_inst_cd","equipment_code","bednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","012","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment"
|
||||
"009904439","006","10","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment"
|
||||
"009929798","010","9","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/11 21:20:37","clsPrefcMedEquipment"
|
||||
|
@ -0,0 +1,7 @@
|
||||
"dcf_dsf_inst_cd","equipment_code","bednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","012","0","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 10:57:12","com_prefc_med_equpment_mapper","2023/05/10 10:57:12","com_prefc_med_equpment_mapper"
|
||||
"009900194","008","32","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 10:57:12","com_prefc_med_equpment_mapper","2023/05/10 10:57:12","com_prefc_med_equpment_mapper"
|
||||
"009901649","009","3","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 10:57:12","com_prefc_med_equpment_mapper","2023/05/10 10:57:12","com_prefc_med_equpment_mapper"
|
||||
"009901679","015","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 10:57:12","com_prefc_med_equpment_mapper","2023/05/10 10:57:12","com_prefc_med_equpment_mapper"
|
||||
"009904439","006","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 10:57:12","com_prefc_med_equpment_mapper","2023/05/10 10:57:12","com_prefc_med_equpment_mapper"
|
||||
"009929798","010","NULL","20230510","NULL","NULL","NULL","NULL","NULL","2023/05/10 10:57:12","com_prefc_med_equpment_mapper","2023/05/10 10:57:12","com_prefc_med_equpment_mapper"
|
||||
|
@ -0,0 +1,8 @@
|
||||
"dcf_dsf_inst_cd","equipment_code","bednum","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","012","NULL","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2023/05/10 11:49:28","com_prefc_med_equpment_mapper"
|
||||
"009900194","008","NULL","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2023/05/10 11:49:28","com_prefc_med_equpment_mapper"
|
||||
"009901649","009","6","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2023/05/10 11:49:28","com_prefc_med_equpment_mapper"
|
||||
"009901679","015","NULL","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2023/05/10 11:49:28","com_prefc_med_equpment_mapper"
|
||||
"009904439","006","10","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2023/05/10 11:49:28","com_prefc_med_equpment_mapper"
|
||||
"009929798","010","9","20171008","20230510","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2023/05/10 11:49:28","com_prefc_med_equpment_mapper"
|
||||
"99999999999","111","NULL","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedEquipment","2017/10/08 20:57:12","clsPrefcMedEquipment"
|
||||
|
@ -0,0 +1,250 @@
|
||||
import os.path as path
|
||||
from datetime import datetime
|
||||
|
||||
import pytest
|
||||
|
||||
from src.batch.common.batch_context import BatchContext
|
||||
from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_prefc_med_equpment_mapper
|
||||
from src.db.database import Database
|
||||
from tests.testing_utility import (assert_table_results,
|
||||
create_db_data_from_csv,
|
||||
create_delete_sql_with_parameter,
|
||||
create_insert_sql_with_parameter,
|
||||
create_ultmarc_table_mapper_sut,
|
||||
create_ultmarc_test_data_from_csv)
|
||||
|
||||
|
||||
class TestComPrefcMedEqupmentMapper:
|
||||
"""レイアウト区分133: COM_都道府県医療機能情報(施設設備)"""
|
||||
|
||||
db: Database
|
||||
batch_context: BatchContext
|
||||
test_file_path: str = path.dirname(__file__)
|
||||
|
||||
@pytest.fixture(autouse=True, scope='function')
|
||||
def pre_test(self, database: Database):
|
||||
"""テスト実行前後処理"""
|
||||
self.batch_context = BatchContext.get_instance()
|
||||
# setup
|
||||
self.db = database
|
||||
self.db.connect()
|
||||
self.db.begin()
|
||||
|
||||
# testing
|
||||
yield
|
||||
|
||||
# teardown
|
||||
self.db.rollback()
|
||||
self.db.disconnect()
|
||||
|
||||
def test_insert_record(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(施設設備)テーブルにレコードを登録する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 追加対象となるレコードを削除する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_equpment_insert.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_equpment', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_equpment_mapper.ComPrefcMedEqupmentMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_equpment_mapper.ComPrefcMedEqupmentMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_equpment_insert.csv'))
|
||||
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list]
|
||||
primary_keys_equipment_code = [{'equipment_code': columns['equipment_code']} for columns in expect_data_list]
|
||||
actual_data_list = []
|
||||
sp_field_select_sql = """\
|
||||
SELECT * FROM src05.com_prefc_med_equpment
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
|
||||
AND
|
||||
equipment_code = :equipment_code
|
||||
"""
|
||||
for param_dcf_dsf_inst_cd, param_equipment_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_equipment_code):
|
||||
sp_field_data = self.db.execute_select(
|
||||
sp_field_select_sql,
|
||||
{**param_dcf_dsf_inst_cd, **param_equipment_code})
|
||||
assert len(sp_field_data) == 1, '1件取得できていること'
|
||||
actual_data_list.append(sp_field_data[0])
|
||||
|
||||
# 期待値検査
|
||||
ignore_columns = ['bednum', 'regist_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if actual_col_name == 'bednum':
|
||||
if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0:
|
||||
assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_update_record(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(施設設備)テーブルのレコードを更新する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 更新対象となるレコードを登録する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_equpment_update.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_equpment', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
# テストデータをDBに登録
|
||||
# DBデータを読み込む
|
||||
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_equpment_before_update.csv'))
|
||||
for test_data in test_sql_data_list:
|
||||
insert_sql, insert_parameter = create_insert_sql_with_parameter(
|
||||
'src05.com_prefc_med_equpment',
|
||||
test_data.keys(),
|
||||
test_data.values()
|
||||
)
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_equpment_mapper.ComPrefcMedEqupmentMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_equpment_mapper.ComPrefcMedEqupmentMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_equpment_update.csv'))
|
||||
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list]
|
||||
primary_keys_equipment_code = [{'equipment_code': columns['equipment_code']} for columns in expect_data_list]
|
||||
actual_data_list = []
|
||||
sp_field_select_sql = """\
|
||||
SELECT * FROM src05.com_prefc_med_equpment
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
|
||||
AND
|
||||
equipment_code = :equipment_code
|
||||
"""
|
||||
for param_dcf_dsf_inst_cd, param_equipment_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_equipment_code):
|
||||
sp_field_data = self.db.execute_select(
|
||||
sp_field_select_sql,
|
||||
{**param_dcf_dsf_inst_cd, **param_equipment_code})
|
||||
assert len(sp_field_data) == 1, '1件取得できていること'
|
||||
actual_data_list.append(sp_field_data[0])
|
||||
|
||||
# 期待値検査
|
||||
ignore_columns = ['bednum', 'regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
if actual_col_name == 'bednum':
|
||||
if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0:
|
||||
assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_logical_delete(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(施設設備)テーブルのレコードを1件論理削除する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 削除対象となるレコードを登録する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_equpment_delete.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_equpment', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
# テストデータをDBに登録
|
||||
# DBデータを読み込む
|
||||
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_equpment_before_delete.csv'))
|
||||
for test_data in test_sql_data_list:
|
||||
insert_sql, insert_parameter = create_insert_sql_with_parameter(
|
||||
'src05.com_prefc_med_equpment',
|
||||
test_data.keys(),
|
||||
test_data.values()
|
||||
)
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_equpment_mapper.ComPrefcMedEqupmentMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_equpment_mapper.ComPrefcMedEqupmentMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_equpment_delete.csv'))
|
||||
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list]
|
||||
primary_keys_equipment_code = [{'equipment_code': columns['equipment_code']} for columns in expect_data_list]
|
||||
actual_data_list = []
|
||||
sp_field_select_sql = """\
|
||||
SELECT * FROM src05.com_prefc_med_equpment
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
|
||||
AND
|
||||
equipment_code = :equipment_code
|
||||
"""
|
||||
for param_dcf_dsf_inst_cd, param_equipment_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_equipment_code):
|
||||
sp_field_data = self.db.execute_select(
|
||||
sp_field_select_sql,
|
||||
{**param_dcf_dsf_inst_cd, **param_equipment_code})
|
||||
assert len(sp_field_data) == 1, '1件取得できていること'
|
||||
actual_data_list.append(sp_field_data[0])
|
||||
|
||||
# 期待値検査
|
||||
ignore_columns = ['bednum', 'regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
if actual_col_name == 'bednum':
|
||||
if expect_row[expect_col_name] is not None and len(expect_row[expect_col_name]) > 0:
|
||||
assert actual_row[actual_col_name] == int(expect_row[expect_col_name]), f'{line_number}行目:{actual_col_name}が、期待値と一致すること'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
@ -0,0 +1,3 @@
|
||||
"135","00","9901679","","B","101","1","20141210","20141213"
|
||||
"135","00","9901679","","B","102","1","20141209","20141213"
|
||||
"135","00","9901679","","B","111","1","20141208","20141213"
|
||||
|
@ -0,0 +1,7 @@
|
||||
"135","00","9900146","","A","213","2","20141113","20141114"
|
||||
"135","00","9900146","","A","214","2","20141113","20141114"
|
||||
"135","00","9900146","","A","215","2","20141113","20141114"
|
||||
"135","00","9901679","","A","101","2","20141113","20141114"
|
||||
"135","00","9901679","","A","102","2","20141113","20141114"
|
||||
"135","00","9929798","","A","110","2","20141113","20141114"
|
||||
"135","00","9929798","","A","111","2","20141113","20141114"
|
||||
|
@ -0,0 +1,4 @@
|
||||
"135","00","9901679","","B","101","2","20141113","20141114"
|
||||
"135","00","9901679","","B","111","2","20141113","20141114"
|
||||
"135","00","9929798","","B","111","2","20141113","20141114"
|
||||
"135","00","9929798","","B","211","2","20141113","20141114"
|
||||
|
@ -0,0 +1,10 @@
|
||||
"dcf_dsf_inst_cd","cos_surgery_code","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","213","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009900146","214","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009900146","215","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009901679","101","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/11 21:20:37","clsPrefcMedSojournOp"
|
||||
"009901679","102","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009901679","111","20171011","20171011","NULL","NULL","NULL","NULL","2017/10/11 11:49:28","clsPrefcMedSojournOp","2017/10/11 21:20:37","clsPrefcMedSojournOp"
|
||||
"009929798","110","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009929798","111","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/11 21:20:37","clsPrefcMedSojournOp"
|
||||
"009929798","211","20171011","20171011","NULL","NULL","NULL","NULL","2017/10/11 11:49:28","clsPrefcMedSojournOp","2017/10/11 21:20:37","clsPrefcMedSojournOp"
|
||||
|
@ -0,0 +1,8 @@
|
||||
"dcf_dsf_inst_cd","cos_surgery_code","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","213","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009900146","214","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009900146","215","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009901679","101","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009901679","102","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009929798","110","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009929798","111","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
|
@ -0,0 +1,7 @@
|
||||
"dcf_dsf_inst_cd","cos_surgery_code","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","213","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009900146","214","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009900146","215","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009929798","110","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009929798","111","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/11 21:20:37","clsPrefcMedSojournOp"
|
||||
"009929798","211","20171011","20171011","NULL","NULL","NULL","NULL","2017/10/11 11:49:28","clsPrefcMedSojournOp","2017/10/11 21:20:37","clsPrefcMedSojournOp"
|
||||
|
@ -0,0 +1,8 @@
|
||||
"dcf_dsf_inst_cd","cos_surgery_code","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","213","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper"
|
||||
"009900146","214","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper"
|
||||
"009900146","215","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper"
|
||||
"009901679","101","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper"
|
||||
"009901679","102","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper"
|
||||
"009929798","110","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper"
|
||||
"009929798","111","20230511","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper","2017/10/08 20:57:12","com_prefc_med_sojourn_ope_mapper"
|
||||
|
@ -0,0 +1,10 @@
|
||||
"dcf_dsf_inst_cd","cos_surgery_code","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009900146","213","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009900146","214","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009900146","215","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009901679","101","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2023/05/11 10:49:28","com_prefc_med_sojourn_ope_mapper"
|
||||
"009901679","102","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009901679","111","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:49:28","com_prefc_med_sojourn_ope_mapper","2023/05/11 10:49:28","com_prefc_med_sojourn_ope_mapper"
|
||||
"009929798","110","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2017/10/08 20:57:12","clsPrefcMedSojournOp"
|
||||
"009929798","111","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsPrefcMedSojournOp","2023/05/11 10:49:28","com_prefc_med_sojourn_ope_mapper"
|
||||
"009929798","211","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:49:28","com_prefc_med_sojourn_ope_mapper","2023/05/11 10:49:28","com_prefc_med_sojourn_ope_mapper"
|
||||
|
@ -0,0 +1,238 @@
|
||||
import os.path as path
|
||||
from datetime import datetime
|
||||
|
||||
import pytest
|
||||
|
||||
from src.batch.common.batch_context import BatchContext
|
||||
from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_prefc_med_sojourn_ope_mapper
|
||||
from src.db.database import Database
|
||||
from tests.testing_utility import (assert_table_results,
|
||||
create_db_data_from_csv,
|
||||
create_delete_sql_with_parameter,
|
||||
create_insert_sql_with_parameter,
|
||||
create_ultmarc_table_mapper_sut,
|
||||
create_ultmarc_test_data_from_csv)
|
||||
|
||||
|
||||
class TestComPrefcMedSojournOpeMapper:
|
||||
"""レイアウト区分135: COM_都道府県医療機能情報(短期滞在手術)"""
|
||||
|
||||
db: Database
|
||||
batch_context: BatchContext
|
||||
test_file_path: str = path.dirname(__file__)
|
||||
|
||||
@pytest.fixture(autouse=True, scope='function')
|
||||
def pre_test(self, database: Database):
|
||||
"""テスト実行前後処理"""
|
||||
self.batch_context = BatchContext.get_instance()
|
||||
# setup
|
||||
self.db = database
|
||||
self.db.connect()
|
||||
self.db.begin()
|
||||
|
||||
# testing
|
||||
yield
|
||||
|
||||
# teardown
|
||||
self.db.rollback()
|
||||
self.db.disconnect()
|
||||
|
||||
def test_insert_record(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(短期滞在手術)テーブルにレコードを登録する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 追加対象となるレコードを削除する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_sojourn_ope_insert.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_sojourn_ope', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_sojourn_ope_mapper.ComPrefcMedSojournOpeMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_sojourn_ope_mapper.ComPrefcMedSojournOpeMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_sojourn_ope_insert.csv'))
|
||||
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list]
|
||||
primary_keys_cos_surgery_code = [{'cos_surgery_code': columns['cos_surgery_code']} for columns in expect_data_list]
|
||||
actual_data_list = []
|
||||
sp_field_select_sql = """\
|
||||
SELECT * FROM src05.com_prefc_med_sojourn_ope
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
|
||||
AND
|
||||
cos_surgery_code = :cos_surgery_code
|
||||
"""
|
||||
for param_dcf_dsf_inst_cd, param_cos_surgery_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_cos_surgery_code):
|
||||
sp_field_data = self.db.execute_select(
|
||||
sp_field_select_sql,
|
||||
{**param_dcf_dsf_inst_cd, **param_cos_surgery_code})
|
||||
assert len(sp_field_data) == 1, '1件取得できていること'
|
||||
actual_data_list.append(sp_field_data[0])
|
||||
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_update_record(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(短期滞在手術)テーブルのレコードを更新する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 更新対象となるレコードを登録する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_sojourn_ope_update.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_sojourn_ope', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
# テストデータをDBに登録
|
||||
# DBデータを読み込む
|
||||
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_sojourn_ope_before_update.csv'))
|
||||
for test_data in test_sql_data_list:
|
||||
insert_sql, insert_parameter = create_insert_sql_with_parameter(
|
||||
'src05.com_prefc_med_sojourn_ope',
|
||||
test_data.keys(),
|
||||
test_data.values()
|
||||
)
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_sojourn_ope_mapper.ComPrefcMedSojournOpeMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_sojourn_ope_mapper.ComPrefcMedSojournOpeMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_sojourn_ope_update.csv'))
|
||||
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list]
|
||||
primary_keys_cos_surgery_code = [{'cos_surgery_code': columns['cos_surgery_code']} for columns in expect_data_list]
|
||||
actual_data_list = []
|
||||
sp_field_select_sql = """\
|
||||
SELECT * FROM src05.com_prefc_med_sojourn_ope
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
|
||||
AND
|
||||
cos_surgery_code = :cos_surgery_code
|
||||
"""
|
||||
for param_dcf_dsf_inst_cd, param_cos_surgery_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_cos_surgery_code):
|
||||
sp_field_data = self.db.execute_select(
|
||||
sp_field_select_sql,
|
||||
{**param_dcf_dsf_inst_cd, **param_cos_surgery_code})
|
||||
assert len(sp_field_data) == 1, '1件取得できていること'
|
||||
actual_data_list.append(sp_field_data[0])
|
||||
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_logical_delete(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(短期滞在手術)テーブルのレコードを1件論理削除する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 削除対象となるレコードを登録する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_sojourn_ope_delete.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_sojourn_ope', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
# テストデータをDBに登録
|
||||
# DBデータを読み込む
|
||||
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_sojourn_ope_before_delete.csv'))
|
||||
for test_data in test_sql_data_list:
|
||||
insert_sql, insert_parameter = create_insert_sql_with_parameter(
|
||||
'src05.com_prefc_med_sojourn_ope',
|
||||
test_data.keys(),
|
||||
test_data.values()
|
||||
)
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_sojourn_ope_mapper.ComPrefcMedSojournOpeMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_sojourn_ope_mapper.ComPrefcMedSojournOpeMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_sojourn_ope_delete.csv'))
|
||||
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list]
|
||||
primary_keys_cos_surgery_code = [{'cos_surgery_code': columns['cos_surgery_code']} for columns in expect_data_list]
|
||||
actual_data_list = []
|
||||
sp_field_select_sql = """\
|
||||
SELECT * FROM src05.com_prefc_med_sojourn_ope
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
|
||||
AND
|
||||
cos_surgery_code = :cos_surgery_code
|
||||
"""
|
||||
for param_dcf_dsf_inst_cd, param_cos_surgery_code in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_cos_surgery_code):
|
||||
sp_field_data = self.db.execute_select(
|
||||
sp_field_select_sql,
|
||||
{**param_dcf_dsf_inst_cd, **param_cos_surgery_code})
|
||||
assert len(sp_field_data) == 1, '1件取得できていること'
|
||||
actual_data_list.append(sp_field_data[0])
|
||||
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
@ -0,0 +1 @@
|
||||
"136","00","9929798","","B","テスト ストーマ(人工肛門・人工膀胱)専門外来","1","20141211","20141213","",""
|
||||
|
@ -0,0 +1,7 @@
|
||||
"136","00","9901649","","A","テスト 小児 内分泌・腎臓外来","2","20141113","20141114","5","030"
|
||||
"136","00","9904439","","A","テスト アルコール症専門外来","2","20141113","20141114","1","019"
|
||||
"136","00","9904439","","A","テスト メンタルヘルス専門外来","2","20141113","20141114","7","019"
|
||||
"136","00","9904439","","A","テスト 禁煙専門外来","2","20141113","20141114","2","001"
|
||||
"136","00","9904439","","A","テスト 糖尿病外来","2","20141113","20141114","7","006"
|
||||
"136","00","9929798","","A","テスト ストーマ(人工肛門・人工膀胱)専門外来","2","20141113","20141114","1","014"
|
||||
"136","99","9999999","99","A","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","2","20141113","20141114","111","222"
|
||||
|
@ -0,0 +1,6 @@
|
||||
"136","00","9901649","","B","テスト 小児 内分泌・腎臓外来","2","20141113","20141114","5","019"
|
||||
"136","00","9904439","","B","テスト 禁煙専門外来","2","20141113","20141114","2","@"
|
||||
"136","00","9904439","","B","テスト 糖尿病外来","2","20141113","20141114","7","001"
|
||||
"136","00","9929798","","B","テスト ストーマ(人工肛門・人工膀胱)専門外来","2","20141113","20141114","1","@"
|
||||
"136","99","9999999","11","B","あいうえお","2","20141113","20141114","","999"
|
||||
"136","99","9999999","99","B","あいうえお","2","20141113","20141114","",""
|
||||
|
@ -0,0 +1,7 @@
|
||||
"dcf_dsf_inst_cd","specialclinic_name","sort_key","sectsub_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009901649","テスト 小児 内分泌・腎臓外来","5","019","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト アルコール症専門外来","1","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト メンタルヘルス専門外来","7","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト 禁煙専門外来","2","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト 糖尿病外来","7","001","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp"
|
||||
"009929798","テスト ストーマ(人工肛門・人工膀胱)専門外来","1","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp"
|
||||
|
@ -0,0 +1,9 @@
|
||||
"dcf_dsf_inst_cd","specialclinic_name","sort_key","sectsub_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009901649","テスト 小児 内分泌・腎臓外来","5","030","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト アルコール症専門外来","1","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト メンタルヘルス専門外来","7","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト 禁煙専門外来","2","001","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト 糖尿病外来","7","006","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
"009929798","テスト ストーマ(人工肛門・人工膀胱)専門外来","1","014","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
"99999999911","あいうえお","123","123","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
"99999999999","あいうえお","123","123","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
|
@ -0,0 +1,6 @@
|
||||
"dcf_dsf_inst_cd","specialclinic_name","sort_key","sectsub_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009901649","テスト 小児 内分泌・腎臓外来","5","019","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト アルコール症専門外来","1","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト メンタルヘルス専門外来","7","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト 禁煙専門外来","2","NULL","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト 糖尿病外来","7","001","20171008","20171011","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/11 21:20:37","clsComPrefcMedSpOutp"
|
||||
|
@ -0,0 +1,8 @@
|
||||
"dcf_dsf_inst_cd","specialclinic_name","sort_key","sectsub_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009901649","テスト 小児 内分泌・腎臓外来","5","030","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper"
|
||||
"009904439","テスト アルコール症専門外来","1","019","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper"
|
||||
"009904439","テスト メンタルヘルス専門外来","7","019","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper"
|
||||
"009904439","テスト 禁煙専門外来","2","001","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper"
|
||||
"009904439","テスト 糖尿病外来","7","006","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper"
|
||||
"009929798","テスト ストーマ(人工肛門・人工膀胱)専門外来","1","014","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper"
|
||||
"99999999999","あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ","111","222","20230511","NULL","NULL","NULL","NULL","NULL","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper","2023/05/11 10:57:12","com_prefc_med_sp_outpat_mapper"
|
||||
|
@ -0,0 +1,9 @@
|
||||
"dcf_dsf_inst_cd","specialclinic_name","sort_key","sectsub_cd","regist_ymd","update_ymd","regist_date","create_user","update_date","update_user","sys_regist_date","regist_prgm_id","sys_update_date","update_prgm_id"
|
||||
"009901649","テスト 小児 内分泌・腎臓外来","5","019","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2023/05/11 11:49:28","com_prefc_med_sp_outpat_mapper"
|
||||
"009904439","テスト アルコール症専門外来","1","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト メンタルヘルス専門外来","7","019","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
"009904439","テスト 禁煙専門外来","2","NULL","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2023/05/11 11:49:28","com_prefc_med_sp_outpat_mapper"
|
||||
"009904439","テスト 糖尿病外来","7","001","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2023/05/11 11:49:28","com_prefc_med_sp_outpat_mapper"
|
||||
"009929798","テスト ストーマ(人工肛門・人工膀胱)専門外来","1","NULL","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2023/05/11 11:49:28","com_prefc_med_sp_outpat_mapper"
|
||||
"99999999911","あいうえお","123","999","20171008","20230511","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2023/05/11 11:57:12","com_prefc_med_sp_outpat_mapper"
|
||||
"99999999999","あいうえお","123","123","20171008","NULL","NULL","NULL","NULL","NULL","2017/10/08 20:57:12","clsComPrefcMedSpOutp","2017/10/08 20:57:12","clsComPrefcMedSpOutp"
|
||||
|
@ -0,0 +1,238 @@
|
||||
import os.path as path
|
||||
from datetime import datetime
|
||||
|
||||
import pytest
|
||||
|
||||
from src.batch.common.batch_context import BatchContext
|
||||
from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_prefc_med_sp_outpat_mapper
|
||||
from src.db.database import Database
|
||||
from tests.testing_utility import (assert_table_results,
|
||||
create_db_data_from_csv,
|
||||
create_delete_sql_with_parameter,
|
||||
create_insert_sql_with_parameter,
|
||||
create_ultmarc_table_mapper_sut,
|
||||
create_ultmarc_test_data_from_csv)
|
||||
|
||||
|
||||
class TestComPrefcMedSpOutpatMapper:
|
||||
"""レイアウト区分136: COM_都道府県医療機能情報(専門外来)"""
|
||||
|
||||
db: Database
|
||||
batch_context: BatchContext
|
||||
test_file_path: str = path.dirname(__file__)
|
||||
|
||||
@pytest.fixture(autouse=True, scope='function')
|
||||
def pre_test(self, database: Database):
|
||||
"""テスト実行前後処理"""
|
||||
self.batch_context = BatchContext.get_instance()
|
||||
# setup
|
||||
self.db = database
|
||||
self.db.connect()
|
||||
self.db.begin()
|
||||
|
||||
# testing
|
||||
yield
|
||||
|
||||
# teardown
|
||||
self.db.rollback()
|
||||
self.db.disconnect()
|
||||
|
||||
def test_insert_record(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(専門外来)テーブルにレコードを登録する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 追加対象となるレコードを削除する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_sp_outpat_insert.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_sp_outpat', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_sp_outpat_mapper.ComPrefcMedSpOutpatMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_sp_outpat_mapper.ComPrefcMedSpOutpatMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_sp_outpat_insert.csv'))
|
||||
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list]
|
||||
primary_keys_specialclinic_name = [{'specialclinic_name': columns['specialclinic_name']} for columns in expect_data_list]
|
||||
actual_data_list = []
|
||||
sp_field_select_sql = """\
|
||||
SELECT * FROM src05.com_prefc_med_sp_outpat
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
|
||||
AND
|
||||
specialclinic_name = :specialclinic_name
|
||||
"""
|
||||
for param_dcf_dsf_inst_cd, param_specialclinic_name in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_specialclinic_name):
|
||||
sp_field_data = self.db.execute_select(
|
||||
sp_field_select_sql,
|
||||
{**param_dcf_dsf_inst_cd, **param_specialclinic_name})
|
||||
assert len(sp_field_data) == 1, '1件取得できていること'
|
||||
actual_data_list.append(sp_field_data[0])
|
||||
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_update_record(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(専門外来)テーブルのレコードを更新する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 更新対象となるレコードを登録する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_sp_outpat_update.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_sp_outpat', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
# テストデータをDBに登録
|
||||
# DBデータを読み込む
|
||||
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_sp_outpat_before_update.csv'))
|
||||
for test_data in test_sql_data_list:
|
||||
insert_sql, insert_parameter = create_insert_sql_with_parameter(
|
||||
'src05.com_prefc_med_sp_outpat',
|
||||
test_data.keys(),
|
||||
test_data.values()
|
||||
)
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_sp_outpat_mapper.ComPrefcMedSpOutpatMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_sp_outpat_mapper.ComPrefcMedSpOutpatMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_sp_outpat_update.csv'))
|
||||
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list]
|
||||
primary_keys_specialclinic_name = [{'specialclinic_name': columns['specialclinic_name']} for columns in expect_data_list]
|
||||
actual_data_list = []
|
||||
sp_field_select_sql = """\
|
||||
SELECT * FROM src05.com_prefc_med_sp_outpat
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
|
||||
AND
|
||||
specialclinic_name = :specialclinic_name
|
||||
"""
|
||||
for param_dcf_dsf_inst_cd, param_specialclinic_name in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_specialclinic_name):
|
||||
sp_field_data = self.db.execute_select(
|
||||
sp_field_select_sql,
|
||||
{**param_dcf_dsf_inst_cd, **param_specialclinic_name})
|
||||
assert len(sp_field_data) == 1, '1件取得できていること'
|
||||
actual_data_list.append(sp_field_data[0])
|
||||
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
|
||||
def test_logical_delete(self):
|
||||
"""
|
||||
Cases:
|
||||
COM_都道府県医療機能情報(専門外来)テーブルのレコードを1件論理削除する
|
||||
Arranges:
|
||||
- CSVデータを用意し、読み込む
|
||||
- 削除対象となるレコードを登録する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_context.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テスト用のCSVを読み込む
|
||||
test_dat_file = create_ultmarc_test_data_from_csv(path.join(self.test_file_path, 'com_prefc_med_sp_outpat_delete.csv'))
|
||||
# 一旦全データをDBから削除
|
||||
delete_sql, delete_parameter = create_delete_sql_with_parameter('src05.com_prefc_med_sp_outpat', {'1': '1'})
|
||||
self.db.execute(delete_sql, delete_parameter)
|
||||
# テストデータをDBに登録
|
||||
# DBデータを読み込む
|
||||
test_sql_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'db_com_prefc_med_sp_outpat_before_delete.csv'))
|
||||
for test_data in test_sql_data_list:
|
||||
insert_sql, insert_parameter = create_insert_sql_with_parameter(
|
||||
'src05.com_prefc_med_sp_outpat',
|
||||
test_data.keys(),
|
||||
test_data.values()
|
||||
)
|
||||
self.db.execute(insert_sql, insert_parameter)
|
||||
|
||||
# Act
|
||||
for line_number, line in enumerate(test_dat_file, start=1):
|
||||
sut: com_prefc_med_sp_outpat_mapper.ComPrefcMedSpOutpatMapper = create_ultmarc_table_mapper_sut(line, self.db)
|
||||
assert type(sut) is com_prefc_med_sp_outpat_mapper.ComPrefcMedSpOutpatMapper, f'{line_number}行目:マッパークラスが期通りか'
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値ファイルを読み込む
|
||||
expect_data_list = create_db_data_from_csv(path.join(self.test_file_path, 'expect_com_prefc_med_sp_outpat_delete.csv'))
|
||||
primary_keys_dcf_dsf_inst_cd = [{'dcf_dsf_inst_cd': columns['dcf_dsf_inst_cd']} for columns in expect_data_list]
|
||||
primary_keys_specialclinic_name = [{'specialclinic_name': columns['specialclinic_name']} for columns in expect_data_list]
|
||||
actual_data_list = []
|
||||
sp_field_select_sql = """\
|
||||
SELECT * FROM src05.com_prefc_med_sp_outpat
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcf_dsf_inst_cd
|
||||
AND
|
||||
specialclinic_name = :specialclinic_name
|
||||
"""
|
||||
for param_dcf_dsf_inst_cd, param_specialclinic_name in zip(primary_keys_dcf_dsf_inst_cd, primary_keys_specialclinic_name):
|
||||
sp_field_data = self.db.execute_select(
|
||||
sp_field_select_sql,
|
||||
{**param_dcf_dsf_inst_cd, **param_specialclinic_name})
|
||||
assert len(sp_field_data) == 1, '1件取得できていること'
|
||||
actual_data_list.append(sp_field_data[0])
|
||||
|
||||
# 期待値検査
|
||||
ignore_columns = ['regist_ymd', 'update_ymd', 'sys_update_date', 'sys_regist_date']
|
||||
assert_table_results(actual_data_list, expect_data_list, ignore_col_name=ignore_columns)
|
||||
# 動的日付項目の個別確認
|
||||
line_number = 0
|
||||
for actual_row, expect_row in zip(actual_data_list, expect_data_list):
|
||||
line_number += 1
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
if actual_col_name in ignore_columns:
|
||||
if expect_row[expect_col_name] is None:
|
||||
assert actual_row[actual_col_name] is None, f'{line_number}行目:{actual_col_name}が、登録されていないこと'
|
||||
else:
|
||||
assert actual_row[actual_col_name] >= expect_row[expect_col_name], f'{line_number}行目:{actual_col_name}が、期待値以降であること'
|
||||
Loading…
x
Reference in New Issue
Block a user