Kaynağa Gözat

入院接收

lighter 2 ay önce
ebeveyn
işleme
6a5e8b5ed1

+ 15 - 0
src/api/medical-advice/patient-info.js

@@ -26,6 +26,21 @@ export function queryZyBedPreMsg(data) {
     })
 }
 
+export function queryPreAdmiss(ward) {
+    return request({
+        url: '/medicalAdvice/adjustBed/queryPreAdmiss',
+        method: 'get',
+        params: {ward},
+    })
+}
+
+export function receivePatient(data) {
+    return request({
+        url: '/medicalAdvice/adjustBed/receivePatient',
+        method: 'post',
+        data,
+    })
+}
 
 /**
  * 获取空闲的床位

+ 68 - 16
src/views/medical-advice/patient-info/AdjustBed.vue

@@ -30,10 +30,11 @@
       <el-button size="small" type="success" @click="saveBedInfo"
         >保存
       </el-button>
+      <el-button type="primary" @click="openReceiveAdmDialog">入院接收</el-button>
       <el-button type="primary" @click="clearBedInfo">清除床位信息</el-button>
       <el-button type="primary" @click="addBedInfo">添加床位信息</el-button>
-      <el-button type="primary" @click="openPrebedDialog"
-        >床位预分配确认
+      <el-button type="primary" @click="openPrebedDialog">
+        床位预分配确认
       </el-button>
       <div
         style="
@@ -340,6 +341,34 @@
       </template>
     </el-dialog>
   </el-dialog>
+
+  <el-dialog
+      v-model="receiveAdmVisible"
+      title="入院接收"
+      width="70%"
+      align-center
+  >
+    <el-table :data="preAdmList" stripe height="500">
+      <el-table-column label="病室" prop="wardName"></el-table-column>
+      <el-table-column label="小科室" prop="smallDeptName"></el-table-column>
+      <el-table-column label="床位" prop="bedNo"></el-table-column>
+      <el-table-column label="住院号" prop="inpatientNo"></el-table-column>
+      <el-table-column label="姓名" prop="name"></el-table-column>
+      <el-table-column label="性别" prop="gender"></el-table-column>
+      <el-table-column label="入院时间" prop="admissDate"></el-table-column>
+      <el-table-column label="操作">
+        <template #default="scope">
+          <el-button
+              link
+              type="primary"
+              size="small"
+              @click="handleClickReceive(scope.row)"
+          >接收
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+  </el-dialog>
 </template>
 
 <script setup name="AdjustBed">
@@ -354,24 +383,47 @@ import {
   clearBed,
   addBed,
   saveBed,
-  queryIsPreBed,
+  queryIsPreBed, queryPreAdmiss, receivePatient,
 } from "@/api/medical-advice/patient-info";
 import { getAllWards } from "@/api/zhu-yuan-yi-sheng/resident-doctor";
 import { clone } from "@/utils/clone";
 import { useUserStore } from "@/pinia/user-store";
 import { BizException, ExceptionEnum } from "@/utils/BizException";
+import {xcMessage} from "@/utils/xiaochan-element-plus";
 
-const getRoles = useUserStore().userInfo.roles;
+const user = useUserStore().userInfo
+const getRoles = user.roles;
 const centerDialogVisible = ref(false);
 const innerVisible = ref(false);
 const openPrebedDialog = () => {
   centerDialogVisible.value = true;
   queryPreBedInfo();
 };
+
+const preAdmList = ref([])
+const receiveAdmVisible = ref(false);
+function openReceiveAdmDialog() {
+  queryPreAdmiss(queryParam.wardCode).then(res => {
+    preAdmList.value = res
+    receiveAdmVisible.value = true;
+  })
+}
+function handleClickReceive(row) {
+  ElMessageBox.confirm(`是否确认接收患者【${row.name}】?`, '提示', {
+    type: "warning",
+    confirmButtonText: "接收",
+  }).then(() => {
+    receivePatient(row).then(res => {
+      xcMessage.success(res)
+      receiveAdmVisible.value = false
+    })
+  })
+}
+
 //清除床位信息
 const clearBedInfo = () => {
   let param = {
-    wardCode: queryParam.value.wardCode,
+    wardCode: queryParam.wardCode,
     bedNo: selectPatient.value.bedNo,
   };
   clearBed(param).then(res => {
@@ -381,7 +433,7 @@ const clearBedInfo = () => {
 //添加
 const addBedInfo = () => {
   let param = {
-    wardCode: queryParam.value.wardCode,
+    wardCode: queryParam.wardCode,
     bedNo: selectPatient.value.bedNo,
   };
   addBed(param).then(res => {
@@ -400,7 +452,7 @@ const saveBedInfo = () => {
   }).then(() => {
     let params = {
       param: bedData.value.data,
-      wardCode: queryParam.value.wardCode,
+      wardCode: queryParam.wardCode,
     };
     saveBed(params).then(res => {
       refBedMiInfo();
@@ -457,7 +509,7 @@ const setPatientInfo = (targetData, sourceData, isBedNo) => {
 
 const selectBedNo = val => {
   if (stringNotBlank(val)) {
-    let param = { bedNo: val, wardCode: queryParam.value.wardCode };
+    let param = { bedNo: val, wardCode: queryParam.wardCode };
     queryIsPreBed(param).then(res => {});
   }
 };
@@ -486,8 +538,8 @@ const selectPatientClick = index => {
   }
 };
 
-const queryParam = ref({
-  wardCode: "",
+const queryParam = reactive({
+  wardCode: user.deptCode,
 });
 const ward = ref([]);
 const wardSelectFlag = () => {
@@ -532,7 +584,7 @@ const refBedMiInfo = () => {
 };
 
 const queryBedMiInfo = () => {
-  queryZybedMi(queryParam.value).then(res => {
+  queryZybedMi(queryParam).then(res => {
     bedData.value.data = res.data;
     bedData.value.bedTotal = res.bedTotal;
     bedData.value.yzBedTotal = res.yzBedTotal;
@@ -608,11 +660,11 @@ function selectHlType(val) {
 
 onMounted(() => {
   scrollbarHeight.value = window.innerHeight - 70;
-  getAllWards().then(res => {
-    ward.value = res;
-  });
-
-  if (!wardSelectFlag()) {
+  if (wardSelectFlag()) {
+    getAllWards().then(res => {
+      ward.value = res;
+    });
+  } else {
     queryBedMiInfo();
   }
 });