refactor(surgery): 优化手术服务中医生信息查询逻辑
- 引入 IPractitionerService 服务替代 SysUserService 查询医生信息 - 修改手术列表查询中主刀医生、麻醉医生、助手和护士的姓名填充逻辑 - 使用 Practitioner 实体的 name 字段替代 SysUser 的 nickName 字段 - 更新 SQL 查询使用 COALESCE 函数合并数据库中存储的姓名和实时查询结果 - 添加多个 LEFT JOIN 查询以支持手术相关医生和科室信息的实时获取 - 优化申请医生和申请科室名称的查询机制,支持数据回退逻辑
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user