Переглянути джерело

门诊医保登记添加外省专用选项

lighter 2 роки тому
батько
коміт
4fcbb33f97
1 змінених файлів з 444 додано та 439 видалено
  1. 444 439
      src/views/medical-insurance/outpatient/MzRegister.vue

+ 444 - 439
src/views/medical-insurance/outpatient/MzRegister.vue

@@ -1,13 +1,12 @@
 <template>
   <page-layer>
     <template #header>
-      <el-input v-model="patientId" style="width: 200px; margin-left: 2px" clearable placeholder="请输入">
-        <template #prepend>门诊id</template>
+      <el-input v-model="patientId" style="width: 100px" clearable placeholder="门诊ID">
       </el-input>
       <el-select v-model="medType" style="width: 120px" placeholder="医疗类别">
         <el-option v-for="item in medTypes" :key="item.code" :value="item.code" :label="item.name"></el-option>
       </el-select>
-      <el-select v-model="admdvs" clearable filterable placeholder="参保地区" style="width: 180px">
+      <el-select v-model="admdvs" clearable filterable placeholder="参保地区" style="width: 160px">
         <el-option v-for="item in admdvses" :key="item.code" :label="item.name" :value="item.code">
           <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
           <el-divider direction="vertical"></el-divider>
@@ -67,9 +66,7 @@
       <div style="display: flex">
         <div style="width: 40px">
           <el-table ref="timesTable" :data="unPaidReceipts" highlight-current-row @row-click="clickTimes" empty-text="无">
-            <el-table-column label="次数" prop="times">
-<!--              <template #default="scope"> 第 {{ scope.row.times }} 次 </template>-->
-            </el-table-column>
+            <el-table-column label="次数" prop="times"></el-table-column>
           </el-table>
         </div>
         <div style="width: 260px">
@@ -191,11 +188,47 @@
       <el-dialog title="普门诊断补录" v-model="showInputDiags" width="60%" :close-on-click-modal="false" :close-on-press-escape="false">
         <outpatient-diagnose-supply :med-type="medType" :mz-visit="mzVisit" @close="showInputDiags = false"></outpatient-diagnose-supply>
       </el-dialog>
+      <el-dialog v-model="showMdtrtGrpType" title="跨省患者请选择" width="360px">
+        <div>
+          &nbsp;&nbsp;&nbsp;&nbsp;就诊人群类型:
+          <el-select v-model="expContent.mdtrtGrpType" style="width: 160px">
+            <el-option v-for="item in mdtrtGrpTypes" :label="item.name" :value="item.code"></el-option>
+          </el-select>
+        </div>
+        <div style="margin-top: 12px">
+          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;外伤标志:
+          <el-select v-model="expContent.trumFlag" style="width: 160px">
+            <el-option label="无" value=""></el-option>
+            <el-option label="非外伤" value="0"></el-option>
+            <el-option label="外伤" value="1"></el-option>
+          </el-select>
+        </div>
+        <div style="margin-top: 12px">
+          涉及第三方标志:
+          <el-select v-model="expContent.relTtpFlag" style="width: 160px">
+            <el-option label="无" value=""></el-option>
+            <el-option label="涉及" value="0"></el-option>
+            <el-option label="不涉及" value="1"></el-option>
+          </el-select>
+        </div>
+        <div style="margin-top: 12px">
+          门急诊转诊标志:
+          <el-select v-model="expContent.optErReflFlag" style="width: 160px">
+            <el-option label="无" value=""></el-option>
+            <el-option label="急诊" value="1"></el-option>
+            <el-option label="转诊" value="2"></el-option>
+            <el-option label="转诊合并急诊" value="3"></el-option>
+          </el-select>
+        </div>
+        <div style="margin-top: 20px; width: 100%; text-align: right">
+          <el-button @click="afterChooseMdtrtGrpType" type="primary" size="default">确定</el-button>
+        </div>
+      </el-dialog>
     </template>
   </page-layer>
 </template>
 
