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