| | |
| | | timeslotReservedNum: number // 每时段预留人数 |
| | | affinityCheckTypes: number[] | null// 亲和的检查类型 |
| | | notes: string // 预约注意事项 |
| | | seqPrefix: string // 序号前缀 |
| | | } |
| | | |
| | | // 检查类型 API |
| | |
| | | name: string |
| | | displayBarcode: [] |
| | | notes: string |
| | | seqPrefix: string // 序号前缀 |
| | | } |
| | | export interface CheckTypeState { |
| | | checkTypeMap: Map<number, CheckTypeSimpleVO> |
| | |
| | | } |
| | | return this.checkTypeMap[type].notes |
| | | }, |
| | | getCheckTypeSeqPrefix(type: number) { |
| | | if (!this.isSetCheckType) { |
| | | this.setCheckTypeMap() |
| | | } |
| | | return this.checkTypeMap[type].seqPrefix |
| | | }, |
| | | async resetCheckTypeInfo() { |
| | | wsCache.delete(CACHE_KEY.CHECKTYPE_CACHE) |
| | | const res = await CheckTypeApi.getSimpleCheckTypeList() |
| | |
| | | import {ScreenApi, ScreenQueueVO} from "@/api/ecg/screen"; |
| | | import {CallApi, CallVO} from "@/api/ecg/call"; |
| | | import {queueStatusConvert} from "@/utils/statusFormatter"; |
| | | import {useCheckTypeStore} from "@/store/modules/checkType"; |
| | | |
| | | defineOptions({ name: 'bigscreen' }) |
| | | |
| | | const checkTypeStore = useCheckTypeStore() |
| | | |
| | | const displayColInfo = ref({}) |
| | | |
| | |
| | | <div v-for="[disColId2, mapSlot] of Object.entries(list)" :key="disColId2" style="width: 300px; height: 100%; border-left: solid 2px var(--el-color-primary-light-7) "> |
| | | <div v-for="[slotId, slotQueue] of Object.entries(mapSlot)" :key="slotId"> |
| | | <div v-for="(item, index) in slotQueue" :key="index" :class="getItemCssClass(item)"> |
| | | {{item.bookSeqNum}} {{ nameDesensitize(item.patName) }} {{queueStatusConvert(item.status)}} {{item.roomName}} |
| | | <span style="display:inline-block; width:60px;">{{checkTypeStore.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}} |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | > |
| | | <el-table-column |
| | | prop="patName" |
| | | label="患者姓名" |
| | | width="220"> |
| | | label="预约序号" |
| | | width="60px"> |
| | | <template #default="scope"> |
| | | {{scope.row.bookSeqNum}} {{ nameDesensitize(scope.row.patName) }} |
| | | {{scope.row.bookCheckType && checkTypeStore.getCheckTypeName(scope.row.bookCheckType)}} |
| | | <span style="display:inline-block; width:60px;">{{checkTypeStore.getCheckTypeSeqPrefix(scope.row.bookCheckType)}}{{scope.row.bookSeqNum}} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="状态" align="center" width="100"> |
| | | <el-table-column |
| | | prop="patName" |
| | | label="患者姓名" |
| | | width="80px"> |
| | | <template #default="scope"> |
| | | <span style="display:inline-block; width:80px;">{{ nameDesensitize(scope.row.patName) }} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="patName" |
| | | label="检查项目" |
| | | width="80px"> |
| | | <template #default="scope"> |
| | | <span style="display:inline-block; width:80px;">{{scope.row.bookCheckType && checkTypeStore.getCheckTypeName(scope.row.bookCheckType)}} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="状态" align="center" width="100px"> |
| | | <template #default="scope"> |
| | | <!-- <dict-tag :type="DICT_TYPE.ECG_QUEUE_STATUS" :value="scope.row.status" />--> |
| | | {{queueStatusConvert(scope.row.status)}} |
| | |
| | | <el-input v-model="formData.timeslotReservedNum" placeholder="请输入每时段预留人数" /> |
| | | </el-form-item> |
| | | <el-form-item label="预约注意事项" prop="notes"> |
| | | <el-input v-model="formData.notes" placeholder="请预约注意事项" /> |
| | | <el-input v-model="formData.notes" placeholder="请输入预约注意事项" /> |
| | | </el-form-item> |
| | | <el-form-item label="序号前缀" prop="notes"> |
| | | <el-input v-model="formData.seqPrefix" placeholder="请输入序号前缀" /> |
| | | </el-form-item> |
| | | <el-form-item label="亲和的检查类型" prop="affinityCheckTypes"> |
| | | <el-checkbox-group v-model="formData.affinityCheckTypes"> |
| | |
| | | timeslotBookNum: undefined, |
| | | timeslotReservedNum: undefined, |
| | | affinityCheckTypes: [], |
| | | notes: undefined |
| | | notes: undefined, |
| | | seqPrefix: undefined |
| | | }) |
| | | const formRules = reactive({ |
| | | }) |
| | |
| | | timeslotBookNum: undefined, |
| | | timeslotReservedNum: undefined, |
| | | affinityCheckTypes: [], |
| | | notes: undefined |
| | | notes: undefined, |
| | | seqPrefix: undefined |
| | | } |
| | | formRef.value?.resetFields() |
| | | } |
| | |
| | | <el-table-column label="时段预约规定人数" align="center" prop="timeslotBookNum" /> |
| | | <el-table-column label="每时段预留人数" align="center" prop="timeslotReservedNum" /> |
| | | <el-table-column label="预约注意事项" align="center" prop="notes" /> |
| | | <el-table-column label="序号前缀" align="center" prop="seqPrefix" /> |
| | | <el-table-column label="亲和的检查类型" align="center" prop="affinityCheckTypes" > |
| | | <template #default="scope"> |
| | | <div v-for="(checkType, subIndex) in scope.row.affinityCheckTypes" :key="subIndex"> |
| | |
| | | |
| | | <template> |
| | | <div v-for="(item, index) in queue" :key="index"> |
| | | <span style="display:inline-block; width:120px;"> {{item.seqNum}} {{item.bookSeqNum}} {{item.patName}}{{item.passed === 0 ? "":"*"}} </span> |
| | | <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: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)}} |