Merge branch 'develop' into feature-NEWDWH2021-1061

# Conflicts:
#	ecs/jskult-batch-daily/src/jobctrl_daily.py
This commit is contained in:
高木要 2023-05-11 17:56:15 +09:00
commit 51c5da7416
89 changed files with 5551 additions and 27 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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])

View File

@ -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

View File

@ -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])

View File

@ -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])

View File

@ -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])

View File

@ -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])

View File

@ -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])

View File

@ -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_病院種別

View File

@ -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}')

View File

@ -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",""
1 112 00 9901649 B 00 1101813 2013 1 20170328 20170401
2 112 00 9904439 B 00 1101135 2013 1 20170328 20170401
3 112 00 9904439 B 00 1101717 2013 1 20170328 20170401

View File

@ -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"
1 112 00 9901649 A 00 1101813 2013 2 20141113 20141114 1
2 112 00 9901649 A 00 1101813 2014 2 20141113 20141114 1
3 112 00 9904439 A 00 1101135 2013 2 20141113 20141114 2
4 112 00 9904439 A 00 1101135 2014 2 20141113 20141114 2
5 112 00 9904439 A 00 1101717 2013 2 20141113 20141114 1
6 112 00 9904439 A 00 1101717 2014 2 20141113 20141114 1
7 112 99 9999999 99 A 11 1111111 11 2023 0 20141113 20141114 1

View File

@ -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",""
1 112 00 9901649 B 00 1101813 2013 3 20141113 20141114 1
2 112 00 9901649 B 00 1101813 2014 4 20141113 20141114 1
3 112 99 9999999 99 B 11 1111111 11 2014 4 20141113 20141114 123
4 112 99 9999999 00 B 11 1111111 11 2014 4 20141113 20141114

View File

@ -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"
1 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
2 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
3 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
4 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
5 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
6 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
7 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

View File

@ -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"
1 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
2 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
3 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
4 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
5 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
6 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
7 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
8 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
9 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

View File

@ -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"
1 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
2 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
3 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
4 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

View File

@ -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"
1 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
2 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
3 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
4 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
5 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
6 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
7 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
8 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

View File

@ -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"
1 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
2 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
3 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
4 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
5 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
6 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
7 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
8 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
9 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

View File

@ -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}が、期待値以降であること'

View File

@ -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):

View File

@ -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.

View File

@ -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"
1 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
2 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
3 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
4 111 00 9900615 A 2 20141113 20141114 1 1
5 111 00 9900631 A 2 20141113 20141114 1 20120401 1 20060401 1 19971001 1 1 3991 6 19990930 6 1
6 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
7 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
8 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
9 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
10 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
11 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
12 111 00 9902175 A 2 20141113 20141114 1 20111001 1 20111001 1 20111001 20110331 1 1 1 199704
13 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
14 111 00 9903500 A 2 20141113 20141114 2 9 1 I001 26 20061001 26 198912
15 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
16 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
17 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
18 111 00 9908576 A 2 20141113 20141114 1 20100401 1 20080401 20070831 20070831 2 9 1 I001 33 20130401 33 200704
19 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
20 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

View File

@ -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","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
1 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
2 111 00 9900631 B 20141113 20141114 1 20171009 1 2017 20171009 @ @ @ @ 1 3 1 1 2 1 0 12 20
3 111 00 9901649 B 20141113 20141114 1 2009 20171010 201710
4 111 00 9990146 B 20171113 20171114 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
5 111 99 9999999 99 B

View File

@ -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}が、期待値以降であること'

View File

@ -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","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
1 132 00 9900194 B 1 20170406 20170408
2 132 00 9901649 B 1 20170406 20170408
3 132 00 9929798 B 1 20170406 20170408

View File

@ -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"
1 132 00 9900146 A 2 20141113 20141114 20140624 1 1 1 18.8 20130401 20140331 49.8 20130401 20140331 39.3 20130401 20140331
2 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
3 132 00 9901649 A 2 20141113 20141114
4 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
5 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
6 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

View File

@ -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"
1 132 00 9900146 B 20141113 20141114 @ http://yahoo.co.jp/ @ 1 1 18.8 20171009 20171009 55.5 55.5 66.6
2 132 00 9900194 B 20141113 20141114 20121101 http://www.hospital.misawa.aomori.jp/ @ @ @ @ @ @ @ 111 112 113 114 115 116 117 118 20170101 20171010 @
3 132 00 9901679 B 20141113 20141114 20171009 @ @ @ @ 1 2 3 5 4 @ @ @
4 132 99 9999999 99 A 2 20141113 20141114
5 132 99 9999999 00 A 2 20141113 20141114 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
6 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

View File

