Browse Source

召回、踢出和取消结算

lighter 3 months ago
parent
commit
888b077739

+ 41 - 0
src/api/inpatient/force-in-and-out.js

@@ -0,0 +1,41 @@
+import request from '../../utils/request'
+
+export function getActpatient(data) {
+  return request({
+    url: '/forceInAndOut/getActpatient',
+    method: 'post',
+    data,
+  })
+}
+
+export function pullBack(data) {
+  return request({
+    url: '/forceInAndOut/pullBack',
+    method: 'post',
+    data,
+  })
+}
+
+export function checkKickOutCondition(data) {
+  return request({
+    url: '/forceInAndOut/checkKickOutCondition',
+    method: 'post',
+    data,
+  })
+}
+
+export function kickOut(data) {
+  return request({
+    url: '/forceInAndOut/kickOut',
+    method: 'post',
+    data,
+  })
+}
+
+export function revokeSettlement(data) {
+  return request({
+    url: '/forceInAndOut/revokeSettlement',
+    method: 'post',
+    data,
+  })
+}

+ 139 - 0
src/views/hospitalization/zfsf/ForceInAndOut.vue

@@ -0,0 +1,139 @@
+<template>
+  <div class="layout_container">
+    <div class="round-header">
+        <el-radio-group
+            v-model="patStatus"
+            @change="handleStatusChange"
+        >
+          <el-radio name="OUT_HOSPITAL" value="OUT_HOSPITAL" label="出院患者" />
+          <el-radio name="IN_HOSPITAL" value="IN_HOSPITAL" label="在院患者" />
+        </el-radio-group>
+      <el-input
+          v-model="userInput"
+          placeholder="请输入住院号或姓名"
+          style="width: 130px;margin-left: 60px"
+          clearable
+          @keyup.enter="searchPatient"
+      />
+      <el-button type="primary" icon="Search" @click="searchPatient">检索</el-button>
+    </div>
+    <div style="height: 8px"></div>
+    <div class="layout_main layout_el-table">
+      <el-table :data="patList" stripe>
+        <el-table-column prop="patNo" label="住院号" width="100"/>
+        <el-table-column prop="times" label="住院次数" width="100"/>
+        <el-table-column prop="name" label="姓名" width="100"/>
+        <el-table-column prop="medTypeName" label="医保身份" width="130"/>
+        <el-table-column prop="bedNo" label="床位号" width="80"/>
+        <el-table-column prop="admDate" label="入院时间" width="160"/>
+        <el-table-column prop="disDate" label="出院时间" width="160"/>
+        <el-table-column prop="wardName" label="病区" />
+        <el-table-column prop="deptName" label="小科室" />
+        <el-table-column label="操作">
+          <template #default="{row}">
+            <el-button
+                v-if="patStatus === 'IN_HOSPITAL'"
+                type="primary"
+                plain
+                @click="beforeKickOut(row)"
+            >
+              踢出
+            </el-button>
+            <el-button
+                v-else
+                color="purple"
+                plain
+                @click="beforePullBack(row)"
+            >
+              召回
+            </el-button>
+            <el-button
+                type="danger"
+                plain
+                @click="beforeRevokeSettle(row)"
+            >
+              取消结算
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
+</template>
+
+<script setup>
+
+import {checkKickOutCondition, getActpatient, kickOut, pullBack, revokeSettlement} from "@/api/inpatient/force-in-and-out.js";
+import {ElMessageBox} from "element-plus";
+import {xcMessage} from "@/utils/xiaochan-element-plus";
+
+const patStatus = ref('OUT_HOSPITAL');
+const userInput = ref('')
+
+const patList = ref([])
+
+function searchPatient() {
+  const params = {
+    patStatus: patStatus.value,
+    userInput: userInput.value,
+  }
+  getActpatient(params).then(res => {
+    patList.value = res
+  })
+}
+
+function handleStatusChange() {
+  patList.value = []
+}
+
+function beforePullBack(row) {
+  ElMessageBox.confirm('是否确定召回此患者?', '提示', {
+    type: 'warning',
+  }).then(() => {
+    pullBack(row).then(res => {
+      xcMessage.success(res)
+      searchPatient()
+    })
+  }).catch(() => {})
+}
+
+function beforeKickOut(row) {
+  ElMessageBox.confirm('是否确定为此患者办理出院?', '提示', {
+    type: 'warning',
+  }).then(() => {
+    checkCondition(row)
+  }).catch(() => {})
+}
+
+function checkCondition(row) {
+  checkKickOutCondition(row).then(res => {
+    if (res === 'OK') {
+      doKickOut(row)
+    } else {
+      ElMessageBox.confirm(res, '提示', {
+        type: 'warning',
+      }).then(() => {
+        doKickOut(row)
+      }).catch(() => {})
+    }
+  })
+}
+
+function doKickOut(row) {
+  kickOut(row).then(res => {
+    xcMessage.success(res)
+    searchPatient()
+  })
+}
+
+function beforeRevokeSettle(row) {
+  ElMessageBox.confirm('是否确定取消结算?', '提示', {
+    type: 'warning',
+  }).then(() => {
+    revokeSettlement(row).then(res => {
+      xcMessage.success(res)
+    })
+  }).catch(() => {})
+}
+
+</script>

+ 2 - 4
src/views/medical-insurance/inpatient/DiscSettlement.vue

@@ -1138,8 +1138,7 @@ const cancelDismiss = () => {
     confirmButtonText: "确定",
     cancelButtonText: "放弃",
     type: "warning",
-  })
-    .then(() => {
+  }).then(() => {
       if (injuryMode.value) {
         revokeInpatientSettlement(patient.value).then(() => {
           ElMessage({
@@ -1159,8 +1158,7 @@ const cancelDismiss = () => {
           });
         });
       }
-    })
-    .catch(() => {});
+    }).catch(() => {});
 };
 
 const showDismissOrderDate = ref(false);

+ 2 - 2
src/views/medical-insurance/inpatient/InHospFeeUpload.vue

@@ -13,10 +13,10 @@
       <el-popover placement="left" width="730" trigger="click">
         <template #reference>
           <el-button type="warning" icon="CircleClose" plain
-            >错误信息 ({{ errorMessages.length }})
+            >上传信息 ({{ errorMessages.length }})
           </el-button>
         </template>
-        <el-tag type="info">错误信息</el-tag>
+        <el-tag type="info">上传信息</el-tag>
         <el-divider direction="vertical"></el-divider>
         <el-button type="warning" @click="clearErrorMessages"
           >清除内容