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 65094f15..92bcde3a 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 @@ -12,6 +12,7 @@ import com.supervision.service.AskPrimaryService; import com.supervision.vo.ask.DiagnosisPrimaryVO; import com.supervision.vo.ask.ModifyPrimaryDiseaseInfoReqVO; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; @@ -59,11 +60,7 @@ public class AskPrimaryController { } - @ApiOperation("诊毕时,保存初步诊断以及鉴别依据") - @PostMapping("confirmPrimaryByAskEnd") - public void confirmPrimaryByAskEnd(@RequestBody List reqVOList) { - askPrimaryService.confirmPrimaryByAskEnd(reqVOList); - } + @ApiOperation("删除初步诊断") @GetMapping("deletePrimary") @@ -71,9 +68,16 @@ public class AskPrimaryController { askPrimaryService.deletePrimary(id); } - @ApiOperation("查询初步诊断需要填写的诊断依据") + @ApiOperation("诊毕时,查询初步诊断关联的诊断项") @GetMapping("queryDiagnosticBasisListForPrimary") - public List queryDiagnosticBasisListForPrimary(@NotBlank(message = "流程ID不能为空") String processId) { - return askPrimaryService.queryDiagnosticBasisListForPrimary(processId); + public List queryDiagnosticBasisListForPrimary(@ApiParam(value = "流程ID",required = true) @NotBlank(message = "流程ID不能为空") String processId, + @ApiParam(value = "初步诊断ID,不填查所有",required = false) String primaryId) { + return askPrimaryService.queryDiagnosticBasisListForPrimary(processId,primaryId); + } + + @ApiOperation("诊毕时,保存初步诊断以及鉴别依据") + @PostMapping("confirmPrimaryByAskEnd") + public void confirmPrimaryByAskEnd(@RequestBody List reqVOList) { + askPrimaryService.confirmPrimaryByAskEnd(reqVOList); } } 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 26bc49cb..ae7b01b8 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 @@ -8,10 +8,8 @@ import java.util.List; @Data public class PrimaryConfirmReqVO { - /** - * 主键 - */ - private String id; + @ApiModelProperty("初步诊断ID") + private String primaryId; private String processId; 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 7d9eabd3..e7753b41 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 @@ -29,6 +29,6 @@ public interface AskPrimaryService { void deletePrimary(String id); - List queryDiagnosticBasisListForPrimary(String processId); + List queryDiagnosticBasisListForPrimary(String processId,String primaryId); } 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 79c0a8e0..63d06d77 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 @@ -158,7 +158,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService { for (PrimaryConfirmReqVO reqVO : reqVOList) { // 修改初步诊断是否被排除 diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getExcludeFlag, reqVO.getExcludeFlag()) - .eq(DiagnosisPrimary::getId, reqVO.getId()).update(); + .eq(DiagnosisPrimary::getId, reqVO.getPrimaryId()).update(); // 保存证实诊断依据 saveDiagnosticBasis(reqVO.getDiagnosticBasisList()); } @@ -211,7 +211,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService { * @return 结果 */ @Override - public List queryDiagnosticBasisListForPrimary(String processId) { + public List queryDiagnosticBasisListForPrimary(String processId,String primaryId) { List resList = diagnosisPrimaryService.queryDiagnosticBasisListForPrimary(processId); if (CollUtil.isEmpty(resList)) { return resList; @@ -221,22 +221,39 @@ public class AskPrimaryServiceImpl implements AskPrimaryService { Map diseaseNameMap = diagnosisPrimaryVOS.stream().collect(Collectors.toMap(DiagnosisPrimaryVO::getId, DiagnosisPrimaryVO::getPrimaryDiseaseName)); // 首先根据诊断记录,找到对应的关联关系 Set relationIdSet = resList.stream().map(DiagnosticBasisForPrimaryResVO::getId).collect(Collectors.toSet()); - List relationList = diagnosisPrimaryRelationService.lambdaQuery().in(DiagnosisPrimaryRelation::getRelationId, relationIdSet).list(); + // 查询诊疗记录对应的初步诊断关系 + List relationList = diagnosisPrimaryRelationService.lambdaQuery() + .in(DiagnosisPrimaryRelation::getRelationId, relationIdSet) + .list(); // 根据relationId进行分组 Map> relationMap = relationList.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getRelationId)); + + List result = new ArrayList<>(); for (DiagnosticBasisForPrimaryResVO node : resList) { List relationPrimaryList = relationMap.get(node.getId()); Set primarySet = relationPrimaryList.stream().map(DiagnosisPrimaryRelation::getPrimaryId).collect(Collectors.toSet()); + if (CollUtil.isNotEmpty(primarySet)) { + // 如果初步诊断ID的参数不为空,那么说明只查某一个初步诊断的数据 + if (StrUtil.isNotBlank(primaryId)){ + if (primarySet.contains(primaryId)){ + // 如果有,就只保留这一个初步诊断依据的 + primarySet.removeIf(e -> !e.equals(primaryId)); + }else { + // 如果没有,就直接跳过 + continue; + } + } List diseaseNameList = new ArrayList<>(); primarySet.forEach(e -> diseaseNameList.add(diseaseNameMap.get(e))); node.setPrimaryIdList(new ArrayList<>(primarySet)); node.setPrimaryName(StrUtil.join(";", diseaseNameList)); + result.add(node); } } - return resList; + return result; }