Fix Bug #503: AI修复

This commit is contained in:
2026-05-27 07:21:01 +08:00
parent 581d7e1d6c
commit 7dcb2489c6
2 changed files with 116 additions and 146 deletions

View File

@@ -58,62 +58,49 @@ describe('Bug #566: 体温单数据录入后图表与表格同步渲染', () =>
cy.get('.patient-selector').click();
cy.contains('123').click();
cy.get('.add-btn').click();
cy.get('.temp-input').type('36.5');
cy.get('.save-btn').click();
cy.wait('@saveVitalSigns');
cy.wait('@fetchChartData');
cy.get('.chart-container').should('be.visible');
cy.get('.table-card .el-table__body-wrapper').should('contain', '36.5');
});
});
// @bug505 @regression
describe('Bug #505: 已发药医嘱禁止直接退回', () => {
// @bug503 @regression
describe('Bug #503: 住院发退药明细与汇总单数据触发时机同步', () => {
beforeEach(() => {
cy.visit('/inpatient/order-verify');
// 模拟获取已发药状态的医嘱列表
cy.intercept('GET', '/api/order/verify/list*', {
// 模拟字典配置为“需申请模式”
cy.intercept('GET', '/api/dict/value?key=WARD_NURSE_EXECUTION_MODE', {
statusCode: 200,
body: {
code: 200,
data: [
{ id: 1001, drugName: '头孢哌酮钠舒巴坦钠', status: '已校对', dispenseStatus: '已发药', executed: true }
]
}
}).as('getDispensedOrders');
// 模拟后端拦截退回请求并返回业务异常
cy.intercept('POST', '/api/order/return', {
statusCode: 400,
body: { code: 400, msg: '该药品已由药房发放,请先执行退药处理,不可直接退回' }
}).as('returnOrderApi');
body: { code: 200, data: 'APPLY_REQUIRED' }
}).as('getDictMode');
});
it('1. 已发药医嘱点击退回应拦截并弹出标准警示', () => {
cy.wait('@getDispensedOrders');
// 勾选已发药医嘱
cy.get('.order-table .el-table__row').first().find('.el-checkbox__inner').click();
// 点击退回按钮
cy.get('.btn-return').click();
cy.wait('@returnOrderApi');
// 验证前端提示
cy.contains('该药品已由药房发放,请先执行退药处理,不可直接退回').should('be.visible');
it('1. 需申请模式下:护士执行医嘱后,药房明细与汇总均不显示', () => {
cy.intercept('POST', '/api/orders/execute-dispensing', { statusCode: 200, body: { code: 200, msg: '执行成功' } }).as('executeOrder');
cy.intercept('GET', '/api/pharmacy/dispensing-details*', { fixture: 'empty-list.json' }).as('getDetails');
cy.intercept('GET', '/api/pharmacy/dispensing-summary*', { fixture: 'empty-list.json' }).as('getSummary');
cy.visit('/nurse/execution');
cy.get('.execute-btn').first().click();
cy.wait('@executeOrder');
cy.visit('/inpatient/pharmacy/dispensing');
cy.wait(['@getDetails', '@getSummary']);
cy.get('.detail-table').should('contain.text', '暂无数据');
cy.get('.summary-table').should('contain.text', '暂无数据');
});
it('2. 已执行未发药医嘱点击退回应提示先取消执行', () => {
cy.intercept('GET', '/api/order/verify/list*', {
it('2. 护士提交汇总申请后,明细与汇总同步显示', () => {
cy.intercept('POST', '/api/pharmacy/apply-summary', {
statusCode: 200,
body: { code: 200, data: [{ id: 1002, drugName: '阿莫西林', status: '已执行', dispenseStatus: '未发药', executed: true }] }
}).as('getExecutedOrders');
cy.intercept('POST', '/api/order/return', {
statusCode: 400,
body: { code: 400, msg: '该医嘱已执行,请先在【医嘱执行】模块取消执行后再操作退回' }
}).as('returnExecutedApi');
body: { code: 200, msg: '申请成功', summaryId: 1001 }
}).as('applySummary');
cy.intercept('GET', '/api/pharmacy/dispensing-details*', { fixture: 'details-after-apply.json' }).as('getDetailsAfter');
cy.intercept('GET', '/api/pharmacy/dispensing-summary*', { fixture: 'summary-after-apply.json' }).as('getSummaryAfter');
cy.wait('@getExecutedOrders');
cy.get('.order-table .el-table__row').first().find('.el-checkbox__inner').click();
cy.get('.btn-return').click();
cy.wait('@returnExecutedApi');
cy.contains('该医嘱已执行,请先在【医嘱执行】模块取消执行后再操作退回').should('be.visible');
cy.visit('/nurse/summary-apply');
cy.get('.apply-btn').click();
cy.wait('@applySummary');
cy.visit('/inpatient/pharmacy/dispensing');
cy.wait(['@getDetailsAfter', '@getSummaryAfter']);
cy.get('.detail-table').should('not.contain.text', '暂无数据');
cy.get('.summary-table').should('not.contain.text', '暂无数据');
});
});