src/api/ecg/call/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/api/ecg/doctor/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/ecg/callingscreen/bigscreen.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/ecg/doctor/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/ecg/call/index.ts
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ import request from '@/config/axios' // å«å· VO export interface CallVO { id: number // id patId: string // æ£è ç¼å· patName: string // æ£è å§å patGender: number // æ£è æ§å« seqNum: number // æéåºå· passed: number // è¿å·æ è®° expired: number // é¢çº¦è¿ææ è®° called: number // å«å·ç¶æ 0 æªæ 1 å·²æ jumpFlag: number // æéæ è®° roomId: number // è¯å®¤ç¼å· roomName: string // è¯å®¤åç§° bedNo: string // è¯çåºç¼å· } // å«å· API export const CallApi = { // æ¥è¯¢å«å·å页 getCallPage: async (params: any) => { return await request.get({ url: `/ecg/call/page`, params }) }, // æ¥è¯¢å«å·è¯¦æ getCall: async (id: number) => { return await request.get({ url: `/ecg/call/get?id=` + id }) }, // æ°å¢å«å· createCall: async (data: CallVO) => { return await request.post({ url: `/ecg/call/create`, data }) }, // ä¿®æ¹å«å· updateCall: async (data: CallVO) => { return await request.put({ url: `/ecg/call/update`, data }) }, // å é¤å«å· deleteCall: async (id: number) => { return await request.delete({ url: `/ecg/call/delete?id=` + id }) }, // 导åºå«å· Excel exportCall: async (params) => { return await request.download({ url: `/ecg/call/export-excel`, params }) }, // è·åä¸ä¸å«å· getNextCall: async () => { return await request.get({ url: `/ecg/call/next` }) } } src/api/ecg/doctor/index.ts
@@ -58,6 +58,11 @@ return await request.get({ url: `/ecg/doctor/pass-next-patient`, params }) }, // éå« callAgainPatient: async (params: RoomBedVO) => { return await request.get({ url: `/ecg/doctor/call-again`, params }) }, // ååå§æ£è å表 getPatientList: async (params: RoomBedVO) => { return await request.get({ url: `/ecg/doctor/get-patient-list`, params }) src/views/ecg/callingscreen/bigscreen.vue
@@ -1,7 +1,7 @@ <script setup lang="ts"> import dayjs from 'dayjs' import {ScreenApi, statusMap, CallingVO} from "@/api/ecg/screen"; import {CallApi, CallVO} from "@/api/ecg/call"; defineOptions({ name: 'bigscreen' }) @@ -9,9 +9,7 @@ const listWaiting = ref<CallingVO[]>([]) // åè¡¨çæ°æ® const listPassed = ref<CallingVO[]>([]) // let curSpeakPat : CallingVO | undefined = undefined; let curSpeakSeqNum : number = 0 let curWorkDay : Date | undefined = undefined let curSpeakPat : CallVO | null = null; const getList = async () => { const data = await ScreenApi.getBigScreenData() @@ -23,7 +21,7 @@ const startScrolling = () => { setInterval(() => { getList(); if ( curSpeakPat === undefined ) { if ( curSpeakPat === null ) { initiateSpeak() } }, 5000); // æ¯Xç§æ»å¨ä¸æ¬¡ @@ -35,35 +33,16 @@ const onSpeachEndEvent = async (event) => { console.log("Speech ended... " + event.currentTarget.text); await ScreenApi.markCalled(curSpeakPat!.patId) curSpeakPat!.called = 1 await CallApi.updateCall(curSpeakPat!) initiateSpeak() } const getNextSpeak = () => { if (listReady.value.length === 0) { return undefined; } // å¤çæ¯å¤© åè½¬çæ åµ if ( curWorkDay === undefined) { curSpeakSeqNum = 0; curWorkDay = new Date() } else if (!isSameDate(dayjs(listReady.value[0].bookDate).toDate(), curWorkDay)) { curSpeakSeqNum = 0; curWorkDay = dayjs(listReady.value[0].bookDate).toDate() } return listReady.value.find( item => item.status === 30 && item.called === 0 && item.seqNum > curSpeakSeqNum) } const initiateSpeak = () => { const queuePat = getNextSpeak() if (queuePat !== undefined) { curSpeakPat = queuePat curSpeakSeqNum = curSpeakPat.seqNum speak("请ã" + queuePat.patName + "å°" + queuePat.roomName + "å°±è¯"); } else { curSpeakPat = undefined const initiateSpeak = async () => { curSpeakPat = await CallApi.getNextCall() console.info( curSpeakPat ) if (curSpeakPat !== null) { speak("请ã" + curSpeakPat.patName + "å°" + curSpeakPat.roomName + "å°±è¯"); } } @@ -78,15 +57,6 @@ speech.onend = onSpeachEndEvent speechSynthesis.speak(speech) } const isSameDate = ( date1: Date, date2 : Date) => { if (date1.getFullYear() === date2.getFullYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate()) return true else return false } const nameDesensitize = (patName) => { src/views/ecg/doctor/index.vue
@@ -58,6 +58,10 @@ } } const callAgain = async () => { await DoctorApi.callAgainPatient(roomBedVO) } const getOnstagePatient = () => { const tempPatient : QueueVO | undefined = patientList.value.find(item => item.status === 30) if (undefined === tempPatient) { @@ -146,10 +150,6 @@ const devInstallPanelRef = ref() const setOnStagePatient = (tempPatient: QueueVO | undefined) => { devInstallPanelRef.value.setPatient(tempPatient) } const callAgain = () => { } </script>