refactor(surgery): 优化手术服务中医生信息查询逻辑

- 引入 IPractitionerService 服务替代 SysUserService 查询医生信息
- 修改手术列表查询中主刀医生、麻醉医生、助手和护士的姓名填充逻辑
- 使用 Practitioner 实体的 name 字段替代 SysUser 的 nickName 字段
- 更新 SQL 查询使用 COALESCE 函数合并数据库中存储的姓名和实时查询结果
- 添加多个 LEFT JOIN 查询以支持手术相关医生和科室信息的实时获取
- 优化申请医生和申请科室名称的查询机制,支持数据回退逻辑
This commit is contained in:
2026-01-06 16:40:57 +08:00
parent 3091fc7337
commit 09ca077559
2 changed files with 37 additions and 27 deletions

View File

@@ -87,6 +87,9 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService {
@Resource
private IOperatingRoomService operatingRoomService;
@Resource
private com.openhis.administration.service.IPractitionerService practitionerService;
/**
* 分页查询手术列表
*
@@ -425,43 +428,43 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService {
}
}
// 填充主刀医生姓名
// 填充主刀医生姓名使用practitionerId查询Practitioner表
if (surgery.getMainSurgeonId() != null) {
SysUser mainSurgeon = sysUserService.selectUserById(surgery.getMainSurgeonId());
com.openhis.administration.domain.Practitioner mainSurgeon = practitionerService.getById(surgery.getMainSurgeonId());
if (mainSurgeon != null) {
surgery.setMainSurgeonName(mainSurgeon.getNickName());
surgery.setMainSurgeonName(mainSurgeon.getName());
}
}
// 填充麻醉医生姓名
// 填充麻醉医生姓名使用practitionerId查询Practitioner表
if (surgery.getAnesthetistId() != null) {
SysUser anesthetist = sysUserService.selectUserById(surgery.getAnesthetistId());
com.openhis.administration.domain.Practitioner anesthetist = practitionerService.getById(surgery.getAnesthetistId());
if (anesthetist != null) {
surgery.setAnesthetistName(anesthetist.getNickName());
surgery.setAnesthetistName(anesthetist.getName());
}
}
// 填充助手1姓名
// 填充助手1姓名使用practitionerId查询Practitioner表
if (surgery.getAssistant1Id() != null) {
SysUser assistant1 = sysUserService.selectUserById(surgery.getAssistant1Id());
com.openhis.administration.domain.Practitioner assistant1 = practitionerService.getById(surgery.getAssistant1Id());
if (assistant1 != null) {
surgery.setAssistant1Name(assistant1.getNickName());
surgery.setAssistant1Name(assistant1.getName());
}
}
// 填充助手2姓名
// 填充助手2姓名使用practitionerId查询Practitioner表
if (surgery.getAssistant2Id() != null) {
SysUser assistant2 = sysUserService.selectUserById(surgery.getAssistant2Id());
com.openhis.administration.domain.Practitioner assistant2 = practitionerService.getById(surgery.getAssistant2Id());
if (assistant2 != null) {
surgery.setAssistant2Name(assistant2.getNickName());
surgery.setAssistant2Name(assistant2.getName());
}
}
// 填充巡回护士姓名
// 填充巡回护士姓名使用practitionerId查询Practitioner表
if (surgery.getScrubNurseId() != null) {
SysUser scrubNurse = sysUserService.selectUserById(surgery.getScrubNurseId());
com.openhis.administration.domain.Practitioner scrubNurse = practitionerService.getById(surgery.getScrubNurseId());
if (scrubNurse != null) {
surgery.setScrubNurseName(scrubNurse.getNickName());
surgery.setScrubNurseName(scrubNurse.getName());
}
}
@@ -489,11 +492,11 @@ public class SurgeryAppServiceImpl implements ISurgeryAppService {
}
}
// 填充申请医生姓名(如果还没有设置)
// 填充申请医生姓名(如果还没有设置) - 使用practitionerId查询Practitioner表
if (surgery.getApplyDoctorId() != null && (surgery.getApplyDoctorName() == null || surgery.getApplyDoctorName().isEmpty())) {
SysUser applyDoctor = sysUserService.selectUserById(surgery.getApplyDoctorId());
com.openhis.administration.domain.Practitioner applyDoctor = practitionerService.getById(surgery.getApplyDoctorId());
if (applyDoctor != null) {
surgery.setApplyDoctorName(applyDoctor.getNickName());
surgery.setApplyDoctorName(applyDoctor.getName());
}
}