# BUG #355 - 修复备注 ## 修复日期 2026-04-08 ## 修复人 关羽 (guanyu) ## 修复内容 ### 问题描述 门诊挂号页面的预约签到弹窗中,患者"随自核"的性别显示为"未知",但挂号界面载入后显示为"男性",数据不一致。 ### 根本原因 - 预约签到弹窗数据来自 `TicketAppServiceImpl.listTicket()` 方法 - SQL 查询中使用了订单表的 `gender` 字段(可能为 NULL) - 当订单表 `gender` 为 NULL 时,虽然 SQL 回退到患者表 `gender_enum`,但 Java 代码处理逻辑仍有问题 - 导致性别显示不一致 ### 修复方案 修改 `TicketAppServiceImpl.java` 中的性别处理逻辑: - 将 `raw.getPatientGender()` 改为 `raw.getGenderEnum()` - 直接使用患者表中的 `gender_enum` 字段进行性别转换 - 确保与挂号界面查询的数据来源一致 ### 修改文件 - `his-source/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/TicketAppServiceImpl.java` ### 代码变更 ```java // 修改前 if (raw.getPatientGender() != null) { String pg = raw.getPatientGender().trim(); dto.setGender("1".equals(pg) ? "男" : ("2".equals(pg) ? "女" : "未知")); } else { dto.setGender("未知"); } // 修改后 Integer genderEnum = raw.getGenderEnum(); if (genderEnum != null) { if (Integer.valueOf(1).equals(genderEnum)) { dto.setGender("男"); } else if (Integer.valueOf(2).equals(genderEnum)) { dto.setGender("女"); } else { dto.setGender("未知"); } } else { dto.setGender("未知"); } ``` ### Git 提交 - Commit: `7827e58a` - 分支: `develop` ### 测试建议 1. 更新 Git 代码 2. 编译部署后进行测试 3. 验证预约签到弹窗和挂号界面的性别字段是否一致 ### 状态 ✅ 代码修复完成,已提交到远程仓库 ⏳ 等待测试验证