新規作成(作業中)
This commit is contained in:
parent
e52bab068c
commit
68c6ea576a
@ -1,9 +1,541 @@
|
||||
from src.batch.ultmarc.utmp_tables.table_mapper.ultmarc_table_mapper import \
|
||||
UltmarcTableMapper
|
||||
from src.batch.ultmarc.utmp_tables.tables.com_inst import ComInst
|
||||
import datetime
|
||||
|
||||
|
||||
class ComInstMapper(UltmarcTableMapper):
|
||||
"""COM_施設 登録処理: TODO"""
|
||||
"""レイアウト区分101: COM_施設 登録処理: TODO"""
|
||||
|
||||
# レコード存在確認SQL(COM_施設)
|
||||
RECORD_EXISTS_QUERY = """\
|
||||
SELECT
|
||||
COUNT(*) AS count_num
|
||||
FROM
|
||||
src05.com_inst
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcfdsf_inst_code
|
||||
"""
|
||||
|
||||
# データ登録用SQL(COM_施設)
|
||||
INSERT_INST_QUERY = """\
|
||||
INSERT INTO src05.com_inst
|
||||
(
|
||||
dcf_dsf_inst_cd,
|
||||
inst_div_cd,
|
||||
addr_unknown_reason_cd,
|
||||
form_inst_name_kana,
|
||||
inst_name_kana,
|
||||
form_inst_name_kanji,
|
||||
inst_name_kanji,
|
||||
rltd_univ_prnt_cd,
|
||||
bed_num,
|
||||
close_flg,
|
||||
estab_sche_flg,
|
||||
close_start_ym,
|
||||
estab_sche_ym,
|
||||
ward_abolish_flg,
|
||||
inst_repre_cd,
|
||||
inst_repre_kana,
|
||||
inst_repre,
|
||||
phone_number_non_flg,
|
||||
unconf_flg,
|
||||
inst_phone_number,
|
||||
inst_addr_kana,
|
||||
inst_addr,
|
||||
postal_number,
|
||||
village_cd,
|
||||
prefc_cd,
|
||||
city_cd,
|
||||
addr_display_number,
|
||||
addr_cnt_kana,
|
||||
addr_cnt,
|
||||
manage_cd,
|
||||
delete_sche_reason_cd,
|
||||
hp_assrt_cd,
|
||||
dup_opp_cd,
|
||||
insp_item_micrb,
|
||||
insp_item_serum,
|
||||
insp_item_blood,
|
||||
insp_item_patho,
|
||||
insp_item_paras,
|
||||
insp_item_biochem,
|
||||
insp_item_ri,
|
||||
re_exam_cd,
|
||||
prmit_bed_num_other,
|
||||
prmit_bed_num_mental,
|
||||
prmit_bed_num_tuber,
|
||||
prmit_bed_num_infection,
|
||||
prmit_bed_num_sum,
|
||||
prmit_bed_num_gen,
|
||||
prmit_bed_num_rcup,
|
||||
prmit_bed_maint_ymd,
|
||||
inst_pharm_div,
|
||||
abolish_ymd,
|
||||
delete_flg,
|
||||
sys_regist_date,
|
||||
regist_prgm_id,
|
||||
sys_update_date,
|
||||
update_prgm_id
|
||||
)
|
||||
VALUES (
|
||||
dcfdsf_inst_code,
|
||||
hp_class_code,
|
||||
hp_addr_lost_code,
|
||||
hp_name_kana,
|
||||
hp_ryaku_name_kana,
|
||||
hp_name,
|
||||
hp_ryaku_name,
|
||||
univ_prnt_code,
|
||||
bed_num,
|
||||
close_flag,
|
||||
open_flag,
|
||||
close_year_month,
|
||||
open_year_month,
|
||||
close_flag2,
|
||||
inst_repre_code,
|
||||
president_kana,
|
||||
president,
|
||||
tel_nothing_flag,
|
||||
uncheck_flag,
|
||||
hp_tel,
|
||||
hp_addr_kana,
|
||||
hp_addr,
|
||||
hp_zip_code,
|
||||
village_code,
|
||||
pref_code,
|
||||
city_code,
|
||||
hp_addr_number,
|
||||
addr_cnt_kana,
|
||||
addr_cnt,
|
||||
mgt_class_code,
|
||||
hpdel_code,
|
||||
hp_kind_code,
|
||||
dup_opp_code,
|
||||
inspect_code1,
|
||||
inspect_code2,
|
||||
inspect_code3,
|
||||
inspect_code4,
|
||||
inspect_code5,
|
||||
inspect_code6,
|
||||
inspect_code7,
|
||||
reexam_flagc,
|
||||
bed_num_gen,
|
||||
bed_num_psy,
|
||||
bed_num_tub,
|
||||
bed_num_epi,
|
||||
bed_num_sum,
|
||||
bed_num_gen2,
|
||||
bed_num_rest,
|
||||
bed_class_maint_date,
|
||||
1,
|
||||
NULL,
|
||||
0,
|
||||
:execute_datetime,
|
||||
:program_name,
|
||||
:execute_datetime,
|
||||
:program_name
|
||||
)
|
||||
"""
|
||||
|
||||
# データ更新用SQL(COM_施設)
|
||||
UPDATE_INST_QUERY = """\
|
||||
UPDATE
|
||||
src05.com_inst
|
||||
SET
|
||||
{update_columns}
|
||||
abolish_ymd = NULL,
|
||||
sys_update_date = :execute_datetime,
|
||||
update_prgm_id = :program_name
|
||||
WHERE
|
||||
dcf_pcf_dr_cd = :dcfdsf_inst_code
|
||||
"""
|
||||
|
||||
# 修正区分が「C(削除)」の場合の更新SQL
|
||||
LOGICAL_DELETE_QUERY = """\
|
||||
UPDATE
|
||||
src05.com_inst
|
||||
SET
|
||||
abolish_ymd = :maint_date,
|
||||
sys_update_date = :execute_datetime,
|
||||
update_prgm_id = :program_name
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcfdsf_inst_code
|
||||
"""
|
||||
|
||||
# データ登録用SQL(COM_施設診療科目)
|
||||
INSERT_INST_TRT_QUERY = """\
|
||||
INSERT INTO src05.com_inst_trt_course
|
||||
(
|
||||
dcf_dsf_inst_cd,
|
||||
trt_course_cd,
|
||||
regist_ymd,
|
||||
sys_regist_date,
|
||||
regist_prgm_id,
|
||||
sys_update_date,
|
||||
update_prgm_id
|
||||
)
|
||||
VALUES (
|
||||
:dcfdsf_inst_code,
|
||||
:insert_trt_course_cd,
|
||||
:execute_date_str_ymd,
|
||||
:execute_datetime,
|
||||
:program_name,
|
||||
:execute_datetime,
|
||||
:program_name
|
||||
)
|
||||
"""
|
||||
|
||||
# データ削除用SQL(COM_施設診療科目)
|
||||
PHYSICAL_DELETE_TRT_QUERY = """\
|
||||
DELETE FROM
|
||||
src05.com_inst_trt_course
|
||||
WHERE
|
||||
dcf_pcf_dr_cd = :dcf_pcf_dr_cd
|
||||
"""
|
||||
|
||||
# レコード存在確認SQL(COM_特養医務室)
|
||||
RECORD_EXISTS_SPCARE_QUERY = """\
|
||||
SELECT
|
||||
COUNT(*) AS count_num
|
||||
FROM
|
||||
src05.com_spcare_med_office_dat
|
||||
WHERE
|
||||
dcf_dsf_inst_cd = :dcfdsf_inst_code
|
||||
"""
|
||||
|
||||
# データ更新用SQL(COM_特養医務室)
|
||||
UPDATE_SSPCARE_QUERY = """\
|
||||
UPDATE
|
||||
src05.com_spcare_med_office_dat
|
||||
SET
|
||||
dcf_prnt_inst_cd = :dcf_prnt_inst_code,
|
||||
update_ymd = :execute_date_str_ymd,
|
||||
delete_ymd = :delete_ymd,
|
||||
sys_update_date = :execute_datetime,
|
||||
update_prgm_id = :program_name
|
||||
WHERE
|
||||
dcf_chld_inst_cd = :dcfdsf_inst_code
|
||||
"""
|
||||
|
||||
# データ登録用SQL(COM_特養医務室)
|
||||
INSERT_INST_SSPCARE_QUERY = """\
|
||||
INSERT INTO src05.com_spcare_med_office_dat
|
||||
(
|
||||
dcf_chld_inst_cd,
|
||||
dcf_prnt_inst_cd,
|
||||
regist_ymd,
|
||||
sys_regist_date,
|
||||
regist_prgm_id,
|
||||
sys_update_date,
|
||||
update_prgm_id
|
||||
)
|
||||
VALUES (
|
||||
:dcfdsf_inst_code,
|
||||
:dcf_prnt_inst_code,
|
||||
:execute_date_str_ymd,
|
||||
:execute_datetime,
|
||||
:program_name,
|
||||
:execute_datetime,
|
||||
:program_name
|
||||
)
|
||||
"""
|
||||
|
||||
record: ComInst
|
||||
|
||||
def __init__(self, record: list[str], db) -> None:
|
||||
super().__init__(record, db, ComInst)
|
||||
program_name = __name__.split('.')[-1] # 当モジュール名(現行から変わっている)
|
||||
# モジュール名をクエリパラメータに設定
|
||||
self.query_parameter['program_name'] = program_name
|
||||
# 読み込んだレコード値もクエリパラメータに追加
|
||||
self.query_parameter = {**self.query_parameter, **self.record.to_sql_parameter()}
|
||||
|
||||
def make_query(self):
|
||||
self.queries.append(None)
|
||||
# 修正区分がC(削除)の場合、論理削除
|
||||
if self.record.maint_flag == 'C':
|
||||
self.queries.append(self.LOGICAL_DELETE_QUERY)
|
||||
return
|
||||
|
||||
# 追加、更新の場合
|
||||
self.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:
|
||||
self.queries.append(self.INSERT_INST_QUERY)
|
||||
|
||||
# 存在する場合はUpdate(施設)
|
||||
self.__make_update_query()
|
||||
|
||||
# 施設診療科目の削除挿入
|
||||
self.__make_delete_insert_trt_query
|
||||
|
||||
# 特養医務室の追加、更新
|
||||
self.__make_upsert_spcare_query
|
||||
|
||||
return
|
||||
|
||||
def __make_update_query(self):
|
||||
# 存在する場合はUpdate(施設)
|
||||
set_clauses = [] # 設定項目
|
||||
|
||||
# 施設区分コード
|
||||
if len(self.record.hp_class_code) > 0:
|
||||
set_clauses.append('inst_div_cd = :hp_class_code')
|
||||
|
||||
# 正式施設名(カナ)
|
||||
if len(self.record.hp_name_kana) > 0:
|
||||
set_clauses.append('form_inst_name_kana = :hp_name_kana')
|
||||
|
||||
# 略式施設名(カナ)
|
||||
if len(self.record.hp_name_kana) > 0:
|
||||
set_clauses.append('inst_name_kana = :hp_ryaku_name_kana')
|
||||
|
||||
# 正式施設名(漢字)
|
||||
if len(self.record.hp_name) > 0:
|
||||
set_clauses.append('form_inst_name_kanji = :hp_name')
|
||||
|
||||
# 略式施設名(漢字)
|
||||
if len(self.record.hp_ryaku_name_kana) > 0:
|
||||
set_clauses.append('inst_name_kanji = :hp_ryaku_name_kana')
|
||||
|
||||
# 施設住所カナ
|
||||
if len(self.record.hp_addr_kana) > 0:
|
||||
set_clauses.append('inst_addr_kana = :hp_addr_kana')
|
||||
|
||||
# 施設住所
|
||||
if len(self.record.hp_addr) > 0:
|
||||
set_clauses.append('inst_addr = :hp_addr')
|
||||
|
||||
# 郵便番号
|
||||
if len(self.record.hp_zip_code) > 0:
|
||||
set_clauses.append('postal_number = :hp_zip_code')
|
||||
|
||||
# <<<<< 住所関連不明 >>>>>>
|
||||
# 町字コード
|
||||
if len(self.record.village_code) > 0:
|
||||
set_clauses.append('village_cd = :village_code')
|
||||
|
||||
# 都道府県コード
|
||||
if len(self.record.pref_code) > 0:
|
||||
set_clauses.append('prefc_cd = :pref_code')
|
||||
|
||||
# 市区町村コード
|
||||
if len(self.record.city_code) > 0:
|
||||
set_clauses.append('city_cd = :city_code')
|
||||
|
||||
# 住所カウント
|
||||
if len(self.record.pref_code) > 0:
|
||||
set_clauses.append('addr_cnt_kana = :addr_cnt_kana')
|
||||
set_clauses.append('addr_cnt = :addr_cnt')
|
||||
|
||||
# 住所表示番号@いるの?
|
||||
if len(self.record.hp_addr_number) > 0:
|
||||
set_clauses.append('addr_display_number = :hp_addr_number')
|
||||
|
||||
# 経営体コード@いるの?
|
||||
if len(self.record.mgt_class_code) > 0:
|
||||
set_clauses.append('manage_cd = :mgt_class_code')
|
||||
|
||||
# <<<<< 住所関連不明 >>>>>>
|
||||
|
||||
# 病院種別
|
||||
if len(self.record.hp_kind_code) > 0:
|
||||
set_clauses.append('hp_assrt_cd = :hp_kind_code')
|
||||
|
||||
# 再審査コード
|
||||
if len(self.record.reexam_flag) > 0:
|
||||
set_clauses.append('re_exam_cd = :reexam_flag')
|
||||
|
||||
# 未確認フラグ
|
||||
if len(self.record.uncheck_flag) > 0:
|
||||
set_clauses.append('unconf_flg = :uncheck_flag')
|
||||
if self.record.uncheck_flag == '@':
|
||||
self.query_parameter['uncheck_flag'] = ''
|
||||
|
||||
# 削除予定理由コード
|
||||
if len(self.record.hpdel_code) > 0:
|
||||
set_clauses.append('delete_sche_reason_cd = :hpdel_code')
|
||||
if self.record.hpdel_code == '@':
|
||||
self.query_parameter['hpdel_code'] = ''
|
||||
|
||||
# 重複時相手先コード
|
||||
if len(self.record.dup_opp_code) > 0:
|
||||
set_clauses.append('dup_opp_cd = :dup_opp_code')
|
||||
if self.record.dup_opp_code == '@':
|
||||
self.query_parameter['dup_opp_code'] = ''
|
||||
|
||||
# 住所不明理由コード
|
||||
if len(self.record.hp_addr_lost_code) > 0:
|
||||
set_clauses.append('addr_unknown_reason_cd = :hp_addr_lost_code')
|
||||
if self.record.hp_addr_lost_code == '@':
|
||||
self.query_parameter['hp_addr_lost_code'] = ''
|
||||
|
||||
# 電話番号なしフラグ
|
||||
if len(self.record.tel_nothing_flag) > 0:
|
||||
set_clauses.append('phone_number_non_flg = :tel_nothing_flag')
|
||||
if self.record.tel_nothing_flag == '@':
|
||||
self.query_parameter['tel_nothing_flag'] = ''
|
||||
|
||||
# 電話番号
|
||||
if len(self.record.hp_tel) > 0:
|
||||
set_clauses.append('inst_phone_number = :hp_tel')
|
||||
if self.record.hp_tel == '@':
|
||||
self.query_parameter['hp_tel'] = ''
|
||||
|
||||
# 施設代表者コード
|
||||
if len(self.record.inst_repre_code) > 0:
|
||||
set_clauses.append('inst_repre_cd = :inst_repre_code')
|
||||
if self.record.inst_repre_code == '@':
|
||||
self.query_parameter['inst_repre_code'] = ''
|
||||
|
||||
# 代表者(カナ)
|
||||
if len(self.record.president_kana) > 0:
|
||||
set_clauses.append('inst_repre_kana = :president_kana')
|
||||
if self.record.president_kana == '@':
|
||||
self.query_parameter['president_kana'] = ''
|
||||
|
||||
# 代表者(漢字) ※「@」が大文字
|
||||
if len(self.record.president) > 0:
|
||||
set_clauses.append('inst_repre = :president')
|
||||
if self.record.president == '@':
|
||||
self.query_parameter['president'] = ''
|
||||
|
||||
# 開業予定フラグ・開業予定年月
|
||||
if len(self.record.open_flag + self.record.open_year_month) > 0:
|
||||
set_clauses.append('estab_sche_flg = :open_flag')
|
||||
set_clauses.append('estab_sche_ym = :open_year_month')
|
||||
if self.record.open_flag == '@':
|
||||
self.query_parameter['open_flag'] = ''
|
||||
self.query_parameter['open_year_month'] = ''
|
||||
|
||||
# 休院フラグ・休院開始年月
|
||||
if len(self.record.close_flag + self.record.close_year_month) > 0:
|
||||
set_clauses.append('close_flg = :close_flag')
|
||||
set_clauses.append('close_start_ym = :close_year_month')
|
||||
if self.record.close_flag == '@':
|
||||
self.query_parameter['close_flag'] = ''
|
||||
self.query_parameter['close_year_month'] = ''
|
||||
|
||||
# 関連大学親コード
|
||||
if len(self.record.univ_prnt_code) > 0:
|
||||
set_clauses.append('rltd_univ_prnt_cd = :univ_prnt_code')
|
||||
if self.record.univ_prnt_code == '@':
|
||||
self.query_parameter['univ_prnt_code'] = ''
|
||||
|
||||
# 病棟閉鎖フラグ
|
||||
if len(self.record.close_flag2) > 0:
|
||||
set_clauses.append('ward_abolish_flg = :close_flag2')
|
||||
if self.record.close_flag2 == '@':
|
||||
self.query_parameter['close_flag2'] = ''
|
||||
|
||||
# 病床数(定員)
|
||||
if len(self.record.bed_num) > 0:
|
||||
set_clauses.append('bed_num = :bed_num')
|
||||
if self.record.bed_num == '@':
|
||||
self.query_parameter['bed_num'] = ''
|
||||
|
||||
# 許可病床メンテ日付
|
||||
if len(self.record.bed_class_maint_date) > 0:
|
||||
set_clauses.append('prmit_bed_maint_ymd = :bed_class_maint_date')
|
||||
if self.record.bed_class_maint_date == '@':
|
||||
self.query_parameter['bed_class_maint_date'] = ''
|
||||
|
||||
# 許可ベッド数(合計、精神、結核、感染、その他、一般病床、療養病床)
|
||||
# <<<<< 後で書き直そう >>>>>>>>>
|
||||
if len(self.record.bed_num_sum + self.record.bed_num_psy + self.record.bed_num_tub + self.record.bed_num_epi +
|
||||
self.record.bed_num_gen + self.record.bed_num_gen2 + self.record.bed_num_rest) > 0:
|
||||
set_clauses.append('prmit_bed_num_sum = :bed_num_sum')
|
||||
set_clauses.append('prmit_bed_num_mental = :bed_num_psy')
|
||||
set_clauses.append('prmit_bed_num_tuber = :bed_num_tub')
|
||||
set_clauses.append('prmit_bed_num_infection = :bed_num_epi')
|
||||
set_clauses.append('prmit_bed_num_other = :bed_num_gen')
|
||||
set_clauses.append('prmit_bed_num_gen = :bed_num_gen2')
|
||||
set_clauses.append('prmit_bed_num_rcup = :bed_num_rest')
|
||||
if self.record.bed_num_sum == '@':
|
||||
self.query_parameter['bed_num_sum'] = ''
|
||||
self.query_parameter['bed_num_psy'] = ''
|
||||
self.query_parameter['bed_num_tub'] = ''
|
||||
self.query_parameter['bed_num_epi'] = ''
|
||||
self.query_parameter['bed_num_gen'] = ''
|
||||
self.query_parameter['bed_num_gen2'] = ''
|
||||
self.query_parameter['bed_num_rest'] = ''
|
||||
|
||||
# 検査項目(微生物、血清、血液、病理、寄生虫、生化、RI)
|
||||
# <<<<< 後で書き直そう >>>>>>>>>
|
||||
if len(self.record.inspect_code1 + self.record.inspect_code2 + self.record.inspect_code3 + self.record.inspect_code4 +
|
||||
self.record.inspect_code5 + self.record.inspect_code6 + self.record.inspect_code7) > 0:
|
||||
set_clauses.append('insp_item_micrb = :inspect_code1')
|
||||
set_clauses.append('insp_item_serum = :inspect_code2')
|
||||
set_clauses.append('insp_item_blood = :inspect_code3')
|
||||
set_clauses.append('insp_item_patho = :inspect_code4')
|
||||
set_clauses.append('insp_item_paras = :inspect_code5')
|
||||
set_clauses.append('insp_item_biochem = :inspect_code6')
|
||||
set_clauses.append('insp_item_ri = :inspect_code7')
|
||||
if self.record.inspect_code1 == '@':
|
||||
self.query_parameter['inspect_code1'] = ''
|
||||
self.query_parameter['inspect_code2'] = ''
|
||||
self.query_parameter['inspect_code3'] = ''
|
||||
self.query_parameter['inspect_code4'] = ''
|
||||
self.query_parameter['inspect_code5'] = ''
|
||||
self.query_parameter['inspect_code6'] = ''
|
||||
self.query_parameter['inspect_code7'] = ''
|
||||
|
||||
update_columns = ','.join(set_clauses)
|
||||
# 何も更新項目が無い場合は更新処理は行わない
|
||||
if len(update_columns) == 0:
|
||||
return
|
||||
else:
|
||||
update_columns += ','
|
||||
update_query = self.UPDATE_INST_QUERY.format(
|
||||
update_columns=update_columns
|
||||
)
|
||||
self.queries.append(update_query)
|
||||
|
||||
return
|
||||
|
||||
def __make_delete_insert_trt_query(self):
|
||||
# 施設診療科目の削除挿入
|
||||
delins_flg = False
|
||||
for i in range(0, 60):
|
||||
if len(self.record.medsbj_code[i]) > 0:
|
||||
delins_flg = True
|
||||
break
|
||||
|
||||
if not delins_flg:
|
||||
return
|
||||
|
||||
# 削除
|
||||
self.queries.append(self.PHYSICAL_DELETE_TRT_QUERY)
|
||||
|
||||
if len(self.record.medsbj_code[0]) != "@":
|
||||
for i in range(0, 60):
|
||||
if len(self.record.medsbj_code[i]) > 0:
|
||||
self.query_parameter['insert_trt_course_cd'] = self.record.medsbj_code[i]
|
||||
self.queries.append(self.INSERT_INST_TRT_QUERY)
|
||||
return
|
||||
|
||||
def __make_upsert_spcare_query(self):
|
||||
# 特養医務室の追加、更新
|
||||
if (self.record.dcf_prnt_inst_code == "00" or len(self.record.dcf_prnt_inst_code) == 0):
|
||||
return
|
||||
|
||||
# レコードの存在確認
|
||||
record_count = self.db.execute_select(self.RECORD_EXISTS_SPCARE_QUERY, self.query_parameter)
|
||||
# 存在しない場合はInsert
|
||||
if record_count[0]['count_num'] == 0:
|
||||
self.queries.append(self.INSERT_INST_SSPCARE_QUERY)
|
||||
return
|
||||
|
||||
# 存在する場合はUpdate
|
||||
if self.record.dcf_prnt_inst_code == "@":
|
||||
self.query_parameter['dcf_prnt_inst_code'] = ''
|
||||
self.query_parameter['delete_ymd'] = datetime.datetime.now().strftime('%Y%m%d')
|
||||
else:
|
||||
self.query_parameter['delete_ymd'] = ''
|
||||
|
||||
return
|
||||
|
||||
@ -0,0 +1,200 @@
|
||||
from src.batch.ultmarc.utmp_tables.tables.ultmarc_table import UltmarcTable
|
||||
|
||||
|
||||
class ComInst(UltmarcTable):
|
||||
"""レイアウト区分101: COM_施設"""
|
||||
dcfhp_id: str # 施設コード(レコードID)
|
||||
dcfhp_code: str # 施設コード(施設コード)
|
||||
dcfh_yobi: str # 施設コード(予備)
|
||||
maint_flag: str # 修正区分
|
||||
maint_date: str # メンテナンス年月日
|
||||
trn_date: str # 予備/転送年月日
|
||||
uncheck_flag: str # 未確認フラグ
|
||||
hpdel_code: str # 削除予定理由
|
||||
duphp_id: str # 重複時相手先コード(レコードID)
|
||||
duphp_code: str # 重複時相手先コード(施設コード)
|
||||
duphp_yobi: str # 重複時相手先コード(予備)
|
||||
hp_name: str # 正式施設名(漢字)
|
||||
hp_name_kana: str # 正式施設名(カナ)
|
||||
hp_ryaku_name: str # 略式施設名(漢字)
|
||||
hp_ryaku_name_kana: str # 略式施設名(カナ)
|
||||
hp_addr_lost_code: str # 住所不明
|
||||
pref_code: str # 住所コード(県コード)
|
||||
city_code: str # 住所コード(市区町村コード)
|
||||
addr_code1: str # 住所コード(大字・通称コード)
|
||||
addr_code2: str # 住所コード(字・丁目コード)
|
||||
hp_zip_code: str # 郵便番号
|
||||
hp_addr: str # 住所(漢字)
|
||||
hp_addr_kana: str # 住所(カナ)
|
||||
hp_addr_number: str # 住所表示番号
|
||||
dr_addr_kanji1: str # 住所カウント_漢字(県)
|
||||
dr_addr_kanji2: str # 住所カウント_漢字(市区町村)
|
||||
dr_addr_kanji3: str # 住所カウント_漢字(大字・通称)
|
||||
dr_addr_kanji4: str # 住所カウント_漢字(字・丁目)
|
||||
dr_addr_kana1: str # 住所カウント_カナ(県)
|
||||
dr_addr_kana2: str # 住所カウント_カナ(市区町村)
|
||||
dr_addr_kana3: str # 住所カウント_カナ(大字・通称)
|
||||
dr_addr_kana4: str # 住所カウント_カナ(字・丁目)
|
||||
tel_nothing_flag: str # 電話番号なしフラグ
|
||||
hp_tel: str # 電話番号
|
||||
mgt_class_code: str # 経営体
|
||||
hp_class_code: str # 施設区分
|
||||
president_id: str # 代表者コード(レコードID)
|
||||
president_code: str # 代表者コード(個人コード)
|
||||
president_yobi: str # 代表者コード(予備)
|
||||
president: str # 代表者(漢字)
|
||||
president_kana: str # 代表者(カナ)
|
||||
open_flag: str # 開業予定フラグ
|
||||
open_year_month: str # 開業予定年月
|
||||
close_flag: str # 休院フラグ
|
||||
close_year_month: str # 休院開始年月
|
||||
medsbj_code = [] # 診療科目1~60
|
||||
hp_kind_code: str # 病院種別
|
||||
reexam_flag: str # 再審査区分
|
||||
assoc_parrent_id: str # 関連大学親コード(レコードID)
|
||||
assoc_parrent_code: str # 関連大学親コード(施設コード)
|
||||
assoc_parrent_yobi: str # 関連大学親コード(予備)
|
||||
close_flag2: str # 病棟閉鎖フラグ
|
||||
bed_num: str # 病床数(定員)
|
||||
bed_class_maint_date: str # 許可病床メンテ日付
|
||||
bed_num_sum: str # 許可病床数_合計
|
||||
bed_num_psy: str # 許可病床数_精神
|
||||
bed_num_tub: str # 許可病床数_結核
|
||||
bed_num_epi: str # 許可病床数_感染症
|
||||
bed_num_gen: str # 許可病床数_その他
|
||||
bed_num_gen2: str # 許可病床数_一般病床
|
||||
bed_num_rest: str # 許可病床数_療養病床
|
||||
inspect_code1: str # 検査項目_微生物
|
||||
inspect_code2: str # 検査項目_血清
|
||||
inspect_code3: str # 検査項目_血液
|
||||
inspect_code4: str # 検査項目_病理
|
||||
inspect_code5: str # 検査項目_寄生虫
|
||||
inspect_code6: str # 検査項目_生化
|
||||
inspect_code7: str # 検査項目_RI
|
||||
dcfhp_92id: str # 特養医務室コード(レコードID)
|
||||
dcfhp_92code: str # 特養医務室コード(施設コード)
|
||||
dcfhp_92yobi: str # 特養医務室コード(予備)
|
||||
|
||||
dcfdsf_inst_code: str # DCFDSF施設コード
|
||||
univ_prnt_code: str # 関連大学親コード
|
||||
inst_repre_code: str # 施設代表者コード
|
||||
village_code: str # 町字コード
|
||||
addr_cnt_kana: str # 住所カウントカナ
|
||||
addr_cnt: str # 住所カウント
|
||||
dup_opp_code: str # 重複時相手先コード
|
||||
dcf_prnt_inst_code: str # DCF親施設コード
|
||||
|
||||
delete_ymd: str # 削除年月日(COM_特養医務室データ)
|
||||
insert_trt_course_cd: str # 診療科目コード(COM_施設診療科目)
|
||||
|
||||
def __init__(self, record: list[str]):
|
||||
super().__init__(record)
|
||||
self.dcfhp_id = record[1]
|
||||
self.dcfhp_code = record[2]
|
||||
self.dcfh_yobi = record[3].strip()
|
||||
self.maint_flag = record[4]
|
||||
self.maint_date = record[5]
|
||||
self.trn_date = record[6]
|
||||
self.uncheck_flag = record[7].strip()
|
||||
self.hpdel_code = record[8].strip()
|
||||
self.duphp_id = record[9]
|
||||
self.duphp_code = record[10].strip()
|
||||
self.duphp_yobi = record[11].strip()
|
||||
self.hp_name = record[12].strip()
|
||||
self.hp_name_kana = record[13].strip()
|
||||
self.hp_ryaku_name = record[14].strip()
|
||||
self.hp_ryaku_name_kana = record[15].strip()
|
||||
self.hp_addr_lost_code = record[16].strip()
|
||||
self.pref_code = record[17].strip()
|
||||
self.city_code = record[18].strip()
|
||||
self.addr_code1 = record[19].strip()
|
||||
self.addr_code2 = record[20].strip()
|
||||
self.hp_zip_code = record[21].strip()
|
||||
self.hp_addr = record[22]
|
||||
self.hp_addr_kana = record[23]
|
||||
self.hp_addr_number = record[24]
|
||||
self.dr_addr_kanji1 = record[25].strip()
|
||||
self.dr_addr_kanji2 = record[26].strip()
|
||||
self.dr_addr_kanji3 = record[27].strip()
|
||||
self.dr_addr_kanji4 = record[28].strip()
|
||||
self.dr_addr_kana1 = record[29].strip()
|
||||
self.dr_addr_kana2 = record[30].strip()
|
||||
self.dr_addr_kana3 = record[31].strip()
|
||||
self.dr_addr_kana4 = record[32].strip()
|
||||
self.tel_nothing_flag = record[33].strip()
|
||||
self.hp_tel = record[34].strip()
|
||||
self.mgt_class_code = record[35].strip()
|
||||
self.hp_class_code = record[36].strip()
|
||||
self.president_id = record[37]
|
||||
self.president_code = record[38].strip()
|
||||
self.president_yobi = record[39]
|
||||
self.president = record[40].strip()
|
||||
self.president_kana = record[41].strip()
|
||||
self.open_flag = record[42].strip()
|
||||
self.open_year_month = record[43].strip()
|
||||
self.close_flag = record[44].strip()
|
||||
self.close_year_month = record[45].strip()
|
||||
|
||||
# 診療科目1~60
|
||||
num = 46
|
||||
for i in range(0, 60):
|
||||
self.medsbj_code[i] = record[num]
|
||||
num += 1
|
||||
|
||||
self.hp_kind_code = record[106].strip()
|
||||
self.reexam_flag = record[107].strip()
|
||||
self.assoc_parrent_id = record[108].strip()
|
||||
self.assoc_parrent_code = record[109].strip()
|
||||
self.assoc_parrent_yobi = record[110].strip()
|
||||
self.close_flag2 = record[111].strip()
|
||||
self.bed_num = record[112].strip()
|
||||
self.bed_class_maint_date = record[113].strip()
|
||||
self.bed_num_sum = record[114].strip()
|
||||
self.bed_num_psy = record[115].strip()
|
||||
self.bed_num_tub = record[116].strip()
|
||||
self.bed_num_epi = record[117].strip()
|
||||
self.bed_num_gen = record[118].strip()
|
||||
self.bed_num_gen2 = record[119].strip()
|
||||
self.bed_num_rest = record[120].strip()
|
||||
self.inspect_code1 = record[121].strip()
|
||||
self.inspect_code2 = record[122].strip()
|
||||
self.inspect_code3 = record[123].strip()
|
||||
self.inspect_code4 = record[124].strip()
|
||||
self.inspect_code5 = record[125].strip()
|
||||
self.inspect_code6 = record[126].strip()
|
||||
self.inspect_code7 = record[127].strip()
|
||||
self.dcfhp_92id = record[128].strip()
|
||||
self.dcfhp_92code = record[129].strip()
|
||||
self.dcfhp_92yobi = record[130].strip()
|
||||
|
||||
# DCFDSF施設コード
|
||||
self.dcfdsf_inst_code = self.dcfhp_id + self.dcfhp_code + self.dcfh_yobi
|
||||
# 関連大学親コード
|
||||
self.univ_prnt_code = self.assoc_parrent_id + self.assoc_parrent_code + self.assoc_parrent_yobi
|
||||
# 施設代表者コード
|
||||
self.inst_repre_code = self.president_id + self.president_code + self.president_yobi
|
||||
# 町字コード
|
||||
self.village_code = self.pref_code + self.city_code + self.addr_code1 + self.addr_code2
|
||||
# 住所カウントカナ
|
||||
self.addr_cnt_kana = self.dr_addr_kana1 + self.dr_addr_kana2 + self.dr_addr_kana3 + self.dr_addr_kana4
|
||||
# 住所カウント
|
||||
self.addr_cnt = self.dr_addr_kanji1 + self.dr_addr_kanji2 + self.dr_addr_kanji3 + self.dr_addr_kanji4
|
||||
# 重複時相手先コード
|
||||
self.dup_opp_code = self.duphp_id + self.duphp_code + self.duphp_yobi
|
||||
# DCF親施設コード
|
||||
self.dcf_prnt_inst_code = self.dcfhp_92id + self.dcfhp_92code + self.dcfhp_92yobi
|
||||
|
||||
# 住所カウント_漢字の0埋め
|
||||
self.dr_addr_kanji1.zfill(2)
|
||||
self.dr_addr_kanji2.zfill(2)
|
||||
self.dr_addr_kanji3.zfill(2)
|
||||
self.dr_addr_kanji4.zfill(2)
|
||||
|
||||
# 住所カウント_カナの0埋め
|
||||
self.dr_addr_kana1.zfill(2)
|
||||
self.dr_addr_kana2.zfill(2)
|
||||
self.dr_addr_kana3.zfill(2)
|
||||
self.dr_addr_kana4.zfill(2)
|
||||
|
||||
self.delete_ymd = ''
|
||||
self.insert_trt_course_cd = ''
|
||||
Loading…
x
Reference in New Issue
Block a user