|
@@ -11,6 +11,7 @@ import org.diagbot.common.work.ResponseData;
|
|
|
import org.diagbot.common.work.SearchData;
|
|
|
import org.diagbot.graph.util.CacheUtil;
|
|
|
import org.diagbot.graphWeb.work.DiseaseCalculate;
|
|
|
+import org.diagbot.graphWeb.work.FilterSortDiag;
|
|
|
import org.diagbot.graphWeb.work.GraphCalculate;
|
|
|
import org.diagbot.graphWeb.work.LisPacsCalculate;
|
|
|
import org.diagbot.nlp.util.Constants;
|
|
@@ -143,34 +144,15 @@ public class AlgorithmController extends BaseController {
|
|
|
List<FeatureRate> graphFeatureRates = graphResponseData.getDis();
|
|
|
graphFeatureRates.addAll(disFeatureRates);
|
|
|
//把所有的诊断拿出来经过过滤层过滤
|
|
|
-
|
|
|
- //将需要排除的诊断从列表中删除
|
|
|
- List<FeatureRate> updateFeatureRates = new ArrayList<>();
|
|
|
- List<String> removeDis = graphResponseData.getExcludeDiag();
|
|
|
- for (int j = 0; j < graphFeatureRates.size(); j++) {
|
|
|
- if (removeDis.indexOf(graphFeatureRates.get(j).getFeatureName()) == -1) {
|
|
|
- updateFeatureRates.add(graphFeatureRates.get(j));
|
|
|
- }
|
|
|
- }
|
|
|
- //诊断排序
|
|
|
- Map<String, String> diagSortCache = CacheUtil.getDiagSortCache();
|
|
|
- List<FeatureRate> finalDiagList = this.processDiagSort(updateFeatureRates, diagSortCache);
|
|
|
-
|
|
|
- //大数据推送疾病数据用知识图谱替换
|
|
|
-// bigDataResponseData.setDis(updateFeatureRates);
|
|
|
- bigDataResponseData.setDis(finalDiagList);
|
|
|
+ FilterSortDiag filterSortDiag = new FilterSortDiag();
|
|
|
+ List<FeatureRate> filterDiagList = filterSortDiag.filterDiag(graphResponseData, graphFeatureRates);
|
|
|
+ List<FeatureRate> filterSortDiagList = filterSortDiag.sortDiag(filterDiagList);
|
|
|
+ bigDataResponseData.setDis(filterSortDiagList);
|
|
|
}
|
|
|
-
|
|
|
//推送出的诊断信息作为参数传入知识图谱
|
|
|
List<FeatureRate> pushDiags = new ArrayList<>();
|
|
|
pushDiags.addAll(bigDataResponseData.getDis());
|
|
|
-
|
|
|
-// for (FeatureRate fr : bigDataResponseData.getDis()) {
|
|
|
-// pushDiags.add(fr);
|
|
|
-// logger.info("合并知识图谱、大数据后推送的诊断信息....: " + fr.getFeatureName());
|
|
|
-// }
|
|
|
searchData.setPushDiags(pushDiags);
|
|
|
-
|
|
|
bigDataResponseData.setTreat(graphResponseData.getTreat());
|
|
|
//量表和指标推送
|
|
|
List<MedicalIndication> medicalIndications = graphResponseData.getMedicalIndications();
|
|
@@ -181,13 +163,12 @@ public class AlgorithmController extends BaseController {
|
|
|
//推送管理评估
|
|
|
bigDataResponseData.setManagementEvaluation(graphResponseData.getManagementEvaluation());
|
|
|
//知识图谱直接替换大数据中的检验检查数据
|
|
|
-// if(searchData.getDiag() !=null || searchData.getPushDiags() != null){
|
|
|
LisPacsCalculate lisPacsCalculate = new LisPacsCalculate();
|
|
|
graphResponseData = lisPacsCalculate.getLisPacs(request, searchData);
|
|
|
|
|
|
bigDataResponseData.setLabs(graphResponseData.getLabs());
|
|
|
bigDataResponseData.setPacs(graphResponseData.getPacs());
|
|
|
-// }
|
|
|
+
|
|
|
//体征结果和指标推送
|
|
|
Map<String, String> vitalCache = CacheUtil.getVitalCache();
|
|
|
List<String> featureList = Arrays.asList(searchData.getFeatureTypes());
|
|
@@ -202,47 +183,7 @@ public class AlgorithmController extends BaseController {
|
|
|
response.setData(bigDataResponseData);
|
|
|
return response;
|
|
|
}
|
|
|
- public List<FeatureRate> processDiagSort(List<FeatureRate> updateFeatureRates, Map<String, String> diagSortCache){
|
|
|
- List<String> finalDiagList = new LinkedList<>();
|
|
|
- List<String> neoDiagList = new LinkedList<>();
|
|
|
- List<String> bigDataIDiagList = new LinkedList<>();
|
|
|
- List<String> bigDataIIDiagList = new LinkedList<>();
|
|
|
- List<FeatureRate> finalDiagFeature = new LinkedList<>();
|
|
|
- if(updateFeatureRates != null || updateFeatureRates.size()>0){
|
|
|
- for (FeatureRate feature:updateFeatureRates) {
|
|
|
- String featureName = feature.getFeatureName();
|
|
|
- String source = feature.getSource();
|
|
|
- if("neo4j".equals(source)){
|
|
|
- neoDiagList.add(featureName);
|
|
|
- }else {
|
|
|
- String s = diagSortCache.get(featureName);
|
|
|
- if(StringUtils.isNotEmpty(s)){
|
|
|
- if("Ⅰ".equals(s)){
|
|
|
- bigDataIDiagList.add(featureName);
|
|
|
- }else if("Ⅱ".equals(s)){
|
|
|
- bigDataIIDiagList.add(featureName);
|
|
|
- }
|
|
|
- }else {
|
|
|
- bigDataIDiagList.add(featureName);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- finalDiagList.addAll(neoDiagList);
|
|
|
- finalDiagList.addAll(bigDataIDiagList);
|
|
|
- finalDiagList.addAll(bigDataIIDiagList);
|
|
|
- if(finalDiagList != null && finalDiagList.size()>0){
|
|
|
- for (String diag:finalDiagList){
|
|
|
- for (FeatureRate f:updateFeatureRates) {
|
|
|
- if(diag.equals(f.getFeatureName())){
|
|
|
- finalDiagFeature.add(f);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return finalDiagFeature;
|
|
|
- }
|
|
|
+
|
|
|
public List<FeatureRate> getVital(Map<String, String> vitalCache,List<FeatureRate> vitals){
|
|
|
Set<String> vitalSet = new LinkedHashSet<>();
|
|
|
List<FeatureRate> vitalList = new ArrayList<>();
|