<template>
  <div class="patient-container">
    <patient-sidebar :id="patientID" defaultActive="2-1"></patient-sidebar>
    <div class="patient-app-container app-container">
      <div class="Total">
        <!-- <div class="plan" >透析计划</div> -->
        <!-- <table-title title="长期透析处方"></table-title> -->
        <div class="sum">
          <!-- <span>透析总频率:<el-input :value="totalrate" disabled style="width:180px"></el-input></span> -->
          <el-button
            type="primary"
            size="small"
            icon="el-icon-plus"
            @click="openNew"
            :disabled="
              $store.getters.xt_user.subscibe.state == 3 ? true : false
            "
            >新增透析处方
          </el-button>
        </div>
      </div>
      <el-table
        ref="solutionTable"
        :data="tableData"
        border
        fit
        highlight-current-row
        @current-change="tableCurrentChange"
        :header-cell-style="{
          backgroundColor: 'rgb(245, 247, 250)',
          color: '#606266'
        }"
        :row-style="{ color: '#303133' }"
        style="width: 100%"
      >
        <el-table-column type="index" align="center" label="序号" width="60">
        </el-table-column>
        <el-table-column
          prop="mode_name"
          align="center"
          label="透析模式"
          min-width="50"
        >
          <template slot-scope="scope">
            {{ modeOptions[scope.row.mode_id]?modeOptions[scope.row.mode_id].name:'' }}
          </template>
        </el-table-column>
        <el-table-column
          prop="dialysis_duration"
          align="center"
          label="透析时长"
          min-width="50"
        >
          <template slot-scope="scope">
            {{ scope.row.dialysis_duration_hour }} 小时
            {{ scope.row.dialysis_duration_minute }} 分钟
          </template>
        </el-table-column>
        <!-- <el-table-column
          prop="period"
          label="频率"
          align="center"
          min-width="50">
          <template slot-scope="scope" >
              <span v-if="scope.row.parent_id === 0" >{{scope.row.period}}{{scope.row.times}}</span>
              <span v-else >--</span>
          </template>
        </el-table-column> -->
        <!-- <el-table-column
          prop="name"
          label="处方名"
          align="center"
          min-width="50">
          <template slot-scope="scope" >
              <span >{{scope.row.name}}{{scope.row.sub_name}}</span>
          </template>
        </el-table-column> -->
        <el-table-column
          prop="doctor"
          label="医生"
          align="center"
          min-width="110"
        >
          <template slot-scope="scope">
            <span>{{ getAdminUserName(scope.row.registrars_id) }}</span>
          </template>
        </el-table-column>

        <el-table-column
          prop="created_time"
          align="center"
          label="创建日期"
          min-width="60"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.created_time | parseTime("{y}-{m}-{d}") }}</span>
          </template>
        </el-table-column>

        <el-table-column
          prop="updated_time"
          align="center"
          label="更新日期"
          min-width="60"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.updated_time | parseTime("{y}-{m}-{d}") }}</span>
          </template>
        </el-table-column>
        <!-- <el-table-column
           prop="state"
           label="状态"
           align="center"
           min-width="40">
           <template slot-scope="scope" >
               <span v-if="scope.row.initiate_mode==1">启用</span>
               <span v-else-if="scope.row.initiate_mode==2">停用</span>
               <span v-else>未知</span>
             </template>
        </el-table-column> -->
        <el-table-column label="操作" align="center" min-width="140">
          <template slot-scope="scope">
            <el-tooltip
              class="item"
              effect="dark"
              content="编辑"
              placement="top"
            >
              <el-button
                size="small"
                type="primary"
                icon="el-icon-edit-outline"
                @click="openEdit(scope.$index, scope.row)"
              ></el-button>
            </el-tooltip>
            <!--   <el-button
                 size="mini"
                 type="primary"
                 @click="openChildEdit(scope.$index, scope.row)" v-else>编辑</el-button>

               <el-button
                 size="mini"
                 type="success"
                 @click="openNewChild(scope.$index, scope.row)" v-if="scope.row.parent_id===0">新增</el-button>
               <el-button
                 size="mini"
                 type="danger"
                 @click="handleDelete(scope.$index, scope.row)">删除</el-button>-->
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
        align="right"
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="queryParams.page"
        :page-sizes="[10, 20, 50, 100]"
        :page-size="10"
        background
        style="margin-top:20px;"
        layout="total, sizes, prev, pager, next, jumper"
        :total="total"
      >
      </el-pagination>
    </div>

    <el-dialog
      :title="isEdit ? '编辑透析处方' : '新增透析处方'"
      :visible.sync="dialogVisible"
      width="1010px"
    >
      <el-form
        ref="addPlan"
        :model="addPlan"
        :rules="addPlanRules"
        label-width="160px"
      >
        <el-row :gutter="20">
          <el-col :span="8" v-if="isShows('透析模式')">
            <el-form-item label="透析模式:" prop="mode">
              <el-select
                v-model="addPlan.mode"
                @change="addPlanModeChange"
                :disabled="isEdit ? true : false"
              >
                <el-option
                  v-for="item in modeOptions"
                  :label="item.name"
                  :key="item.id"
                  :value="item.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('透析时长')">
            <el-form-item label="透析时长（h）:" prop="dialysis_duration">
              <el-time-picker
                v-model="dialysisTimeShow"
                :picker-options="{
                  selectableRange: '00:01:00 - 23:59:00'
                }"
                placeholder="透析时长"
                style="width:100%;"
                value-format="H:m"
                format="H:m"
                @change="selectnDialysisTime"
              >
              </el-time-picker>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('血流量')">
            <el-form-item label="血流量(ml/min):" prop="blood_flow_volume">
              <el-input v-model="addPlan.blood_flow_volume"></el-input>
            </el-form-item>
          </el-col>


          <el-col :span="8" v-if="isShows('透析液配方')">
            <el-form-item label="透析液配方:">
              <el-select v-model="addPlan.dialysate_formulation">
                <el-option
                  v-for="item in dialysate_formulation"
                  :label="item.name"
                  :key="item.id"
                  :value="item.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('抗凝剂')">
            <el-form-item label="抗凝剂:" prop="anticoagulant">
              <el-select
                v-model="addPlan.anticoagulant"
                @change="changeThisAnticoagulant"
              >
                <el-option
                  v-for="item in anticoagulantsConfit"
                  :label="item.name"
                  :key="item.id"
                  :value="item.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col
            :span="8"
            v-if="anticoagulant.shouji != -1 && isShows('首剂')"
          >
            <div v-if="this.$store.getters.xt_user.template_info.org_id == 10101">
              <el-form-item
                :label="'首剂（mg）: '"
                prop="anticoagulant_shouji"
                v-if="addPlan.anticoagulant == 2"
              >
                <el-input
                  v-model="addPlan.anticoagulant_shouji"
                  :disabled="anticoagulant.shouji == 1 ? false : true"
                  type="number"
                ></el-input>
              </el-form-item>
              <el-form-item
                :label="'首剂（iu）: '"
                prop="anticoagulant_shouji"
                v-else
              >
                <el-input
                  v-model="addPlan.anticoagulant_shouji"
                  :disabled="anticoagulant.shouji == 1 ? false : true"
                  type="number"
                ></el-input>
              </el-form-item>

            </div>
            <div v-else>
              <el-form-item
              :label="'首剂（' + anticoagulant.shouji_unit + '）: '"
              prop="anticoagulant_shouji"
            >
              <el-input
                v-model="addPlan.anticoagulant_shouji"
                :disabled="anticoagulant.shouji == 1 ? false : true"
                type="number"
              ></el-input>
            </el-form-item>
            </div>
            
          </el-col>
          <el-col
            :span="8"
            v-if="anticoagulant.weichi != -1 && isShows('维持')"
          >
          <div v-if="this.$store.getters.xt_user.template_info.org_id == 10101">
            <el-form-item
              :label="'维持（mg/h）: '"
              prop="anticoagulant_weichi"
              v-if="addPlan.anticoagulant == 2"
            >
              <el-input
                v-model="addPlan.anticoagulant_weichi"
                :disabled="anticoagulant.weichi == 1 ? false : true"
                type="number"
              ></el-input>
            </el-form-item>
            <el-form-item
              :label="'维持（iu/h）: '"
              prop="anticoagulant_weichi"
              v-else
            >
              <el-input
                v-model="addPlan.anticoagulant_weichi"
                :disabled="anticoagulant.weichi == 1 ? false : true"
                type="number"
              ></el-input>
            </el-form-item>
          </div>
          <div v-else>
            <el-form-item
              :label="'维持（' + anticoagulant.weichi_unit + '）: '"
              prop="anticoagulant_weichi"
            >
              <el-input
                v-model="addPlan.anticoagulant_weichi"
                :disabled="anticoagulant.weichi == 1 ? false : true"
                type="number"
              ></el-input>
            </el-form-item>
          </div>
          </el-col>
          <el-col
            :span="8"
            v-if="anticoagulant.zongliang != -1 && isShows('总量')"
          >
          <div v-if="this.$store.getters.xt_user.template_info.org_id == 10101">
            <el-form-item
              :label="'总量（mg）: '"
              prop="anticoagulant_zongliang"
              v-if="addPlan.anticoagulant == 2"
            >
              <el-input
                v-model="addPlan.anticoagulant_zongliang"
                :disabled="anticoagulant.zongliang == 1 ? false : true"
                type="number"
              ></el-input>
            </el-form-item>
            <el-form-item
              :label="'总量（iu）: '"
              prop="anticoagulant_zongliang"
              v-else
            >
              <el-input
                v-model="addPlan.anticoagulant_zongliang"
                :disabled="anticoagulant.zongliang == 1 ? false : true"
                type="number"
              ></el-input>
            </el-form-item>
          </div>
          <div v-else>
            <el-form-item
              :label="'总量（' + anticoagulant.zongliang_unit + '）: '"
              prop="anticoagulant_zongliang"
            >
              <el-input
                v-model="addPlan.anticoagulant_zongliang"
                :disabled="anticoagulant.zongliang == 1 ? false : true"
                type="number"
              ></el-input>
            </el-form-item>
          </div>
          </el-col>
          <el-col
            :span="8"
            v-if="anticoagulant.gaimingcheng != -1 && isShows('钙名称')"
          >
            <el-form-item label="钙名称:" prop="anticoagulant_gaimingcheng">
              <el-input
                v-model="addPlan.anticoagulant_gaimingcheng"
                :disabled="anticoagulant.gaimingcheng == 1 ? false : true"
                placeholder="钙名称"
              ></el-input>
            </el-form-item>
          </el-col>
          <el-col
            :span="8"
            v-if="anticoagulant.gaijiliang != -1 && isShows('钙剂量')"
          >
            <el-form-item
              :label="'钙剂量（' + anticoagulant.gaimingcheng_unit + '）: '"
              prop="anticoagulant_gaijiliang"
            >
              <el-input
                v-model="addPlan.anticoagulant_gaijiliang"
                :disabled="anticoagulant.gaijiliang == 1 ? false : true"
                placeholder="钙剂量"
              ></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8" v-if="isShows('置换量')" v-show="zhiShow">
            <el-form-item label="置换量(L) : " prop="replacement_total">
              <el-input
                v-model="addPlan.replacement_total"
                type="number"
              ></el-input>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('钾')">
            <el-form-item label="钾（mmol/L）: " prop="kalium">
              <el-input v-model="addPlan.kalium"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8" v-if="isShows('钠')">
            <el-form-item label="钠（mmol/L）: " prop="sodium">
              <el-input v-model="addPlan.sodium"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8" v-if="isShows('钙')">
            <el-form-item label="钙（mmol/L）: " prop="calcium">
              <el-input v-model="addPlan.calcium"></el-input>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('透析器/灌流器')">
            <el-form-item label="透析器/灌流器：">
              <el-input
              v-model="addPlan.dialyzer_perfusion_apparatus" @focus="showInnerDialog('5')"></el-input>
            </el-form-item>
          </el-col>




          <el-col :span="8" v-if="isShows('透析器')">
            <el-form-item label="透析器:">
              <el-input v-model="dialysis_dialyszers" @focus="showInnerDialog('6')"></el-input>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('灌流器') && (addPlan.mode_id == 2 || addPlan.mode_id == 12 || addPlan.mode_id == 5)">
             <el-form-item label="灌流器:">
               <el-input v-model="dialysis_irrigation" @focus="showInnerDialog('7')"></el-input>
             </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('碳酸氢盐')">
            <el-form-item label="碳酸氢盐（mmol/L）: " prop="bicarbonate">
              <el-input v-model="addPlan.bicarbonate"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8" v-if="isShows('葡萄糖')">
            <el-form-item label="葡萄糖（mmol/L）: " prop="glucose">
              <el-input v-model="addPlan.glucose"></el-input>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('透析液流量')">
            <el-form-item label="透析液流量（ml/min）: " prop="dialysate_flow">
              <el-input v-model="addPlan.dialysate_flow"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8" v-if="isShows('透析液温度')">
            <el-form-item
              label="透析液温度（℃）: "
              prop="dialysate_temperature"
            >
              <el-input v-model="addPlan.dialysate_temperature"></el-input>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('电导率')">
            <el-form-item label="电导率（mS/cm）: " prop="conductivity">
              <el-input v-model="addPlan.conductivity"></el-input>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('体液过多症状')">
            <el-form-item label="体液过多症状:">
              <el-select v-model="addPlan.body_fluid" @change="changeBodyFluid">
                <el-option
                  v-for="item in body_fluid_option"
                  :label="item.name"
                  :key="item.id"
                  :value="item.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('体液过多其他症状')">
            <el-form-item label="体液过多其他症状">
              <el-input v-model="addPlan.body_fluid_other"></el-input>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('透析前使用特殊药物')">
            <el-form-item label="透析前使用特殊药物">
              <el-select
                v-model="addPlan.special_medicine"
                placeholder="请选择"
                style="width:100%;"
              >
                <el-option :key="0" label="请选择" :value="0"></el-option>
                <el-option
                  v-for="item in special_medicine_option"
                  :label="item.name"
                  :key="item.id"
                  :value="item.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('透析前使用其他特殊药物')">
            <el-form-item label="使用其他特殊药物">
              <el-input v-model="addPlan.special_medicine_other"></el-input>
            </el-form-item>
          </el-col>

          <el-col :span="8">
            <el-form-item
              label="置换液："
              v-if="
                isShows('置换液') &&
                  this.$store.getters.xt_user.template_info.template_id != 6
              "
              v-show="huShow"
            >
              <el-select
                v-model="addPlan.displace_liqui_part"
                placeholder="请选择"
              >
                <el-option :key="0" label="请选择" :value="0"></el-option>
                <el-option
                  v-for="(option, index) in displace_liqui_part_option"
                  :key="index"
                  :label="option.name"
                  :value="option.id"
                ></el-option>
              </el-select>
            </el-form-item>

            <el-form-item
              label="置换方式："
              v-if="
                isShows('置换液') &&
                  this.$store.getters.xt_user.template_info.template_id == 6
              "
            >
              <el-select
                v-model="addPlan.displace_liqui_part"
                placeholder="请选择"
              >
                <el-option :key="0" label="请选择" :value="0"></el-option>
                <el-option
                  v-for="(option, index) in displace_liqui_part_option"
                  :key="index"
                  :label="option.name"
                  :value="option.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('置换液总量')" v-show="totalShow">
            <el-form-item label="置换液总量(L)">
              <el-input v-model="addPlan.displace_liqui_value"></el-input>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('血管通路')">
            <el-form-item label="血管通路：">
              <el-select v-model="addPlan.blood_access" placeholder="请选择">
                <el-option :key="0" label="请选择" :value="0"></el-option>

                <el-option
                  v-for="(option, index) in blood_access_option"
                  :key="index"
                  :label="option.name"
                  :value="option.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>

          <!-- </el-row>
          <el-row :gutter="20" > -->
          <el-col :span="8" v-if="isShows('实际超滤量')">
            <el-form-item label="实际超滤量(L)">
              <el-input v-model="addPlan.ultrafiltration"></el-input>
            </el-form-item>
          </el-col>

         <el-col :span="8" v-if="isShows('血浆分离器')">
             <el-form-item label="血浆分离器:">
               <el-input v-model="addPlan.plasma_separator" @focus="showInnerDialog('8')"></el-input>
             </el-form-item>
         </el-col>


          <el-col :span="8" v-if="isShows('吸氧')">
              <el-form-item label="吸氧：">
                <el-select v-model="addPlan.oxygen_uptake" placeholder="请选择" @change="changeOxygenList">
                <el-option :key="0" label="请选择" :value="0"></el-option>
                <el-option
                  v-for="(item, index) in  oxygenList "
                  :key="index"
                  :label="item.name"
                  :value="item.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>


           <el-col :span="8" v-if="isShows('吸氧') && oxygenShow == true">
             <el-form-item label="吸氧流量(L/分)：">
                <el-input v-model="addPlan.oxygen_flow"></el-input>
             </el-form-item>
          </el-col>

         <el-col :span="8" v-if="isShows('吸氧') && oxygenShow == true">
             <el-form-item label="吸氧时长(h）：">
                <el-input v-model="addPlan.oxygen_time"></el-input>
             </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('目标KT/V')">
            <el-form-item label="目标KT/V">
              <el-input v-model="addPlan.target_ktv"></el-input>
            </el-form-item>
          </el-col>


          <el-col :span="8" v-if="isShows('透析管路')">
            <el-form-item label="透析管路:">
              <el-select v-model="addPlan.hemodialysis_pipelines" >
                <el-option
                        v-for="item in hemodialysisPipelinesOptions"
                        :label="item.name"
                        :key="item.id"
                        :value="item.name"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('透析管路支数')">
            <el-form-item label="透析管路支数">
              <el-input v-model="addPlan.hemodialysis_pipelines_count"></el-input>
            </el-form-item>
          </el-col>



          <el-col :span="8" v-if="isShows('穿刺针')">
            <el-form-item label="穿刺针:">
              <el-input v-model="addPlan.puncture_needle" @focus="showInnerDialog('10')"></el-input>
            </el-form-item>
          </el-col>



          <el-col :span="8" v-if="isShows('穿刺针支数')">
            <el-form-item label="穿刺针支数">
              <el-input v-model="addPlan.puncture_needle_count"></el-input>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('促红素')">
            <el-form-item label="促红素:">
              <el-select v-model="addPlan.epo" @change="changeBodyFluid">
                <el-option
                        v-for="item in epoOptions"
                        :label="item.name"
                        :key="item.id"
                        :value="item.name"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>

          <el-col :span="8" v-if="isShows('促红素支数')">
            <el-form-item label="促红素支数">
              <el-input v-model="addPlan.epo_count"></el-input>
            </el-form-item>
          </el-col>

        </el-row>


        <el-row :gutter="24">
          <el-col :span="24">
            <el-form-item label="备注: " prop="remark">
              <el-input
                type="textarea"
                :rows="2"
                placeholder="请输入内容"
                v-model="addPlan.remark"
              >
              </el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button
          type="primary"
          @click="submitEditSolution('addPlan')"
          v-if="isEdit"
          :disabled="$store.getters.xt_user.subscibe.state == 3 ? true : false"
          >保 存</el-button
        >
        <el-button
          type="primary"
          @click="submitNewSolution('addPlan')"
          v-else
          :disabled="$store.getters.xt_user.subscibe.state == 3 ? true : false"
          >保 存</el-button
        >
      </span>
    </el-dialog>

    <multi-select-box
      :propsForm="InnerDialogProps"
      v-on:dialog-comfirm="innerDialogComfirm"
      v-on:dialog-cancle="innerDialogCancle">
    </multi-select-box>


  </div>