@ -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"
1 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
2 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
3 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
4 009901649 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedBase 2017/10/08 20:57:12 clsComPrefcMedBase
5 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
6 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

View File

@ -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"
1 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
2 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
3 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
4 009901649 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedBase 2017/10/08 20:57:12 clsComPrefcMedBase
5 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
6 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
7 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
8 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
9 99999999911 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedBase 2017/10/08 20:57:12 clsComPrefcMedBase

View File

@ -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"
1 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
2 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
3 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

View File

@ -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"
1 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
2 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
3 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
4 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
5 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
6 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
7 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

View File

@ -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"
1 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
2 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
3 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
4 009901649 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedBase 2017/10/08 20:57:12 clsComPrefcMedBase
5 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
6 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
7 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
8 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
9 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

View File

@ -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}が、期待値以降であること'

View File

@ -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",""
1 134 00 9901679 B 2201 1 20141205 20141213
2 134 00 9901679 B 2203 1 20141205 20141213
3 134 00 9901679 B 2205 1 20141205 20141213
4 134 00 9901679 B 2206 1 20141205 20141213

View File

@ -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"
1 134 00 9901649 A 1001 2 20141113 20141114
2 134 00 9901679 A 2201 2 20141113 20141114
3 134 00 9901679 A 2203 2 20141113 20141114 2789
4 134 00 9901679 A 2205 2 20141113 20141114 2033
5 134 00 9901679 A 2206 2 20141113 20141114 0
6 134 00 9929798 A 0902 2 20141113 20141114
7 134 00 9929798 A 0915 2 20141113 20141114
8 134 99 9999999 99 A 1234 2 20141113 20141114 123456

View File

@ -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",""
1 134 00 9901649 B 1001 2 20141113 20141114 0
2 134 00 9901679 B 2203 2 20141113 20141114 @
3 134 00 9901679 B 2205 2 20141113 20141114 1987
4 134 00 9901679 B 2206 2 20141113 20141114 @
5 134 00 9929798 B 0902 2 20141113 20141114 0
6 134 00 9929798 B 0915 2 20141113 20141114 543
7 134 99 9999999 99 B 1234 2 20141113 20141114

View File

@ -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"
1 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
2 009901649 1001 0 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/11 21:20:37 clsPrefcMedDisTreat
3 009901679 2201 NULL 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/08 20:57:12 clsPrefcMedDisTreat
4 009901679 2203 NULL 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/11 21:20:37 clsPrefcMedDisTreat
5 009901679 2205 1987 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/11 21:20:37 clsPrefcMedDisTreat
6 009901679 2206 NULL 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/11 21:20:37 clsPrefcMedDisTreat
7 009929798 0902 0 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/11 21:20:37 clsPrefcMedDisTreat
8 009929798 0915 543 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/11 21:20:37 clsPrefcMedDisTreat

View File

@ -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"
1 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
2 009901649 1001 NULL 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/08 20:57:12 clsPrefcMedDisTreat
3 009901679 2201 NULL 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/08 20:57:12 clsPrefcMedDisTreat
4 009901679 2203 2789 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/08 20:57:12 clsPrefcMedDisTreat
5 009901679 2205 2033 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/08 20:57:12 clsPrefcMedDisTreat
6 009901679 2206 0 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/08 20:57:12 clsPrefcMedDisTreat
7 009929798 0902 NULL 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/08 20:57:12 clsPrefcMedDisTreat
8 009929798 0915 NULL 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/08 20:57:12 clsPrefcMedDisTreat
9 99999999999 1234 1111 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/08 20:57:12 clsPrefcMedDisTreat

View File

@ -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"
1 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
2 009901649 1001 0 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/11 21:20:37 clsPrefcMedDisTreat
3 009929798 0902 0 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/11 21:20:37 clsPrefcMedDisTreat
4 009929798 0915 543 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/11 21:20:37 clsPrefcMedDisTreat

View File

@ -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"
1 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
2 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
3 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
4 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
5 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
6 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
7 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
8 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
9 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
10 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

View File

@ -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"
1 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
2 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
3 009901679 2201 NULL 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/08 20:57:12 clsPrefcMedDisTreat
4 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
5 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
6 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
7 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
8 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
9 99999999999 1234 1111 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedDisTreat 2017/10/08 20:57:12 clsPrefcMedDisTreat

View File

@ -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}が、期待値以降であること'

View File

@ -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",""
1 133 00 9900194 B 008 1 20141211 20141213
2 133 00 9901649 B 009 1 20141211 20141213
3 133 00 9901679 B 015 1 20141211 20141213

View File

