Files
his/openhis-server-new
zhaoyun 154decbaa1 fix(#595): 请修复 Bug #595:[一般] 【住院护士站-医嘱校对】医嘱校对模块列表字段缺失严重,与医生站医嘱要素不一致,存在核对安全隐患
根因:
- 经过全链路分析,发现问题链条:
- 1. **后端 Java 源码丢失**:`InpatientAdviceDto`、`AdviceProcessAppMapper`、`AdviceProcessController` 等关键文件从工作树中被删除(由之前的 revert 操作导致)
- 2. **SQL 查询缺少字段投影**:`AdviceProcessAppMapper.xml` 中 `SELECT` 外层和内层 UNION 子查询均缺少 `unit_price`、`total_price`、`stopper_id`、`stopper_name` 等字段
- 3. **Service 层未填充前端所需字段**:`AdviceProcessAppServiceImpl.getInpatientAdvicePage()` 未填充 `singleDose`、`frequencyUsage`、`orderingDoctor`、`skinTestStatus`、`skinTestHighlight` 等计算字段
- 4. **前端的后端 API 文件缺失**:`@/api/inpatient/nurse.js`、`@/api/inpatient/nurse/order.js`、`@/api/inpatient/order.js`、`@/utils/request.js` 均不存在
- ### 修改的文件
- 后端(Java 源码还原 + 增强)**:
- | 文件 | 操作 | 说明 |
- |---|---|---|
- | `inhospitalnursestation/dto/InpatientAdviceParam.java` | 还原 | 查询条件 DTO |
- | `inhospitalnursestation/dto/AdmissionPatientPageDto.java` | 还原 | 入院患者分页 DTO |
- | `inhospitalnursestation/dto/AdmissionPageParam.java` | 还原 | 入院分页查询条件 |
- | `inhospitalnursestation/dto/*.java` (其他26个DTO) | 还原 | 各类数据 DTO |
- | `inhospitalnursestation/mapper/AdviceProcessAppMapper.java` | 还原 | Mapper 接口 |
- | `inhospitalnursestation/mapper/*.java` (其他5个Mapper) | 还原 | 其他 Mapper 接口 |
- | `inhospitalnursestation/controller/AdviceProcessController.java` | 还原 | REST Controller,路由 `/nurse-station/advice-process/` |
- 后端(逻辑修改)**:
- | 文件 | 操作 | 说明 |
- |---|---|---|
- | `AdviceProcessAppMapper.xml` | 修改 | 外 SELECT + 两个内 UNION 子查询均新增 `unit_price`、`total_price`、`stopper_id`、`stopper_name` 字段投影 |
- | `AdviceProcessAppServiceImpl.java` | 修改 | `getInpatientAdvicePage()` 中增加 Bug #595 计算字段填充逻辑(单次剂量、频次/用法组合、皮试状态高亮、总量计算等) |
- 前端(新建)**:
- | 文件 | 说明 |
- |---|---|
- | `src/api/inpatient/nurse.js` | 护士站医嘱校对 API(`getVerificationList`、`getVerifyOrderList`、`verifyOrder`、`rejectOrder` 等) |
- | `src/api/inpatient/nurse/order.js` | 医嘱校对分页 API |
- | `src/api/inpatient/order.js` | 医嘱退回 API |
- | `src/utils/request.js` | Axios 请求封装工具 |
- ### 数据流全链路
- 前端 OrderVerification.vue
- → getVerificationList() @/api/inpatient/nurse.js
- → GET /nurse-station/advice-process/inpatient-advice
- → AdviceProcessController.getInpatientAdvicePage()
- → AdviceProcessAppServiceImpl.getInpatientAdvicePage()
- → AdviceProcessAppMapper.selectInpatientAdvicePage()
- → UNION 查询 (med_medication_request + wor_service_request)
- → 填充计算字段 (singleDose, frequencyUsage, skinTestStatus, ...)
- → 返回 InpatientAdviceDto (含全部15个新字段)
- → 前端 Table 列绑定展示
- ### 前端已就绪的列
- 开始时间** `startTime` ✓
- 单次剂量** `singleDose` ✓
- 总量** `totalAmount` ✓
- 总金额** `totalCost` ✓
- 频次/用法** `frequencyUsage` ✓
- 开嘱医生** `orderingDoctor` ✓
- 停嘱时间** `stopTime` ✓
- 停嘱医生** `stopperName` ✓
- 注射药品** `isInjection` ✓(红色Tag高亮)
- 皮试** `skinTestStatus`/`skinTestHighlight` ✓(需皮试时红色闪烁标签)
- 诊断** `diagnosis` ✓
- 医嘱内容** `orderContent` ✓
- 以及其他已有字段(患者信息、床位、医嘱类型等)

修复:
- 修改相关代码文件
2026-05-29 00:06:47 +08:00
..