<template>
  <div>
    <el-button type="primary" @click="checkData">一键核对</el-button>
    <div id="dialysis-print-box">
      <div class="dialysis-print-order">
        <div class="order-yy-name">{{ orgname }}</div>
        <div class="order-title">血液净化治疗单</div>
        <table class="print-table" border="1" style="margin-top: 10px;">
          <tr>
            <td style="text-align:left;" colspan="2">
              <span style="display:inline-block;width:15%;margin-left:15px;">
                  姓名:
                  <span style="display:inline-block;">
                  {{patientInfo.name}}
                  </span>
              </span>
              <span style="display:inline-block;width:15%;">
                  性别:
                  <span style="display:inline-block;">
                  {{patientInfo.gender}}
                  </span>
              </span>
              <span style="display:inline-block;width:15%;">
                  年龄:
                  <span style="display:inline-block;">
                  {{ getAge(patientInfo) }}
                  </span>
              </span>
              <span style="display:inline-block;width:25%;">
                  透析机号:
                  <span style="display:inline-block;">
                      {{ dialysisOrder && dialysisOrder.DeviceNumber && dialysisOrder.DeviceNumber.number.length > 0 ? dialysisOrder.DeviceNumber.number : patientInfo.DialysisSchedule.device_number.number }}
                  </span>
              </span>
              <span style="display:inline-block;width:25%;">
                日期：{{getDatge(queryParams.xtdate)}}
              </span>
              
            </td>
            <!-- <td style="text-align:center;" colspan="1">
              机器号:
              <span style="display:inline-block;margin-left:10px;">
                {{
                dialysisOrder &&
                dialysisOrder.DeviceNumber &&
                dialysisOrder.DeviceNumber.number > 0
                ? dialysisOrder.DeviceNumber.number
                : patientInfo.DialysisSchedule.device_number.number
                }}
              </span>
            </td> -->
          </tr>
          <tr>
              <td style="text-align:left;" colspan="2">
                  <span style="display:inline-block;width:15%;margin-left:15px;width:100%;">
                      上机前病情:
                      <label-box :isChecked="predialysis.symptom_before_dialysis.indexOf('无特殊') > -1" showValue="无特殊"></label-box>&nbsp;&nbsp;
                      <span>
                          其他：<span v-if="predialysis.symptom_before_dialysis.indexOf('无特殊') == -1">{{ predialysis.symptom_before_dialysis ? predialysis.symptom_before_dialysis : "" }}</span>
                      </span>
                  </span>
              </td>
          </tr>
          <tr>
              <td style="text-align:left;">
                  <span style="display:inline-block;width:15%;margin-left:15px;width:100%;">
                      治疗方式:
                      <label-box :isChecked="prescription.mode_id == 1 ? true : false" showValue="HD"></label-box>&nbsp;
                      <label-box :isChecked="prescription.mode_id == 2 ? true : false" showValue="HDF"></label-box>&nbsp;
                      <label-box :isChecked="prescription.mode_id == 3 ? true : false" showValue="HD+HP"></label-box>&nbsp;
                      (
                          <label-box :isChecked="prescription.displace_liqui_part == 1 ? true : false" showValue="前稀释"></label-box>&nbsp;
                          <label-box :isChecked="prescription.displace_liqui_part == 2 ? true : false" showValue="后稀释"></label-box>
                          &nbsp; 置换液量：<span v-if="prescription.mode_id == 2" style="display:inline-block;width:50px;">{{ prescription.displace_liqui_value ? prescription.displace_liqui_value : "" }}</span> ml
                      )
                      <span>
                          其他:
                          <span v-if="prescription.mode_id > 3">
                              {{ prescription.mode }}
                          </span>
                      </span>
                  </span>
              </td>
              <td>
                  <span>
                      治疗时间:
                      {{ prescription.dialysis_duration_hour ? prescription.dialysis_duration_hour : "0" }}小时
                      {{ prescription.dialysis_duration_minute ? prescription.dialysis_duration_minute : "0" }}分钟
                  </span>
              </td>
          </tr>
          <tr>
              <td style="text-align:left;" colspan="2">
                  <span style="display:inline-block;width:15%;margin-left:15px;width:100%;">
                      治疗抗凝:
                      <label-box :isChecked="prescription.anticoagulant == 3 ? true : prescription.anticoagulant == 6 ? true : prescription.anticoagulant == 7 ? true : false" showValue="低分子肝素"></label-box>
                      <label-box :isChecked="prescription.anticoagulant == 8 ? true : false" showValue="依诺肝素"></label-box>
                      <span style="display:inline-block;width:50px;">
                          <span v-if="prescription.anticoagulant == 3">{{ prescription.anticoagulant_zongliang }}</span>
                          <span v-if="prescription.anticoagulant == 6">{{ prescription.anticoagulant_zongliang }}</span>
                          <span v-if="prescription.anticoagulant == 7">{{ prescription.anticoagulant_zongliang }}</span>
                          <span v-if="prescription.anticoagulant == 8">{{ prescription.anticoagulant_zongliang }}</span>
                      </span>U
                      <span style="margin:0 10px;">
                          <label-box :isChecked="prescription.anticoagulant == 2 ? true : false" showValue="普通肝素"></label-box>
                          首剂
                          <span style="display:inline-block;width:50px;">
                              <span v-if="prescription.anticoagulant == 2">{{ prescription.anticoagulant_shouji }}</span>
                          </span>mg
                          追加
                          <span style="display:inline-block;width:50px;">
                              <span v-if="prescription.anticoagulant == 2">{{ prescription.anticoagulant_weichi }}</span>
                          </span>mg/h
                          总量
                          <span style="display:inline-block;width:50px;">
                              <span v-if="prescription.anticoagulant == 2">{{ prescription.anticoagulant_zongliang }}</span>
                          </span>mg;
                      </span>
                      <label-box :isChecked="prescription.anticoagulant == 1 ? true : false" showValue="无肝素"></label-box>
                  </span>
              </td>
          </tr>
          <tr>
              <td style="text-align:left;" colspan="2">
                  <span style="display:inline-block;width:15%;margin-left:15px;width:100%;">
                      透前体重:
                      <span style="display:inline-block;width:50px;text-align:center;">{{ predialysis.weight_before ? predialysis.weight_before : "" }}</span>
                      kg
                      <span style="margin-left:15px;">
                          干体重:
                          <span style="display:inline-block;width:50px;text-align:center;">{{ predialysis.dry_weight ? predialysis.dry_weight : "" }}</span>
                          kg
                      </span>
                      <span style="margin-left:15px;">
                          预超滤量:
                          <span style="display:inline-block;width:50px;text-align:center;">{{ prescription.target_ultrafiltration ? prescription.target_ultrafiltration : "" }}</span>
                          L
                      </span>
                      <span style="margin-left:15px;">
                          透后体重:
                          <span style="display:inline-block;width:50px;text-align:center;">{{ afterdialysis.weight_after ? afterdialysis.weight_after : "" }}</span>
                          kg
                      </span>
                      <span style="margin-left:15px;">
                          实际超滤量:
                          <span style="display:inline-block;width:50px;text-align:center;">{{ afterdialysis.actual_ultrafiltration ? afterdialysis.actual_ultrafiltration : "" }}</span>
                          L
                      </span>
                  </span>
              </td>
          </tr>
          <tr>
              <td style="text-align:left;" colspan="2">
                  <span style="display:inline-block;width:15%;margin-left:15px;width:100%;">
                      透析液配方:钙
                      <span style="display:inline-block;width:50px;text-align:center;">{{ prescription.calcium ? prescription.calcium : "" }}</span>
                      mmol/L
                      <span style="margin-left:15px;">
                          钾:
                          <span style="display:inline-block;width:50px;text-align:center;">{{ prescription.kalium ? prescription.kalium : "" }}</span>
                          mmol/L
                      </span>
                      <span style="margin-left:15px;">
                          钠:
                          <span style="display:inline-block;width:50px;text-align:center;">{{ prescription.sodium ? prescription.sodium : "" }}</span>
                          mmol/L
                      </span>
                      <span style="margin-left:15px;">
                          碳酸氢根:
                          <span style="display:inline-block;width:50px;text-align:center;">{{ prescription.bicarbonate ? prescription.bicarbonate : "" }}</span>
                          mmol/L
                      </span>
                      <span style="margin-left:15px;">
                          透析液流量:
                          <span style="display:inline-block;width:50px;text-align:center;">{{ prescription.dialysate_flow ? prescription.dialysate_flow : "" }}</span>
                          ml/min
                      </span>
                  </span>
              </td>
          </tr>
          <tr>
              <td style="text-align:left;" colspan="2">
                  <span style="display:inline-block;width:15%;margin-left:15px;width:100%;">
                      
                      <span style="display:inline-block;width:30%">
                          透析机:{{ predialysis.machine_type ? predialysis.machine_type : '' }}
                      </span>
                      <span style="display:inline-block;width:30%">
                          透析（滤）器:{{ prescription.dialyzer_perfusion_apparatus ? prescription.dialyzer_perfusion_apparatus : "" }}
                      </span>
                      <span style="display:inline-block;width:30%">
                          医生签名:
                          <span>
                              <span v-if="setAdminUserES(tableAdvice[0].advice_doctor) == ''">{{ getAdminUser(tableAdvice[0].advice_doctor) }}</span>
                              <img class="es-img" style="height:30px;" :src="setAdminUserES(tableAdvice[0].advice_doctor)" alt="" srcset="" v-else />
                          </span>
                      </span>
                  </span>
              </td>
          </tr>
          <tr>
            <td colspan="8" style="text-align:left;">
              <span style="display:inline-block;margin-left:15px;">
                血管通路:
                <label-box :isChecked="predialysis.blood_access_part_opera_name == '内瘘' ? true : false" showValue="内瘘"></label-box>&nbsp;
                <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('长期静脉导管-股') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('长期静脉导管-颈') > -1 ? true : false" showValue="长期静脉导管"></label-box>&nbsp;
                <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('临时静脉导管-股') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('临时静脉导管-颈') > -1 ? true : false" showValue="临时"></label-box>&nbsp;
                (
                    <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('长期静脉导管-颈') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('临时静脉导管-颈') > -1 ? true : false" showValue="颈"></label-box>&nbsp;
                    <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('长期静脉导管-股') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('临时静脉导管-股') > -1 ? true : false" showValue="股"></label-box>&nbsp;
                )
                其他:
                <span v-if="predialysis.blood_access_part_opera_name != '内瘘' && predialysis.blood_access_part_opera_name.indexOf('长期静脉导管-股') == -1 && predialysis.blood_access_part_opera_name.indexOf('长期静脉导管-颈') == -1 && predialysis.blood_access_part_opera_name.indexOf('临时静脉导管-股') == -1 && predialysis.blood_access_part_opera_name.indexOf('临时静脉导管-颈') == -1">
                  {{ predialysis.blood_access_part_opera_name }}
                </span>
              </span>
            </td>
          </tr>
        </table>

        <table class="print-table" border="1" style="line-height:30px;">
          <tr style="line-height:40px;">
            <td style="min-width:60px">时间</td>
            <td style="min-width:60px">
              血流量
              <br />ml/min
            </td>
            <td style="min-width:60px">
              静脉压
              <br />(mmHg)
            </td>
            <td style="min-width:60px">
              跨膜压
              <br />(mmHg)
            </td>
            <td style="min-width:60px">
              钠
              <br />mmol/L
            </td>
            <td style="min-width:60px">
              超滤量
              <br />L
            </td>
            <td style="min-width:60px">
              心率
              <br />次/分
            </td>
            <td style="min-width:60px">
              呼吸
              <br />次/分
            </td>
            <td style="min-width:60px">
              血压
              <br />(mmHg)
            </td>
            <td style="min-width:60px">
              Spo
              <sub>2</sub>
              <br />%
            </td>
            
            
            <td style="min-width:60px">病情变化及处理</td>
            <td style="min-width:110px">护士签名核对者</td>
          </tr>
          <tr v-for="(monitor, monindex) in monitors" :key="monindex" style="height:40px;">
            <td>{{ getTime(monitor.operate_time, "{h}:{i}") }}</td>
            <td>{{ monitor.blood_flow_volume }}</td>
            <td>{{ monitor.venous_pressure }}</td>
            <td>{{ monitor.transmembrane_pressure }}</td>
            <td>{{ monitor.sodium_concentration }}</td>
            <td>{{ monitor.ultrafiltration_volume }}</td>
            <td>{{ monitor.pulse_frequency }}</td>
            <td>{{ monitor.breathing_rate }}</td>
            <td>
              {{
              monitor.systolic_blood_pressure
              ? monitor.systolic_blood_pressure + "/"
              : ""
              }}{{
              monitor.diastolic_blood_pressure
              ? monitor.diastolic_blood_pressure
              : ""
              }}
            </td>
            <td>{{ monitor.blood_oxygen_saturation }}</td>
            <td>
              <span style="line-height:18px;display:block;">
                {{ monitor.symptom }}&nbsp;{{ monitor.dispose }}&nbsp;{{
                monitor.result
                }}
              </span>
            </td>
            <td>
              <span v-if="setAdminUserES(monitor.monitoring_nurse) == ''">
                {{
                getAdminUser(monitor.monitoring_nurse)
                }}
              </span>
              <span
                v-else
                style="display:flex;align-items:center;justify-content:space-around;height:36px;"
              >
                <img style="height:30px;" :src="setAdminUserES(monitor.monitoring_nurse)" alt srcset />
              </span>
            </td>
          </tr>
        </table>
        <table class="print-table" border="1">
          <tr style="height:40px;">
            <td>时间</td>
            <td>医嘱内容</td>
            <td>医生签名</td>
            <td>执行时间</td>
            <td>执行人签名</td>
            <td>核对者签名</td>
          </tr>
          <tr v-for="(advice, advice_index) in tableAdvice" :key="advice_index" style="height:40px;">
            <td
              style="height:30px;line-height:30px"
            >{{ getTime(advice.start_time, "{y}-{m}-{d} {h}:{i}") }}</td>
            
            <td class="parent" style="text-align:left;padding-left: 20px !important;">
              <span v-if="advice.parent_id > 0">&nbsp;&nbsp;&nbsp;</span>
              <span>{{ advice.advice_name }}</span>
              <span
                v-if="advice && advice.advice_desc"
              >({{ advice.advice_desc }}{{ advice.drug_spec_unit }})</span>
              <span v-if="advice.prescribing_number">
                &nbsp;&nbsp; {{ advice.prescribing_number
                }}{{ advice.prescribing_number_unit }}
              </span>
              <span
                v-if="advice.single_dose != 0"
              >{{ advice.single_dose }}{{ advice.single_dose_unit }}</span>
              <span v-if="advice.parent_id == 0">{{ advice.delivery_way }}</span>
              <span v-if="advice.parent_id == 0">
                {{
                advice.execution_frequency
                }}
              </span>
              <span v-if="advice.parent_id == 0 && advice.remark.length > 0">({{ advice.remark }})</span>
            </td>
            <td>
              <span v-if="setAdminUserES(advice.advice_doctor) == ''">
                {{
                getAdminUser(advice.advice_doctor)
                }}
              </span>
              <span
                v-else
                style="display:flex;align-items:center;justify-content:space-around;height:36px;"
              >
                <img style="height:30px;" :src="setAdminUserES(advice.advice_doctor)" alt srcset />
              </span>
            </td>
            <td>{{ getTime(advice.execution_time, "{y}-{m}-{d} {h}:{i}") }}</td>
            <td>
              <span v-if="setAdminUserES(advice.execution_staff) == ''">
                {{
                getAdminUser(advice.execution_staff)
                }}
              </span>
              <span
                v-else
                style="display:flex;align-items:center;justify-content:space-around;height:36px;"
              >
                <img style="height:30px;" :src="setAdminUserES(advice.execution_staff)" alt srcset />
              </span>
            </td>
            <td>
              <span v-if="setAdminUserES(advice.checker) == ''">
                {{
                getAdminUser(advice.checker)
                }}
              </span>
              <span
                v-else
                style="display:flex;align-items:center;justify-content:space-around;height:36px;"
              >
                <img style="height:30px;" :src="setAdminUserES(advice.checker)" alt srcset />
              </span>
            </td>
          </tr>
          <tr>
            <td style="text-align:left;" colspan="6">
              <span style="display:block;margin-left:15px;">
                内瘘:
                <label-box :isChecked="afterdialysis.internal_fistula&&afterdialysis.internal_fistula.indexOf('正常') > -1 ? true : false" showValue="正常"></label-box>
                <label-box :isChecked="afterdialysis.internal_fistula&&afterdialysis.internal_fistula.indexOf('震颤-存在') > -1 ? true : false" showValue="存在"></label-box>
                <label-box :isChecked="afterdialysis.internal_fistula&&afterdialysis.internal_fistula.indexOf('震颤-减弱') > -1 ? true : false" showValue="减弱"></label-box>
                <span>
                  透析器凝血:
                  <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器-0度') > -1 ? true : false) :false" showValue="0"></label-box>
                  <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器-Ⅰ度') > -1 ? true : false) :false" showValue="+"></label-box>
                  <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器-Ⅱ度') > -1 ? true : false) :false" showValue="+ +"></label-box>
                  <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器-Ⅲ度') > -1 ? true : false) :false" showValue="+ + +"></label-box>
                </span>
                <span>
                  动脉凝血:
                  <label-box :isChecked="afterdialysis.arterial_tube == 1 ? true : false" showValue="无"></label-box>&nbsp;
                  <label-box :isChecked="afterdialysis.arterial_tube == 2 ? true : false" showValue="+"></label-box>&nbsp;
                  <label-box :isChecked="afterdialysis.arterial_tube == 3 ? true : false" showValue="+ +"></label-box>&nbsp;
                  <label-box :isChecked="afterdialysis.arterial_tube == 4 ? true : false" showValue="+ + +"></label-box>&nbsp;
                </span>
                <span>
                  静脉凝血:
                  <label-box :isChecked="afterdialysis.intravenous_tube == 1 ? true : false" showValue="无"></label-box>&nbsp;
                  <label-box :isChecked="afterdialysis.intravenous_tube == 2 ? true : false" showValue="+"></label-box>&nbsp;
                  <label-box :isChecked="afterdialysis.intravenous_tube == 3 ? true : false" showValue="+ +"></label-box>&nbsp;
                  <label-box :isChecked="afterdialysis.intravenous_tube == 4 ? true : false" showValue="+ + +"></label-box>&nbsp;
                </span>
              </span>
            </td>
          </tr>
          <tr>
            <td style="text-align:left;" colspan="6">
              <span style="display:block;margin-left:15px;height:200px;">治疗小结:&nbsp;{{ dialysis_summary ? dialysis_summary : "" }}</span>
              <div style="text-align:right;">
                  医生签名:
                  <span style="display:inline-block;width:100px;text-align:left;">
                      <span v-if="setAdminUserES(tableAdvice[0].advice_doctor) == ''">{{ getAdminUser(tableAdvice[0].advice_doctor) }}</span>
                      <img class="es-img" style="height:30px;" :src="setAdminUserES(tableAdvice[0].advice_doctor)" alt="" srcset="" v-else />
                  </span>
                  护士签名:
                  <span style="display:inline-block;width:100px;text-align:left;">
                      <span v-if="setAdminUserES(dialysisOrder==null?0:dialysisOrder.start_nurse) == ''">{{getAdminUser(dialysisOrder==null?0:dialysisOrder.start_nurse)}}</span>
                      <img class="es-img" style="height:30px" :src="setAdminUserES(dialysisOrder==null?0:dialysisOrder.start_nurse)" alt="" srcset="" v-else>
                  </span>
              </div>
            </td>
          </tr>
        </table>
        

        <!-- <div style="margin-top:20px">
          <span style="margin-left:280px;">肝素浓度:每毫升肝素生理盐水含肝素钠2.5毫克</span>
        </div>-->
      </div>
    </div>
  </div>