-<script>
+<script setup>
 import { onMounted, reactive, ref } from 'vue'
 import { admdvses } from '@/data'
 import {
@@ -211,8 +244,7 @@ import {
   outpatientSettlement,
   revokeOutpatientSettlement,
 } from '@/api/medical-insurance/si-outpatient'
-import { cptInsutype } from '@/utils/computed'
-import { ElMessage, ElMessageBox } from 'element-plus'
+import {ElMessage, ElMessageBox, ElSelect} from 'element-plus'
 import store from '@/store'
 import { obtainBasicPersonInfo, querySpecialChronicDiseasesAccreditation, queryMzMatnDises } from '@/api/medical-insurance/si-query'
 import { getMedTypesByFlag } from '@/api/medical-insurance/si-dict'
@@ -221,474 +253,447 @@ import mzSettled from '@/assets/mz-settled.png'
 import OutpatientDiagnoseSupply from '@/components/medical-insurance/outpatient-diagnose-supply/Index.vue'
 import PageLayer from "@/layout/PageLayer";
 
-export default {
-  components: {
-    PageLayer,
-    ReadCard,
-    OutpatientDiagnoseSupply,
-  },
-  setup() {
-    //todo 完成业务后清除原读卡数据
-    const medType = ref(null)
-    const admdvs = ref(null)
-    const medTypes = ref([])
-    const patientId = ref('')
-    const readCardBizType = ref('')
-    const times = ref(null)
-    const windowSize = store.state.app.windowSize
-    const receiptBoxStyle = {
-      height: windowSize.h - 335 + 'px',
-      overflowY: 'auto',
-    }
-    const unPaidReceipts = ref([])
-    const showInsuinfo = ref(false)
-    const psnBaseinfo = ref({})
-    const mzVisit = ref({})
-    const receipts = ref({})
-    const orderNos = ref([])
-    const currentReceipts = ref([])
-    const totalFee = ref(null)
-    const timesTable = ref(null)
-    const ordersTable = ref(null)
-    const currentOrder = ref({})
-    const spcChrDiseAccts = ref([])
-    const showSpcChrAccts = ref(false)
-    const matnDises = ref([])
-    const showMatnDises = ref(false)
-    const showInputDiags = ref(false)
+const medType = ref(null)
+const admdvs = ref(null)
+const certainAdmdvs = ref('')
+const medTypes = ref([])
+const patientId = ref('')
+const times = ref(null)
+const windowSize = store.state.app.windowSize
+const receiptBoxStyle = {
+  height: windowSize.h - 335 + 'px',
+  overflowY: 'auto',
+}
+const unPaidReceipts = ref([])
+const showInsuinfo = ref(false)
+const psnBaseinfo = ref({})
+const mzVisit = ref({})
+const receipts = ref({})
+const orderNos = ref([])
+const currentReceipts = ref([])
+const totalFee = ref(null)
+const timesTable = ref(null)
+const ordersTable = ref(null)
+const currentOrder = ref({})
+const spcChrDiseAccts = ref([])
+const showSpcChrAccts = ref(false)
+const matnDises = ref([])
+const showMatnDises = ref(false)
+const showInputDiags = ref(false)
 
-    const nullPatientId = () => {
-      if (!patientId.value) {
-        ElMessage({
-          message: '请输入门诊id号!',
-          type: 'warning',
-          duration: 2500,
-          showClose: true,
-        })
-        return true
-      }
-      return false
-    }
+const showMdtrtGrpType = ref(false)
+const expContent = reactive({
+  mdtrtGrpType: '',
+  trumFlag: '',
+  relTtpFlag: '',
+  optErReflFlag: ''
+})
+const mdtrtGrpTypes = [
+  {code: '', name: '普通患者'},
+  {code: '1', name: '新冠肺炎确诊患者'},
+  {code: '2', name: '其他国家突发公共事件'},
+  {code: '3', name: '新冠肺炎疑似患者'},
+  {code: '4', name: '无症状感染者'},
+]
 
-    const registor = (command) => {
-      if (nullPatientId()) {
-        return
-      }
-      if (nullTimes()) {
-        return
-      }
-      const param = {
-        patNo: patientId.value,
-        medType: medType.value,
-        admdvs: admdvs.value,
-        times: times.value,
-        needSaving: 1,
-      }
-      if (command === 'execute') {
-        if (!medType.value) {
-          ElMessage({
-            message: '请先选择医疗类别!',
-            type: 'warning',
-            duration: 2500,
-            showClose: true,
-          })
-          return
-        }
-        obtainBasicPersonInfo(param).then((res) => {
-          times.value = res.times
-          psnBaseinfo.value = res
-          showInsuinfo.value = true
-        })
-      } else {
-        revokeOutpatientRegistration(param).then((res) => {
-          ElMessage({
-            message: res,
-            type: 'success',
-            duration: 2000,
-            showClose: true,
-          })
-        })
-      }
-    }
+const nullPatientId = () => {
+  if (!patientId.value) {
+    ElMessage({
+      message: '请输入门诊id号!',
+      type: 'warning',
+      duration: 2500,
+      showClose: true,
+    })
+    return true
+  }
+  return false
+}
 
-    const nullTimes = () => {
-      if (!times.value) {
-        ElMessage({
-          message: '请先获取门诊处方!',
-          type: 'warning',
-          duration: 2500,
-          showClose: true,
-        })
-        return true
-      }
-      return false
+const registor = (command) => {
+  if (nullPatientId()) {
+    return
+  }
+  if (nullTimes()) {
+    return
+  }
+  const param = {
+    patNo: patientId.value,
+    medType: medType.value,
+    admdvs: admdvs.value,
+    times: times.value,
+    needSaving: 1,
+  }
+  if (command === 'execute') {
+    if (!medType.value) {
+      ElMessage({
+        message: '请先选择医疗类别!',
+        type: 'warning',
+        duration: 2500,
+        showClose: true,
+      })
+      return
     }
+    obtainBasicPersonInfo(param).then((res) => {
+      times.value = res.times
+      psnBaseinfo.value = res
+      showInsuinfo.value = true
+    })
+  } else {
+    revokeOutpatientRegistration(param).then((res) => {
+      ElMessage({
+        message: res,
+        type: 'success',
+        duration: 2000,
+        showClose: true,
+      })
+    })
+  }
+}
 
-    const receiptsOpts = (command) => {
-      if (nullPatientId()) {
-        return
-      }
-      if (command !== 'require') {
-        if (nullTimes()) {
-          return
-        }
-      }
-      const param = {
-        patNo: patientId.value,
-        times: times.value,
-      }
-      switch (command) {
-        case 'require':
-          fetchReceipts(param)
-          break
-        case 'delete':
-          deleteAllMzReceipts(param).then((res) => {
-            ElMessage({
-              message: res,
-              type: 'success',
-              duration: 2000,
-              showClose: true,
-            })
-            fetchReceipts(param)
-          })
-          break
-        case 'upload':
-          qrySpcChrDiseAcct(param)
-          break
-        case 'retract':
-          revokeOutpatientFeeDetails(param).then((res) => {
-            ElMessage({
-              message: res,
-              type: 'success',
-              duration: 2000,
-              showClose: true,
-            })
-          })
-          break
-        case 'diags':
-          showInputDiags.value = true
-          break
-      }
-    }
+const nullTimes = () => {
+  if (!times.value) {
+    ElMessage({
+      message: '请先获取门诊处方!',
+      type: 'warning',
+      duration: 2500,
+      showClose: true,
+    })
+    return true
+  }
+  return false
+}
 
-    const fetchReceipts = (param) => {
-      clearReadCardData()
-      getMzReceipts(param)
-        .then((res) => {
-          unPaidReceipts.value = res
-          setTimeout(() => {
-            timesTable.value.setCurrentRow(res[0])
-            clickTimes(res[0])
-          }, 100)
-        })
-        .catch(() => {
-          unPaidReceipts.value = []
-          orderNos.value = []
-          currentReceipts.value = []
-        })
+const receiptsOpts = (command) => {
+  if (nullPatientId()) {
+    return
+  }
+  if (command !== 'require') {
+    if (nullTimes()) {
+      return
     }
-
-    const markMzFees = () => {
-      if (currentReceipts.value.length === 0) {
+  }
+  const param = {
+    patNo: patientId.value,
+    times: times.value,
+  }
+  switch (command) {
+    case 'require':
+      fetchReceipts(param)
+      break
+    case 'delete':
+      deleteAllMzReceipts(param).then((res) => {
         ElMessage({
-          message: '请先选择要保存的处方!',
-          type: 'warning',
-          duration: 2500,
+          message: res,
+          type: 'success',
+          duration: 2000,
           showClose: true,
         })
-        return
-      }
-      ElMessageBox.confirm('是否将选中处方生成医保处方?', '提示', {
-        type: 'warning',
-        confirmButtonText: '生成',
-        cancelButtonText: '取消',
+        fetchReceipts(param)
       })
-        .then(() => {
-          insertSiMzFees(currentReceipts.value).then(() => {
-            currentOrder.value.status = true
-            ElMessage({
-              message: '已成功生成医保处方。',
-              type: 'success',
-              duration: 2500,
-              showClose: true,
-            })
-          })
+      break
+    case 'upload':
+      qrySpcChrDiseAcct(param)
+      break
+    case 'retract':
+      revokeOutpatientFeeDetails(param).then((res) => {
+        ElMessage({
+          message: res,
+          type: 'success',
+          duration: 2000,
+          showClose: true,
         })
-        .catch(() => {})
-    }
+      })
+      break
+    case 'diags':
+      showInputDiags.value = true
+      break
+  }
+}
 
-    const qrySpcChrDiseAcct = (param) => {
-      if (medType.value === '51') {
-        queryMzMatnDises().then((res) => {
-          matnDises.value = res
-          showMatnDises.value = true
-        })
-      } else if (medType.value === '14') {
-        querySpecialChronicDiseasesAccreditation(param).then((res) => {
-          spcChrDiseAccts.value = res
-          showSpcChrAccts.value = true
-        })
-      } else {
-        uploadFees(param)
-      }
-    }
+const fetchReceipts = (param) => {
+  clearReadCardData()
+  getMzReceipts(param)
+      .then((res) => {
+        unPaidReceipts.value = res
+        setTimeout(() => {
+          timesTable.value.setCurrentRow(res[0])
+          clickTimes(res[0])
+        }, 100)
+      })
+      .catch(() => {
+        unPaidReceipts.value = []
+        orderNos.value = []
+        currentReceipts.value = []
+      })
+}
 
-    const uploadFees = (row) => {
-      if (medType.value === '51') {
-        row.patNo = patientId.value
-        row.times = times.value
-        row.opspDiseCode = row.code
-        row.opspDiseName = row.name
-      }
-      uploadOutpatientFeeDetails(row).then((res) => {
-        times.value = res.times
-        showSpcChrAccts.value = false
-        showMatnDises.value = false
-        mzPreSetl()
+const markMzFees = () => {
+  if (currentReceipts.value.length === 0) {
+    ElMessage({
+      message: '请先选择要保存的处方!',
+      type: 'warning',
+      duration: 2500,
+      showClose: true,
+    })
+    return
+  }
+  ElMessageBox.confirm('是否将选中处方生成医保处方?', '提示', {
+    type: 'warning',
+    confirmButtonText: '生成',
+    cancelButtonText: '取消',
+  })
+      .then(() => {
+        insertSiMzFees(currentReceipts.value).then(() => {
+          currentOrder.value.status = true
+          ElMessage({
+            message: '已成功生成医保处方。',
+            type: 'success',
+            duration: 2500,
+            showClose: true,
+          })
+        })
       })
-    }
+      .catch(() => {})
+}
 
-    const readCardData = reactive({
-      mdtrtCertType: null,
-      readCardResult: null,
-      readCardBizType: null,
+const qrySpcChrDiseAcct = (param) => {
+  if (medType.value === '51') {
+    queryMzMatnDises().then((res) => {
+      matnDises.value = res
+      showMatnDises.value = true
     })
+  } else if (medType.value === '14') {
+    querySpecialChronicDiseasesAccreditation(param).then((res) => {
+      spcChrDiseAccts.value = res
+      showSpcChrAccts.value = true
+    })
+  } else {
+    uploadFees(param)
+  }
+}
 
-    const clearReadCardData = () => {
-      readCardData.mdtrtCertType = null
-      readCardData.readCardResult = null
-      readCardData.readCardBizType = null
-    }
+const uploadFees = (row) => {
+  if (medType.value === '51') {
+    row.patNo = patientId.value
+    row.times = times.value
+    row.opspDiseCode = row.code
+    row.opspDiseName = row.name
+  }
+  uploadOutpatientFeeDetails(row).then((res) => {
+    times.value = res.times
+    showSpcChrAccts.value = false
+    showMatnDises.value = false
+    mzPreSetl()
+  })
+}
 
-    const afterReadCard = (result) => {
-      readCardData.mdtrtCertType = result.mdtrtCertType
-      readCardData.readCardResult = result.readCardResult
-      readCardData.readCardBizType = result.readCardBizType
-    }
+const readCardData = reactive({
+  mdtrtCertType: null,
+  readCardResult: null,
+  readCardBizType: null,
+})
 
-    const handleClickInsuinfo = (row) => {
-      const param = {
-        patNo: patientId.value,
-        times: times.value,
-        name: mzVisit.value.name,
-        insutype: row.insutype,
-        medType: medType.value,
-        psnType: row.psnType,
-        insuplcAdmdvs: row.insuplcAdmdvs,
-        empName: row.empName,
-        balc: row.balc,
-        mdtrtCertType: readCardData.mdtrtCertType,
-        readCardResult: readCardData.readCardResult,
-        readCardBizType: readCardData.readCardBizType,
-      }
-      outpatientRegistration(param).then((res) => {
-        showInsuinfo.value = false
-        clearReadCardData()
-        ElMessage({
-          message: res,
-          type: 'success',
-          duration: 2000,
-          showClose: true,
-        })
-      })
-    }
+const clearReadCardData = () => {
+  readCardData.mdtrtCertType = null
+  readCardData.readCardResult = null
+  readCardData.readCardBizType = null
+}
 
-    const clickOrderNo = (row) => {
-      currentOrder.value = row
-      currentReceipts.value = receipts.value[row.orderNo]
-      totalFee.value = row.totalFee.toFixed(2)
-    }
+const afterReadCard = (result) => {
+  readCardData.mdtrtCertType = result.mdtrtCertType
+  readCardData.readCardResult = result.readCardResult
+  readCardData.readCardBizType = result.readCardBizType
+}
 
-    const clickTimes = (row) => {
-      mzVisit.value = row.mzVisit
-      receipts.value = row.mzReceipts
-      orderNos.value = row.orderNos
-      times.value = row.times
-      currentReceipts.value = []
-      setTimeout(() => {
-        ordersTable.value.setCurrentRow(orderNos.value[0])
-        clickOrderNo(orderNos.value[0])
-      }, 100)
-    }
+const handleClickInsuinfo = (row) => {
+  certainAdmdvs.value = row.insuplcAdmdvs
+  const param = {
+    patNo: patientId.value,
+    times: times.value,
+    name: mzVisit.value.name,
+    insutype: row.insutype,
+    medType: medType.value,
+    psnType: row.psnType,
+    insuplcAdmdvs: row.insuplcAdmdvs,
+    empName: row.empName,
+    balc: row.balc,
+    mdtrtCertType: readCardData.mdtrtCertType,
+    readCardResult: readCardData.readCardResult,
+    readCardBizType: readCardData.readCardBizType,
+  }
+  outpatientRegistration(param).then((res) => {
+    showInsuinfo.value = false
+    clearReadCardData()
+    ElMessage({
+      message: res,
+      type: 'success',
+      duration: 2000,
+      showClose: true,
+    })
+  })
+}
 
-    const colorStatus = (row) => {
-      return row.status ? `<span style="color: green">第${row.orderNo}张</span>` : `<span style="color: red">第${row.orderNo}张</span>`
-    }
+const clickOrderNo = (row) => {
+  currentOrder.value = row
+  currentReceipts.value = receipts.value[row.orderNo]
+  totalFee.value = row.totalFee.toFixed(2)
+}
 
-    const unmarkMzFees = (row) => {
-      ElMessageBox.confirm('是否将选中处方从医保处方中删除?', '提示', {
-        type: 'warning',
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-      })
-        .then(() => {
-          deleteMzReceipt(row).then(() => {
-            currentOrder.value.status = false
-            ElMessage({
-              message: '已成功删除医保处方。',
-              type: 'success',
-              duration: 2500,
-              showClose: true,
-            })
-          })
-        })
-        .catch(() => {})
-    }
+const clickTimes = (row) => {
+  mzVisit.value = row.mzVisit
+  receipts.value = row.mzReceipts
+  orderNos.value = row.orderNos
+  times.value = row.times
+  currentReceipts.value = []
+  setTimeout(() => {
+    ordersTable.value.setCurrentRow(orderNos.value[0])
+    clickOrderNo(orderNos.value[0])
+  }, 100)
+}
 
-    const settlement = (command) => {
-      if (nullPatientId() || nullTimes()) {
-        return
-      }
-      switch (command) {
-        case 'preSettlement':
-          mzPreSetl()
-          break
-        case 'realSettlement':
-          chooseWhetherUseAcctFlag()
-          break
-        case 'cancelSettlement':
-          revokeMzSettle()
-          break
-      }
-    }
+const colorStatus = (row) => {
+  return row.status ? `<span style="color: green">第${row.orderNo}张</span>` : `<span style="color: red">第${row.orderNo}张</span>`
+}
 
-    const mzPreSetl = () => {
-      const param = {
-        staffId: store.state.user.info.code,
-        patNo: patientId.value,
-        times: times.value,
-        mdtrtCertType: readCardData.mdtrtCertType,
-        readCardResult: readCardData.readCardResult,
-        readCardBizType: readCardData.readCardBizType,
-      }
-      outpatientPreSettlement(param).then((res) => {
-        const message = '医保处方总费用:' + res.totalCost + ',医保报销金额:' + res.fundPay + '。'
-        ElMessageBox.alert(message, '试算成功', {
-          type: 'success',
-          showCancelButton: false,
-        }).then(() => {})
+const unmarkMzFees = (row) => {
+  ElMessageBox.confirm('是否将选中处方从医保处方中删除?', '提示', {
+    type: 'warning',
+    confirmButtonText: '确定',
+    cancelButtonText: '取消',
+  }).then(() => {
+    deleteMzReceipt(row).then(() => {
+      currentOrder.value.status = false
+      ElMessage({
+        message: '已成功删除医保处方。',
+        type: 'success',
+        duration: 2500,
+        showClose: true,
       })
-    }
+    })
+  }).catch(() => {})
+}
 
-    const chooseWhetherUseAcctFlag = () => {
-      ElMessageBox.confirm('是否使用个人账户?', '提示', {
-        type: 'warning',
-        confirmButtonText: '不使用',
-        cancelButtonText: '使用',
-        distinguishCancelAndClose: true,
-        closeOnClickModal: false,
-        closeOnPressEscape: false,
-      }).then(() => {
-        mzSettle('0')
-      }).catch((action) => {
-        if (action === 'cancel') {
-          mzSettle('1')
-        }
-      })
+const currentCommand = ref(null)
+const settlement = (command) => {
+  if (nullPatientId() || nullTimes()) {
+    return
+  }
+  if (command === 'cancelSettlement') {
+    revokeMzSettle()
+  } else {
+    if (certainAdmdvs.value.startsWith('43')) {
+      command === 'preSettlement' ? mzPreSetl() : chooseWhetherUseAcctFlag()
+    } else {
+      currentCommand.value = command
+      showMdtrtGrpType.value = true
     }
+  }
+}
 
-    const mzSettle = (useAcctFlag) => {
-      const param = {
-        patNo: patientId.value,
-        times: times.value,
-        acctUsedFlag: useAcctFlag,
-        mdtrtCertType: readCardData.mdtrtCertType,
-        readCardResult: readCardData.readCardResult,
-        readCardBizType: readCardData.readCardBizType,
-      }
-      outpatientSettlement(param).then((res) => {
-        clearReadCardData()
-        const message = '医保处方总费用:' + res.totalCost + ',医保报销金额:' + res.fundPay + '。'
-        ElMessageBox.alert(message, '结算成功', {
-          type: 'success',
-          showCancelButton: false,
-        }).then(() => {})
-      })
-    }
+const afterChooseMdtrtGrpType = () => {
+  if (currentCommand.value) {
+    currentCommand.value === 'preSettlement' ? mzPreSetl() : chooseWhetherUseAcctFlag()
+  }
+  showMdtrtGrpType.value = false
+}
 
-    const revokeMzSettle = () => {
-      const param = {
-        patNo: patientId.value,
-        times: times.value,
-      }
-      revokeOutpatientSettlement(param).then((res) => {
-        ElMessageBox.alert('撤销门诊结算成功', '提示', {
-          type: 'success',
-          showCancelButton: false,
-        })
-      })
-    }
+const mzPreSetl = () => {
+  const param = {
+    staffId: store.state.user.info.code,
+    patNo: patientId.value,
+    times: times.value,
+    mdtrtCertType: readCardData.mdtrtCertType,
+    readCardResult: readCardData.readCardResult,
+    readCardBizType: readCardData.readCardBizType,
+    expContent: JSON.stringify(expContent)
+  }
+  outpatientPreSettlement(param).then((res) => {
+    const message = '医保处方总费用:' + res.totalCost + ',医保报销金额:' + res.fundPay + '。'
+    ElMessageBox.alert(message, '试算成功', {
+      type: 'success',
+      showCancelButton: false,
+    }).then(() => {})
+  })
+}
 
-    const clearinfo = () => {
-      patientId.value = ''
-      times.value = null
-      unPaidReceipts.value = []
-      psnBaseinfo.value = {}
-      mzVisit.value = {}
-      receipts.value = {}
-      orderNos.value = []
-      currentReceipts.value = []
-      totalFee.value = null
-      timesTable.value = null
-      ordersTable.value = null
-      currentOrder.value = {}
-      spcChrDiseAccts.value = []
+const chooseWhetherUseAcctFlag = () => {
+  ElMessageBox.confirm('是否使用个人账户?', '提示', {
+    type: 'warning',
+    confirmButtonText: '不使用',
+    cancelButtonText: '使用',
+    distinguishCancelAndClose: true,
+    closeOnClickModal: false,
+    closeOnPressEscape: false,
+  }).then(() => {
+    mzSettle('0')
+  }).catch((action) => {
+    if (action === 'cancel') {
+      mzSettle('1')
     }
+  })
+}
 
-    const highlightYbCode = (hisCode, ybCode) => {
-      if (!hisCode) {
-        return ''
-      }
-      return ybCode ? `<span>${ybCode}</span>` : '<span style="color: red">医师无医保编码</span>'
-    }
+const mzSettle = (useAcctFlag) => {
+  const param = {
+    patNo: patientId.value,
+    times: times.value,
+    acctUsedFlag: useAcctFlag,
+    mdtrtCertType: readCardData.mdtrtCertType,
+    readCardResult: readCardData.readCardResult,
+    readCardBizType: readCardData.readCardBizType,
+    expContent: JSON.stringify(expContent)
+  }
+  outpatientSettlement(param).then((res) => {
+    clearReadCardData()
+    const message = '医保处方总费用:' + res.totalCost + ',医保报销金额:' + res.fundPay + '。'
+    ElMessageBox.alert(message, '结算成功', {
+      type: 'success',
+      showCancelButton: false,
+    }).then(() => {})
+  })
+}
 
-    onMounted(() => {
-      getMedTypesByFlag('clinic').then((res) => {
-        medTypes.value = res
-      })
+const revokeMzSettle = () => {
+  const param = {
+    patNo: patientId.value,
+    times: times.value,
+  }
+  revokeOutpatientSettlement(param).then((res) => {
+    ElMessageBox.alert('撤销门诊结算成功', '提示', {
+      type: 'success',
+      showCancelButton: false,
     })
+  })
+}
 
-    return {
-      medType,
-      medTypes,
-      admdvs,
-      admdvses,
-      patientId,
-      readCardBizType,
-      cptInsutype,
-      receiptBoxStyle,
-      showInsuinfo,
-      psnBaseinfo,
-      mzVisit,
-      receipts,
-      orderNos,
-      currentReceipts,
-      totalFee,
-      ordersTable,
-      timesTable,
-      unPaidReceipts,
-      spcChrDiseAccts,
-      showSpcChrAccts,
-      matnDises,
-      showMatnDises,
-      showInputDiags,
-      mzSettled,
-      afterReadCard,
-      clickTimes,
-      colorStatus,
-      clickOrderNo,
-      handleClickInsuinfo,
-      uploadFees,
-      clearinfo,
-      markMzFees,
-      unmarkMzFees,
-      registor,
-      receiptsOpts,
-      settlement,
-      highlightYbCode,
-    }
-  },
+const clearinfo = () => {
+  patientId.value = ''
+  times.value = null
+  unPaidReceipts.value = []
+  psnBaseinfo.value = {}
+  mzVisit.value = {}
+  receipts.value = {}
+  orderNos.value = []
+  currentReceipts.value = []
+  totalFee.value = null
+  timesTable.value = null
+  ordersTable.value = null
+  currentOrder.value = {}
+  spcChrDiseAccts.value = []
 }
+
+const highlightYbCode = (hisCode, ybCode) => {
+  if (!hisCode) {
+    return ''
+  }
+  return ybCode ? `<span>${ybCode}</span>` : '<span style="color: red">医师无医保编码</span>'
+}
+
+onMounted(() => {
+  getMedTypesByFlag('clinic').then((res) => {
+    medTypes.value = res
+  })
+})
 </script>
 
 <style scoped>