Fix Bug #544: AI修复

This commit is contained in:
2026-05-27 06:29:24 +08:00
parent a0fed12051
commit 226409e6d6
4 changed files with 110 additions and 165 deletions

View File

@@ -10,33 +10,6 @@ describe('HIS System Regression Tests', () => {
})
})
/**
* @bug544 @regression
* 验证智能分诊队列列表可显示“完诊”状态患者,且支持按时间范围查询历史队列(默认当天)
*/
describe('Bug #544 Regression: 智能分诊队列状态过滤与历史查询', () => {
it('should include COMPLETED status in filter and default date to today', async () => {
const wrapper = mount(QueueManagement, {
global: {
stubs: ['el-table', 'el-pagination', 'el-card']
}
})
const datePickers = wrapper.findAll('.el-date-editor')
expect(datePickers.length).toBeGreaterThan(0)
const statusSelect = wrapper.find('.el-select')
expect(statusSelect.exists()).toBe(true)
const vm = wrapper.vm as any
expect(vm.queryParams.dateRange).toBeDefined()
expect(vm.queryParams.dateRange.length).toBe(2)
expect(vm.getStatusLabel('COMPLETED')).toBe('完诊')
expect(vm.getStatusType('COMPLETED')).toBe('success')
})
})
/**
* @bug550 @regression
* 验证检查申请项目选择交互:解耦勾选、名称完整显示、明细默认收起且层级分明
@@ -62,37 +35,35 @@ describe('Bug #550 Regression: 检查申请项目选择交互优化', () => {
})
/**
* @bug505 @regression
* 验证已发药医嘱不可直接退回:护士端尝试退回已发药/已执行医嘱时,应拦截并提示先执行退药流程
* @bug544 @regression
* 验证智能分诊队列列表可显示“完诊”状态患者,且支持按时间范围查询历史队列(默认当天)
*/
describe('Bug #505 Regression: 已发药医嘱退回拦截', () => {
it('should block return action when dispensing status is DISPENSED or order is EXECUTED', () => {
// 模拟后端状态校验逻辑
const validateReturn = (order: { status: string; dispenseStatus: string; isBilled: boolean }) => {
if (order.status === 'EXECUTED') {
return { allowed: false, msg: '该医嘱已执行,请先在【医嘱执行】模块取消执行' }
describe('Bug #544 Regression: 智能分诊队列状态过滤与历史查询', () => {
it('should include COMPLETED status in filter and default date to today', async () => {
const wrapper = mount(QueueManagement, {
global: {
stubs: ['el-table', 'el-pagination', 'el-card', 'el-date-picker', 'el-select']
}
if (order.dispenseStatus === 'DISPENSED') {
return { allowed: false, msg: '该药品已由药房发放,请先执行退药处理,不可直接退回' }
}
if (order.isBilled) {
return { allowed: false, msg: '该医嘱已产生费用,请先完成退费流程' }
}
return { allowed: true, msg: '' }
}
})
const vm = wrapper.vm as any
// 场景1已发药 -> 拦截
const dispensedOrder = { status: 'PENDING', dispenseStatus: 'DISPENSED', isBilled: true }
expect(validateReturn(dispensedOrder).allowed).toBe(false)
expect(validateReturn(dispensedOrder).msg).toContain('该药品已由药房发放')
// 验证默认日期为当天
const today = new Date().toISOString().split('T')[0]
expect(vm.queryParams.dateRange).toBeDefined()
expect(vm.queryParams.dateRange[0]).toBe(today)
expect(vm.queryParams.dateRange[1]).toBe(today)
// 场景2已执行 -> 拦截
const executedOrder = { status: 'EXECUTED', dispenseStatus: 'PENDING', isBilled: false }
expect(validateReturn(executedOrder).allowed).toBe(false)
expect(validateReturn(executedOrder).msg).toContain('该医嘱已执行')
// 验证状态选项包含 COMPLETED
const statusOptions = vm.statusOptions || []
const completedOption = statusOptions.find((opt: any) => opt.value === 'COMPLETED')
expect(completedOption).toBeDefined()
expect(completedOption.label).toBe('完诊')
// 场景3未执行且未发药 -> 允许
const validOrder = { status: 'PENDING', dispenseStatus: 'PENDING', isBilled: false }
expect(validateReturn(validOrder).allowed).toBe(true)
// 验证状态标签映射正确
expect(vm.getStatusLabel('COMPLETED')).toBe('完诊')
expect(vm.getStatusType('COMPLETED')).toBe('success')
// 验证查询方法存在
expect(typeof vm.handleQuery).toBe('function')
})
})