</template>

<script>
import { getDialysisRecord } from '@/api/dialysis'
import { getDataConfig } from '@/utils/data'
import { jsGetAge, uParseTime } from '@/utils/tools'
import LabelBox from '../printItem/LabelBox'
import CheckBox from '../batch_print/option_check_box'
import BreadCrumb from '@/xt_pages/components/bread-crumb'
// import DialysisPrintOrderOne from './template/dialysisPrintOrderOne'
// import DialysisPrintOrderTwo from './template/dialysisPrintOrderTwo'

export default {
  name: 'dialysisPrintOrderOne',
  components: {
    // DialysisPrintOrderOne,
    // DialysisPrintOrderTwo,
    LabelBox,
    BreadCrumb,
    CheckBox
  },
  data() {
    return {
      crumbs: [
        { path: false, name: '透析管理' },
        { path: false, name: '打印单' }
      ],
      operators: [],
      adminUser: [],
      check: {},
      dialysisOrder: {
        DeviceNumber: []
      },
      posture_arr: [],
      operatorMaps: {},
      complications: [
        '低血压',
        '高血压',
        '心律失常',
        '头晕',
        '头痛',
        '呕吐',
        '抽搐',
        '出血',
        '心衰',
        '腹痛',
        '无'
      ],
      consciousness_arr: [],
      jilurow: 0,
      advice_jilurow: 0,
      loading: false,
      orgname: '',
      patientInfo_gender_1: false,
      patientInfo_gender_2: false,
      patientInfo_source_2: false,
      patientInfo_source_1: false,
      modeOptions: {},
      replacementWays: [],
      perfusionApparatus: [],
      anticoagulantsConfit: {},
      bloodAccessParOpera: {},
      dialysateFormulationOptions: {},

      queryParams: {
        xtdate: '',
        xtno: ''
      },
      patientInfo: {
        birth: '',
        age: '',
        DialysisSchedule: {
          device_number: { number: '' },
          device_zone: { name: '' }
        },
        gender: 0
      },
      predialysis: {
        score: '',
        internal_fistula: '',
        internal_fistula_skin: '',
        catheter: '',
        blood_access_part_opera_name: ''
      },
      afterdialysis: {
        complications_index: ''
      },
      prescription: {
        dialysate_formulation_name: '',
        device: {}
      },
      advices: [],
      users: [],
      monitors: [],
      summary: {},
      receiverTreatmentAccess: {},
      org_template_info: {},

      doctor_advices: [],
      advice_groups: [],
      schedule: [],

      AlPanel: {
        id: 0,
        name: '',
        type: 1,
        shouji: 2,
        weichi: 2,
        zongliang: 2,
        gaimingcheng: -1,
        gaijiliang: -1,
        shouji_unit: 'mg',
        weichi_unit: 'mg/h',
        zongliang_unit: 'mg',
        gaimingcheng_unit: '',
        gaijiliang_unit: ''
      },
      list: 5,
      replacement_total: '',
      actual_treatment_hour: '',
      actual_treatment_minute: '',
      anticoagulant: '',
      anticoagulant_shouji: '',
      anticoagulant_zongliang: '',
      prescription_dewatering: '',
      blood_flow_volume: '',
      dialysate_flow: '',
      bed: '',
      dialyzer_perfusion_apparatus: '',
      dialysate_formulation: '',
      blood_access: '',
      doctor: '',
      nurse: '',
      doctorAdvice: [],
      total: '',
      weight_before: '',
      dry_weight: '',
      weight_after: '',
      weightloss_after: '',
      actual_ultrafiltration: '',
      temperature: '',
      systolic_blood_pressure: '',
      diastolic_blood_pressure: '',
      mission: '',
      dialysis_summary: '',
      orderForm: {
        start_nurse: '',
        url: ''
      },
      doctorForm: {
        doctor: '',
        url: ''
      },
      finshForm: {
        finish_nurse: '',
        url: ''
      },
      tableAdvice: [],
      monitor: [],
      displace_liqui: '',
      kalium: '',
      sodium: '',
      calcium: '',
      weight_gain: '',
      afterWeightLast: '',
      anticoagulant_weichi: '',
      target_ultrafiltration: '',
      blood_access_internal_fistula: '',
      venous_catheterization: '',
      blood_access_part_opera_id: '',
      dryWeight_add: '',
      weight: '',
      vascularId: 0,
      PunctureNurse: {
        user_name: '',
        url: ''
      },
      arr: [],
      arrtwo: [],
      bloodAccess: [],
      vascularAccess: [],
      nursing_record: '',
      special_record: '',
      newTableAdvice: []
    }
  },
  methods: {
    checkData(){
      if(this.predialysis.symptom_before_dialysis == ""){
        this.$message.error('上机前病情未填')
      }else if(this.prescription.mode_id == ""){
        this.$message.error('治疗方式未填')
      }else if(this.prescription.replacement_total == 0 && this.prescription.mode_id == 2){
        this.$message.error('置换量未填')
      }else if(this.prescription.dialysis_duration_hour == 0 && this.prescription.dialysis_duration_minute == 0){
        this.$message.error('治疗时间未填')
      }else if(this.prescription.anticoagulant == 0){
        this.$message.error('治疗抗凝未填')
      }else if(this.predialysis.weight_before == 0){
        this.$message.error('透前体重未填')
      }else if(this.predialysis.dry_weight == 0){
        this.$message.error('干体重未填')
      }else if(this.prescription.target_ultrafiltration == 0){
        this.$message.error('预超滤量未填')
      }else if(this.afterdialysis.weight_after == 0){
        this.$message.error('透后体重未填')
      }else if(this.afterdialysis.actual_ultrafiltration == 0){
        this.$message.error('实际超滤量未填')
      }else if(this.prescription.calcium == 0){
        this.$message.error('钙未填')
      }else if(this.prescription.kalium == 0){
        this.$message.error('钾未填')
      }else if(this.prescription.sodium == 0){
        this.$message.error('钠未填')
      }else if(this.prescription.bicarbonate == 0){
        this.$message.error('碳酸氢根未填')
      }else if(this.prescription.dialysate_flow == 0){
        this.$message.error('透析液流量未填')
      }else if(this.predialysis.machine_type == ""){
        this.$message.error('透析机未填')
      }else if(this.prescription.dialyzer_perfusion_apparatus == ""){
        this.$message.error('透析(滤)器未填')
      }else if(this.tableAdvice[0].advice_doctor == 0){
        this.$message.error('医生签名未填')
      }else if(this.predialysis.blood_access_part_opera_name == ''){
        this.$message.error('血管通路未填')
      }else if(this.afterdialysis.internal_fistula == ''){
        this.$message.error('透后内瘘未填')
      }else if(this.afterdialysis.cruor == ""){
        this.$message.error('透析器凝血未填')
      }else if(this.afterdialysis.arterial_tube == 0){
        this.$message.error('动脉凝血未填')
      }else if(this.afterdialysis.intravenous_tube == 0){
        this.$message.error('静脉凝血未填')
      }else if(this.dialysis_summary == ""){
        this.$message.error('治疗小结未填')
      }else if(this.dialysisOrder == null || this.dialysisOrder.start_nurse == 0){
        this.$message.error('上机护士未填')
      }else if(this.tableAdvice.length > 0 || this.monitors.length > 0){
        let num = 0
        if(this.monitors.length > 0){
          this.monitors.map(item => {
            if(item.id > 0 && item.operate_time){
              this.users.map(it => {
                if(it.id == item.monitoring_nurse){
                  if(it.user_type == 2){
                    num++
                    this.$message.closeAll()
                    this.$message.error('存在不是护士保存的监测')
                  }
                }
              })
            }
          })
        }
        if(this.tableAdvice.length > 0){
          this.tableAdvice.map(item => {
            if(item.id > 0 && (item.created_time || item.start_time)){
              this.users.map(it => {
                if(it.id == item.advice_doctor){
                  if(it.user_type == 3){
                    num++
                    this.$message.closeAll()
                    this.$message.error('存在不是医生保存的医嘱')
                  }else if(it.id == item.execution_staff && item.execution_staff > 0){
                    if(it.user_type == 2){
                      num++
                      this.$message.closeAll()
                      this.$message.error('存在不是护士执行的医嘱')
                    }
                  }else if(it.id == item.checker && item.checker > 0){
                    if(it.user_type == 2){
                      num++
                      this.$message.closeAll()
                      this.$message.error('存在不是护士核对的医嘱')
                    }
                  }
                }else if(it.id == item.execution_staff && item.execution_staff > 0){
                  if(it.user_type == 2){
                    num++
                    this.$message.closeAll()
                    this.$message.error('存在不是护士执行的医嘱')
                  }
                }else if(it.id == item.checker && item.checker > 0){
                  if(it.user_type == 2){
                    num++
                    this.$message.closeAll()
                    this.$message.error('存在不是护士核对的医嘱')
                  }
                }
              })
            }
        })
        }
        
        if(num == 0){
          this.$message.success('核对完成')
        }
      }else{
        this.$message.success('核对完成')
      }
    },
    getCruor(cruor){
      if(cruor.indexOf(',') == -1){
        let str = cruor
        if(['透析器-0级','透析器-1级','透析器-2级','透析器-3级'].indexOf(str) == -1){
          return str
        }
      }else if(cruor.indexOf(',') > -1){
        let str = cruor
        if(['透析器-0级','透析器-1级','透析器-2级','透析器-3级'].indexOf(str) == -1){
          let newStr = ''
          str.split(',').map(item => {
            if(['透析器-0级','透析器-1级','透析器-2级','透析器-3级'].indexOf(item) == -1){
              newStr += item + ','
            }
          })
          return newStr.substring(0, newStr.length - 1)
        }
      }
    },
    getAdminUser(id) {
      if (id == 0) {
        return ''
      }
      if (id == undefined) {
        return ''
      }
      for (let i = 0; i < this.adminUser.length; i++) {
        if (this.adminUser[i].id == id) {
          return this.adminUser[i].name
        }
      }
    },
    getDatge(value) {
      var times = Date.parse(value) / 1000
      var timestr = uParseTime(times, '{y}年{m}月{d}日')
      return timestr
    },
    getTime(value, temp) {
      if (value == 0) {
        return ''
      }
      if (value != undefined) {
        return uParseTime(value, temp)
      }
      return ''
    },
    getTimes(time) {
      if (time === '') {
        return ''
      }
      return uParseTime(time, '{y}-{m}-{d} {h}:{i}')
    },
    printThisPage() {
      var ptime = Math.round(new Date().getTime() / 1000)
      this.print_time = uParseTime(ptime, '{y}-{m}-{d} {h}:{i}')

      const style =
        '@media print {.dialysis-print-order{width:960px;margin:0 auto}.dialysis-print-order .order-yy-name{margin:auto;text-align:center;font-size:20px;letter-spacing:5px}.dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:22px;padding:10px 20px 20px 20px}.dialysis-print-order .table-box{width:100%;line-height:23px;font-size:14px}.dialysis-print-order .print-table{width:100%;text-align:center;border-collapse:collapse;line-height:25px;font-size:14px}.dialysis-print-order .print-table-no{width:100%;text-align:center;border-collapse:collapse;font-size:14px}.dialysis-print-order .under-line{border-bottom:1px solid #999;width:95%;text-align:center;margin-left:2px}.dialysis-print-order .title-box{text-align:center;font-size:16px;border:1px solid #666}.dialysis-print-order .radio-lebel-box{font-weight:400;cursor:pointer}.dialysis-print-order .radio-no{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.dialysis-print-order .radio-inner{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.dialysis-print-order .radio-fang{display:inline-block;position:relative;border:1px solid #000;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.dialysis-print-order .is-checked-radio::after{content:"√";font-size:15px}}.dialysis-print-order .print-table-no tr td { padding: 8px 5px; line-height: 25px; }.es-img{height: 20px; }.advice-name{text-align: left;}.advice-children{display:flex;} .dialysis-print-order .print-table tr td{padding: 0px 0px;} .print-template-two tr {line-height: 30px;}   .title-box-pro{border: 0 #fff;line-height: 40px;height: 40px;text-align: left;padding-left: 10px !important;}  .text-align-left{text-align: left !important;padding-left:10px !important;font-size: 14px !important;line-height: 25px;}'

      if (this.org_template_info.template_id == 1) {
        printJS({
          printable: 'dialysis-print-box',
          type: 'html',
          style: style,
          scanStyles: false
        })
      } else if (
        this.org_template_info.template_id == 2 ||
        this.org_template_info.template_id == 0
      ) {
        printJS({
          printable: 'dialysis-print-box-1',
          type: 'html',
          style: style,
          scanStyles: false
        })
      }
    },
    getNumber() {
      if (this.dialysisOrder != null) {
        return (
          this.patientInfo.DialysisSchedule.device_zone.name +
          this.dialysisOrder.DeviceNumber.number
        )
      } else {
        return (
          this.patientInfo.DialysisSchedule.device_zone.name +
          this.patientInfo.DialysisSchedule.device_number.number
        )
      }
    },

    getXuserName(id) {
      if (id <= 0) {
        return ''
      }
      var name = ''
      if (this.users == null || typeof this.users.length === 'undefined') {
        return name
      }
      var leng = this.users.length
      if (leng === 0) {
        return name
      }
      for (let index = 0; index < leng; index++) {
        if (this.users[index].id === id) {
          name = this.users[index].name
          break
        }
      }
      return name
    },
    setAdminUserES(id) {
      if (id === 0) {
        return ''
      }
      if (id in this.operatorMaps) {
        return this.operatorMaps[id].url
      } else {
        return ''
      }
    },
    modeName(mode_id) {
      return typeof this.modeOptions[mode_id] !== 'undefined' &&
        typeof this.modeOptions[mode_id].name !== 'undefined'
        ? this.modeOptions[mode_id].name
        : ''
    },
    getDialysisRecord() {
      this.loading = true

      getDialysisRecord(this.queryParams).then(response => {
        if (response.data.state === 1) {
          this.adminUser = response.data.data.users
          this.users = response.data.data.users
          var patientInfo = response.data.data.patientInfo
          if (patientInfo.gender === 1) {
            patientInfo.gender = '男'
          }
          if (patientInfo.gender === 2) {
            patientInfo.gender = '女'
          }
          this.patientInfo = response.data.data.patientInfo
          // console.log("透析记录", this.patientInfo);

          this.patientInfo.birth = uParseTime(
            this.patientInfo.birthday,
            '{y}-{m}-{d}'
          )
          // this.patientInfo.age = jsGetAge(this.patientInfo.birth, '-')
          if (response.data.data.patientInfo.first_dialysis_date != 0) {
            this.patientInfo.first_dialysis_date = uParseTime(
              response.data.data.patientInfo.first_dialysis_date,
              '{y}-{m}-{d}'
            )
          } else {
            this.patientInfo.first_dialysis_date = ''
          }
          this.check = response.data.data.check
          var predialysis = response.data.data.PredialysisEvaluation
          console.log('透前评估', predialysis)
          var predialysName = response.data.data.predialysName
          this.blood_access_part_opera_id = predialysName.name
          // console.log('血管', predialysName)
          // this.weight_before = predialysis.weight_before
          this.dry_weight = predialysis.dry_weight
          this.weight_gain = predialysis.weight_gain
          this.blood_access_internal_fistula =
            predialysis.blood_access_internal_fistula
          this.venous_catheterization = predialysis.venous_catheterization
          // this.blood_access_part_opera_id = predialysis.blood_access_part_opera_id
          // console.log('血管通路', this.blood_access_part_opera_id)
          var arry = []
          arry = getDataConfig('hemodialysis', 'vascular_access_desc')
          // eslint-disable-next-line no-empty
          var id = 0
          for (let i = 0; i < arry.length; i++) {
            if (arry[i].id === predialysis.blood_access_part_opera_id) {
              id = predialysis.blood_access_part_opera_id
            }
            this.vascularId = id
          }
          this.predialysis = predialysis
          // console.log('透前评估', this.predialysis)

          this.predialysis.blood_access_part_opera_name = this.bloodAccessParOperaName(
            this.predialysis.blood_access_part_opera_id
          )
          var afterdialysis = response.data.data.AssessmentAfterDislysis
          // eslint-disable-next-line no-undef
          console.log('透后评估', afterdialysis)
          this.temperature = afterdialysis.temperature
          this.actual_ultrafiltration = afterdialysis.actual_ultrafiltration
          this.actual_treatment_hour = afterdialysis.actual_treatment_hour
          this.actual_treatment_minute = afterdialysis.actual_treatment_minute
          this.systolic_blood_pressure = afterdialysis.systolic_blood_pressure
          this.diastolic_blood_pressure =
            afterdialysis.diastolic_blood_pressure
          this.afterdialysis = afterdialysis
          // eslint-disable-next-line no-unused-vars
          var doctoradvce = response.data.data.doctorAdvice
          var doctorAdevieInfo = response.data.data.doctorAdevieInfo
          this.newTableAdvice = response.data.data.doctorAdevieInfo
          console.log('哈哈哈哈哈哈哈哈哈', this.newTableAdvice)
          var tableAdvice = doctorAdevieInfo
          console.log('tableAdvice', tableAdvice)
          // console.log('医生', tableAdvice.length)
          if (tableAdvice.length === 0) {
            var obj = { advice_name: '', start_time: '' }
            var obj1 = { advice_name: '', start_time: '' }
            var obj2 = { advice_name: '', start_time: '' }
            var obj3 = { advice_name: '', start_time: '' }
            var obj4 = { advice_name: '', start_time: '' }
            var obj5 = { advice_name: '', start_time: '' }
            var obj6 = { advice_name: '', start_time: '' }
            tableAdvice.push(obj)
            tableAdvice.push(obj1)
            tableAdvice.push(obj2)
            tableAdvice.push(obj3)
            tableAdvice.push(obj4)
            tableAdvice.push(obj5)
            tableAdvice.push(obj6)
            this.tableAdvice = tableAdvice
          }
          if (tableAdvice.length === 1) {
            var obj = { advice_name: '', start_time: '' }
            var obj1 = { advice_name: '', start_time: '' }
            var obj2 = { advice_name: '', start_time: '' }
            var obj3 = { advice_name: '', start_time: '' }
            var obj4 = { advice_name: '', start_time: '' }
            var obj5 = { advice_name: '', start_time: '' }
            tableAdvice.push(obj)
            tableAdvice.push(obj1)
            tableAdvice.push(obj2)
            tableAdvice.push(obj3)
            tableAdvice.push(obj4)
            tableAdvice.push(obj5)
            this.tableAdvice = tableAdvice
          }
          if (tableAdvice.length === 2) {
            var obj = { advice_name: '', start_time: '' }
            var obj1 = { advice_name: '', start_time: '' }
            var obj2 = { advice_name: '', start_time: '' }
            var obj3 = { advice_name: '', start_time: '' }
            var obj4 = { advice_name: '', start_time: '' }
            tableAdvice.push(obj)
            tableAdvice.push(obj1)
            tableAdvice.push(obj2)
            tableAdvice.push(obj3)
            tableAdvice.push(obj4)
            this.tableAdvice = tableAdvice
          }
          if (tableAdvice.length === 3) {
            // eslint-disable-next-line no-redeclare
            var obj = { advice_name: '', start_time: '' }
            // eslint-disable-next-line no-redeclare
            var obj1 = { advice_name: '', start_time: '' }
            // eslint-disable-next-line no-redeclare
            var obj2 = { advice_name: '', start_time: '' }
            // eslint-disable-next-line no-redeclare
            var obj3 = { advice_name: '', start_time: '' }

            tableAdvice.push(obj)
            tableAdvice.push(obj1)
            tableAdvice.push(obj2)
            tableAdvice.push(obj3)

            this.tableAdvice = tableAdvice
          }
          if (tableAdvice.length === 4) {
            // eslint-disable-next-line no-redeclare
            var obj = { advice_name: '', start_time: '' }
            // eslint-disable-next-line no-redeclare
            var obj1 = { advice_name: '', start_time: '' }
            // eslint-disable-next-line no-redeclare
            var obj2 = { advice_name: '', start_time: '' }

            tableAdvice.push(obj)
            tableAdvice.push(obj1)
            tableAdvice.push(obj2)
            this.tableAdvice = tableAdvice
          }
          if (tableAdvice.length === 5) {
            // eslint-disable-next-line no-redeclare
            var obj = { advice_name: '', start_time: '' }
            // eslint-disable-next-line no-redeclare
            var obj1 = { advice_name: '', start_time: '' }
            tableAdvice.push(obj)
            tableAdvice.push(obj1)
            this.tableAdvice = tableAdvice
          }
          if (tableAdvice.length === 6) {
            // eslint-disable-next-line no-redeclare
            var obj = { advice_name: '', start_time: '' }
            tableAdvice.push(obj)
            this.tableAdvice = tableAdvice
          }
          if (tableAdvice.length >= 7) {
            this.tableAdvice = tableAdvice
          }
          var doctor = response.data.data.doctor
          this.doctor = doctor.user_name
          // console.log('医生', doctor)
          this.PunctureNurse = response.data.data.nurse
          // console.log('穿刺护士', this.PunctureNurse)
          var operators = response.data.data.operators
          // console.log('operators', operators)
          var total = response.data.data.total
          console.log('total', total)
          this.total = total
          this.operators = operators
          this.dialysisOrder =
            response.data.data.dialysisOrder === null
              ? null
              : response.data.data.dialysisOrder

          if (this.operators.length > 0) {
            var operatorsLen = this.operators.length
            for (var index = 0; index < operatorsLen; index++) {
              this.$set(
                this.operatorMaps,
                this.operators[index].creator,
                this.operators[index]
              )
            }
          }

          this.afterdialysis.txqnx = -1
          if (this.afterdialysis.cruor.indexOf('0度') > -1) {
            this.afterdialysis.txqnx = 0
          }
          if (this.afterdialysis.cruor.indexOf('Ⅰ度') > -1) {
            this.afterdialysis.txqnx = 1
          }
          if (this.afterdialysis.cruor.indexOf('Ⅱ度') > -1) {
            this.afterdialysis.txqnx = 2
          }
          if (this.afterdialysis.cruor.indexOf('Ⅲ度') > -1) {
            this.afterdialysis.txqnx = 3
          }

          this.afterdialysis.complications = this.afterdialysis.complication.split(
            ','
          )
          this.afterdialysis.complications_other = []
          this.afterdialysis.complications_index = []
          var acllen = this.afterdialysis.complications.length
          for (let index = 0; index < acllen; index++) {
            if (
              this.complications.indexOf(
                this.afterdialysis.complications[index]
              ) >= 0
            ) {
              this.afterdialysis.complications_index.push(
                this.afterdialysis.complications[index]
              )
            } else if (
              this.complications.indexOf(
                this.afterdialysis.complications[index]
              ) < 0 &&
              this.afterdialysis.complications_other.indexOf(
                this.afterdialysis.complications[index]
              ) < 0
            ) {
              this.afterdialysis.complications_other.push(
                this.afterdialysis.complications[index]
              )
            }
          }
          this.afterdialysis.complications_other = this.afterdialysis.complications_other.join(
            ','
          )

          var prescription = response.data.data.dialysisPrescription
          this.prescription = prescription
          var schedule = response.data.data.schedule
          // console.log('排班', schedule)
          this.schedule = schedule
          var receiverTreatmentAccess =
            response.data.data.receiverTreatmentAccess
          console.log('接诊评估', receiverTreatmentAccess)
          var obj = receiverTreatmentAccess.precaution
          var arr = obj.split(',')
          console.log('arr', arr)
          var arr2 = []
          for (let i = 0; i < this.precautions.length; i++) {
            for (let j = 0; j < arr.length; j++) {
              if (this.precautions[i].id == parseInt(arr[j])) {
                arr2.push(this.precautions[i].name)
              }
            }
          }
          var obj2 = arr2.join(',')
          console.log('obj2', obj2)
          receiverTreatmentAccess.precaution = obj2
          console.log('接诊评估', receiverTreatmentAccess)
          this.receiverTreatmentAccess = receiverTreatmentAccess
          var dialysisway = response.data.data.dialysisway
          console.log('透析处方', dialysisway)
          this.target_ultrafiltration = dialysisway.target_ultrafiltration
          var order = response.data.data.order
          // console.log('上下机', order)
          var start_nurse = response.data.data.startNuse
          // console.log('上机护士', start_nurse)
          this.orderForm.start_nurse = start_nurse.user_name
          this.orderForm.url = start_nurse.url
          var finish_nurse = response.data.data.FinishNuse
          // console.log('下机护士', finish_nurse)
          this.finshForm.url = finish_nurse.url
          this.finshForm.finish_nurse = finish_nurse.user_name

          var doctorname = response.data.data.DoctorName
          // console.log('医师签名', doctorname)
          this.doctorForm.doctor = doctorname.user_name
          this.doctorForm.url = doctorname.url
          this.bed = order.number
          this.replacement_total = dialysisway.replacement_total
          this.anticoagulant = dialysisway.anticoagulant
          this.anticoagulant_shouji = dialysisway.anticoagulant_shouji
          this.anticoagulant_zongliang = dialysisway.anticoagulant_zongliang
          this.prescription_dewatering = dialysisway.prescription_dewatering
          this.blood_flow_volume = dialysisway.blood_flow_volume
          this.dialysate_flow = dialysisway.dialysate_flow
          this.dialyzer_perfusion_apparatus =
            dialysisway.dialyzer_perfusion_apparatus
          this.dialysate_formulation = dialysisway.dialysate_formulation
          this.blood_access = dialysisway.blood_access
          this.displace_liqui = dialysisway.displace_liqui
          this.kalium = dialysisway.kalium
          this.sodium = dialysisway.sodium
          this.calcium = dialysisway.calcium
          this.anticoagulant_weichi = dialysisway.anticoagulant_weichi
          // var afterWeightLast = response.data.data.assessmentAfterDislysis
          // this.afterWeightLast = afterWeightLast.weight_after
          // eslint-disable-next-line no-undef
          // console.log('透前体重', this.weight_before)
          // console.log('干体中', this.dry_weight)
          // console.log('什么体重', predialysis.additional_weight)
          // console.log('较干体中增加量', this.dryWeight_add)
          // this.afterWeightLast = afterWeightLast.weight_after
          this.prescription.mode = this.modeName(this.prescription.mode_id)
          var rwLen = this.replacementWays.length
          this.prescription.replacement = ''
          for (let index = 0; index < rwLen; index++) {
            if (
              this.replacementWays[index].id ==
              this.prescription.replacement_way
            ) {
              this.prescription.replacement = this.replacementWays[index].name
              break
            }
          }

          this.prescription.dialysate_formulation_name = this.dialysateFormulationName(
            this.prescription.dialysate_formulation
          )

          var paLen = this.perfusionApparatus.length
          this.prescription.perfusion_apparatus_name = ''
          for (let index = 0; index < paLen; index++) {
            if (
              this.perfusionApparatus[index].id ==
              this.prescription.perfusion_apparatus
            ) {
              this.prescription.perfusion_apparatus_name = this.perfusionApparatus[
                index
              ].name
              break
            }
          }

          // eslint-disable-next-line no-unused-vars
          var acLen = this.anticoagulantsConfit.length
          var thisALID = this.prescription.anticoagulant
          this.prescription.anticoagulant_name = ''

          if (
            typeof this.anticoagulantsConfit[thisALID] !== 'undefined' &&
            this.anticoagulantsConfit[thisALID] != null
          ) {
            this.prescription.anticoagulant_name = this.anticoagulantsConfit[
              thisALID
            ].name
            this.AlPanel = this.anticoagulantsConfit[thisALID]
          }
          this.advices = response.data.data.advices
          // console.log('医嘱', this.advices)
          var monitor = response.data.data.monitor
          // console.log('透析监测', monitor)
          this.monitor = monitor
          // console.log('monitor', monitor)
          this.monitors = response.data.data.monitors
          // console.log("透析监测", this.monitors);
          var summary = response.data.data.summary
          console.log('透析小结', summary)
          this.mission = summary.mission
          this.dialysis_summary = summary.dialysis_summary
          this.nursing_record = summary.nursing_record
          this.special_record = summary.special_record
          this.org_template_info = response.data.data.org_template_info
          if (this.monitors.length < 7) {
            var nl = 8 - this.monitors.length
            for (let index = 0; index < nl; index++) {
              this.monitors.push([])
            }
          }
          this.jilurow = this.monitors.length + 1

          this.advice_jilurow = this.advices.length + 1

          var childMap = {}
          for (const index in this.advices) {
            if (this.advices[index].parent_id == 0) {
              continue
            }
            if (!(this.advices[index].parent_id in childMap)) {
              childMap[this.advices[index].parent_id] = []
            }
            childMap[this.advices[index].parent_id].push(this.advices[index])
          }

          var advices = []
          for (const index in this.advices) {
            if (this.advices[index].parent_id > 0) {
              continue
            }
            var item = this.advices[index]
            if (item.id in childMap) {
              item.children = childMap[item.id]
            } else {
              item.children = []
            }
            advices.push(item)
          }

          var leftAdvice = []
          var rightAdvice = []
          var adlen = advices.length

          var halfLen = adlen % 2 == 0 ? adlen / 2 : (adlen + 1) / 2
          for (var i = 0; i < halfLen; i++) {
            leftAdvice.push(advices[i])
            rightAdvice.push(advices[i + halfLen])
          }
          if (halfLen < 5) {
            var nl = 5 - leftAdvice.length
            for (let index = 0; index < nl; index++) {
              leftAdvice.push([])
            }
            var nl = 5 - rightAdvice.length
            for (let index = 0; index < nl; index++) {
              rightAdvice.push([])
            }
          }

          this.advices = []
          for (var i = 0; i < halfLen; i++) {
            var item = []
            item.push(leftAdvice[i])
            item.push(rightAdvice[i])
            this.advices.push(item)
          }
          this.loading = false

          this.doctor_advices =
            response.data.data.advices == null
              ? []
              : response.data.data.advices

          for (let index = 0; index < this.doctor_advices.length; index++) {
            this.doctor_advices[index]['isShow'] = 2
          }

          if (this.doctor_advices.length > 0) {
            var group = this.newAdviceGroupObject()
            var initGroupBlock = function(group, advice) {
              group.group_no = advice.groupno
            }
            for (
              let index = this.doctor_advices.length - 1;
              index >= 0;
              index--
            ) {
              var new_advice_index = 0

              if (
                'children' in this.doctor_advices[index] &&
                this.doctor_advices[index].children.length > 0
              ) {
                new_advice_index =
                  index + this.doctor_advices[index].children.length + 1

                var doctor_advice = {
                  delivery_way: this.doctor_advices[index].delivery_way,
                  execution_frequency: this.doctor_advices[index]
                    .execution_frequency,
                  groupno: this.doctor_advices[index].groupno,
                  id: this.doctor_advices[index].id,
                  parent_id: this.doctor_advices[index].parent_id,
                  children: this.doctor_advices[index].children,
                  remark: this.doctor_advices[index].remark
                }
                doctor_advice['isShow'] = 1
                this.doctor_advices.splice(new_advice_index, 0, doctor_advice)
                // this.doctor_advices.push(doctor_advice)
              }
            }

            for (let index = 0; index < this.doctor_advices.length; index++) {
              const advice = this.doctor_advices[index]
              if (advice.groupno == 0) {
                // 老版本的医嘱没有分组的概念，所以这一个 if 是解决这个问题的，将每个无分组的医嘱各自归为一组
                if (advice.parent_id > 0) {
                  if (this.advice_groups.length > 0) {
                    var parent_group = this.advice_groups[
                      this.advice_groups.length - 1
                    ]
                    if (parent_group.advices.length > 0) {
                      if (parent_group.advices[0].id == advice.parent_id) {
                        parent_group.advices.push(advice)
                      }
                    }
                  }
                  continue
                } else {
                  if (group.group_no > 0) {
                    this.advice_groups.push(group)
                    group = this.newAdviceGroupObject()
                  }

                  initGroupBlock(group, advice)
                  group.advices.push(advice)
                  this.advice_groups.push(group)
                  group = this.newAdviceGroupObject()
                  continue
                }
              }

              if (group.group_no > 0 && group.group_no != advice.groupno) {
                this.advice_groups.push(group)
                group = this.newAdviceGroupObject()
              }
              if (group.group_no == 0) {
                initGroupBlock(group, advice)
              }
              if (group.group_no == advice.groupno) {
                group.advices.push(advice)
              }
            }
            if (group.group_no > 0) {
              // 上述的算法会导致最后一组没有加到advice_groups，这里要手动加上
              this.advice_groups.push(group)
            }
          }
        } else {
          this.loading = false
          this.$message.error('请求数据失败')
          return false
        }
      })
    },
    bloodAccessParOperaName(id) {
      if (id in this.bloodAccessParOpera) {
        return this.bloodAccessParOpera[id].name
      }
      return ''
    },
    dialysateFormulationName(id) {
      if (id in this.dialysateFormulationOptions) {
        return this.dialysateFormulationOptions[id].name
      }
      return ''
    },
    getAge: function(val) {
      if (val.birthday != 0) {
        return jsGetAge(val.birth, '-')
      } else {
        return ''
      }
    },
    newAdviceGroupObject: function() {
      return Object.assign(
        {},
        {
          group_no: 0,
          // advice_doctor: 0,
          // start_time: 0,
          advices: []
          // exec_staff: 0,
          // exec_time: 0,
          // checker: 0,
        }
      )
    },
    getPartName(id) {
      for (let i = 0; i < this.vascularAccess.length; i++) {
        if (this.vascularAccess[i].id == id) {
          return this.vascularAccess[i].name
        }
      }
    }
  },
  watch: {
    'patientInfo.gender': function() {
      if (this.patientInfo.gender == 1) {
        this.patientInfo_gender_1 = true
        this.patientInfo_gender_2 = false
      } else if (this.patientInfo.gender == 2) {
        this.patientInfo_gender_2 = true
        this.patientInfo_gender_1 = false
      } else {
        this.patientInfo_gender_2 = false
        this.patientInfo_gender_1 = false
      }
    },
    'patientInfo.source': function() {
      if (this.patientInfo.source == 1) {
        this.patientInfo_source_1 = true
        this.patientInfo_source_2 = false
      } else if (this.patientInfo.source == 2) {
        this.patientInfo_source_2 = true
        this.patientInfo_source_1 = false
      } else {
        this.patientInfo_source_2 = false
        this.patientInfo_source_1 = false
      }
    }
  },
  created() {
    var xtuser = this.$store.getters.xt_user
    this.orgname = xtuser.org.org_name
    // this.orgname = "遂溪方济医院";
    this.modeOptions = this.$store.getters.treatment_mode
    this.replacementWays = this.$store.getters.replacement_ways
    this.perfusionApparatus = this.$store.getters.perfusion_apparatus
    this.anticoagulantsConfit = this.$store.getters.anticoagulants_confit
    var vascularAccess = getDataConfig('hemodialysis', 'vascular_access')
    this.vascularAccess = vascularAccess
    // console.log("hhe", vascularAccess);
    console.log(
      '血管通路部位',
      getDataConfig('hemodialysis', 'vascular_access')
    )
    this.consciousness_arr = getDataConfig('hemodialysis', 'consciousness')
    var bloodAccessParOpera = getDataConfig(
      'hemodialysis',
      'vascular_access_desc'
    )
    var arr = []
    var arrtwo = []
    for (let i = 0; i < bloodAccessParOpera.length; i++) {
      if (bloodAccessParOpera[i].name == '内瘘波动及震颤-存在') {
        bloodAccessParOpera[i].name = '存在'
        arr.push(bloodAccessParOpera[i])
      }
      if (bloodAccessParOpera[i].name == '内瘘波动及震颤-减弱') {
        bloodAccessParOpera[i].name = '减弱'
        arr.push(bloodAccessParOpera[i])
      }
      if (bloodAccessParOpera[i].name == '内瘘波动及震颤-消失') {
        bloodAccessParOpera[i].name = '消失'
        arr.push(bloodAccessParOpera[i])
      }
      if (bloodAccessParOpera[i].name == '直穿') {
        arrtwo.push(bloodAccessParOpera[i])
      }
      if (bloodAccessParOpera[i].name == '人造血管') {
        arrtwo.push(bloodAccessParOpera[i])
      }
      if (bloodAccessParOpera[i].name == '移植血管') {
        arrtwo.push(bloodAccessParOpera[i])
      }
      this.arr = arr
      this.arrtwo = arrtwo
    }
    console.log('arr', arr)
    console.log('arrtwo', arrtwo)

    var bloodAccessParOpera = getDataConfig(
      "hemodialysis",
      "vascular_access_desc"
    );
    for (var key in bloodAccessParOpera) {
      this.bloodAccessParOpera[bloodAccessParOpera[key].id] =
        bloodAccessParOpera[key];
    }
    

    var dialysateFormulationOptions = getDataConfig(
      'hemodialysis',
      'dialysate_formulation'
    )
    for (var key in dialysateFormulationOptions) {
      this.dialysateFormulationOptions[dialysateFormulationOptions[key].id] =
        dialysateFormulationOptions[key]
    }

    const xtdate = this.$route.query && this.$route.query.xtdate
    const xtno = this.$route.query && this.$route.query.xtno
    if (
      typeof xtdate === 'string' &&
      xtdate.length > 0 &&
      typeof xtno === 'string' &&
      xtno.length > 0
    ) {
      this.queryParams.xtdate = xtdate
      this.queryParams.xtno = xtno
      this.getDialysisRecord()
    } else {
      this.$message.error('参数不齐')
      return false
    }

    this.ways = getDataConfig('hemodialysis', 'way')
    console.log('ways', this.ways)
    this.consciousnesses = getDataConfig('hemodialysis', 'consciousness')
    this.appetites = getDataConfig('hemodialysis', 'appetite')
    this.postures = getDataConfig('hemodialysis', 'posture')
    this.sick_condition = getDataConfig('hemodialysis', 'sick_condition')
    this.precautions = getDataConfig('hemodialysis', 'precaution')
    console.log('跌倒', this.precautions)
    this.intake = getDataConfig('hemodialysis', 'intake')
    this.nutrition = getDataConfig('hemodialysis', 'nutrition')
  }
}
</script>

