|
|
|
@ -197,29 +197,41 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public void confirmPrimaryByAskEnd(List<PrimaryConfirmReqVO> reqVOList) {
|
|
|
|
|
Optional<PrimaryConfirmReqVO> any = reqVOList.stream().findAny();
|
|
|
|
|
public void confirmPrimaryByAskEnd(PrimaryConfirmReqVO reqVO) {
|
|
|
|
|
List<PrimaryConfirmNodeReqVO> reqVOList = reqVO.getPrimaryConfirmList();
|
|
|
|
|
Optional<PrimaryConfirmNodeReqVO> any = reqVOList.stream().findAny();
|
|
|
|
|
if (!any.isPresent()) {
|
|
|
|
|
throw new BusinessException("初步诊断不能为空");
|
|
|
|
|
}
|
|
|
|
|
String processId = any.get().getProcessId();
|
|
|
|
|
// 校验,如果没有填写病历,那么就不允许诊毕
|
|
|
|
|
Integer count = processMedicalService.lambdaQuery().eq(ProcessMedical::getProcessId, processId).count();
|
|
|
|
|
if (count < 1) {
|
|
|
|
|
throw new BusinessException("电子病历未填写,请填写电子病例后诊毕");
|
|
|
|
|
// 如果 != 1 ,不是暂存,那么就校验电子病历是否填写
|
|
|
|
|
if (ObjectUtil.isEmpty(reqVO.getTempSaveFlag()) || 1 != reqVO.getTempSaveFlag()){
|
|
|
|
|
// 校验,如果没有填写病历,那么就不允许诊毕
|
|
|
|
|
Integer count = processMedicalService.lambdaQuery().eq(ProcessMedical::getProcessId, reqVO.getProcessId()).count();
|
|
|
|
|
if (count < 1) {
|
|
|
|
|
throw new BusinessException("电子病历未填写,请填写电子病例后诊毕");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (PrimaryConfirmReqVO reqVO : reqVOList) {
|
|
|
|
|
if (ObjectUtil.isEmpty(reqVO.getExcludeFlag()) && 0 != reqVO.getExcludeFlag() && 1 != reqVO.getExcludeFlag()) {
|
|
|
|
|
throw new BusinessException("是否排除不能为空或诊断不正确");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (PrimaryConfirmNodeReqVO node : reqVOList) {
|
|
|
|
|
// 如果 != 1 ,不是暂存,那么就校验初步诊断是否填写
|
|
|
|
|
if (ObjectUtil.isEmpty(reqVO.getTempSaveFlag()) || 1 != reqVO.getTempSaveFlag()){
|
|
|
|
|
if (ObjectUtil.isEmpty(node.getExcludeFlag()) && 0 != node.getExcludeFlag() && 1 != node.getExcludeFlag()) {
|
|
|
|
|
throw new BusinessException("是否排除不能为空或诊断不正确");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 修改初步诊断是否被排除
|
|
|
|
|
diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getExcludeFlag, reqVO.getExcludeFlag())
|
|
|
|
|
.eq(DiagnosisPrimary::getId, reqVO.getPrimaryId()).update();
|
|
|
|
|
diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getExcludeFlag, node.getExcludeFlag())
|
|
|
|
|
.eq(DiagnosisPrimary::getId, node.getPrimaryId()).update();
|
|
|
|
|
// 保存证实诊断依据
|
|
|
|
|
saveDiagnosticBasis(reqVO.getDiagnosticBasisList());
|
|
|
|
|
saveDiagnosticBasis(node.getDiagnosticBasisList());
|
|
|
|
|
}
|
|
|
|
|
// 如果 != 1 ,说明是诊毕,这时就诊毕
|
|
|
|
|
if (ObjectUtil.isEmpty(reqVO.getTempSaveFlag()) || 1 != reqVO.getTempSaveFlag()) {
|
|
|
|
|
// 然后将process的状态改为诊毕
|
|
|
|
|
processService.lambdaUpdate().set(Process::getStatus, 1).eq(Process::getId, reqVO.getProcessId()).update();
|
|
|
|
|
}
|
|
|
|
|
// 然后将process的状态改为诊毕
|
|
|
|
|
processService.lambdaUpdate().set(Process::getStatus, 1).eq(Process::getId, processId).update();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void saveDiagnosticBasis(List<DiagnosticBasisForPrimaryReqVO> diagnosticBasisList) {
|
|
|
|
|