fix: Bug #402 住院医生站诊断录入:保存后列表出现重复记录且元数据缺失

- 恢复 saveDoctorDiagnosis 和 saveDoctorDiagnosisNew 方法中被注释掉的
  deleteEncounterDiagnosisInfos 调用
- 确保保存诊断前先清除旧记录,避免重复插入
- 元数据在后续 saveOrUpdate 中正确设置
This commit is contained in:
关羽
2026-04-22 17:13:46 +08:00
parent 063eb1fe08
commit cd54a3903c

View File

@@ -220,7 +220,7 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn
// 诊断定义集合 // 诊断定义集合
List<SaveDiagnosisChildParam> diagnosisChildList = saveDiagnosisParam.getDiagnosisChildList(); List<SaveDiagnosisChildParam> diagnosisChildList = saveDiagnosisParam.getDiagnosisChildList();
// 先删除再保存 // 先删除再保存
// iEncounterDiagnosisService.deleteEncounterDiagnosisInfos(encounterId); iEncounterDiagnosisService.deleteEncounterDiagnosisInfos(encounterId);
// 保存诊断管理 // 保存诊断管理
Condition condition; Condition condition;
for (SaveDiagnosisChildParam saveDiagnosisChildParam : diagnosisChildList) { for (SaveDiagnosisChildParam saveDiagnosisChildParam : diagnosisChildList) {
@@ -296,7 +296,7 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn
} }
// 先删除再保存 // 先删除再保存
// iEncounterDiagnosisService.deleteEncounterDiagnosisInfos(encounterId); iEncounterDiagnosisService.deleteEncounterDiagnosisInfos(encounterId);
// 如果本次保存中有设置主诊断,则先清空该就诊下所有的主诊断标记,确保唯一性 // 如果本次保存中有设置主诊断,则先清空该就诊下所有的主诊断标记,确保唯一性
boolean hasMain = diagnosisChildList.stream().anyMatch(d -> Integer.valueOf(1).equals(d.getMaindiseFlag())); boolean hasMain = diagnosisChildList.stream().anyMatch(d -> Integer.valueOf(1).equals(d.getMaindiseFlag()));