<style>
.dialysis-print-order {
  width: 960px;
  margin: 0 auto;
}

.dialysis-print-order .order-yy-name {
  margin: auto;
  text-align: center;
  font-size: 20px;
  letter-spacing: 5px;
}

.dialysis-print-order .order-title {
  margin: auto;
  font-weight: 600;
  text-align: center;
  font-size: 22px;
  padding: 10px 20px 20px 20px;
}

.dialysis-print-order .table-box {
  width: 100%;
  line-height: 23px;
  font-size: 14px;
}

.dialysis-print-order .print-table {
  width: 100%;
  text-align: center;
  border-collapse: collapse;
  line-height: 40px;
  font-size: 14px;
}

.dialysis-print-order .print-table-no {
  width: 100%;
  text-align: center;
  border-collapse: collapse;
  font-size: 14px;
}

.dialysis-print-order .under-line {
  border-bottom: 1px solid #999;
  width: 95%;
  text-align: center;
  margin-left: 2px;
}

.dialysis-print-order .title-box {
  text-align: center;
  font-size: 16px;
}

.dialysis-print-order .radio-lebel-box {
  font-weight: 400;
  cursor: pointer;
}

.dialysis-print-order .radio-no {
  opacity: 0;
  outline: none;
  position: absolute;
  margin: 0;
  width: 0;
  height: 0;
  z-index: -1;
}

