Przeglądaj źródła

急诊抢救可以合并处方

lighter 8 miesięcy temu
rodzic
commit
446f21f8de

+ 8 - 0
src/api/medical-insurance/si-outpatient.js

@@ -48,6 +48,14 @@ export function getHistoryReceiptDetail(data) {
   })
 }
 
+export function mergeReceipts(data) {
+  return request({
+    url: '/siMz/mergeReceipts',
+    method: 'post',
+    data,
+  })
+}
+
 export function insertSiMzFees(data) {
   return request({
     url: '/siMz/insertSiMzFees',

+ 81 - 0
src/views/medical-insurance/outpatient/MzSpltryRcrd.vue

@@ -65,6 +65,14 @@
             <el-dropdown-item icon="Delete" command="delete">删除已生成处方</el-dropdown-item>
             <el-dropdown-item icon="Upload" command="upload">医保处方上传</el-dropdown-item>
             <el-dropdown-item icon="RefreshLeft" command="retract">撤销医保上传</el-dropdown-item>
+            <el-dropdown-item
+                v-if="medType === '1301'"
+                icon="Link"
+                divided
+                command="merge"
+            >
+              合并处方(多次就诊)
+            </el-dropdown-item>
           </el-dropdown-menu>
         </template>
       </el-dropdown>
@@ -88,6 +96,7 @@
     <div class="layout_main layout_container layout-horizontal">
       <aside class="layout_el-table">
         <el-table
+            ref="asideRef"
             :data="historyReceipts"
             stripe
             highlight-current-row
@@ -185,6 +194,39 @@
   ></mz-bl-record>
 
   <EmergencyRescue ref="emergencyRef" :param="emergencyParams" />
+
+  <el-dialog
+      v-model="showMergeReceipts"
+      title="请选择要合并的处方"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      width="460px"
+  >
+    <el-table
+        ref="mergeRef"
+        :data="historyReceipts"
+        stripe
+        height="100%"
+    >
+      <el-table-column type="selection"></el-table-column>
+      <el-table-column property="patNo" label="ID号_次数" width="120">
+        <template #default="{row}">
+          {{row.patNo}}_{{row.times}}
+        </template>
+      </el-table-column>
+      <el-table-column label="诊间" width="60">
+        <template #default="scope">
+          <span v-html="isMztczf(scope.row)"></span>
+        </template>
+      </el-table-column>
+      <el-table-column property="chargeFee" label="金额" width="70"></el-table-column>
+      <el-table-column property="chargeDate" label="时间" width="130"></el-table-column>
+    </el-table>
+    <div style="margin-top: 20px; width: 100%; text-align: right">
+      <el-button @click="showMergeReceipts = false">取消</el-button>
+      <el-button type="primary" @click="confirmMerge">合并</el-button>
+    </div>
+  </el-dialog>
 </template>
 
 <script setup>
@@ -192,6 +234,7 @@ import {
   deleteAllMzReceipts,
   getHistoryMzReceipts,
   getHistoryReceiptDetail,
+  mergeReceipts,
   insertSiMzFeesForSupplement,
   outpatientPreSettlement,
   outpatientRegistration,
@@ -235,6 +278,7 @@ const medTypes = ref([])
 const historyReceipts = ref([])
 const currentRow = ref({})
 const mzVisit = ref({})
+const asideRef = ref(null)
 const currentReceipts = ref([])
 const showInputDiags = ref(false)
 const dateRange = ref(shortcuts[2].value)
@@ -476,7 +520,44 @@ const receiptsOpts = (command) => {
     case 'retract':
       revokeFees()
       break
+    case 'merge':
+      beforeMergeReceipts()
+      break
+  }
+}
+
+const mergeRef = ref(null)
+const showMergeReceipts = ref(false)
+function beforeMergeReceipts() {
+  if (historyReceipts.value.length === 0) {
+    xcMessage.warning('请先获取历史处方!');
+    return
   }
+  showMergeReceipts.value = true
+}
+
+function confirmMerge() {
+  const selections = mergeRef.value.getSelectionRows()
+  if (selections.length === 0) {
+    xcMessage.warning('请勾选至少一条就诊记录!');
+    return
+  }
+  mergeReceipts(selections).then(res => {
+    showMergeReceipts.value = false
+    ElMessageBox.alert(res.message, '提示', {
+      type: 'success',
+      showClose: false,
+      closeOnClickOutside: false,
+      closeOnClickModal: false,
+      closeOnPressEscape: false
+    }).then(() => {
+      fetchHistoryReceiptDetail(res)
+      let index = historyReceipts.value.findIndex(item => {
+        return item.times === res.times
+      })
+      asideRef.value.setCurrentRow(historyReceipts.value[index])
+    })
+  })
 }
 
 const markMzFees = () => {