</template>

<script>
import tableTitle from './components/tableTitle'
import PatientSidebar from './components/PatientSidebar'
import { fetchAllAdminUsers, fetchAllDoctorAndNurse } from '@/api/doctor'
import {
  createChildPatientDialysisSolution,
  createPatientDialysisSolution,
  deleteDialysisSolution,
  editChildPatientDialysisSolution,
  editDialysisSolutionDetail,
  editPatientDialysisSolution,
  fetchPatientDialysisSolutions
} from '@/api/patient'

import { getSystemPrescription } from '@/api/config'
import { getDataConfig } from '@/utils/data'
import { calculateAnticoagulantZL, uParseTime } from '@/utils/tools'
import store from '@/store'

import { GetDeviceInfo } from '@/api/dialysis'
import MultiSelectBox from '../dialysis/details/dialog/MultiSelectBox/index'

const periodWeek = [
  { value: '每周', label: '每周' },
  { value: '两周', label: '两周' },
  { value: '三周', label: '三周' },
  { value: '四周', label: '四周' }
]
const periodDay = [
  { value: '2天', label: '2天' },
  { value: '3天', label: '3天' },
  { value: '4天', label: '4天' },
  { value: '5天', label: '5天' },
  { value: '10天', label: '10天' },
  { value: '15天', label: '15天' },
  { value: '30天', label: '30天' }
]
const numOptionsWeek = [
  { value: '1次', label: '1次' },
  { value: '2次', label: '2次' },
  { value: '3次', label: '3次' },
  { value: '4次', label: '4次' },
  { value: '5次', label: '5次' },
  { value: '6次', label: '6次' },
  { value: '7次', label: '7次' }
]
const numOptionsDay = [{ value: '1次', label: '1次' }]

