|
@@ -213,6 +213,8 @@ public class AIFacade {
|
|
featureRateDTO.setDeptName(ddList.get(0).getDeptName());
|
|
featureRateDTO.setDeptName(ddList.get(0).getDeptName());
|
|
featureRateDTO.setSubDeptName(ddList.get(0).getSubDeptName());
|
|
featureRateDTO.setSubDeptName(ddList.get(0).getSubDeptName());
|
|
featureRateDTO.setDiseaseName(ddList.get(0).getDiseaseName());
|
|
featureRateDTO.setDiseaseName(ddList.get(0).getDiseaseName());
|
|
|
|
+ featureRateDTO.setDeptCode(ddList.get(0).getDeptCode());
|
|
|
|
+ featureRateDTO.setSubDeptCode(ddList.get(0).getSubDeptCode());
|
|
if (StringUtil.isNotBlank(ddList.get(0).getSubDeptName())) {
|
|
if (StringUtil.isNotBlank(ddList.get(0).getSubDeptName())) {
|
|
featureRateDTO
|
|
featureRateDTO
|
|
.setConcatDept(ddList.get(0).getDeptName() + "-" + ddList.get(0).getSubDeptName());
|
|
.setConcatDept(ddList.get(0).getDeptName() + "-" + ddList.get(0).getSubDeptName());
|
|
@@ -297,6 +299,8 @@ public class AIFacade {
|
|
SYFDiseaseDeptDTO syfDiseaseDeptDTO = new SYFDiseaseDeptDTO();
|
|
SYFDiseaseDeptDTO syfDiseaseDeptDTO = new SYFDiseaseDeptDTO();
|
|
syfDiseaseDeptDTO.setDept(entry.getKey());
|
|
syfDiseaseDeptDTO.setDept(entry.getKey());
|
|
syfDiseaseDeptDTO.setUrl(entry.getValue().get(0).getUrl());
|
|
syfDiseaseDeptDTO.setUrl(entry.getValue().get(0).getUrl());
|
|
|
|
+ syfDiseaseDeptDTO.setDeptCode(entry.getValue().get(0).getDeptCode());
|
|
|
|
+ syfDiseaseDeptDTO.setSubDeptCode(entry.getValue().get(0).getSubDeptCode());
|
|
syfDiseaseDeptDTO.setFeatures(entry.getValue());
|
|
syfDiseaseDeptDTO.setFeatures(entry.getValue());
|
|
Double rate = 0d;
|
|
Double rate = 0d;
|
|
for (SYFFeatureDTO feature : entry.getValue()) {
|
|
for (SYFFeatureDTO feature : entry.getValue()) {
|
|
@@ -374,15 +378,39 @@ public class AIFacade {
|
|
}
|
|
}
|
|
//推送结果根据diseaseName去重
|
|
//推送结果根据diseaseName去重
|
|
Iterator<SYFFeatureDTO> syfFeatureDTOIterator = featureRateList.iterator();
|
|
Iterator<SYFFeatureDTO> syfFeatureDTOIterator = featureRateList.iterator();
|
|
- Map<String, SYFFeatureDTO> distinctMap = new HashMap<>();
|
|
|
|
|
|
+ Map<String, String> distinctMap = new HashMap<>();
|
|
while (syfFeatureDTOIterator.hasNext()) {
|
|
while (syfFeatureDTOIterator.hasNext()) {
|
|
SYFFeatureDTO next = syfFeatureDTOIterator.next();
|
|
SYFFeatureDTO next = syfFeatureDTOIterator.next();
|
|
|
|
+ if (StringUtil.isBlank(next.getDiseaseName())) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ String featureName = "";
|
|
if (distinctMap.containsKey(next.getDiseaseName())) {
|
|
if (distinctMap.containsKey(next.getDiseaseName())) {
|
|
|
|
+ featureName = distinctMap.get(next.getDiseaseName());
|
|
|
|
+ if (StringUtil.isNotBlank(featureName)) {
|
|
|
|
+ featureName += ",";
|
|
|
|
+ }
|
|
|
|
+ featureName += next.getFeatureName();
|
|
syfFeatureDTOIterator.remove();
|
|
syfFeatureDTOIterator.remove();
|
|
|
|
+ distinctMap.put(next.getDiseaseName(), featureName);
|
|
} else {
|
|
} else {
|
|
- distinctMap.put(next.getDiseaseName(), next);
|
|
|
|
|
|
+ distinctMap.put(next.getDiseaseName(), next.getFeatureName());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ featureRateList.forEach(i -> {
|
|
|
|
+ if (distinctMap.containsKey(i.getDiseaseName())) {
|
|
|
|
+ i.setFeatureName(distinctMap.get(i.getDiseaseName()));
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ //根据featureName个数倒序排序
|
|
|
|
+ Collections.sort(featureRateList, new Comparator<SYFFeatureDTO>() {
|
|
|
|
+ @Override
|
|
|
|
+ public int compare(SYFFeatureDTO o1, SYFFeatureDTO o2) {
|
|
|
|
+ return Integer.compare(o2.getFeatureName().split(",").length,
|
|
|
|
+ o1.getFeatureName().split(",").length);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
|
|
List<SYFDiseaseDeptDTO> mergeFeatureList = Lists.newLinkedList();
|
|
List<SYFDiseaseDeptDTO> mergeFeatureList = Lists.newLinkedList();
|
|
Map<String, List<SYFFeatureDTO>> syfFeatureMap = new HashMap<>();
|
|
Map<String, List<SYFFeatureDTO>> syfFeatureMap = new HashMap<>();
|
|
@@ -391,6 +419,8 @@ public class AIFacade {
|
|
SYFDiseaseDeptDTO syfDiseaseDeptDTO = new SYFDiseaseDeptDTO();
|
|
SYFDiseaseDeptDTO syfDiseaseDeptDTO = new SYFDiseaseDeptDTO();
|
|
syfDiseaseDeptDTO.setDept(syfFeatureDTO.getConcatDept());
|
|
syfDiseaseDeptDTO.setDept(syfFeatureDTO.getConcatDept());
|
|
syfDiseaseDeptDTO.setUrl(syfFeatureDTO.getUrl());
|
|
syfDiseaseDeptDTO.setUrl(syfFeatureDTO.getUrl());
|
|
|
|
+ syfDiseaseDeptDTO.setDeptCode(syfFeatureDTO.getDeptCode());
|
|
|
|
+ syfDiseaseDeptDTO.setSubDeptCode(syfFeatureDTO.getSubDeptCode());
|
|
List<SYFFeatureDTO> features = Lists.newLinkedList();
|
|
List<SYFFeatureDTO> features = Lists.newLinkedList();
|
|
if (syfFeatureMap.containsKey(syfFeatureDTO.getConcatDept())) {
|
|
if (syfFeatureMap.containsKey(syfFeatureDTO.getConcatDept())) {
|
|
features = syfFeatureMap.get(syfFeatureDTO.getConcatDept());
|
|
features = syfFeatureMap.get(syfFeatureDTO.getConcatDept());
|
|
@@ -401,6 +431,7 @@ public class AIFacade {
|
|
syfDiseaseDeptDTO.setFeatures(features);
|
|
syfDiseaseDeptDTO.setFeatures(features);
|
|
syfFeatureMap.put(syfFeatureDTO.getConcatDept(), features);
|
|
syfFeatureMap.put(syfFeatureDTO.getConcatDept(), features);
|
|
} else {
|
|
} else {
|
|
|
|
+ //科室为空的数据,不更改推理结果排序
|
|
SYFDiseaseDeptDTO syfDiseaseDeptDTO = new SYFDiseaseDeptDTO();
|
|
SYFDiseaseDeptDTO syfDiseaseDeptDTO = new SYFDiseaseDeptDTO();
|
|
List<SYFFeatureDTO> features = Lists.newLinkedList();
|
|
List<SYFFeatureDTO> features = Lists.newLinkedList();
|
|
features.add(syfFeatureDTO);
|
|
features.add(syfFeatureDTO);
|