|
@@ -151,80 +151,83 @@ public class AlgorithmController extends BaseController {
|
|
|
|
|
|
//大数据推送
|
|
|
// searchData.setLength(6); //模型推送最多6个比较合理
|
|
|
-// AlgorithmCore core = new AlgorithmCore();
|
|
|
-// ResponseData bigDataResponseData = core.algorithm(request, searchData, responseData);
|
|
|
-//
|
|
|
-// GraphCalculate graphCalculate = new GraphCalculate();
|
|
|
-// ResponseData graphResponseData = graphCalculate.calculate(request, searchData);
|
|
|
-// if (graphResponseData.getDis().size() > 0) {
|
|
|
-// List<FeatureRate> disFeatureRates = new ArrayList<>();
|
|
|
-// List<FeatureRate> bigdis = bigDataResponseData.getDis();
|
|
|
-// List<FeatureRate> graphdis = graphResponseData.getDis();
|
|
|
-// for (FeatureRate bg:graphdis) {
|
|
|
-// Iterator<FeatureRate> iterator = bigdis.iterator();
|
|
|
-// while (iterator.hasNext()){
|
|
|
-// FeatureRate gd = iterator.next();
|
|
|
-// if(gd.getFeatureName().equals(bg.getFeatureName()) &&(bg.getDesc().contains("确诊")|| bg.getDesc().contains("拟诊"))){
|
|
|
-// iterator.remove();
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// disFeatureRates = bigdis;
|
|
|
-// List<FeatureRate> graphFeatureRates = graphResponseData.getDis();
|
|
|
-// graphFeatureRates.addAll(disFeatureRates);
|
|
|
-// bigDataResponseData.setDis(graphFeatureRates);
|
|
|
-// }
|
|
|
-// //归一之前诊断信息
|
|
|
-// bigDataResponseData.setBeforeCombineDis(bigDataResponseData.getDis());
|
|
|
-// //推送出的诊断信息作为参数传入知识图谱
|
|
|
-// List<FeatureRate> pushDiags = new ArrayList<>();
|
|
|
-// pushDiags.addAll(bigDataResponseData.getDis());
|
|
|
-// searchData.setPushDiags(pushDiags);
|
|
|
-// bigDataResponseData.setTreat(graphResponseData.getTreat());
|
|
|
-//
|
|
|
-// //量表和指标推送
|
|
|
-// Map<String, List<CrisisDetail>> crisisDetails = responseData.getCrisisDetails();
|
|
|
-// List<MedicalIndication> crisisDetailsList = this.getCrisisDetails(crisisDetails);
|
|
|
-// List<MedicalIndication> medicalIndications = graphResponseData.getMedicalIndications();
|
|
|
-// if (medicalIndications == null) {
|
|
|
-// medicalIndications = new ArrayList<>();
|
|
|
-// }
|
|
|
-// medicalIndications.addAll(crisisDetailsList);
|
|
|
-// if (medicalIndications != null && medicalIndications.size() > 0) {
|
|
|
-// logger.info("指标推送!!!!!!!!!");
|
|
|
-// // bigDataResponseData.getMedicalIndications().addAll(medicalIndications);
|
|
|
-// bigDataResponseData.setMedicalIndications(medicalIndications);
|
|
|
-// }
|
|
|
-//
|
|
|
-// //推送管理评估
|
|
|
-// bigDataResponseData.setManagementEvaluation(graphResponseData.getManagementEvaluation());
|
|
|
-//
|
|
|
-// //知识图谱直接替换大数据中的检验检查数据
|
|
|
-// Map<String, List<FeatureRate>> lisPacs = graphCalculate.getLisPacs(request, searchData);
|
|
|
-// bigDataResponseData.setLabs(lisPacs.get("lisList"));
|
|
|
-// bigDataResponseData.setPacs(lisPacs.get("pacsList"));
|
|
|
-// //体征结果和指标推送
|
|
|
-// Map<String, String> vitalCache = CacheUtil.getVitalCache();
|
|
|
-// List<String> featureList = Arrays.asList(searchData.getFeatureTypes());
|
|
|
-// List<FeatureRate> vitals = lisPacs.get("vitalResultList");
|
|
|
-// if (featureList.contains(Constants.feature_type_vital_index) && this.getVital(vitalCache, vitals).size() > 0) {
|
|
|
-// bigDataResponseData.setVitals(this.getVital(vitalCache, vitals));
|
|
|
-//
|
|
|
-// }
|
|
|
-// if (featureList.contains(Constants.feature_type_vital) && vitals.size() > 0) {
|
|
|
-// bigDataResponseData.setVitals(vitals);
|
|
|
-// }
|
|
|
-//
|
|
|
-// //把所有的诊断拿出来经过过滤层过滤
|
|
|
-// ClassifyDiag classifyDiag = new ClassifyDiag();
|
|
|
-// List<FeatureRate> upfes = classifyDiag.filterDiag(graphResponseData, pushDiags);
|
|
|
-// List<FeatureRate> classify = classifyDiag.diagClassify(upfes);
|
|
|
-// List<FeatureRate> featureRates = classifyDiag.sortDiag(classify);
|
|
|
-// bigDataResponseData.setDis(featureRates);
|
|
|
-// //返回结果化验、辅检、体征、进行性别年龄过滤
|
|
|
-// ResultDataProxy resultDataProxy = new ResultDataProxy();
|
|
|
-// resultDataProxy.resultSexAgeFilter(request, bigDataResponseData, searchData);
|
|
|
-// response.setData(bigDataResponseData);
|
|
|
+ AlgorithmCore core = new AlgorithmCore();
|
|
|
+ ResponseData bigDataResponseData = core.algorithm(request, searchData, responseData);
|
|
|
+ bigDataResponseData.setVitals(new ArrayList<>());
|
|
|
+ bigDataResponseData.setLabs(new ArrayList<>());
|
|
|
+ bigDataResponseData.setPacs(new ArrayList<>());
|
|
|
+
|
|
|
+ GraphCalculate graphCalculate = new GraphCalculate();
|
|
|
+ ResponseData graphResponseData = graphCalculate.calculate(request, searchData);
|
|
|
+ if (graphResponseData.getDis().size() > 0) {
|
|
|
+ List<FeatureRate> disFeatureRates = new ArrayList<>();
|
|
|
+ List<FeatureRate> bigdis = bigDataResponseData.getDis();
|
|
|
+ List<FeatureRate> graphdis = graphResponseData.getDis();
|
|
|
+ for (FeatureRate bg:graphdis) {
|
|
|
+ Iterator<FeatureRate> iterator = bigdis.iterator();
|
|
|
+ while (iterator.hasNext()){
|
|
|
+ FeatureRate gd = iterator.next();
|
|
|
+ if(gd.getFeatureName().equals(bg.getFeatureName()) &&(bg.getDesc().contains("确诊")|| bg.getDesc().contains("拟诊"))){
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ disFeatureRates = bigdis;
|
|
|
+ List<FeatureRate> graphFeatureRates = graphResponseData.getDis();
|
|
|
+ graphFeatureRates.addAll(disFeatureRates);
|
|
|
+ bigDataResponseData.setDis(graphFeatureRates);
|
|
|
+ }
|
|
|
+ //归一之前诊断信息
|
|
|
+ bigDataResponseData.setBeforeCombineDis(bigDataResponseData.getDis());
|
|
|
+ //推送出的诊断信息作为参数传入知识图谱
|
|
|
+ List<FeatureRate> pushDiags = new ArrayList<>();
|
|
|
+ pushDiags.addAll(bigDataResponseData.getDis());
|
|
|
+ searchData.setPushDiags(pushDiags);
|
|
|
+ bigDataResponseData.setTreat(graphResponseData.getTreat());
|
|
|
+
|
|
|
+ //量表和指标推送
|
|
|
+ Map<String, List<CrisisDetail>> crisisDetails = responseData.getCrisisDetails();
|
|
|
+ List<MedicalIndication> crisisDetailsList = this.getCrisisDetails(crisisDetails);
|
|
|
+ List<MedicalIndication> medicalIndications = graphResponseData.getMedicalIndications();
|
|
|
+ if (medicalIndications == null) {
|
|
|
+ medicalIndications = new ArrayList<>();
|
|
|
+ }
|
|
|
+ medicalIndications.addAll(crisisDetailsList);
|
|
|
+ if (medicalIndications != null && medicalIndications.size() > 0) {
|
|
|
+ logger.info("指标推送!!!!!!!!!");
|
|
|
+ // bigDataResponseData.getMedicalIndications().addAll(medicalIndications);
|
|
|
+ bigDataResponseData.setMedicalIndications(medicalIndications);
|
|
|
+ }
|
|
|
+
|
|
|
+ //推送管理评估
|
|
|
+ bigDataResponseData.setManagementEvaluation(graphResponseData.getManagementEvaluation());
|
|
|
+
|
|
|
+ //知识图谱直接替换大数据中的检验检查数据
|
|
|
+ Map<String, List<FeatureRate>> lisPacs = graphCalculate.getLisPacs(request, searchData);
|
|
|
+ bigDataResponseData.setLabs(lisPacs.get("lisList"));
|
|
|
+ bigDataResponseData.setPacs(lisPacs.get("pacsList"));
|
|
|
+ //体征结果和指标推送
|
|
|
+ Map<String, String> vitalCache = CacheUtil.getVitalCache();
|
|
|
+ List<String> featureList = Arrays.asList(searchData.getFeatureTypes());
|
|
|
+ List<FeatureRate> vitals = lisPacs.get("vitalResultList");
|
|
|
+ if (featureList.contains(Constants.feature_type_vital_index) && this.getVital(vitalCache, vitals).size() > 0) {
|
|
|
+ bigDataResponseData.setVitals(this.getVital(vitalCache, vitals));
|
|
|
+
|
|
|
+ }
|
|
|
+ if (featureList.contains(Constants.feature_type_vital) && vitals.size() > 0) {
|
|
|
+ bigDataResponseData.setVitals(vitals);
|
|
|
+ }
|
|
|
+
|
|
|
+ //把所有的诊断拿出来经过过滤层过滤
|
|
|
+ ClassifyDiag classifyDiag = new ClassifyDiag();
|
|
|
+ List<FeatureRate> upfes = classifyDiag.filterDiag(graphResponseData, pushDiags);
|
|
|
+ List<FeatureRate> classify = classifyDiag.diagClassify(upfes);
|
|
|
+ List<FeatureRate> featureRates = classifyDiag.sortDiag(classify);
|
|
|
+ bigDataResponseData.setDis(featureRates);
|
|
|
+ //返回结果化验、辅检、体征、进行性别年龄过滤
|
|
|
+ ResultDataProxy resultDataProxy = new ResultDataProxy();
|
|
|
+ resultDataProxy.resultSexAgeFilter(request, bigDataResponseData, searchData);
|
|
|
+ response.setData(bigDataResponseData);
|
|
|
return response;
|
|
|
}
|
|
|
|