|
@@ -19,6 +19,7 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.*;
|
|
|
|
|
|
import org.diagbot.nlp.rule.module.PreResult;
|
|
|
+import org.diagbot.nlp.util.Constants;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
@@ -39,8 +40,6 @@ public class GraphCalculate {
|
|
|
long starttime = System.currentTimeMillis();
|
|
|
System.out.println("Start at: " + starttime);
|
|
|
ResponseData responseData = new ResponseData();
|
|
|
-// ParamsDataProxy paramsDataProxy = new ParamsDataProxy();
|
|
|
-// paramsDataProxy.createSearchData(request, searchData);
|
|
|
List<String> inputList = new ArrayList<>();
|
|
|
int age = searchData.getAge();
|
|
|
String sex = searchData.getSex();
|
|
@@ -75,8 +74,10 @@ public class GraphCalculate {
|
|
|
//计算诊断
|
|
|
Map<String, Object> condition =null;
|
|
|
Map<String, Map<String, String>> excludelist = null;
|
|
|
- if(featureTypeList.contains("2")){
|
|
|
+ starttime = System.currentTimeMillis();
|
|
|
+ if(featureTypeList.contains(Constants.feature_type_diag)){
|
|
|
condition = neo4jAPI.getNewCondition((String[]) inputList.toArray(new String[inputList.size()]),webDiag );
|
|
|
+ System.out.println("推送诊断消耗:"+(System.currentTimeMillis()-starttime)+"s");
|
|
|
// 查找需要排除的诊断
|
|
|
excludelist = neo4jAPI.getExcludeDiag(inputList);
|
|
|
responseData.setExcludeDiag(Arrays.asList(excludelist.keySet().stream().toArray(String[]::new)));
|
|
@@ -129,32 +130,38 @@ public class GraphCalculate {
|
|
|
}
|
|
|
}
|
|
|
logger.info("页面导入的所有化验项为 :" +lisSet);
|
|
|
+ starttime = System.currentTimeMillis();
|
|
|
//走治疗
|
|
|
- if (StringUtils.isNotEmpty(diseaseName) && featureTypeList.contains("6")) {
|
|
|
+ if (StringUtils.isNotEmpty(diseaseName) && featureTypeList.contains(Constants.feature_type_treat)) {
|
|
|
// 查找页面诊断里是否有不良反应
|
|
|
Map<String, List<String>> disUE = neo4jAPI.getDisUE(diseaseName, diseaseType);
|
|
|
//根据页面输入内容推出的不良反应集合
|
|
|
Set<String> ue = neo4jAPI.getUe((String[]) inputList.toArray(new String[inputList.size()]));
|
|
|
//走平常诊断治疗
|
|
|
- Map<String, Filnlly> mulDiseaseTreat = neo4jAPI.getMulDiseaseTreat_2(diseaseName,webDiag, diseaseType, diseaseSet,disUE,ue,String.join(",", inputList));
|
|
|
- responseData.setTreat(mulDiseaseTreat);
|
|
|
+// Map<String, Filnlly> mulDiseaseTreat = neo4jAPI.getMulDiseaseTreat_2(diseaseName,webDiag, diseaseType, diseaseSet,disUE,ue,String.join(",", inputList));
|
|
|
+ Map<String, Filnlly> mulDiseaseTreat_new = neo4jAPI.getMulDiseaseTreat_new(diseaseName,webDiag, diseaseType, diseaseSet,disUE,ue,String.join(",", inputList));
|
|
|
+ System.out.println("推送治疗消耗:"+(System.currentTimeMillis()-starttime)+"s");
|
|
|
+ responseData.setTreat(mulDiseaseTreat_new);
|
|
|
}
|
|
|
//管理评估(慢病才有)
|
|
|
if (featureTypeList.contains("11") && diseaseType == 1 && diseaseType != null) {
|
|
|
logger.info("featureTypeList 包含11,走管理评估!!!");
|
|
|
+ starttime = System.currentTimeMillis();
|
|
|
if(webDiag != null){
|
|
|
MangementEvaluation mangementEvaluation = neo4jAPI.pushMe(webDiagList,lis_Result);
|
|
|
+ System.out.println("推送管理评估消耗:"+(System.currentTimeMillis()-starttime)+"s");
|
|
|
Map<String, JSONObject> mangementEvaluation1 = mangementEvaluation.getMangementEvaluation();
|
|
|
responseData.setManagementEvaluation(mangementEvaluation1);
|
|
|
}
|
|
|
}
|
|
|
//指标推送
|
|
|
if (featureTypeList.contains("22") ) {
|
|
|
+ starttime = System.currentTimeMillis();
|
|
|
List<MedicalIndication> idns =new ArrayList<>();
|
|
|
Set<String> newindSet = new HashSet<>();
|
|
|
Set<String> newindSet1 = new HashSet<>();
|
|
|
//查找指标
|
|
|
- Set<String> indSet = neo4jAPI.getInd((String[]) inputList.toArray(new String[inputList.size()]),sex,age);
|
|
|
+ Set<String> indSet = neo4jAPI.getInd((String[]) inputList.toArray(new String[inputList.size()]),sex,age,webDiagList);
|
|
|
if(indSet != null && indSet.size()>0){
|
|
|
for (String ind:indSet) {
|
|
|
if("肾功能不全".equals(ind)){
|
|
@@ -195,6 +202,7 @@ public class GraphCalculate {
|
|
|
idns.add(medicalIndication);
|
|
|
}
|
|
|
}
|
|
|
+ System.out.println("推送指标消耗:"+(System.currentTimeMillis()-starttime)+"s");
|
|
|
responseData.setMedicalIndications(idns);
|
|
|
}
|
|
|
//诊断推送
|
|
@@ -203,4 +211,16 @@ public class GraphCalculate {
|
|
|
System.out.println("Total takes: " + (System.currentTimeMillis()-starttime)/1000d + 's');
|
|
|
return responseData;
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 推送化验,辅检,体征
|
|
|
+ */
|
|
|
+ public ResponseData getLisPacs(HttpServletRequest request, SearchData searchData) throws Exception {
|
|
|
+
|
|
|
+ ResponseData responseData = new ResponseData();
|
|
|
+ Map<String, List<FeatureRate>> lisPacs = neo4jAPI.getLisPacs(searchData);
|
|
|
+ responseData.setLabs(lisPacs.get("lisList"));
|
|
|
+ responseData.setPacs(lisPacs.get("pacsList"));
|
|
|
+ responseData.setVitals(lisPacs.get("vitalResultList"));
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
}
|