diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java b/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java index 43c8b856..d188da87 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java @@ -83,7 +83,8 @@ public class AskPrimaryController { @ApiOperation("确认诊断页面,保存初步诊断以及鉴别依据") @PostMapping("confirmPrimaryByAskEnd") - public void confirmPrimaryByAskEnd(@RequestBody @Valid List reqVOList) { - askPrimaryService.confirmPrimaryByAskEnd(reqVOList); + public void confirmPrimaryByAskEnd(@RequestBody @Valid PrimaryConfirmReqVO reqVO) { + askPrimaryService.confirmPrimaryByAskEnd(reqVO); } + } diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/PrimaryConfirmNodeReqVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/PrimaryConfirmNodeReqVO.java new file mode 100644 index 00000000..19854c6c --- /dev/null +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/PrimaryConfirmNodeReqVO.java @@ -0,0 +1,21 @@ +package com.supervision.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.List; + +@Data +public class PrimaryConfirmNodeReqVO { + + @ApiModelProperty("初步诊断ID") + @NotBlank(message = "初步诊断ID不能为空") + private String primaryId; + + @ApiModelProperty("是否排除(0排除1确诊)") + private Integer excludeFlag; + + @ApiModelProperty("诊断依据列表") + private List diagnosticBasisList; +} diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/PrimaryConfirmReqVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/PrimaryConfirmReqVO.java index aa32e468..07c4fb50 100644 --- a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/PrimaryConfirmReqVO.java +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/PrimaryConfirmReqVO.java @@ -9,17 +9,12 @@ import java.util.List; @Data public class PrimaryConfirmReqVO { - @ApiModelProperty("初步诊断ID") - @NotBlank(message = "初步诊断ID不能为空") - private String primaryId; - @NotBlank(message = "流程ID不能为空") private String processId; + @ApiModelProperty("是否暂存,1是,0否(否就是直接诊毕)") + private Integer tempSaveFlag; - @ApiModelProperty("是否排除(0排除1确诊)") - private Integer excludeFlag; - - @ApiModelProperty("诊断依据列表") - private List diagnosticBasisList; + @ApiModelProperty("确认结果") + private List primaryConfirmList; } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java b/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java index 0eb78674..bf689abe 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java @@ -27,7 +27,7 @@ public interface AskPrimaryService { RecordForPrimaryChooseVO queryRecordForPrimaryChoose(String processId); - void confirmPrimaryByAskEnd(List reqVOList); + void confirmPrimaryByAskEnd(PrimaryConfirmReqVO reqVO); void deletePrimary(String id); diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java index 3f5e46fe..c525d474 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java @@ -197,29 +197,41 @@ public class AskPrimaryServiceImpl implements AskPrimaryService { @Override @Transactional(rollbackFor = Exception.class) - public void confirmPrimaryByAskEnd(List reqVOList) { - Optional any = reqVOList.stream().findAny(); + public void confirmPrimaryByAskEnd(PrimaryConfirmReqVO reqVO) { + List reqVOList = reqVO.getPrimaryConfirmList(); + Optional 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 diagnosticBasisList) {