|
|
@ -187,23 +187,23 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
List<AncillaryRecordByResultDTO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(process.getId());
|
|
|
|
List<AncillaryRecordByResultDTO> ancillaryRecordList = diagnosisAncillaryRecordService.queryAncillaryResultByProcessId(process.getId());
|
|
|
|
List<DiseaseAncillaryResVo> diseaseAncillaryResVos = diseaseAncillaryService.queryListByDiseaseId(medicalRec.getDiseaseId());
|
|
|
|
List<DiseaseAncillaryResVo> diseaseAncillaryResVos = diseaseAncillaryService.queryListByDiseaseId(medicalRec.getDiseaseId());
|
|
|
|
|
|
|
|
|
|
|
|
basisDiagnosisNodeResVOS.addAll(ancillaryRecordMergeListsBasisPrimary(ancillaryRecordList,diseaseAncillaryResVos));
|
|
|
|
basisDiagnosisNodeResVOS.addAll(ancillaryRecordMergeListsBasisPrimary(ancillaryRecordList, diseaseAncillaryResVos));
|
|
|
|
|
|
|
|
|
|
|
|
basisPrimaryResultResVO.setNodeList(basisDiagnosisNodeResVOS);
|
|
|
|
basisPrimaryResultResVO.setNodeList(basisDiagnosisNodeResVOS);
|
|
|
|
return basisPrimaryResultResVO;
|
|
|
|
return basisPrimaryResultResVO;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private List<BasisDiagnosisNodeResVO> qaRecordMergeListsBasisPrimary(List<DiagnosisQaRecord> qaRecordList, List<AskPatientAnswer> list){
|
|
|
|
private List<BasisDiagnosisNodeResVO> qaRecordMergeListsBasisPrimary(List<DiagnosisQaRecord> qaRecordList, List<AskPatientAnswer> list) {
|
|
|
|
|
|
|
|
|
|
|
|
BiFunction<DiagnosisQaRecord,AskPatientAnswer,Boolean> biFunction = (qaRecord, qa) -> qa.getLibraryQuestionId().equals(qaRecord.getQuestionLibraryId());
|
|
|
|
BiFunction<DiagnosisQaRecord, AskPatientAnswer, Boolean> biFunction = (qaRecord, qa) -> qa.getLibraryQuestionId().equals(qaRecord.getQuestionLibraryId());
|
|
|
|
|
|
|
|
|
|
|
|
list = list.stream().filter(item -> !Integer.valueOf("0").equals(item.getAnswerType())).collect(Collectors.toList());
|
|
|
|
list = list.stream().filter(item -> !Integer.valueOf("0").equals(item.getAnswerType())).collect(Collectors.toList());
|
|
|
|
Set<String> requireCheckIdSet = list.stream().map(AskPatientAnswer::getId).collect(Collectors.toSet());
|
|
|
|
Set<String> requireCheckIdSet = list.stream().map(AskPatientAnswer::getId).collect(Collectors.toSet());
|
|
|
|
|
|
|
|
|
|
|
|
Function<DiagnosisQaRecord,BasisDiagnosisNodeResVO> t1 = r -> new BasisDiagnosisNodeResVO(0,r.getQuestion(),r.getId(),
|
|
|
|
Function<DiagnosisQaRecord, BasisDiagnosisNodeResVO> t1 = r -> new BasisDiagnosisNodeResVO(0, r.getQuestion(), r.getId(),
|
|
|
|
requireCheckIdSet.contains(r.getAnswerId()) ? 1 : 0);
|
|
|
|
requireCheckIdSet.contains(r.getAnswerId()) ? 1 : 0);
|
|
|
|
Function<AskPatientAnswer,BasisDiagnosisNodeResVO> t2 = item -> new BasisDiagnosisNodeResVO(0, item.getQuestion(), item.getId(), 0);
|
|
|
|
Function<AskPatientAnswer, BasisDiagnosisNodeResVO> t2 = item -> new BasisDiagnosisNodeResVO(0, item.getQuestion(), item.getId(), 0);
|
|
|
|
|
|
|
|
|
|
|
|
return mergeListsBasedOnCondition(qaRecordList, list, biFunction, t1, t2);
|
|
|
|
return mergeListsBasedOnCondition(qaRecordList, list, biFunction, t1, t2);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -211,45 +211,46 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
|
|
|
|
|
|
|
|
private List<BasisDiagnosisNodeResVO> physicalRecordMergeLists(List<PhysicalRecordByResultDTO> physicalRecordList,
|
|
|
|
private List<BasisDiagnosisNodeResVO> physicalRecordMergeLists(List<PhysicalRecordByResultDTO> physicalRecordList,
|
|
|
|
List<DiseasePhysicalResVo> diseasePhysicalResVos,
|
|
|
|
List<DiseasePhysicalResVo> diseasePhysicalResVos,
|
|
|
|
Function<PhysicalRecordByResultDTO,Integer> functionCorrect){
|
|
|
|
Function<PhysicalRecordByResultDTO, Integer> functionCorrect) {
|
|
|
|
physicalRecordList = physicalRecordList.stream()
|
|
|
|
physicalRecordList = physicalRecordList.stream()
|
|
|
|
.filter(distinctPredicateNotNull(PhysicalRecordByResultDTO::getToolLocationName)).collect(Collectors.toList());
|
|
|
|
.filter(distinctPredicateNotNull(PhysicalRecordByResultDTO::getToolLocationName)).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
|
|
// 工具id相等且 位置为空或者位置id相等
|
|
|
|
// 工具id相等且 位置为空或者位置id相等
|
|
|
|
BiFunction<PhysicalRecordByResultDTO,DiseasePhysicalResVo,Boolean> biFunction = (r, diseasePhysical) -> StrUtil.equals(diseasePhysical.getToolId(),r.getToolId())
|
|
|
|
BiFunction<PhysicalRecordByResultDTO, DiseasePhysicalResVo, Boolean> biFunction = (r, diseasePhysical) -> StrUtil.equals(diseasePhysical.getToolId(), r.getToolId())
|
|
|
|
&& ((StrUtil.isEmpty(diseasePhysical.getLocationId()) && StrUtil.isEmpty(diseasePhysical.getLocationId()))
|
|
|
|
&& ((StrUtil.isEmpty(diseasePhysical.getLocationId()) && StrUtil.isEmpty(diseasePhysical.getLocationId()))
|
|
|
|
|| StrUtil.equals(diseasePhysical.getLocationId(),(r.getLocationId())));
|
|
|
|
|| StrUtil.equals(diseasePhysical.getLocationId(), (r.getLocationId())));
|
|
|
|
|
|
|
|
|
|
|
|
Function<PhysicalRecordByResultDTO,BasisDiagnosisNodeResVO> t1 = r -> new BasisDiagnosisNodeResVO(1, r.getToolLocationName(),
|
|
|
|
Function<PhysicalRecordByResultDTO, BasisDiagnosisNodeResVO> t1 = r -> new BasisDiagnosisNodeResVO(1, r.getToolLocationName(),
|
|
|
|
r.getRecordId(), functionCorrect.apply(r));
|
|
|
|
r.getRecordId(), functionCorrect.apply(r));
|
|
|
|
|
|
|
|
|
|
|
|
// 这里的recordId只为了展示用diseasePhysical.getId()代替。只是为展示使用correct的值固定为不正确
|
|
|
|
// 这里的recordId只为了展示用diseasePhysical.getId()代替。只是为展示使用correct的值固定为不正确
|
|
|
|
Function<DiseasePhysicalResVo,BasisDiagnosisNodeResVO> t2 = diseasePhysical -> new BasisDiagnosisNodeResVO(1,
|
|
|
|
Function<DiseasePhysicalResVo, BasisDiagnosisNodeResVO> t2 = diseasePhysical -> new BasisDiagnosisNodeResVO(1,
|
|
|
|
diseasePhysical.getToolName() + (StrUtil.isEmpty(diseasePhysical.getLocationName())? "" : "|"+ diseasePhysical.getLocationName()),
|
|
|
|
diseasePhysical.getToolName() + (StrUtil.isEmpty(diseasePhysical.getLocationName()) ? "" : "|" + diseasePhysical.getLocationName()),
|
|
|
|
diseasePhysical.getId(), 0);
|
|
|
|
diseasePhysical.getId(), 0);
|
|
|
|
|
|
|
|
|
|
|
|
return mergeListsBasedOnCondition(physicalRecordList, diseasePhysicalResVos,biFunction, t1, t2);
|
|
|
|
return mergeListsBasedOnCondition(physicalRecordList, diseasePhysicalResVos, biFunction, t1, t2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private List<BasisDiagnosisNodeResVO> ancillaryRecordMergeLists(List<AncillaryRecordByResultDTO> ancillaryRecordList,
|
|
|
|
private List<BasisDiagnosisNodeResVO> ancillaryRecordMergeLists(List<AncillaryRecordByResultDTO> ancillaryRecordList,
|
|
|
|
List<DiseaseAncillaryResVo> diseaseAncillaryResVos,
|
|
|
|
List<DiseaseAncillaryResVo> diseaseAncillaryResVos,
|
|
|
|
Function<AncillaryRecordByResultDTO,Integer> functionCorrect){
|
|
|
|
Function<AncillaryRecordByResultDTO, Integer> functionCorrect) {
|
|
|
|
ancillaryRecordList = ancillaryRecordList.stream()
|
|
|
|
ancillaryRecordList = ancillaryRecordList.stream()
|
|
|
|
.filter(distinctPredicateNotNull(AncillaryRecordByResultDTO::getItemName)).collect(Collectors.toList());
|
|
|
|
.filter(distinctPredicateNotNull(AncillaryRecordByResultDTO::getItemName)).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
|
|
BiFunction<AncillaryRecordByResultDTO,DiseaseAncillaryResVo,Boolean> biFunction =(r, diseaseAncillary) -> StrUtil.equals(diseaseAncillary.getItemId(),r.getItemId());
|
|
|
|
BiFunction<AncillaryRecordByResultDTO, DiseaseAncillaryResVo, Boolean> biFunction = (r, diseaseAncillary) -> StrUtil.equals(diseaseAncillary.getItemId(), r.getItemId());
|
|
|
|
|
|
|
|
|
|
|
|
Function<AncillaryRecordByResultDTO,BasisDiagnosisNodeResVO> t1 = record -> new BasisDiagnosisNodeResVO(2, record.getItemName(), record.getRecordId(),
|
|
|
|
Function<AncillaryRecordByResultDTO, BasisDiagnosisNodeResVO> t1 = record -> new BasisDiagnosisNodeResVO(2, record.getItemName(), record.getRecordId(),
|
|
|
|
functionCorrect.apply(record));
|
|
|
|
functionCorrect.apply(record));
|
|
|
|
|
|
|
|
|
|
|
|
// 这里的recordId只为了展示用diseaseAncillary.getId()代替。只是为展示使用correct的值固定为不正确
|
|
|
|
// 这里的recordId只为了展示用diseaseAncillary.getId()代替。只是为展示使用correct的值固定为不正确
|
|
|
|
Function<DiseaseAncillaryResVo,BasisDiagnosisNodeResVO> t2 = diseaseAncillary -> new BasisDiagnosisNodeResVO(2, diseaseAncillary.getItemName(),
|
|
|
|
Function<DiseaseAncillaryResVo, BasisDiagnosisNodeResVO> t2 = diseaseAncillary -> new BasisDiagnosisNodeResVO(2, diseaseAncillary.getItemName(),
|
|
|
|
diseaseAncillary.getId(), 0);
|
|
|
|
diseaseAncillary.getId(), 0);
|
|
|
|
|
|
|
|
|
|
|
|
return mergeListsBasedOnCondition(ancillaryRecordList, diseaseAncillaryResVos,biFunction, t1, t2);
|
|
|
|
return mergeListsBasedOnCondition(ancillaryRecordList, diseaseAncillaryResVos, biFunction, t1, t2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private List<BasisDiagnosisNodeResVO> physicalRecordMergeListsBasisPrimary(List<PhysicalRecordByResultDTO> physicalRecordList,
|
|
|
|
private List<BasisDiagnosisNodeResVO> physicalRecordMergeListsBasisPrimary(List<PhysicalRecordByResultDTO> physicalRecordList,
|
|
|
|
List<DiseasePhysicalResVo> diseasePhysicalResVos){
|
|
|
|
List<DiseasePhysicalResVo> diseasePhysicalResVos) {
|
|
|
|
|
|
|
|
|
|
|
|
diseasePhysicalResVos = diseasePhysicalResVos.stream()
|
|
|
|
diseasePhysicalResVos = diseasePhysicalResVos.stream()
|
|
|
|
.filter(diseasePhysicalResVo -> Integer.valueOf(1).equals(diseasePhysicalResVo.getPrimarilyDiagnosisCriteriaFlag())).collect(Collectors.toList());
|
|
|
|
.filter(diseasePhysicalResVo -> Integer.valueOf(1).equals(diseasePhysicalResVo.getPrimarilyDiagnosisCriteriaFlag())).collect(Collectors.toList());
|
|
|
@ -257,9 +258,9 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private List<BasisDiagnosisNodeResVO> physicalRecordMergeListsConfirm(List<PhysicalRecordByResultDTO> physicalRecordList,
|
|
|
|
private List<BasisDiagnosisNodeResVO> physicalRecordMergeListsConfirm(List<PhysicalRecordByResultDTO> physicalRecordList,
|
|
|
|
List<DiseasePhysicalResVo> diseasePhysicalResVos){
|
|
|
|
List<DiseasePhysicalResVo> diseasePhysicalResVos) {
|
|
|
|
|
|
|
|
|
|
|
|
Function<PhysicalRecordByResultDTO,Integer> functionCorrect = record -> (ObjectUtil.isNotNull(record.getBasisConfirm()) && 1 == record.getBasisConfirm()
|
|
|
|
Function<PhysicalRecordByResultDTO, Integer> functionCorrect = record -> (ObjectUtil.isNotNull(record.getBasisConfirm()) && 1 == record.getBasisConfirm()
|
|
|
|
&& Objects.equals(record.getBasisConfirm(), record.getRecordBasisConfirmFlag())) ? 1 : 0;
|
|
|
|
&& Objects.equals(record.getBasisConfirm(), record.getRecordBasisConfirmFlag())) ? 1 : 0;
|
|
|
|
|
|
|
|
|
|
|
|
diseasePhysicalResVos = diseasePhysicalResVos.stream()
|
|
|
|
diseasePhysicalResVos = diseasePhysicalResVos.stream()
|
|
|
@ -268,9 +269,9 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private List<BasisDiagnosisNodeResVO> physicalRecordMergeListsIdentification(List<PhysicalRecordByResultDTO> physicalRecordList,
|
|
|
|
private List<BasisDiagnosisNodeResVO> physicalRecordMergeListsIdentification(List<PhysicalRecordByResultDTO> physicalRecordList,
|
|
|
|
List<DiseasePhysicalResVo> diseasePhysicalResVos){
|
|
|
|
List<DiseasePhysicalResVo> diseasePhysicalResVos) {
|
|
|
|
|
|
|
|
|
|
|
|
Function<PhysicalRecordByResultDTO,Integer> functionCorrect = record -> (Integer.valueOf(1).equals(record.getBasisIdentification())
|
|
|
|
Function<PhysicalRecordByResultDTO, Integer> functionCorrect = record -> (Integer.valueOf(1).equals(record.getBasisIdentification())
|
|
|
|
&& Objects.equals(record.getBasisIdentification(), record.getRecordBasisIdentificationFlag())) ? 1 : 0;
|
|
|
|
&& Objects.equals(record.getBasisIdentification(), record.getRecordBasisIdentificationFlag())) ? 1 : 0;
|
|
|
|
|
|
|
|
|
|
|
|
diseasePhysicalResVos = diseasePhysicalResVos.stream()
|
|
|
|
diseasePhysicalResVos = diseasePhysicalResVos.stream()
|
|
|
@ -279,7 +280,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private List<BasisDiagnosisNodeResVO> ancillaryRecordMergeListsBasisPrimary(List<AncillaryRecordByResultDTO> ancillaryRecordList,
|
|
|
|
private List<BasisDiagnosisNodeResVO> ancillaryRecordMergeListsBasisPrimary(List<AncillaryRecordByResultDTO> ancillaryRecordList,
|
|
|
|
List<DiseaseAncillaryResVo> diseaseAncillaryResVos){
|
|
|
|
List<DiseaseAncillaryResVo> diseaseAncillaryResVos) {
|
|
|
|
|
|
|
|
|
|
|
|
diseaseAncillaryResVos = diseaseAncillaryResVos.stream()
|
|
|
|
diseaseAncillaryResVos = diseaseAncillaryResVos.stream()
|
|
|
|
.filter(diseaseAncillaryResVo -> Integer.valueOf(1).equals(diseaseAncillaryResVo.getPrimarilyDiagnosisCriteriaFlag())).collect(Collectors.toList());
|
|
|
|
.filter(diseaseAncillaryResVo -> Integer.valueOf(1).equals(diseaseAncillaryResVo.getPrimarilyDiagnosisCriteriaFlag())).collect(Collectors.toList());
|
|
|
@ -290,25 +291,25 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private List<BasisDiagnosisNodeResVO> ancillaryRecordMergeListsConfirm(List<AncillaryRecordByResultDTO> ancillaryRecordList,
|
|
|
|
private List<BasisDiagnosisNodeResVO> ancillaryRecordMergeListsConfirm(List<AncillaryRecordByResultDTO> ancillaryRecordList,
|
|
|
|
List<DiseaseAncillaryResVo> diseaseAncillaryResVos){
|
|
|
|
List<DiseaseAncillaryResVo> diseaseAncillaryResVos) {
|
|
|
|
|
|
|
|
|
|
|
|
Function<AncillaryRecordByResultDTO,Integer> functionCorrect = record -> ObjectUtil.isNotNull(record.getBasisConfirm()) && 1 == record.getBasisConfirm()
|
|
|
|
Function<AncillaryRecordByResultDTO, Integer> functionCorrect = record -> ObjectUtil.isNotNull(record.getBasisConfirm()) && 1 == record.getBasisConfirm()
|
|
|
|
&& Objects.equals(record.getBasisConfirm(), record.getRecordBasisConfirmFlag()) ? 1 : 0 ;
|
|
|
|
&& Objects.equals(record.getBasisConfirm(), record.getRecordBasisConfirmFlag()) ? 1 : 0;
|
|
|
|
|
|
|
|
|
|
|
|
diseaseAncillaryResVos = diseaseAncillaryResVos.stream()
|
|
|
|
diseaseAncillaryResVos = diseaseAncillaryResVos.stream()
|
|
|
|
.filter(diseaseAncillaryResVo -> Integer.valueOf(1).equals(diseaseAncillaryResVo.getBasisConfirmFlag())).collect(Collectors.toList());
|
|
|
|
.filter(diseaseAncillaryResVo -> Integer.valueOf(1).equals(diseaseAncillaryResVo.getBasisConfirmFlag())).collect(Collectors.toList());
|
|
|
|
return ancillaryRecordMergeLists(ancillaryRecordList, diseaseAncillaryResVos,functionCorrect);
|
|
|
|
return ancillaryRecordMergeLists(ancillaryRecordList, diseaseAncillaryResVos, functionCorrect);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private List<BasisDiagnosisNodeResVO> ancillaryRecordMergeListsIdentification(List<AncillaryRecordByResultDTO> ancillaryRecordList,
|
|
|
|
private List<BasisDiagnosisNodeResVO> ancillaryRecordMergeListsIdentification(List<AncillaryRecordByResultDTO> ancillaryRecordList,
|
|
|
|
List<DiseaseAncillaryResVo> diseaseAncillaryResVos){
|
|
|
|
List<DiseaseAncillaryResVo> diseaseAncillaryResVos) {
|
|
|
|
|
|
|
|
|
|
|
|
Function<AncillaryRecordByResultDTO,Integer> functionCorrect = record -> (Integer.valueOf(1).equals(record.getBasisIdentification())
|
|
|
|
Function<AncillaryRecordByResultDTO, Integer> functionCorrect = record -> (Integer.valueOf(1).equals(record.getBasisIdentification())
|
|
|
|
&& Objects.equals(record.getBasisIdentification(), record.getRecordBasisIdentificationFlag())) ? 1 : 0;
|
|
|
|
&& Objects.equals(record.getBasisIdentification(), record.getRecordBasisIdentificationFlag())) ? 1 : 0;
|
|
|
|
|
|
|
|
|
|
|
|
diseaseAncillaryResVos = diseaseAncillaryResVos.stream()
|
|
|
|
diseaseAncillaryResVos = diseaseAncillaryResVos.stream()
|
|
|
|
.filter(diseaseAncillaryResVo -> Integer.valueOf(1).equals(diseaseAncillaryResVo.getBasisIdentificationFlag())).collect(Collectors.toList());
|
|
|
|
.filter(diseaseAncillaryResVo -> Integer.valueOf(1).equals(diseaseAncillaryResVo.getBasisIdentificationFlag())).collect(Collectors.toList());
|
|
|
|
return ancillaryRecordMergeLists(ancillaryRecordList, diseaseAncillaryResVos,functionCorrect);
|
|
|
|
return ancillaryRecordMergeLists(ancillaryRecordList, diseaseAncillaryResVos, functionCorrect);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -346,7 +347,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!find){
|
|
|
|
if (!find) {
|
|
|
|
rs.add(t2.apply(m));
|
|
|
|
rs.add(t2.apply(m));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|