|  |  |  | 
|---|
|  |  |  | bedNo: string // 诊疗床编号 | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | export interface PatientVO { | 
|---|
|  |  |  | roomId: number // 诊室编号 | 
|---|
|  |  |  | bedNo: string // 诊疗床编号 | 
|---|
|  |  |  | patId: string // 患者编号 | 
|---|
|  |  |  | jumpFlag: number // 插队标记 | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | export interface PatientStatisticVO { | 
|---|
|  |  |  | finishedNum: number | 
|---|
|  |  |  | readyNum: number | 
|---|
|  |  |  | 
|---|
|  |  |  | // 取患者统计 | 
|---|
|  |  |  | getPatientStatistic: async (params: RoomBedVO) => { | 
|---|
|  |  |  | return await request.get({ url: `/ecg/doctor/get-patient-statistic`, params }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 召回过号患者 | 
|---|
|  |  |  | recallPatient: async (params: PatientVO) => { | 
|---|
|  |  |  | return await request.get({ url: `/ecg/doctor/recall-patient`, params }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 召回过号患者 | 
|---|
|  |  |  | patientJump: async (params: PatientVO) => { | 
|---|
|  |  |  | return await request.get({ url: `/ecg/doctor/patient-jump`, params }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | bookCheckType: number // 预约检查类型 | 
|---|
|  |  |  | seqNum: number // 排队序号 | 
|---|
|  |  |  | status: number // 10:排队中 20:候诊准备 30:就诊中 40:就诊完成 50:过号 60:过期 | 
|---|
|  |  |  | passed: boolean // 过号标记 | 
|---|
|  |  |  | expired: boolean // 预约过期标记 | 
|---|
|  |  |  | passed: number // 过号标记 | 
|---|
|  |  |  | expired: number // 预约过期标记 | 
|---|
|  |  |  | jumpFlag: number //插队标记 | 
|---|
|  |  |  | roomId: number // 诊室编号 | 
|---|
|  |  |  | roomName: string // 诊室名称 | 
|---|
|  |  |  | bedNo: string // 诊疗床编号 | 
|---|
|  |  |  | 
|---|
|  |  |  | return await request.delete({ url: `/ecg/queue/delete?id=` + id }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 插队排队 | 
|---|
|  |  |  | jumpQueue: async (params: queueVO) => { | 
|---|
|  |  |  | return await request.get({ url: `/ecg/queue/patient-jump`, params }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 导出排队 Excel | 
|---|
|  |  |  | exportqueue: async (params) => { | 
|---|
|  |  |  | return await request.download({ url: `/ecg/queue/export-excel`, params }) | 
|---|
|  |  |  | 
|---|
|  |  |  | <script setup lang="ts"> | 
|---|
|  |  |  | import {defineComponent, PropType} from "vue"; | 
|---|
|  |  |  | import { queueApi, queueVO } from '@/api/ecg/queue' | 
|---|
|  |  |  | import { queueVO } from '@/api/ecg/queue' | 
|---|
|  |  |  | import {DICT_TYPE} from "@/utils/dict"; | 
|---|
|  |  |  | import {PatientVO, DoctorApi} from "@/api/ecg/doctor"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | defineComponent({ | 
|---|
|  |  |  | name: 'QueuePanel' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const message = useMessage() // 消息弹窗 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const  props = defineProps({ | 
|---|
|  |  |  | queue: { | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const recall = async (item) => { | 
|---|
|  |  |  | const patientVO: PatientVO = { | 
|---|
|  |  |  | roomId: item.roomId, | 
|---|
|  |  |  | bedNo: item.bedNo, | 
|---|
|  |  |  | patId: item.patId, | 
|---|
|  |  |  | jumpFlag: 0 | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const data = await DoctorApi.recallPatient(patientVO); | 
|---|
|  |  |  | message.info(data) | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | 
|---|
|  |  |  | {{item.bedNo}} | 
|---|
|  |  |  | <dict-tag :type="DICT_TYPE.ECG_CHECK_TYPE" :value="item.bookCheckType" /> | 
|---|
|  |  |  | <dict-tag :type="DICT_TYPE.ECG_QUEUE_STATUS" :value="item.status" /> | 
|---|
|  |  |  | <el-button v-if="item.status === 50" @click="recall(item)"> 召回 </el-button> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | </el-aside> | 
|---|
|  |  |  | </el-container> | 
|---|
|  |  |  | <el-container style="justify-content: center;"> | 
|---|
|  |  |  | <el-button type="primary" @click="finishNextPatient">完成下一位</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="passNextPatient">过号下一位</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="finishNextPatient">叫号</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="passNextPatient">过号</el-button> | 
|---|
|  |  |  | </el-container> | 
|---|
|  |  |  | </el-container> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | 
|---|
|  |  |  | > | 
|---|
|  |  |  | 删除 | 
|---|
|  |  |  | </el-button> | 
|---|
|  |  |  | <el-button | 
|---|
|  |  |  | link | 
|---|
|  |  |  | type="danger" | 
|---|
|  |  |  | @click="handleJump(scope.row)" | 
|---|
|  |  |  | v-if="scope.row.status === 10" | 
|---|
|  |  |  | v-hasPermi="['ecg:queue:jump']" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | {{scope.row.jumpFlag === 0? "插队" : "取消插队"}} | 
|---|
|  |  |  | </el-button> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | </el-table> | 
|---|
|  |  |  | 
|---|
|  |  |  | } catch {} | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** 插队按钮操作 */ | 
|---|
|  |  |  | const handleJump = async (item: queueVO ) => { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | if (item.jumpFlag === 0) | 
|---|
|  |  |  | item.jumpFlag = 1 | 
|---|
|  |  |  | else | 
|---|
|  |  |  | item.jumpFlag = 0 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const data = await queueApi.jumpQueue(item) | 
|---|
|  |  |  | message.success(data) | 
|---|
|  |  |  | // 刷新列表 | 
|---|
|  |  |  | await getList() | 
|---|
|  |  |  | } catch {} | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** 导出按钮操作 */ | 
|---|
|  |  |  | const handleExport = async () => { | 
|---|
|  |  |  | try { | 
|---|