.dialysis-print-order .radio-inner {
  white-space: nowrap;
  cursor: pointer;
  outline: none;
  display: inline-block;
  line-height: 1;
  position: relative;
  vertical-align: middle;
}

.dialysis-print-order .radio-fang {
  display: inline-block;
  position: relative;
  border: 1px solid #000;
  box-sizing: border-box;
  width: 14px;
  height: 14px;
  background-color: #fff;
  z-index: 1;
  transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
    background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
}

.dialysis-print-order .is-checked-radio::after {
  content: "√";
  font-size: 15px;
}

.dialysis-print-order .print-table-no tr td {
  padding: 8px 5px;
  line-height: 25px;
}

.dialysis-print-order .print-table tr td {
  padding: 1px 1px;
  /*line-height: 25px;*/
}

.es-img {
  height: 25px;
}

.advice-name {
  text-align: left;
}

.advice-children {
  display: flex;
}

.title-box-pro {
  border: 0 #fff;
  line-height: 25px;
  height: 25px;
  text-align: left;
  padding-left: 10px !important;
}
.title-box-pro-tr {
  border: 0 #fff;
}
.text-align-left {
  text-align: left !important;
  padding-left: 10px !important;
  font-size: 14px !important;
  line-height: 25px;
}
.print-table-tr-new td {
  line-height: 20px !important;
}
.border-top-solid {
  border: solid 1px #000;
}
.print-template-two tr {
  line-height: 30px;
}
.parent {
  text-align: left;
  padding-left: 20px !important;
}
</style>
