From bc353e646ba199ed5f5718d674273aef0bbb2f2e Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Tue, 14 Nov 2023 14:22:46 +0800 Subject: [PATCH] =?UTF-8?q?web=20:=201.=E5=88=9D=E6=AD=A5=E8=AF=8A?= =?UTF-8?q?=E6=96=AD=E4=BE=9D=E6=8D=AE=E9=87=8D=E5=A4=8D=E9=A1=B9=E5=8E=BB?= =?UTF-8?q?=E9=87=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/AskDiagnosisResultServiceImpl.java | 43 +++++++++++++------ 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java index a5e4ac3a..026f61e4 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java @@ -2,6 +2,7 @@ package com.supervision.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.io.LineHandler; import com.supervision.exception.BusinessException; import com.supervision.model.*; import com.supervision.model.Process; @@ -14,6 +15,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.function.Predicate; import java.util.stream.Collectors; @Service @@ -97,7 +101,8 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService basisIdentificationResultResVO.setIdentificationDiagnosis(diseasesList.stream().map(Disease::getBasisIdentification).collect(Collectors.toList())); // 2.2 获取体格检查 List physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId); - List nodeList = physicalRecordList.stream().map(e -> { + List nodeList = physicalRecordList.stream() + .filter(distinctPredicateNotNull(PhysicalRecordByResultDAO::getToolLocationName)).map(e -> { BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); nodeResVO.setType(1); nodeResVO.setRecordName(e.getToolLocationName()); @@ -108,7 +113,8 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService }).collect(Collectors.toList()); // 2.3 获取辅助检查 List ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId); - List collect = ancillaryRecordList.stream().map(e -> { + List collect = ancillaryRecordList.stream() + .filter(distinctPredicateNotNull(AncillaryRecordByResultDAO::getItemName)).map(e -> { BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); nodeResVO.setCorrect(e.getBasisIdentification()); nodeResVO.setRecordId(e.getRecordId()); @@ -126,23 +132,23 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService BasisConfirmResultResVO basisConfirmResultResVO = new BasisConfirmResultResVO(); basisConfirmResultResVO.setConfirmingDiagnosis(diseasesList.stream().map(Disease::getConfirmingDiagnosis).collect(Collectors.toList())); // 2.2 获取体格检查 - HashSet physicalItemSet = new HashSet<>(); List physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId); - List nodeList = physicalRecordList.stream().map(e -> { + List nodeList = physicalRecordList.stream() + .filter(distinctPredicateNotNull(PhysicalRecordByResultDAO::getToolLocationName)).map(e -> { BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); nodeResVO.setType(1); nodeResVO.setRecordName(e.getToolLocationName()); nodeResVO.setRecordId(e.getRecordId()); // 如果是必做的,则是正确 - nodeResVO.setCorrect(physicalItemSet.add(e.getToolLocationName()) ? e.getBasisConfirm() : Integer.valueOf(2)); + nodeResVO.setCorrect(e.getBasisConfirm()); return nodeResVO; }).collect(Collectors.toList()); // 2.3 获取辅助检查 - physicalItemSet.clear(); List ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId); - List collect = ancillaryRecordList.stream().map(e -> { + List collect = ancillaryRecordList.stream() + .filter(distinctPredicateNotNull(AncillaryRecordByResultDAO::getItemName)).map(e -> { BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); - nodeResVO.setCorrect(physicalItemSet.add(e.getItemName()) ? e.getBasisConfirm() : Integer.valueOf(2)); + nodeResVO.setCorrect(e.getBasisConfirm()); nodeResVO.setRecordId(e.getRecordId()); nodeResVO.setRecordName(e.getItemName()); nodeResVO.setType(2); @@ -179,24 +185,24 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService basisDiagnosisNodeResVOS.addAll(qaList); } // 2.2 获取体格检查 - HashSet physicalItemSet = new HashSet<>(); List physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId); - List physicalList = physicalRecordList.stream().map(e -> { + List physicalList = physicalRecordList.stream() + .filter(distinctPredicateNotNull(PhysicalRecordByResultDAO::getToolLocationName)).map(e -> { BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); nodeResVO.setType(1); nodeResVO.setRecordName(e.getToolLocationName()); nodeResVO.setRecordId(e.getRecordId()); // 如果是必做的,则是正确 - nodeResVO.setCorrect(physicalItemSet.add(e.getToolLocationName()) ? e.getRequireCheck() : Integer.valueOf(2)); + nodeResVO.setCorrect(e.getRequireCheck()); return nodeResVO; }).collect(Collectors.toList()); basisDiagnosisNodeResVOS.addAll(physicalList); // 2.3 获取辅助检查 - physicalItemSet.clear(); List ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId); - List collect = ancillaryRecordList.stream().map(e -> { + List collect = ancillaryRecordList.stream() + .filter(distinctPredicateNotNull(AncillaryRecordByResultDAO::getItemName)).map(e -> { BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO(); - nodeResVO.setCorrect(physicalItemSet.add(e.getItemName()) ? e.getRequireCheck() : Integer.valueOf(2)); + nodeResVO.setCorrect(e.getRequireCheck()); nodeResVO.setRecordId(e.getRecordId()); nodeResVO.setRecordName(e.getItemName()); nodeResVO.setType(2); @@ -236,4 +242,13 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService }).collect(Collectors.toList())); return expertDiagnosisResultResVO; } + + + public static Predicate distinctPredicateNotNull(Function function){ + ConcurrentHashMap map = new ConcurrentHashMap<>(); + + return t-> null != function.apply(t) && null == map.putIfAbsent(function.apply(t), true); + + } + }