| | |
| | | |
| | | // è®¾å¤ VO |
| | | export interface DeviceVO { |
| | | id: number // id |
| | | devCodeIntrinsic: string |
| | | devCodeHosp: string |
| | | devCodeDept: string |
| | | devId: string // 设å¤ç¼å· |
| | | category: string // åç±»å |
| | | brand: string // åç |
| | | model: string // åå· |
| | | purchaseDate: number // éè´æ¥æ |
| | | state: number //ç¶æ |
| | | comment: string // 夿³¨ |
| | | id?: number // id |
| | | devCodeIntrinsic?: string |
| | | devCodeHosp?: string |
| | | devCodeDept?: string |
| | | devId?: string // 设å¤ç¼å· |
| | | category?: string // åç±»å |
| | | brand?: string // åç |
| | | model?: string // åå· |
| | | purchaseDate?: number // éè´æ¥æ |
| | | state?: number //ç¶æ |
| | | comment?: string // 夿³¨ |
| | | } |
| | | |
| | | // 设å¤ç»è®¡ VO |
| | |
| | | |
| | | // è£
æºææº VO |
| | | export interface DevRentVO { |
| | | id: number | undefined // id |
| | | applyNo: string | undefined // é¢çº¦ç³è¯·å· |
| | | episodeId: string | undefined // å°±è¯æµæ°´å· |
| | | devId: string | undefined // 设å¤ç¼å· |
| | | patId: string | undefined// æ£è
ç¼å· |
| | | patName: string | undefined // æ£è
åç§° |
| | | patDetails: PatDetailsVO | undefined |
| | | checkType: number | undefined |
| | | rentTime: number | undefined // è£
æºæ¶é´ |
| | | returnTime: number | undefined // ææºæ¶é´ |
| | | interference: number | undefined // å¹²æ°æ° |
| | | baseline: string | undefined // åºçº¿ç² |
| | | detachment: string | undefined // è±è½ |
| | | remark: string | undefined // 夿³¨ |
| | | state: number | undefined // ç¶æ |
| | | paid: number | undefined |
| | | roomId: number | undefined | null |
| | | bedNo: string | undefined | null |
| | | id?: number | undefined | null // id |
| | | applyNo?: string | undefined | null // é¢çº¦ç³è¯·å· |
| | | episodeId?: string | undefined | null // å°±è¯æµæ°´å· |
| | | devId?: string | undefined | null // 设å¤ç¼å· |
| | | patId?: string | undefined | null// æ£è
ç¼å· |
| | | patName?: string | undefined | null // æ£è
åç§° |
| | | patDetails?: PatDetailsVO | undefined | null |
| | | checkType?: number | undefined | null |
| | | rentTime?: number | undefined | null // è£
æºæ¶é´ |
| | | returnTime?: number | undefined | null // ææºæ¶é´ |
| | | interference?: number | undefined | null // å¹²æ°æ° |
| | | baseline?: string | undefined | null // åºçº¿ç² |
| | | detachment?: string | undefined | null // è±è½ |
| | | remark?: string | undefined | null // 夿³¨ |
| | | state?: number | undefined | null // ç¶æ |
| | | paid?: number | undefined | null |
| | | roomId?: number | undefined | null |
| | | bedNo?: string | undefined | null |
| | | } |
| | | |
| | | // è£
æºææº API |
| | |
| | | <div class="deskwarp"> |
| | | |
| | | <div v-for="(checkType, subIndex) in bedItem.checkTypes" :key="subIndex"> |
| | | {{checkTypeStore.getCheckTypeName(checkType)}} |
| | | {{getCheckTypeName(checkType)}} |
| | | </div> |
| | | <div> |
| | | {{bedItem.opType === 1?"é¢ç¨":""}} |
| | |
| | | /> |
| | | {{bedItem.bedNo}} {{bedItem.docName}} {{bedItem.status === 30?"-æå":""}} |
| | | <div v-for="(checkType, subIndex) in bedItem.checkTypes" :key="subIndex"> |
| | | {{checkTypeStore.getCheckTypeName(checkType)}} |
| | | {{getCheckTypeName(checkType)}} |
| | | </div> |
| | | <div> |
| | | {{bedItem.opType === 1?"é¢ç¨":""}} |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {useCheckTypeStore} from "@/store/modules/checkType"; |
| | | |
| | | const checkTypeStore = useCheckTypeStore(); |
| | | |
| | | export const getCheckTypeName = (checkType) => checkTypeStore.getCheckTypeName(checkType) |
| | | |
| | | export const getCheckTypeSeqPrefix = (checkType) => checkTypeStore.getCheckTypeSeqPrefix(checkType) |
| | | |
| | | |
| | |
| | | bookTime: new Date(), |
| | | bookDate: new Date(), |
| | | bookTimeslot: 9301030, |
| | | bookCheckType: checkTypeStore.getCheckTypeName(100), |
| | | bookCheckType: getCheckTypeName(100), |
| | | paid: 0, |
| | | }) |
| | | const formRef = ref() // 表å Ref |
| | |
| | | bookTime: new Date(), |
| | | bookDate: new Date(), |
| | | bookTimeslot: 9301030, |
| | | bookCheckType: checkTypeStore.getCheckTypeName(100), |
| | | bookCheckType: getCheckTypeName(100), |
| | | paid: 0, |
| | | bookSeqNum: 0 |
| | | } |
| | |
| | | bookTime: undefined, |
| | | bookDate: new Date().getTime(), |
| | | bookTimeslot: 9000930, |
| | | bookCheckType: checkTypeStore.getCheckTypeName(100), |
| | | bookCheckType: getCheckTypeName(100), |
| | | paid: 0, |
| | | } |
| | | formRef.value?.resetFields() |
| | |
| | | //var panel = hiprintTemplate.addPrintPanel({ width: 100, height: 130, paperFooter: 340, paperHeader: 10 }); 导è´èµ°ä¸é¡µ |
| | | var panel = hiprintTemplate.addPrintPanel({ width: 140, height: 130, paperNumberDisabled:true}); |
| | | //ææ¬ |
| | | const checkTypeName = checkTypeStore.getCheckTypeName(props.appointment.bookCheckType) |
| | | const checkTypeName = getCheckTypeName(props.appointment.bookCheckType) |
| | | panel.addPrintText({ options: { width: 150, height: 15, top: 2, left: 10, title: checkTypeName, textAlign: 'center', fontSize: 15, fontFamily: '微软é
é»', fontWeight: '700', } }); |
| | | const patientBaisc = props.appointment.patName + " " + calGender(props.appointment.patGender) + " " + calculateAge(props.appointment.patBirthday) + "å²" |
| | | panel.addPrintText({ options: { width: 150, height: 15, top: 27, left: 10, title: patientBaisc, textAlign: 'center' , fontSize: 15, fontFamily: '微软é
é»', fontWeight: '700', } }); |
| | |
| | | |
| | | <template> |
| | | <el-card style="width: 200px" shadow="hover" > |
| | | <template #header>{{checkTypeStore.getCheckTypeName(appointment.bookCheckType)}}</template> |
| | | <template #header>{{getCheckTypeName(appointment.bookCheckType)}}</template> |
| | | <div>{{formatDate(appointment.bookDate, 'YYYY-MM-DD')}}</div> |
| | | <div>{{formatTimeslot(appointment.bookTimeslot)}}</div> |
| | | |
| | |
| | | </el-table-column> |
| | | <el-table-column label="é¢çº¦æ£æ¥ç±»å" align="center" prop="bookCheckType" min-width="120px"> |
| | | <template #default="scope"> |
| | | {{checkTypeStore.getCheckTypeName(scope.row.bookCheckType)}} |
| | | {{getCheckTypeName(scope.row.bookCheckType)}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="çæ¥" align="center" prop="patBirthday" :formatter="dateFormatter2" width="110px"/> |
| | |
| | | import {CallApi, CallVO} from "@/api/ecg/call"; |
| | | import {queueStatusConvert} from "@/utils/statusFormatter"; |
| | | import {useCheckTypeStore} from "@/store/modules/checkType"; |
| | | import {getCheckTypeSeqPrefix} from "../../../utils/checkTypeFormatter"; |
| | | |
| | | defineOptions({ name: 'bigscreen' }) |
| | | |
| | |
| | | <div style="display:flex; justify-content:space-around; align-items: flex-start; flex-grow: 1; border: solid 2px var(--el-color-primary-light-7); font-size: 20px"> |
| | | <div v-for="[disColId2, columnPatientList] of Object.entries(mapColumnVsPatients)" :key="disColId2" style="flex: 1; flex-basis: 300px; height: 100%; border-left: solid 2px var(--el-color-primary-light-7) "> |
| | | <div v-for="(item, index) in columnPatientList" :key="index" :class="getItemCssClass(item)"> |
| | | <span style="display:inline-block; width:60px;">{{checkTypeStore.getCheckTypeSeqPrefix(item.bookCheckType)}}{{item.bookSeqNum}}</span> |
| | | <span style="display:inline-block; width:60px;">{{getCheckTypeSeqPrefix(item.bookCheckType)}}{{item.bookSeqNum}}</span> |
| | | <span style="display:inline-block; width:80px;">{{ nameDesensitize(item.patName) }} </span> |
| | | <span style="display:inline-block; width:80px;">{{queueStatusConvert(item.status)}} </span> |
| | | {{item.roomName}} {{item.bedNo}} |
| | |
| | | import {CallApi, CallVO} from "@/api/ecg/call"; |
| | | import {queueStatusConvert} from "../../../utils/statusFormatter"; |
| | | import {useCheckTypeStore} from "@/store/modules/checkType"; |
| | | import {getCheckTypeSeqPrefix} from "../../../utils/checkTypeFormatter"; |
| | | |
| | | defineOptions({ name: 'roomscreen' }) |
| | | let roomId = ref<number>(0) |
| | |
| | | label="é¢çº¦åºå·" |
| | | width="60px"> |
| | | <template #default="scope"> |
| | | <span style="display:inline-block; width:60px;">{{checkTypeStore.getCheckTypeSeqPrefix(scope.row.bookCheckType)}}{{scope.row.bookSeqNum}} </span> |
| | | <span style="display:inline-block; width:60px;">{{getCheckTypeSeqPrefix(scope.row.bookCheckType)}}{{scope.row.bookSeqNum}} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | label="æ£æ¥é¡¹ç®" |
| | | width="80px"> |
| | | <template #default="scope"> |
| | | <span style="display:inline-block; width:80px;">{{scope.row.bookCheckType && checkTypeStore.getCheckTypeName(scope.row.bookCheckType)}} </span> |
| | | <span style="display:inline-block; width:80px;">{{scope.row.bookCheckType && getCheckTypeName(scope.row.bookCheckType)}} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="ç¶æ" align="center" width="200px"> |
| | |
| | | label="é¢çº¦åºå·" |
| | | width="60px"> |
| | | <template #default="scope"> |
| | | <span style="display:inline-block; width:60px;">{{checkTypeStore.getCheckTypeSeqPrefix(scope.row.bookCheckType)}}{{scope.row.bookSeqNum}} </span> |
| | | <span style="display:inline-block; width:60px;">{{getCheckTypeSeqPrefix(scope.row.bookCheckType)}}{{scope.row.bookSeqNum}} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | label="æ£æ¥é¡¹ç®" |
| | | width="80px"> |
| | | <template #default="scope"> |
| | | <span style="display:inline-block; width:80px;">{{scope.row.bookCheckType && checkTypeStore.getCheckTypeName(scope.row.bookCheckType)}} </span> |
| | | <span style="display:inline-block; width:80px;">{{scope.row.bookCheckType && getCheckTypeName(scope.row.bookCheckType)}} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="ç¶æ" align="center" width="200px"> |
| | |
| | | <el-table-column label="亲åçæ£æ¥ç±»å" align="center" prop="affinityCheckTypes" > |
| | | <template #default="scope"> |
| | | <div v-for="(checkType, subIndex) in scope.row.affinityCheckTypes" :key="subIndex"> |
| | | {{checkTypeStore.getCheckTypeName(checkType)}} |
| | | {{getCheckTypeName(checkType)}} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | onMounted(() => { |
| | | getList() |
| | | }) |
| | | </script> |
| | | </script> |
| | |
| | | <el-table-column label="æ£è
åç§°" align="center" prop="patName" /> |
| | | <el-table-column label="æ£æ¥ç±»å" align="center" prop="checkType" width="100px"> |
| | | <template #default="scope"> |
| | | <span>{{checkTypeStore.getCheckTypeName(scope.row.checkType)}}</span> |
| | | <span>{{getCheckTypeName(scope.row.checkType)}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æ£æ¥ç¶æ" align="center" prop="state" width="90px"> |
| | |
| | | v-loading="formLoading" |
| | | > |
| | | <el-form-item label="æ£æ¥é¡¹ç®" prop=""> |
| | | {{formData?.checkType && checkTypeStore.getCheckTypeName(formData?.checkType)}} |
| | | {{formData?.checkType && getCheckTypeName(formData?.checkType)}} |
| | | </el-form-item> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | |
| | | v-loading="formLoading" |
| | | > |
| | | <el-form-item label="æ£æ¥é¡¹ç®" prop=""> |
| | | {{formData?.checkType && checkTypeStore.getCheckTypeName(formData?.checkType)}} |
| | | {{formData?.checkType && getCheckTypeName(formData?.checkType)}} |
| | | </el-form-item> |
| | | <el-form-item label="æ£è
ç¼å·" prop="patId"> |
| | | <el-input v-model="formData.patId" placeholder="请è¾å
¥æ£è
ç¼å·" @input="getRentInfoByPatId" /> |
| | |
| | | <el-button @click="printBill(formData.patId!, formData.checkType!)">æå°å°ç¥¨</el-button> |
| | | <el-button @click="cancelReady" :disabled="formLoading">æ¾å¼é¢ç¨</el-button> |
| | | <el-button @click="resetForm()">é ç½®</el-button> |
| | | <el-button v-if="formData.checkType && checkTypeStore.getExpenseRecognition(formData.checkType)" @click="feeConfirm" :disabled="formLoading">确费</el-button> |
| | | <el-button v-if="formData.checkType && checkTypeStore.getExpenseRecognition(formData.checkType)" @click="feeCancel" :disabled="formLoading">åæ¶ç¡®è´¹</el-button> |
| | | <el-button v-if="needAutoFeeConfirm(formData.checkType)" @click="feeConfirm" :disabled="formLoading">确费</el-button> |
| | | <el-button v-if="needAutoFeeConfirm(formData.checkType)" @click="feeCancel" :disabled="formLoading">åæ¶ç¡®è´¹</el-button> |
| | | |
| | | <!-- å»çè£
æºå表 --> |
| | | <ContentWrap> |
| | |
| | | import {calGender, getBookBeginTime} from "@/utils"; |
| | | import {DICT_TYPE} from "@/utils/dict"; |
| | | import {tranlateDevState} from "@/utils/statusFormatter"; |
| | | import {getCheckTypeName} from "../../../../utils/checkTypeFormatter"; |
| | | |
| | | /** 设å¤é¢ç¨ 表å */ |
| | | defineComponent({ name: 'DevReadyPanel' }) |
| | |
| | | const checkTypeStore = useCheckTypeStore() |
| | | |
| | | const formData = ref<Partial<DevRentVO>>({ |
| | | id: undefined, |
| | | devId: undefined, |
| | | patId: undefined, |
| | | patName: undefined, |
| | |
| | | returnTime: undefined, |
| | | remark: undefined, |
| | | paid: undefined, |
| | | roomId: props.room.roomId, |
| | | bedNo: props.room.bedNo |
| | | }) |
| | | |
| | | const formRules = reactive({ |
| | |
| | | }) |
| | | |
| | | const displayBarCode = ref<string> () |
| | | |
| | | const needAutoFeeConfirm = (checkType: number | null | undefined) => { |
| | | if (checkType == null) |
| | | return false |
| | | |
| | | return checkTypeStore.getExpenseRecognition(checkType) |
| | | } |
| | | |
| | | const getRentInfoByPatId = () => { |
| | | const tempPatId = formData.value.patId; |
| | |
| | | try { |
| | | formData.value.roomId = props.room.roomId |
| | | formData.value.bedNo = props.room.bedNo |
| | | const data = formData.value |
| | | console.info( data ) |
| | | await DevRentApi.devReady(formData.value) |
| | | |
| | | await DevRentApi.devReady(data) |
| | | |
| | | if (autoPrint.value && data.patId && data.checkType) { |
| | | printBill(data.patId, data.checkType) |
| | | if (autoPrint.value && formData.value.patId && formData.value.checkType) { |
| | | printBill(formData.value.patId, formData.value.checkType) |
| | | } |
| | | |
| | | // èªå¨ç¡®è´¹ |
| | | feeConfirm() |
| | | if (needAutoFeeConfirm(formData.value.checkType)) { |
| | | feeConfirm() |
| | | } |
| | | |
| | | dialogVisible.value = false |
| | | // åéæä½æåçäºä»¶ |
| | |
| | | remark: undefined, |
| | | patDetails: undefined, |
| | | paid: undefined, |
| | | roomId: props.room.roomId, |
| | | bedNo: props.room.bedNo |
| | | } |
| | | formRef.value?.resetFields() |
| | | |
| | |
| | | //var panel = hiprintTemplate.addPrintPanel({ width: 100, height: 130, paperFooter: 340, paperHeader: 10 }); 导è´èµ°ä¸é¡µ |
| | | var panel = hiprintTemplate.addPrintPanel({ width: 140, height: 130, paperNumberDisabled:true}); |
| | | //ææ¬ |
| | | const checkTypeName = checkTypeStore.getCheckTypeName(curAppointment.bookCheckType) |
| | | const checkTypeName = getCheckTypeName(curAppointment.bookCheckType) |
| | | panel.addPrintText({ options: { width: 140, height: 12, top: 2, left: 20, title: checkTypeName, textAlign: 'center', fontSize: 10, fontFamily: '微软é
é»', fontWeight: '700', } }); |
| | | const patientBaisc = curAppointment.patName + " " + calGender(curAppointment.patGender) + " " + calculateAge(curAppointment.patBirthday) + "å²" |
| | | panel.addPrintText({ options: { width: 140, height: 12, top: 16, left: 20, title: patientBaisc, textAlign: 'center' , fontSize: 10, fontFamily: '微软é
é»', fontWeight: '700', } }); |
| | |
| | | } |
| | | |
| | | const feeConfirm = async () => { |
| | | if (formData.value?.id === undefined) { |
| | | if (formData.value.id == null) { |
| | | message.error(t('请å
é¢ç¨')) |
| | | return |
| | | } |
| | | |
| | | const result = await DevRentApi.feeConfirm(formData.value.id) |
| | | if (0 == result) |
| | | if (0 === result) |
| | | message.success(t('确费æä½æå')) |
| | | } |
| | | |
| | | const feeCancel = async () => { |
| | | if (formData.value?.id === undefined) { |
| | | if (formData.value.id == null) { |
| | | message.error(t('请å
é¢ç¨')) |
| | | return |
| | | } |
| | | |
| | | const result = await DevRentApi.feeCancel(formData.value.id) |
| | | if (0 == result) |
| | | if (0 === result) |
| | | message.success(t('æä½æå')) |
| | | } |
| | | |
| | |
| | | import {DICT_TYPE} from "@/utils/dict"; |
| | | import {PatientVO, DoctorApi, RoomBedVO} from "@/api/ecg/doctor"; |
| | | import {useCheckTypeStore} from "@/store/modules/checkType"; |
| | | import {getCheckTypeName, getCheckTypeSeqPrefix} from "../../../../utils/checkTypeFormatter"; |
| | | |
| | | defineComponent({ |
| | | name: 'QueuePanel' |
| | |
| | | <template> |
| | | <div v-for="(item, index) in queue" :key="index"> |
| | | <span style="display:inline-block; width:30px;"> {{item.seqNum}} </span> |
| | | <span style="display:inline-block; width:40px;"> {{checkTypeStore.getCheckTypeSeqPrefix(item.bookCheckType)}}{{item.bookSeqNum}} </span> |
| | | <span style="display:inline-block; width:40px;"> {{getCheckTypeSeqPrefix(item.bookCheckType)}}{{item.bookSeqNum}} </span> |
| | | <span style="display:inline-block; width:70px;"> {{item.patName}}{{item.passed === 0 ? "":"*"}} </span> |
| | | <dict-tag :type="DICT_TYPE.SYSTEM_USER_SEX" :value="item.patGender" /> |
| | | <!-- {{item.roomName}} {{item.bedNo}}--> |
| | | {{checkTypeStore.getCheckTypeName(item.bookCheckType)}} |
| | | {{getCheckTypeName(item.bookCheckType)}} |
| | | <dict-tag :type="DICT_TYPE.ECG_QUEUE_STATUS" :value="item.status" /> |
| | | <el-button v-if="item.status === 5 || item.status === 7" @click="recall(item)"> å¬å </el-button> |
| | | </div> |
| | |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ£æ¥é¡¹ç®" prop=""> |
| | | {{formData.checkType && checkTypeStore.getCheckTypeName(formData.checkType)}} |
| | | {{formData.checkType && getCheckTypeName(formData.checkType)}} |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="formData.remark" placeholder="请è¾å
¥å¤æ³¨" /> |
| | |
| | | {{room.roomName || ''}} {{room.bedNo || ''}} {{room.opType === 1?"é¢ç¨":""}} {{room.opType === 2?"å®è£
":""}} |
| | | <div> |
| | | <span v-for="(checkType, subIndex) in room.checkTypes" :key="subIndex"> |
| | | {{checkTypeStore.getCheckTypeName(checkType)}} |
| | | {{getCheckTypeName(checkType)}} |
| | | </span> |
| | | </div> |
| | | </div> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="æ£æ¥ç±»å" align="center" prop="bookCheckType" min-width="100px"> |
| | | <template #default="scope"> |
| | | {{checkTypeStore.getCheckTypeName(scope.row.bookCheckType)}} |
| | | {{getCheckTypeName(scope.row.bookCheckType)}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æ£è
详æ
" align="center" prop="patDetails" min-width="300px"> |
| | |
| | | <div>å¼è¯æ¶é´ï¼{{ openingPeriod }} {{ monitorInfo.openingFlag }} </div> |
| | | <div>工使¦åµï¼ {{monitorInfo.openingBedNum}} {{monitorInfo.docBedNum}} {{monitorInfo.routingBedNum}} </div> |
| | | <div v-for="(value, key) in monitorInfo.checkTypeBedInfo" :key="key"> |
| | | {{ checkTypeStore.getCheckTypeName(Number(key)) }} {{ value }} |
| | | {{ getCheckTypeName(Number(key)) }} {{ value }} |
| | | </div> |
| | | <div>工使¦åµï¼å¼æ¾çå·¥ä½ æå»çå·¥ä½ åä¸åæµå·¥ä½</div> |
| | | <div>æ£æ¥ç±»å 弿¾çå·¥ä½ (æ£æ¥/é¢ç¨ | å®è£
) æå»çå·¥ä½ (æ£æ¥/é¢ç¨ | å®è£
)</div> |
| | |
| | | <el-table-column label="æ£æ¥ç±»å" align="center" prop="checkTypes" width="180px"> |
| | | <template #default="scope"> |
| | | <div v-for="(checkType, subIndex) in scope.row.checkTypes" :key="subIndex"> |
| | | {{checkTypeStore.getCheckTypeName(checkType)}} |
| | | {{getCheckTypeName(checkType)}} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |