Merge pull request #197 feature-NEWDWH2021-1011-COM_PREFC_MED into develop

This commit is contained in:
野間亜希子 2023-05-11 15:56:11 +09:00
commit d9224ef8f7
61 changed files with 2610 additions and 5 deletions

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,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,16 @@ 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 \
@ -57,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

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