@ -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",""
1 133 00 9900146 A 012 2 20141113 20141114 0
2 133 00 9900194 A 008 2 20141113 20141114 32
3 133 00 9901649 A 009 2 20141113 20141114 3
4 133 00 9901679 A 015 2 20141113 20141114
5 133 00 9904439 A 006 2 20141113 20141114
6 133 00 9929798 A 010 2 20141113 20141114

View File

@ -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"
1 133 99 9999999 99 B 111 2 20141113 20141114
2 133 00 9900146 B 012 2 20141113 20141114 @
3 133 00 9900194 B 008 2 20141113 20141114 @
4 133 00 9901649 B 009 2 20141113 20141114 6
5 133 00 9901679 B 015 2 20141113 20141114 @
6 133 00 9904439 B 006 2 20141113 20141114 10
7 133 00 9929798 B 010 2 20141113 20141114 9

View File

@ -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"
1 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
2 009900146 012 NULL 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/11 21:20:37 clsPrefcMedEquipment
3 009900194 008 NULL 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/11 21:20:37 clsPrefcMedEquipment
4 009901649 009 6 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/11 21:20:37 clsPrefcMedEquipment
5 009901679 015 NULL 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/11 21:20:37 clsPrefcMedEquipment
6 009904439 006 10 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/11 21:20:37 clsPrefcMedEquipment
7 009929798 010 9 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/11 21:20:37 clsPrefcMedEquipment

View File

@ -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"
1 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
2 009900146 012 0 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/08 20:57:12 clsPrefcMedEquipment
3 009900194 008 32 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/08 20:57:12 clsPrefcMedEquipment
4 009901649 009 3 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/08 20:57:12 clsPrefcMedEquipment
5 009901679 015 NULL 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/08 20:57:12 clsPrefcMedEquipment
6 009904439 006 NULL 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/08 20:57:12 clsPrefcMedEquipment
7 009929798 010 NULL 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/08 20:57:12 clsPrefcMedEquipment
8 99999999999 111 NULL 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/08 20:57:12 clsPrefcMedEquipment

View File

@ -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"
1 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
2 009900146 012 NULL 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/11 21:20:37 clsPrefcMedEquipment
3 009904439 006 10 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/11 21:20:37 clsPrefcMedEquipment
4 009929798 010 9 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/11 21:20:37 clsPrefcMedEquipment

View File

@ -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"
1 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
2 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
3 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
4 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
5 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
6 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
7 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

View File

@ -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"
1 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
2 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
3 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
4 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
5 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
6 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
7 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
8 99999999999 111 NULL 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedEquipment 2017/10/08 20:57:12 clsPrefcMedEquipment

View File

@ -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}が、期待値以降であること'

View File

@ -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"
1 135 00 9901679 B 101 1 20141210 20141213
2 135 00 9901679 B 102 1 20141209 20141213
3 135 00 9901679 B 111 1 20141208 20141213

View File

@ -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"
1 135 00 9900146 A 213 2 20141113 20141114
2 135 00 9900146 A 214 2 20141113 20141114
3 135 00 9900146 A 215 2 20141113 20141114
4 135 00 9901679 A 101 2 20141113 20141114
5 135 00 9901679 A 102 2 20141113 20141114
6 135 00 9929798 A 110 2 20141113 20141114
7 135 00 9929798 A 111 2 20141113 20141114

View File

@ -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"
1 135 00 9901679 B 101 2 20141113 20141114
2 135 00 9901679 B 111 2 20141113 20141114
3 135 00 9929798 B 111 2 20141113 20141114
4 135 00 9929798 B 211 2 20141113 20141114

View File

@ -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"
1 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
2 009900146 213 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
3 009900146 214 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
4 009900146 215 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
5 009901679 101 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/11 21:20:37 clsPrefcMedSojournOp
6 009901679 102 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
7 009901679 111 20171011 20171011 NULL NULL NULL NULL 2017/10/11 11:49:28 clsPrefcMedSojournOp 2017/10/11 21:20:37 clsPrefcMedSojournOp
8 009929798 110 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
9 009929798 111 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/11 21:20:37 clsPrefcMedSojournOp
10 009929798 211 20171011 20171011 NULL NULL NULL NULL 2017/10/11 11:49:28 clsPrefcMedSojournOp 2017/10/11 21:20:37 clsPrefcMedSojournOp

View File

@ -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"
1 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
2 009900146 213 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
3 009900146 214 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
4 009900146 215 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
5 009901679 101 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
6 009901679 102 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
7 009929798 110 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
8 009929798 111 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp

View File

@ -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"
1 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
2 009900146 213 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
3 009900146 214 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
4 009900146 215 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
5 009929798 110 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
6 009929798 111 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/11 21:20:37 clsPrefcMedSojournOp
7 009929798 211 20171011 20171011 NULL NULL NULL NULL 2017/10/11 11:49:28 clsPrefcMedSojournOp 2017/10/11 21:20:37 clsPrefcMedSojournOp

