Files
his/BUG_355_FIX_NOTES.md
关羽 098aae5aef Fix: #333/#335/#336 添加医嘱保存参数校验
1. Bug #333/#335/#336: 在 saveAdvice 方法入口添加参数非空校验
   - adviceSaveParam 为 null 时返回友好错误提示
   - adviceSaveList 为 null 或空时返回友好错误提示
2. 更新 Debug 日志标签为 BugFix#333/335/336
3. 增强异常场景的用户提示

修复人:关羽
修复日期:2026-04-08
2026-04-08 23:12:24 +08:00

1.8 KiB
Raw Permalink Blame History

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

代码变更

// 修改前
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. 验证预约签到弹窗和挂号界面的性别字段是否一致

状态

代码修复完成,已提交到远程仓库
等待测试验证