export default {
  name: 'Dialysis',
  data() {
    var checkFirstDialysis = (rule, value, callback) => {
      if (this.addPlan.type == 2 && !value) {
        return callback(new Error('请选择首次透析！'))
      }
      callback()
    }
    var checkSubName = (rule, value, callback) => {
      var pattern = /^\d*$/
      if (!pattern.test(value)) {
        return callback(new Error('只填写0-9的数字'))
      }
      callback()
    }
    return {
      hemodialysisPipelinesOptions:[],
      punctureNeedleOptions:[],
      epoOptions:[],
      zhiShow:false,
      huShow:false,
      totalShow:false,
      InnerDialogProps: {
        values: [],
        visibility: false,
        isShowTextArea: true,
        customContent: '',
        titles: '',
        type: '' // 不同弹框类型，用来匹配数据
      },
      deviceList: [],
      dialysisTimeShow: new Date(2018, 1, 1, 3, 0),
      isEdit: false,
      isChildEdit: false,
      totalrate: '无/两周一次',
      patientID: 0,
      dialogVisible: false,
      dialogFormVisible: false,
      formLabelWidth: '80px',
      formInputWidth: '80px',
      total: 0,
      tableData: null,
      form: {
        name: '',
        region: '',
        date1: '',
        date2: '',
        delivery: false,
        type: [],
        resource: '',
        desc: ''
      },
      addPlan: {
        id: 0,
        mode: '',
        mode_name: '',
        registrars_id: 0,
        dialyzer: '',
        dialysis_duration: '',
        dialysis_duration_hour: '',
        dialysis_duration_minute: '',
        hemodialysis_machine: '',
        perfusion_apparatus: '',
        blood_flow_volume: '',
        dewater: '',
        displace_liqui: 0,
        replacement_way: '',
        anticoagulant: '',
        anticoagulant_shouji: '',
        anticoagulant_weichi: '',
        anticoagulant_zongliang: '',
        anticoagulant_gaimingcheng: '',
        anticoagulant_gaijiliang: '',
        kalium: '',
        replacement_total: '',
        sodium: '',
        calcium: '',
        bicarbonate: '',
        glucose: '',
        dry_weight: '',
        dialysate_flow: '',
        dialysate_temperature: '',
        conductivity: '',
        doctor: '',
        dialysate_formulation: '',
        remark: '',
        target_ktv: '',
        target_ultrafiltration: '',
        dialyzer_perfusion_apparatus: '',
        body_fluid: '',
        body_fluid_other: '',
        special_medicine: '',
        special_medicine_other: '',
        displace_liqui_part: '',
        displace_liqui_value: '',
        ultrafiltration: '',
        blood_access: '',
        dialysis_dialyszers:'',
        dialysis_irrigation:'',
        plasma_separator:"",
        bilirubin_adsorption_column:"",
        oxygen_uptake:"",
        oxygen_flow:"",
        oxygen_time:"",

        hemodialysis_pipelines:'',
        hemodialysis_pipelines_count:'',
        puncture_needle:"",
        puncture_needle_count:"",
        epo:"",
        epo_count:"",


      },
      childPlan: {
        mode: '',
        frequency: '',
        name: '',
        parent_id: 0,
        sub_name: '',
        initiate_mode: '',
        doctor: ''
      },
      modeOptions: null,
      anticoagulantsSet: {
        type: 1
      },
      replacementWays: null,
      anticoagulantsConfit: null,
      dialysate_formulation: [],
      body_fluid_option: [],
      special_medicine_option: [],
      displace_liqui_part_option: [],
      blood_access_option: [],
      timeOptions: [{ value: 1, label: '按周' }, { value: 2, label: '按日' }],
      periodOptions: periodWeek,
      numOptions: numOptionsWeek,
      stateOptions: [{ value: 1, label: '启用' }, { value: 2, label: '停用' }],
      doctorOptions: null,
      adminUserOptions: null,
      current_index: -1,
      addPlanRules: {
        mode: [{ required: true, message: '请选择透析模式', trigger: 'blur' }],
        type: [{ required: true, message: '请选择频率', trigger: 'blur' }],
        period: [{ required: true, message: '请选择周期', trigger: 'blur' }],
        times: [{ required: true, message: '请选择次数', trigger: 'blur' }],
        initiate_mode: [
          { required: true, message: '请选择状态', trigger: 'blur' }
        ],
        doctor: [{ required: true, message: '请选择医生', trigger: 'blur' }],
        first_dialysis: [{ validator: checkFirstDialysis, trigger: 'blur' }]
      },
      addChildPlanRules: {
        sub_name: [
          { required: true, message: '请填写处方名', trigger: 'blur' },
          {
            validator: checkSubName,
            trigger: 'blur'
          }
        ],
        initiate_mode: [
          { required: true, message: '请选择状态', trigger: 'blur' }
        ],
        doctor: [{ required: true, message: '请选择医生', trigger: 'blur' }]
      },
      current_model: {
        id: 0,
        name: '',
        dialysis_duration: 2,
        replacement_total: 0,
        replacement_way: 2,
        hemodialysis_machine: 2,
        blood_filter: 2,
        perfusion_apparatus: 2,
        blood_flow_volume: 2,
        dialysate_flow: 2,
        kalium: 2,
        sodium: 2,
        calcium: 2,
        bicarbonate: 2
      },
      current_solution: {
        id: 0,
        name: '',
        sub_name: '',
        period: '',
        times: '',
        doctor: 0
      },
      anticoagulant: {
        id: 0,
        name: '',
        type: 1,
        shouji: 1,
        weichi: 1,
        zongliang: 1,
        gaimingcheng: -1,
        gaijiliang: -1,
        shouji_unit: 'mg',
        weichi_unit: 'mg/h',
        zongliang_unit: 'mg',
        gaimingcheng_unit: '',
        gaijiliang_unit: ''
      },
      blood_filters: null,
      perfusion_apparatus: null,
      hemodialysis_machines: null,
      dialyzerPerfusionApparatus: [],
      solution_detail: {
        id: 0,
        affirm_state: 0,
        dialysis_duration: '',
        replacement_way: '',
        mode_id: '',
        blood_flow_volume: '',
        hemodialysis_machine: '',
        blood_filter: '',
        perfusion_apparatus: '',
        dialysate_flow: '',
        kalium: '',
        replacement_total: '',
        sodium: '',
        calcium: '',
        bicarbonate: '',
        anticoagulant: '',
        anticoagulant_shouji: '',
        anticoagulant_weichi: '',
        anticoagulant_zongliang: '',
        anticoagulant_gaimingcheng: '',
        anticoagulant_gaijiliang: ''
      },
      queryParams: {
        page: 1,
        limit: 10,
        id: 0
      },
     stockType:[],
     irrigations:[],
     dialyzers:[],
     dialysis_dialyszers:'',
     dialysis_irrigation:"",
     plasmaSeparatorList:[],
     bilirubinAdsorptionColumn:[],
     oxygenList:[
      {id:1,name:"需"},
      {id:2,name:"无"}
     ],
     oxygenShow:false,
    }
  },
  watch: {

   'dialysisTimeShow':function(){
      var val = this.addPlan.dialysis_duration_hour+":"+this.addPlan.dialysis_duration_minute
      var valTime = val.split(':')
      this.addPlan.dialysis_duration = parseFloat(valTime[0]) + parseFloat((valTime[1] / 60).toFixed(2))
      this.addPlan.dialysis_duration_hour = valTime[0]
      this.addPlan.dialysis_duration_minute = valTime[1]
   },

    'addPlan.dialysis_duration': function() {

      this.addPlan.anticoagulant_zongliang = calculateAnticoagulantZL(1,
        this.addPlan.anticoagulant_shouji,
        this.addPlan.dialysis_duration,
        this.addPlan.anticoagulant_weichi
      )
    },
    'addPlan.anticoagulant_shouji': function() {

      this.addPlan.anticoagulant_zongliang = calculateAnticoagulantZL(1,
        this.addPlan.anticoagulant_shouji,
        this.addPlan.dialysis_duration,
        this.addPlan.anticoagulant_weichi
      )
    },
    'addPlan.anticoagulant_weichi': function() {
      this.addPlan.anticoagulant_zongliang = calculateAnticoagulantZL(
        1,
        this.addPlan.anticoagulant_shouji,
        this.addPlan.dialysis_duration,
        this.addPlan.anticoagulant_weichi
      )
    }
  },



  components: {
    MultiSelectBox,
    tableTitle,
    PatientSidebar
  },
  methods: {
    showInnerDialog: function(val) {
      this.InnerDialogProps.visibility = true
      switch (val) {
        case '5': // 透析器/灌流器
          this.InnerDialogProps.values = this.dialyzerPerfusionApparatus
          this.InnerDialogProps.titles = '透析器/灌流器'
          this.InnerDialogProps.type = 'dialyzer_perfusion_apparatus'
          this.InnerDialogProps.selected = this.addPlan.dialyzer_perfusion_apparatus
          this.InnerDialogProps.isShowTextArea = false
          break
        case '6':
           for(let i=0;i<this.dialyzers.length;i++){
               this.dialyzers[i].name = this.dialyzers[i].specification_name
           }
           console.log("2222222",this.dialyzers)
          this.InnerDialogProps.values = this.dialyzers
          this.InnerDialogProps.titles = '透析器'
          this.InnerDialogProps.type = 'dialyzers'
          this.InnerDialogProps.selected = this.dialysis_dialyszers
          this.InnerDialogProps.isShowTextArea = false

          break
        case '7':
          for(let i=0;i<this.irrigations.length;i++){
             this.irrigations[i].name = this.irrigations[i].specification_name
           }
          this.InnerDialogProps.values = this.irrigations
          this.InnerDialogProps.titles = '灌流器'
          this.InnerDialogProps.type = 'irrigations'
          this.InnerDialogProps.selected = this.dialysis_irrigation
          this.InnerDialogProps.isShowTextArea = false

          break
        case '8':

          this.InnerDialogProps.values = this.plasmaSeparatorList
          this.InnerDialogProps.titles = '血浆分离器'
          this.InnerDialogProps.type = 'plasma_separator'
          this.InnerDialogProps.selected = this.addPlan.plasma_separator
          this.InnerDialogProps.isShowTextArea = false

          break
         case '9':

          this.InnerDialogProps.values = this.bilirubinAdsorptionColumn
          this.InnerDialogProps.titles = '胆红素吸附柱'
          this.InnerDialogProps.type = 'bilirubin_adsorption_column'
          this.InnerDialogProps.selected = this.addPlan.bilirubin_adsorption_column
          this.InnerDialogProps.isShowTextArea = false

          break

        case '10':

          this.InnerDialogProps.values = this.punctureNeedleOptions
          this.InnerDialogProps.titles = '穿刺针'
          this.InnerDialogProps.type = 'puncture_needle'
          this.InnerDialogProps.selected = this.addPlan.puncture_needle
          this.InnerDialogProps.isShowTextArea = false

          break
      }
    },
    innerDialogComfirm: function(val) {
      console.log("value",val)
      this.InnerDialogProps.visibility = false
      switch (val.type) {
        case 'dialyzer_perfusion_apparatus':
          this.addPlan.dialyzer_perfusion_apparatus = val.value.join(',')
          break
        case 'dialyzers':
          this.dialysis_dialyszers = val.value.join(',')
          break
        case 'irrigations':
          this.dialysis_irrigation = val.value.join(',')
          break
        case 'plasma_separator':
          this.addPlan.plasma_separator = val.value.join(',')
          break
        case 'bilirubin_adsorption_column':
          this.addPlan.bilirubin_adsorption_column = val.value.join(',')
          break
        case 'puncture_needle':
          this.addPlan.puncture_needle = val.value.join(',')
          break
      }
    },
    innerDialogCancle: function() {
      this.InnerDialogProps.visibility = false
    },
    changeBodyFluid: function() {},
    GetDeviceData: function() {
      const params = {}
      GetDeviceInfo(params).then(response => {
        this.deviceList = response.data.data.device
      })
    },

    selectnDialysisTime(val) {

      var valTime = val.split(':')
      this.addPlan.dialysis_duration = parseFloat(valTime[0]) + parseFloat((valTime[1] / 60).toFixed(2))
      console.log("透析时长",this.addPlan.dialysis_duration)
      this.addPlan.dialysis_duration_hour = valTime[0]
      this.addPlan.dialysis_duration_minute = valTime[1]
    },

    tableCurrentChange(current) {
      if (typeof current === 'undefined' || current == null) {
        this.current_solution = {
          id: 0,
          name: '',
          sub_name: '',
          period: '',
          times: '',
          doctor: 0
        }
        this.solution_detail = {
          id: 0,
          affirm_state: 0,
          dialysis_duration: '',
          replacement_way: '',
          mode_id: '',
          blood_flow_volume: '',
          hemodialysis_machine: '',
          blood_filter: '',
          perfusion_apparatus: '',
          dialysate_flow: '',
          kalium: '',
          replacement_total: '',
          sodium: '',
          calcium: '',
          bicarbonate: '',
          anticoagulant: '',
          anticoagulant_shouji: '',
          anticoagulant_weichi: '',
          anticoagulant_zongliang: '',
          anticoagulant_gaimingcheng: '',
          anticoagulant_gaijiliang: ''
        }
        return
      }
      this.current_solution = current
      this.setCurrentMode(current.mode_id)
      this.solution_detail = {
        id: this.current_solution.id,
        affirm_state: this.current_solution.affirm_state,
        dialysis_duration:
          this.current_solution.dialysis_duration != 0
            ? this.current_solution.dialysis_duration
            : '',
        replacement_way:
          this.current_solution.replacement_way != 0
            ? this.current_solution.replacement_way
            : '',
        replacement_total:
          this.current_solution.replacement_total != 0
            ? this.current_solution.replacement_total
            : '',
        mode_id: this.current_solution.mode_id,
        blood_flow_volume:
          this.current_solution.blood_flow_volume != 0
            ? this.current_solution.blood_flow_volume
            : '',
        hemodialysis_machine:
          this.current_solution.hemodialysis_machine != 0
            ? this.current_solution.hemodialysis_machine
            : '',
        blood_filter:
          this.current_solution.blood_filter != 0
            ? this.current_solution.blood_filter
            : '',
        perfusion_apparatus:
          this.current_solution.perfusion_apparatus != 0
            ? this.current_solution.perfusion_apparatus
            : '',
        dialysate_flow:
          this.current_solution.dialysate_flow != 0
            ? this.current_solution.dialysate_flow
            : '',
        kalium:
          this.current_solution.kalium != 0 ? this.current_solution.kalium : '',
        sodium:
          this.current_solution.sodium != 0 ? this.current_solution.sodium : '',
        calcium:
          this.current_solution.calcium != 0
            ? this.current_solution.calcium
            : '',
        bicarbonate:
          this.current_solution.bicarbonate != 0
            ? this.current_solution.bicarbonate
            : '',
        anticoagulant:
          this.current_solution.anticoagulant != 0
            ? this.current_solution.anticoagulant
            : '',
        anticoagulant_shouji:
          this.current_solution.anticoagulant_shouji != 0
            ? this.current_solution.anticoagulant_shouji
            : '',
        anticoagulant_weichi:
          this.current_solution.anticoagulant_weichi != 0
            ? this.current_solution.anticoagulant_weichi
            : '',
        anticoagulant_zongliang:
          this.current_solution.anticoagulant_zongliang != 0
            ? this.current_solution.anticoagulant_zongliang
            : ''
      }
    },
    handleDelete(index, row) {
      if (row.use_state == 1) {
        this.$message.error('方案已被使用，不能删除')
        return false
      }
      this.$confirm('确定删除' + row.name + row.sub_name + '方案吗？', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        deleteDialysisSolution(row.id).then(response => {
          if (response.data.state == 0) {
            this.$message.error(response.data.msg)
            return false
          } else {
            this.$notify({
              title: '成功',
              message: '删除成功',
              type: 'success',
              duration: 2000
            })
            this.tableData.splice(index, 1)
            // if (row.parent_id>0) {
            //   this.tableData.splice(index,1);
            // }else {
            //     var resetTableData = this.tableData;
            //     this.tableData = [];
            //     var that = this;
            //     resetTableData.forEach(function(item, itemindex){
            //         if (item.id != row.id && item.parent_id != row.id) {
            //             that.tableData.push(item);
            //         }
            //     });
            // }
          }
        })
      })
    },
    submitSolution(formName) {
      editDialysisSolutionDetail(
        this.patientID,
        this.solution_detail.id,
        this.solution_detail
      ).then(response => {
        if (response.data.state == 0) {
          this.$message.error(response.data.msg)
          return false
        } else {
          this.$notify({
            title: '成功',
            message: '修改成功',
            type: 'success',
            duration: 2000
          })
          var thisSolution = response.data.data.solution
          var spliceIndex = -1

          for (let index = this.tableData.length - 1; ; index--) {
            if (this.tableData[index].id === thisSolution.id) {
              spliceIndex = index
              break
            }
          }

          if (spliceIndex > -1) {
            var newIndex = spliceIndex + 1
            if (newIndex === this.tableData.length) {
              this.tableData.pop()
              this.tableData.push(thisSolution)
            } else {
              var swapData = this.tableData.splice(newIndex)
              this.tableData.pop()
              this.tableData.push(thisSolution)
              this.tableData = this.tableData.concat(swapData)
            }
          }
          this.solution_detail.affirm_state = thisSolution.affirm_state
          this.$refs.solutionTable.setCurrentRow(this.tableData[spliceIndex])
        }
      })
    },
    submitEditChildSolution(formName) {
      this.$refs[formName].validate(valid => {
        if (valid) {
          var editData = {
            initiate_mode: this.childPlan.initiate_mode,
            doctor: this.childPlan.doctor
          }
          editChildPatientDialysisSolution(
            this.patientID,
            this.childPlan.id,
            editData
          ).then(response => {
            if (response.data.state == 0) {
              this.$message.error(response.data.msg)
              return false
            } else {
              this.$notify({
                title: '成功',
                message: '修改成功',
                type: 'success',
                duration: 2000
              })
              this.$refs[formName].resetFields()
              this.dialogFormVisible = false
              this.tableData[this.current_index].doctor =
                response.data.data.solution.doctor
              this.tableData[this.current_index].updated_time =
                response.data.data.solution.updated_time
              this.tableData[this.current_index].initiate_mode =
                response.data.data.solution.initiate_mode
              this.current_index = -1
              return false
            }
          })
        }
      })
    },
    submitNewChildSolution(formName) {
      this.$refs[formName].validate(valid => {
        if (valid) {
          var createData = {
            parent_id: this.childPlan.parent_id,
            sub_name: this.childPlan.sub_name,
            initiate_mode: this.childPlan.initiate_mode,
            doctor: this.childPlan.doctor
          }
          createChildPatientDialysisSolution(this.patientID, createData).then(
            response => {
              if (response.data.state == 0) {
                this.$message.error(response.data.msg)
                return false
              } else {
                this.$notify({
                  title: '成功',
                  message: '创建成功',
                  type: 'success',
                  duration: 2000
                })
                this.$refs[formName].resetFields()
                var spliceIndex = -1

                for (let index = this.tableData.length - 1; ; index--) {
                  if (
                    this.tableData[index].parent_id === createData.parent_id
                  ) {
                    spliceIndex = index
                    break
                  } else if (
                    this.tableData[index].id === createData.parent_id
                  ) {
                    spliceIndex = index
                    break
                  }
                }

                if (spliceIndex > -1) {
                  spliceIndex += 1
                  if (spliceIndex === this.tableData.length) {
                    this.tableData.push(response.data.data.solution)
                  } else {
                    var swapData = this.tableData.splice(spliceIndex)
                    this.tableData.push(response.data.data.solution)
                    this.tableData = this.tableData.concat(swapData)
                  }
                }
                this.dialogFormVisible = false
                return false
              }
            }
          )
        }
      })
    },
      submitEditSolution(formName) {
      this.$refs[formName].validate(valid => {
        if (valid) {
          let mode = '2'

          if (
            this.addPlan.registrars_id != this.$store.getters.xt_user.user.id
          ) {
            mode = '3'
          }
          this.addPlan.dialysis_dialyszers = this.dialysis_dialyszers
          this.addPlan.dialysis_irrigation = this.dialysis_irrigation

          editPatientDialysisSolution(this.patientID,this.addPlan.id,this.addPlan, mode).then(response => {
            if (response.data.state == 0) {
              this.$message.error(response.data.msg)
              return false
            } else {
              this.$notify({
                title: '成功',
                message: '修改成功',
                type: 'success',
                duration: 2000
              })
              this.$refs[formName].resetFields()

              this.dialogVisible = false

              for (var dindex in response.data.data.solution) {
                if (dindex == 'id') {
                  continue
                }
                this.tableData[this.current_index][dindex] =
                  response.data.data.solution[dindex]
              }
              // this.tableData[this.current_index].dialysis_duration = response.data.data.solution.dialysis_duration;
              // this.tableData[this.current_index].doctor = response.data.data.solution.doctor;
              // this.tableData[this.current_index].updated_time = response.data.data.solution.updated_time;

              this.current_index = -1
              return false
            }
          })
        }
      })
    },
    submitNewSolution(formName) {

      this.addPlan.anticoagulant_zongliang = this.addPlan.anticoagulant_zongliang.toString()
      this.$refs[formName].validate(valid => {
        if (valid) {
          const mode = '1'
          this.addPlan.dialysis_dialyszers = this.dialysis_dialyszers
          this.addPlan.dialysis_irrigation = this.dialysis_irrigation
          console.log("add",this.addPlan)
          createPatientDialysisSolution(
            this.patientID,
            this.addPlan,
            mode
          ).then(response => {
            if (response.data.state == 0) {
              this.$message.error(response.data.msg)
              return false
            } else {
              this.$notify({
                title: '成功',
                message: '创建成功',
                type: 'success',
                duration: 2000
              })
              this.$refs[formName].resetFields()
              this.dialogVisible = false
              this.tableData.unshift(response.data.data.solution)
              if (this.tableData.length > 10) {
                this.tableData.pop()
              }
              this.total += 1
              return false
            }
          })
        }
      })
    },
    handleEdit(index, row) {
      // console.log(index, row)
    },
    handleSizeChange(val) {
      this.queryParams.limit = val
      this.fetchPatientDialysisSolutions()
    },
    handleCurrentChange(val) {
      this.queryParams.page = val
      this.fetchPatientDialysisSolutions()
    },
    openEdit(index, row) {
      console.log("ro2333333",row)
      this.current_index = index

      this.addPlan.id = row.id
      this.addPlan.mode = row.mode_id
      this.addPlan.mode_name = row.mode_name
      this.addPlan.dialyzer = row.dialyzer ? row.dialyzer : ''

      this.addPlan.dialysis_duration = '' + row.dialysis_duration
      this.addPlan.dialysis_duration_hour = '' + row.dialysis_duration_hour
      this.addPlan.dialysis_duration_minute = '' + row.dialysis_duration_minute
      this.addPlan.hemodialysis_machine = row.hemodialysis_machine + ''
      this.addPlan.perfusion_apparatus = row.perfusion_apparatus + ''
      if(row.blood_flow_volume!="" || row.blood_flow_volume!=undefined){
        this.addPlan.blood_flow_volume = row.blood_flow_volume.toString()
      }
     
      if (row.anticoagulant == 3) {
        this.addPlan.anticoagulant = '低分子肝素'
      }
      if (row.anticoagulant != 3) {
        if(row.anticoagulant == 0){
           this.addPlan.anticoagulant = ""
        }else{
          this.addPlan.anticoagulant = row.anticoagulant
        }

      }
      this.addPlan.replacement_total = row.replacement_total
      if(row.target_ktv!="" ||row.target_ktv!=undefined){
         this.addPlan.target_ktv = row.target_ktv.toString()
      }
      if(row.target_ultrafiltration!="" || row.target_ultrafiltration!=undefined){
        this.addPlan.target_ultrafiltration = row.target_ultrafiltration.toString()
      }
   

      this.addPlan.dialysis_duration = parseFloat(row.dialysis_duration_hour) + parseFloat((row.dialysis_duration_minute / 60).toFixed(2))
      this.addPlan.dialysis_duration_hour = row.dialysis_duration_hour
      this.addPlan.dialysis_duration_minute = row.dialysis_duration_minute
      if(row.anticoagulant_shouji!=""|| row.anticoagulant_shouji!=undefined){
        this.addPlan.anticoagulant_shouji = row.anticoagulant_shouji.toString()
      }
      if(row.anticoagulant_weichi!="" || row.anticoagulant_weichi!=undefined){
          this.addPlan.anticoagulant_weichi = row.anticoagulant_weichi.toString()
      }
      if(row.anticoagulant_zongliang!="" || row.anticoagulant_zongliang!=undefined){
        this.addPlan.anticoagulant_zongliang = row.anticoagulant_zongliang.toString()
      }
      if(row.anticoagulant_gaimingcheng!=""||row.anticoagulant_gaimingcheng!=undefined){
         this.addPlan.anticoagulant_gaimingcheng = row.anticoagulant_gaimingcheng.toString()
      }
      if(row.anticoagulant_gaijiliang!=""||row.anticoagulant_gaijiliang!=undefined){
         this.addPlan.anticoagulant_gaijiliang = row.anticoagulant_gaijiliang.toString()
      }
      if(row.kalium!=""||row.kalium!=undefined){
        this.addPlan.kalium = row.kalium.toString()
      }
      if(row.sodium!=""||row.sodium!=undefined){
        this.addPlan.sodium = row.sodium.toString()
      }
      if(row.calcium!=""||row.calcium!=undefined){
         this.addPlan.calcium = row.calcium.toString()
      }
     
     if(row.bicarbonate!=""||  row.bicarbonate!=undefined){
       this.addPlan.bicarbonate = row.bicarbonate.toString()
     }

     if(row.glucose!=""||row.glucose!=undefined){
       this.addPlan.glucose = row.glucose.toString()
     }
     if(row.dialysate_flow!="" || row.dialysate_flow!=undefined){
      this.addPlan.dialysate_flow = row.dialysate_flow.toString()
     }
    if( row.dialysate_temperature!=""||  row.dialysate_temperature!=undefined){
       this.addPlan.dialysate_temperature = row.dialysate_temperature.toString()
    }
    if(row.conductivity!="" ||row.conductivity!=undefined ){
       this.addPlan.conductivity = row.conductivity.toString()
    }
     
    
      this.addPlan.remark = row.remark

      // this.addPlan.hemodialysis_pipelines  = row.hemodialysis_pipelines

      // if(row.hemodialysis_pipelines_count!="" || row.hemodialysis_pipelines_count!=undefined){
      //   this.addPlan.hemodialysis_pipelines_count  = row.hemodialysis_pipelines_count.toString()
      // }
     
      // this.addPlan.puncture_needle  = row.puncture_needle

      // if(row.puncture_needle_count!=null || row.puncture_needle_count!=undefined){
      //   this.addPlan.puncture_needle_count = row.puncture_needle_count.toString()
      // }
     
      // this.addPlan.epo  = row.epo

      // if(row.epo_count!="" || row.epo_count!=undefined){
      //   this.addPlan.epo_count  = row.epo_count.toString()
      // }
    
      if(row.dialyzer_perfusion_apparatus!="" ||  row.dialyzer_perfusion_apparatus!=undefined){
         this.addPlan.dialyzer_perfusion_apparatus = row.dialyzer_perfusion_apparatus.toString()
      }
      if(row.plasma_separator!="" || row.plasma_separator!=undefined){
        this.addPlan.plasma_separator = row.plasma_separator.toString()
      }
     
      if(row.bilirubin_adsorption_column!="" || row.bilirubin_adsorption_column!=undefined){
         this.addPlan.bilirubin_adsorption_column = row.bilirubin_adsorption_column.toString()
      }
    
      this.addPlan.dialysis_irrigation = row.dialysis_irrigation
      this.addPlan.dialysis_dialyszers = row.dialysis_dialyszers
      this.dialysis_irrigation = row.dialysis_irrigation
      this.dialysis_dialyszers = row.dialysis_dialyszers
      this.addPlan.oxygen_uptake = row.oxygen_uptake
      if(row.oxygen_uptake == 1){
        this.oxygenShow = true
      }
      if(row.oxygen_uptake == 2){
        this.oxygenShow = false
      }
      this.addPlan.oxygen_flow = row.oxygen_flow
      this.addPlan.oxygen_time = row.oxygen_time
     if(row.body_fluid == 0){
       this.addPlan.body_fluid = ""
      }else{
        this.addPlan.body_fluid = row.body_fluid
      }
      if(row.body_fluid_other!=''|| row.body_fluid_other!=undefined){
        this.addPlan.body_fluid_other = row.body_fluid_other.toString()
      }
     
      this.addPlan.special_medicine = row.special_medicine
      if(row.special_medicine_other!=""||row.special_medicine_other!=undefined){
        this.addPlan.special_medicine_other = row.special_medicine_other.toString()
      }
   
      this.addPlan.displace_liqui_part = row.displace_liqui_part
      if(row.displace_liqui_value!=''||row.displace_liqui_value!=undefined){
        this.addPlan.displace_liqui_value = row.displace_liqui_value.toString()
      }
      if(row.ultrafiltration!='' ||  row.ultrafiltration!=undefined){
        this.addPlan.ultrafiltration = row.ultrafiltration.toString()
      }
     
      this.addPlan.blood_access = row.blood_access

      this.addPlan.registrars_id = row.registrars_id
      this.addPlan.created_time =  row.created_time
      this.addPlan.dialysis_irrigation = row.dialysis_irrigation
      this.addPlan.dialysis_dialyszers = row.dialysis_dialyszers
      this.dialysis_irrigation = row.dialysis_irrigation
      this.dialysis_dialyszers = row.dialysis_dialyszers
      this.dialogVisible = true
      this.isEdit = true
      if(row.dialysate_formulation==0){
        this.addPlan.dialysate_formulation= ""
      }
      this.addPlan.dialysate_formulation = row.dialysate_formulation
      this.dialysisTimeShow = new Date(2018,1,1,this.addPlan.dialysis_duration_hour,this.addPlan.dialysis_duration_minute)
    },
    isShows(name) {
      var filedList = store.getters.xt_user.fileds
      for (let i = 0; i < filedList.length; i++) {
        if (
          filedList[i].module == 1 &&
          filedList[i].filed_name_cn == name &&
          filedList[i].is_show == 1
        ) {
          return true
        }
      }
      return false
    },
    openNew() {
      this.current_index = -1
      this.addPlan = {
        mode: '',
        mode_name: '',
        id: 0,
        type: 1,
        period: '',
        times: '',
        initiate_mode: '',
        doctor: '',
        first_dialysis: '',

        dialyzer: '',
        dialysate_formulation: '',
        hemodialysis_machine: '',
        perfusion_apparatus: '',
        blood_flow_volume: '',
        dewater: '',
        displace_liqui: 0,
        replacement_way: '',
        anticoagulant: '',
        anticoagulant_shouji: '',
        anticoagulant_weichi: '',
        anticoagulant_zongliang: '',
        anticoagulant_gaimingcheng: '',
        anticoagulant_gaijiliang: '',
        kalium: '',
        replacement_total: '',
        sodium: '',
        calcium: '',
        bicarbonate: '',
        glucose: '',
        dry_weight: '',
        dialysate_flow: '',
        dialysate_temperature: '',
        conductivity: '',
        remark: '',
        target_ktv: '',
        target_ultrafiltration: '',
        dialyzer_perfusion_apparatus: '',
        body_fluid: '',
        body_fluid_other: '',
        special_medicine: '',
        special_medicine_other: '',
        displace_liqui_part: '',
        displace_liqui_value: '',
        ultrafiltration: '',
        blood_access: '',


        hemodialysis_pipelines:'',
        hemodialysis_pipelines_count:'',
        puncture_needle:"",
        puncture_needle_count:"",
        epo:"",
        epo_count:"",


        dialysis_duration: '3.30',
        dialysis_duration_hour: '3',
        dialysis_duration_minute: '30',
        created_time:"",
        plasma_separator:"",
        bilirubin_adsorption_column:"",
      }
      this.addPlanTypeChange()

      this.dialogVisible = true
      this.isEdit = false
    },
    openNewChild(index, row) {
      this.childPlan = {
        mode: row.mode_name,
        frequency: row.period + row.times,
        name: row.name,
        parent_id: row.id,
        sub_name: '',
        initiate_mode: '',
        doctor: ''
      }
      this.isChildEdit = false
      this.dialogFormVisible = true
    },
    openChildEdit(index, row) {
      this.childPlan = {
        mode: row.mode_name,
        frequency: row.period + row.times,
        name: row.name,
        parent_id: row.parent_id,
        id: row.id,
        sub_name: row.sub_name,
        initiate_mode: row.initiate_mode,
        doctor: row.doctor
      }
      this.current_index = index
      this.isChildEdit = true
      this.dialogFormVisible = true
    },
    fetchAllDoctorAndNurse() {
      fetchAllDoctorAndNurse().then(response => {
        if (response.data.state == 1) {
          this.doctorOptions = response.data.data.doctors
        }
      })
    },
    fetchAllAdminUsers() {
      fetchAllAdminUsers().then(response => {
        if (response.data.state == 1) {
          this.adminUserOptions = response.data.data.users
        }
      })
    },
    fetchPatientDialysisSolutions() {
      fetchPatientDialysisSolutions(this.queryParams).then(response => {
        if (response.data.state == 1) {
          this.tableData = response.data.data.solutions
          this.total = response.data.data.total

            this.stockType = response.data.data.stockType
            console.log("2333555555555",this.stockType)
            if(this.stockType.length >0 ){
               var arr = []
                var arrTwo = []
                for(let i=0;i<this.stockType.length;i++){
                  if(this.stockType[i].stock_attribute == 2){
                      arr.push(this.stockType[i])
                  }
                  if(this.stockType[i].stock_attribute == 3){
                      arrTwo.push(this.stockType[i])
                  }
                }
                var dialyzator = []
                var irrigation = []
                for(let i=0;i<arr.length;i++){
                  for(let j=0;j<arr[i].GoodInfo.length;j++){
                      dialyzator.push(arr[i].GoodInfo[j])
                  }
                }
                console.log("透析器",dialyzator)
                this.dialyzers = dialyzator

                for(let i=0;i<arrTwo.length;i++){
                  for(let j=0;j<arrTwo[i].GoodInfo.length;j++){
                      irrigation.push(arrTwo[i].GoodInfo[j])
                  }
                }
                console.log("灌流器",irrigation)
                this.irrigations = irrigation
            }

        }
      })
    },
    addPlanTypeChange() {
      if (this.addPlan.type == 1) {
        this.periodOptions = periodWeek
        this.numOptions = numOptionsWeek
      } else {
        this.addPlan.type == 2
        this.periodOptions = periodDay
        this.numOptions = numOptionsDay
      }
    },
    changeThisAnticoagulant() {
      var thismode = parseInt(this.addPlan.anticoagulant)
      if (isNaN(thismode) || thismode <= 0) {
        return false
      }
      if (
        typeof this.anticoagulantsConfit[thismode] === 'undefined' ||
        this.anticoagulantsConfit[thismode] == null
      ) {
        return false
      }
      this.anticoagulant = this.anticoagulantsConfit[thismode]
    },

    addPlanModeChange() {
      var thismode = parseInt(this.addPlan.mode)
      if(thismode == 2 || thismode == 5 || thismode ==12){
          this.zhiShow = true
          this.huShow= true
          this.totalShow = true
      }else{
        this.zhiShow= false
        this.huShow = false
        this.totalShow = false
      }
      if (isNaN(thismode) || thismode <= 0) {
        return false
      }
      if (
        typeof this.modeOptions[thismode] === 'undefined' ||
        this.modeOptions[thismode] == null
      ) {
        return false
      }
      // this.current_model = this.modeOptions[thismode];
      this.addPlan.mode_name = this.modeOptions[thismode].name
      const params = {
        id: thismode
      }

      getSystemPrescription(params).then(response => {
        if (response.data.state == 1) {
           var prescription =   response.data.data.prescription
           if(prescription.anticoagulant == 0){
              prescription.anticoagulant = ""
           }
           if(prescription.body_fluid == 0){
             prescription.body_fluid = ""
           }
          if (response.data.data.prescription.id > 0) {
            for (const key in response.data.data.prescription) {
              // 因为el-input特性整数类型或者浮点数类型需要转换成字符串，所以加上toString()
              this.$set(
                this.addPlan,
                key,
                response.data.data.prescription[key].toString()
              )
            }

            // 因为el-select特性,整数类型不能转字符串，所以额外处理这些数据
            this.$set(
              this.addPlan,
              'dialysate_formulation',
              response.data.data.prescription['dialysate_formulation']
            )
            this.$set(
              this.addPlan,
              'anticoagulant',
              response.data.data.prescription['anticoagulant']
            )
            this.$set(
              this.addPlan,
              'body_fluid',
              response.data.data.prescription['body_fluid']
            )
            this.$set(
              this.addPlan,
              'special_medicine',
              response.data.data.prescription['special_medicine']
            )
            this.$set(
              this.addPlan,
              'displace_liqui_part',
              response.data.data.prescription['displace_liqui_part']
            )
            this.$set(
              this.addPlan,
              'blood_access',
              response.data.data.prescription['blood_access']
            )

            this.dialysisTimeShow = new Date(
              2018,
              1,
              1,
              this.addPlan.dialysis_duration_hour,
              this.addPlan.dialysis_duration_minute
            )
          } else {
            var tempAddPlan = {
              id: 0,
              dialyzer: '',
              dialysis_duration: '',
              dialysis_duration_hour: '',
              dialysis_duration_minute: '',
              hemodialysis_machine: '',
              dialysate_formulation: '',
              perfusion_apparatus: '',
              blood_flow_volume: '',
              dewater: '',
              displace_liqui: 0,
              replacement_way: '',
              anticoagulant: '',
              anticoagulant_shouji: '',
              anticoagulant_weichi: '',
              anticoagulant_zongliang: '',
              anticoagulant_gaimingcheng: '',
              anticoagulant_gaijiliang: '',
              kalium: '',
              replacement_total: '',
              sodium: '',
              calcium: '',
              bicarbonate: '',
              glucose: '',
              dry_weight: '',
              dialysate_flow: '',
              dialysate_temperature: '',
              conductivity: '',
              doctor: '',
              remark: '',
              target_ktv: '',
              target_ultrafiltration: '',
              dialyzer_perfusion_apparatus: '',
              body_fluid: '',
              body_fluid_other: '',
              special_medicine: '',
              special_medicine_other: '',
              displace_liqui_part: '',
              displace_liqui_value: '',
              ultrafiltration: '',
              blood_access: '',
              plasma_separator:"",
              oxygen_time:"",
              oxygen_uptake:"",
              oxygen_flow:"",

              hemodialysis_pipelines:'',
              hemodialysis_pipelines_count:'',
              puncture_needle:"",
              puncture_needle_count:"",
              epo:"",
              epo_count:"",

            }

            for (const key in tempAddPlan) {
              this.addPlan[key] = tempAddPlan[key]
            }
          }
        }
      })
    },
    setCurrentMode(id) {
      if (
        typeof this.modeOptions[id] === 'undefined' ||
        this.modeOptions[id] == null
      ) {
        return false
      }
      this.current_model = this.modeOptions[id]
    },
    getDoctorName(doctorid) {
      var name = ''
      if (this.doctorOptions == null) {
        return name
      }
      if (typeof this.doctorOptions.length === 'undefined') {
        return name
      }
      var leng = this.doctorOptions.length
      if (leng == 0) {
        return name
      }

      for (let index = 0; index < leng; index++) {
        if (this.doctorOptions[index].id == doctorid) {
          name = this.doctorOptions[index].name
          break
        }
      }
      return name
    },
    getAdminUserName(id) {
      var name = ''
      if (this.adminUserOptions == null) {
        return name
      }
      if (typeof this.adminUserOptions.length === 'undefined') {
        return name
      }
      var leng = this.adminUserOptions.length
      if (leng == 0) {
        return name
      }

      for (let index = 0; index < leng; index++) {
        if (this.adminUserOptions[index].id == id) {
          name = this.adminUserOptions[index].name
          break
        }
      }
      return name
    },
    changeOxygenList(val){
      if(val == 1){
       this.oxygenShow = true
     }
    if(val == 2){
      this.oxygenShow = false
      this.addPlan.oxygen_flow = ""
      this.addPlan.oxygen_time = ""
     }
    },
  },
  created() {
    const id = this.$route.params && this.$route.params.id
    this.patientID = parseInt(id)
    if (isNaN(this.patientID) || this.patientID <= 0) {
      this.$notify.error({
        title: '错误',
        message: '无效的id'
      })
      this.$router.back(-1)
    }
    this.hemodialysisPipelinesOptions = getDataConfig('hemodialysis', 'hemodialysis_pipelines')
    this.punctureNeedleOptions =  getDataConfig('hemodialysis', 'puncture_needle')
    this.epoOptions =getDataConfig('hemodialysis', 'epo')

    this.GetDeviceData()
    this.fetchAllAdminUsers()
    this.fetchPatientDialysisSolutions()
    this.modeOptions = this.$store.getters.treatment_mode
    this.anticoagulantsSet = this.$store.getters.anticoagulants_set
    this.replacementWays = this.$store.getters.replacement_ways
    this.anticoagulantsConfit = this.$store.getters.anticoagulants_confit
    this.blood_filters = this.$store.getters.blood_filters
    this.perfusion_apparatus = this.$store.getters.perfusion_apparatus
    this.hemodialysis_machines = this.$store.getters.hemodialysis_machines
    this.dialysate_formulation =  getDataConfig(
          'hemodialysis',
          'dialysate_formulation'
    )
    this.body_fluid_option = this.$store.getters.body_fluid
    this.special_medicine_option = this.$store.getters.special_medicine

    this.displace_liqui_part_option = this.$store.getters.displace_liqui
    this.blood_access_option = this.$store.getters.blood_access
    this.blood_access_option = getDataConfig('hemodialysis', 'vascular_access_desc')

    this.dialyzerPerfusionApparatus = getDataConfig(
      'hemodialysis',
      'dialyzer_perfusion_apparatus'
    )
    this.plasmaSeparatorList = getDataConfig('hemodialysis','plasma_separator')
    this.bilirubinAdsorptionColumn = getDataConfig('hemodialysis','bilirubin_adsorption_column')
    this.queryParams.id = this.patientID
    // this.fetchAllDoctorAndNurse();

  }
}
</script>

<style rel="stylesheet/scss" lang="scss" scoped>
.Total {
  .sure {
    float: right;
    margin: 5px 10px 0 0;
  }

  .plan {
    font-size: 15px;
    color: #6caef7;
    background: #ecf5ff;
    height: 42px;
    line-height: 42px;
    border: 1px #ebeef5 solid;
    width: 100%;
    padding-left: 15px;

    span {
      margin: 0 20px 0 0;
    }
  }
}
.form-table {
  border: 1px #ebeef5 solid;
  padding-bottom: 20px;

  .el-col-6 {
    width: 380px;
  }

  .el-row {
    margin: 0 !important;

    .el-form-item {
      margin-bottom: 12px;

      .el-form-item__content {
        .el-select {
          width: 100%;
        }
      }
    }
  }
}
</style>
<style>
.el-table td,
.el-table th.is-leaf,
.el-table--border,
.el-table--group {
  border-color: #d0d3da;
}

.el-table--border::after,
.el-table--group::after,
.el-table::before {
  background-color: #d0d3da;
}
</style>
