|
|
|
@ -11,8 +11,8 @@ import com.supervision.pojo.vo.*;
|
|
|
|
|
import com.supervision.service.*;
|
|
|
|
|
import com.supervision.vo.ask.TreatmentPlanRecordVo;
|
|
|
|
|
import com.supervision.vo.manage.DiseaseTreatmentPlanResVo;
|
|
|
|
|
import com.supervision.vo.result.AncillaryRecordByResultDAO;
|
|
|
|
|
import com.supervision.vo.result.PhysicalRecordByResultDAO;
|
|
|
|
|
import com.supervision.vo.result.AncillaryRecordByResultDTO;
|
|
|
|
|
import com.supervision.vo.result.PhysicalRecordByResultDTO;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
@ -118,9 +118,9 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
|
// 鉴别诊断依据,来自于medicalRec的DifferentialDiagnosisCriteria
|
|
|
|
|
basisIdentificationResultResVO.setIdentificationDiagnosis(medicalRec.getDifferentialDiagnosisCriteria());
|
|
|
|
|
// 2.2 获取体格检查
|
|
|
|
|
List<PhysicalRecordByResultDAO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId);
|
|
|
|
|
List<PhysicalRecordByResultDTO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId);
|
|
|
|
|
List<BasisDiagnosisNodeResVO> nodeList = physicalRecordList.stream()
|
|
|
|
|
.filter(distinctPredicateNotNull(PhysicalRecordByResultDAO::getToolLocationName)).map(e -> {
|
|
|
|
|
.filter(distinctPredicateNotNull(PhysicalRecordByResultDTO::getToolLocationName)).map(e -> {
|
|
|
|
|
BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO();
|
|
|
|
|
nodeResVO.setType(1);
|
|
|
|
|
nodeResVO.setRecordName(e.getToolLocationName());
|
|
|
|
@ -130,9 +130,9 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
|
return nodeResVO;
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
// 2.3 获取辅助检查
|
|
|
|
|
List<AncillaryRecordByResultDAO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId);
|
|
|
|
|
List<AncillaryRecordByResultDTO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId);
|
|
|
|
|
List<BasisDiagnosisNodeResVO> collect = ancillaryRecordList.stream()
|
|
|
|
|
.filter(distinctPredicateNotNull(AncillaryRecordByResultDAO::getItemName)).map(e -> {
|
|
|
|
|
.filter(distinctPredicateNotNull(AncillaryRecordByResultDTO::getItemName)).map(e -> {
|
|
|
|
|
BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO();
|
|
|
|
|
nodeResVO.setCorrect(Objects.equals(e.getBasisIdentification(), e.getRecordBasisIdentificationFlag()) ? 1 : 0);
|
|
|
|
|
nodeResVO.setRecordId(e.getRecordId());
|
|
|
|
@ -151,9 +151,9 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
|
// 证实诊断依据,来自于medicalRec的ConfirmDiagnosisCriteria
|
|
|
|
|
basisConfirmResultResVO.setConfirmingDiagnosis(medicalRec.getConfirmDiagnosisCriteria());
|
|
|
|
|
// 2.2 获取体格检查的证实诊断依据
|
|
|
|
|
List<PhysicalRecordByResultDAO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId);
|
|
|
|
|
List<PhysicalRecordByResultDTO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(processId);
|
|
|
|
|
List<BasisDiagnosisNodeResVO> nodeList = physicalRecordList.stream()
|
|
|
|
|
.filter(distinctPredicateNotNull(PhysicalRecordByResultDAO::getToolLocationName)).map(e -> {
|
|
|
|
|
.filter(distinctPredicateNotNull(PhysicalRecordByResultDTO::getToolLocationName)).map(e -> {
|
|
|
|
|
BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO();
|
|
|
|
|
nodeResVO.setType(1);
|
|
|
|
|
nodeResVO.setRecordName(e.getToolLocationName());
|
|
|
|
@ -163,9 +163,9 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
// 2.3 获取辅助检查
|
|
|
|
|
List<AncillaryRecordByResultDAO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId);
|
|
|
|
|
List<AncillaryRecordByResultDTO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(processId);
|
|
|
|
|
List<BasisDiagnosisNodeResVO> collect = ancillaryRecordList.stream()
|
|
|
|
|
.filter(distinctPredicateNotNull(AncillaryRecordByResultDAO::getItemName)).map(e -> {
|
|
|
|
|
.filter(distinctPredicateNotNull(AncillaryRecordByResultDTO::getItemName)).map(e -> {
|
|
|
|
|
BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO();
|
|
|
|
|
nodeResVO.setCorrect(Objects.equals(e.getBasisConfirm(), e.getRecordBasisConfirmFlag()) ? 1 : 0);
|
|
|
|
|
nodeResVO.setRecordId(e.getRecordId());
|
|
|
|
@ -204,24 +204,24 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
|
basisDiagnosisNodeResVOS.addAll(qaList);
|
|
|
|
|
}
|
|
|
|
|
// 2.2 获取体格检查
|
|
|
|
|
List<PhysicalRecordByResultDAO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(process.getId());
|
|
|
|
|
List<PhysicalRecordByResultDTO> physicalRecordList = diagnosisPhysicalRecordService.queryPhysicalResultByProcessId(process.getId());
|
|
|
|
|
List<BasisDiagnosisNodeResVO> physicalList = physicalRecordList.stream()
|
|
|
|
|
.filter(distinctPredicateNotNull(PhysicalRecordByResultDAO::getToolLocationName)).map(e -> {
|
|
|
|
|
.filter(distinctPredicateNotNull(PhysicalRecordByResultDTO::getToolLocationName)).map(e -> {
|
|
|
|
|
BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO();
|
|
|
|
|
nodeResVO.setType(1);
|
|
|
|
|
nodeResVO.setRecordName(e.getToolLocationName());
|
|
|
|
|
nodeResVO.setRecordId(e.getRecordId());
|
|
|
|
|
// 如果是必做的,则是正确
|
|
|
|
|
nodeResVO.setCorrect(null == e.getRequireCheck() ? Integer.valueOf(0) : e.getRequireCheck());
|
|
|
|
|
// 如果是初步诊断依据
|
|
|
|
|
nodeResVO.setCorrect(e.getPrimarilyDiagnosisCriteriaFlag());
|
|
|
|
|
return nodeResVO;
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
basisDiagnosisNodeResVOS.addAll(physicalList);
|
|
|
|
|
// 2.3 获取辅助检查
|
|
|
|
|
List<AncillaryRecordByResultDAO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(process.getId());
|
|
|
|
|
List<AncillaryRecordByResultDTO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(process.getId());
|
|
|
|
|
List<BasisDiagnosisNodeResVO> collect = ancillaryRecordList.stream()
|
|
|
|
|
.filter(distinctPredicateNotNull(AncillaryRecordByResultDAO::getItemName)).map(e -> {
|
|
|
|
|
.filter(distinctPredicateNotNull(AncillaryRecordByResultDTO::getItemName)).map(e -> {
|
|
|
|
|
BasisDiagnosisNodeResVO nodeResVO = new BasisDiagnosisNodeResVO();
|
|
|
|
|
nodeResVO.setCorrect(null == e.getRequireCheck() ? Integer.valueOf(0) : e.getRequireCheck());
|
|
|
|
|
nodeResVO.setCorrect(e.getPrimarilyDiagnosisCriteriaFlag());
|
|
|
|
|
nodeResVO.setRecordId(e.getRecordId());
|
|
|
|
|
nodeResVO.setRecordName(e.getItemName());
|
|
|
|
|
nodeResVO.setType(2);
|
|
|
|
@ -272,7 +272,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
|
|
|
|
|
|
public static <K> Predicate<K> distinctPredicateNotNull(Function<K, Object> function) {
|
|
|
|
|
ConcurrentHashMap<Object, Boolean> map = new ConcurrentHashMap<>();
|
|
|
|
|
|
|
|
|
|
// 根据key进行去重,并排除为null的数据
|
|
|
|
|
return t -> null != function.apply(t) && null == map.putIfAbsent(function.apply(t), true);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|