fix: BugFix#338 门诊划价新增时校验就诊状态(患者安全)
- 在保存/签发医嘱前校验就诊状态 - 未接诊患者禁止划价/保存医嘱 - 防止医疗差错和数据不一致 修复范围: - DoctorStationAdviceAppServiceImpl.saveAdvice() - 添加就诊状态校验逻辑 - 状态 1001(挂号) 禁止划价 - 状态 1002/1003/1004(已接诊/已收费/已完成) 允许划价
This commit is contained in:
@@ -561,6 +561,24 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
return R.fail(null, "无法获取患者信息,请重新选择患者");
|
||||
}
|
||||
}
|
||||
|
||||
// 🔧 BugFix#338: 门诊划价新增时校验就诊状态和诊断记录(患者安全)
|
||||
// 仅对新增/修改操作进行校验,删除操作不需要
|
||||
if (!DbOpType.DELETE.getCode().equals(adviceSaveDto.getDbOpType())) {
|
||||
// 1. 校验就诊状态:必须是已接诊状态
|
||||
Encounter encounterCheck = iEncounterService.getById(adviceSaveDto.getEncounterId());
|
||||
if (encounterCheck != null) {
|
||||
// 就诊状态:1001=挂号,1002=已接诊,1003=已收费,1004=已完成
|
||||
if (encounterCheck.getEncounterStatusEnum() != null &&
|
||||
encounterCheck.getEncounterStatusEnum() != 1002 &&
|
||||
encounterCheck.getEncounterStatusEnum() != 1003 &&
|
||||
encounterCheck.getEncounterStatusEnum() != 1004) {
|
||||
log.error("BugFix#338: 患者未接诊,禁止划价/保存医嘱:encounterId={}, status={}",
|
||||
adviceSaveDto.getEncounterId(), encounterCheck.getEncounterStatusEnum());
|
||||
return R.fail(null, "患者尚未接诊,无法保存医嘱。请先完成接诊操作!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 药品(前端adviceType=1)
|
||||
|
||||
Reference in New Issue
Block a user