View File

@ -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"
1 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
2 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
3 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
4 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
5 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
6 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
7 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
8 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

View File

@ -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"
1 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
2 009900146 213 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
3 009900146 214 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
4 009900146 215 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
5 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
6 009901679 102 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
7 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
8 009929798 110 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsPrefcMedSojournOp 2017/10/08 20:57:12 clsPrefcMedSojournOp
9 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
10 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

View File

@ -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}が、期待値以降であること'

View File

@ -0,0 +1 @@
"136","00","9929798","","B","テスト ストーマ(人工肛門・人工膀胱)専門外来","1","20141211","20141213","",""
1 136 00 9929798 B テスト ストーマ(人工肛門・人工膀胱)専門外来 1 20141211 20141213

View File

@ -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"
1 136 00 9901649 A テスト 小児 内分泌・腎臓外来 2 20141113 20141114 5 030
2 136 00 9904439 A テスト アルコール症専門外来 2 20141113 20141114 1 019
3 136 00 9904439 A テスト メンタルヘルス専門外来 2 20141113 20141114 7 019
4 136 00 9904439 A テスト 禁煙専門外来 2 20141113 20141114 2 001
5 136 00 9904439 A テスト 糖尿病外来 2 20141113 20141114 7 006
6 136 00 9929798 A テスト ストーマ(人工肛門・人工膀胱)専門外来 2 20141113 20141114 1 014
7 136 99 9999999 99 A あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ 2 20141113 20141114 111 222

View File

@ -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","",""
1 136 00 9901649 B テスト 小児 内分泌・腎臓外来 2 20141113 20141114 5 019
2 136 00 9904439 B テスト 禁煙専門外来 2 20141113 20141114 2 @
3 136 00 9904439 B テスト 糖尿病外来 2 20141113 20141114 7 001
4 136 00 9929798 B テスト ストーマ(人工肛門・人工膀胱)専門外来 2 20141113 20141114 1 @
5 136 99 9999999 11 B あいうえお 2 20141113 20141114 999
6 136 99 9999999 99 B あいうえお 2 20141113 20141114

View File

@ -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"
1 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
2 009901649 テスト 小児 内分泌・腎臓外来 5 019 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/11 21:20:37 clsComPrefcMedSpOutp
3 009904439 テスト アルコール症専門外来 1 019 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp
4 009904439 テスト メンタルヘルス専門外来 7 019 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp
5 009904439 テスト 禁煙専門外来 2 NULL 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/11 21:20:37 clsComPrefcMedSpOutp
6 009904439 テスト 糖尿病外来 7 001 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/11 21:20:37 clsComPrefcMedSpOutp
7 009929798 テスト ストーマ(人工肛門・人工膀胱)専門外来 1 NULL 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/11 21:20:37 clsComPrefcMedSpOutp

View File

@ -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"
1 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
2 009901649 テスト 小児 内分泌・腎臓外来 5 030 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp
3 009904439 テスト アルコール症専門外来 1 019 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp
4 009904439 テスト メンタルヘルス専門外来 7 019 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp
5 009904439 テスト 禁煙専門外来 2 001 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp
6 009904439 テスト 糖尿病外来 7 006 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp
7 009929798 テスト ストーマ(人工肛門・人工膀胱)専門外来 1 014 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp
8 99999999911 あいうえお 123 123 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp
9 99999999999 あいうえお 123 123 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp

View File

@ -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"
1 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
2 009901649 テスト 小児 内分泌・腎臓外来 5 019 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/11 21:20:37 clsComPrefcMedSpOutp
3 009904439 テスト アルコール症専門外来 1 019 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp
4 009904439 テスト メンタルヘルス専門外来 7 019 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp
5 009904439 テスト 禁煙専門外来 2 NULL 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/11 21:20:37 clsComPrefcMedSpOutp
6 009904439 テスト 糖尿病外来 7 001 20171008 20171011 NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/11 21:20:37 clsComPrefcMedSpOutp

View File

@ -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"
1 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
2 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
3 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
4 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
5 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
6 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
7 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
8 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

View File

@ -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"
1 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
2 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
3 009904439 テスト アルコール症専門外来 1 019 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp
4 009904439 テスト メンタルヘルス専門外来 7 019 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp
5 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
6 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
7 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
8 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
9 99999999999 あいうえお 123 123 20171008 NULL NULL NULL NULL NULL 2017/10/08 20:57:12 clsComPrefcMedSpOutp 2017/10/08 20:57:12 clsComPrefcMedSpOutp

View File

@ -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}が、期待値以降であること'