Преглед на файлове

Merge remote-tracking branch 'origin/master'

louhr преди 6 години
родител
ревизия
5b30272cc2

+ 11 - 2
graph-web/src/main/java/org/diagbot/graphWeb/work/DiseaseCalculate.java

@@ -8,6 +8,8 @@ import org.diagbot.nlp.relation.module.Lis;
 import org.diagbot.pub.api.Response;
 import org.diagbot.pub.utils.PropertiesUtil;
 import org.diagbot.pub.utils.http.HttpApi;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.*;
@@ -16,8 +18,12 @@ import java.util.*;
  * 推送诊断和治疗方案
  */
 public class DiseaseCalculate {
+    Logger logger = LoggerFactory.getLogger(DiseaseCalculate.class);
     public ResponseData getDisease(SearchData searchData) throws Exception {
         ResponseData responseData = new ResponseData();
+        String[] featureSplits = searchData.getFeatureType().split(",");
+        List<String> featureList = Arrays.asList(featureSplits);
+        String webDiag = searchData.getDiag();
         PropertiesUtil propertiesUtil = new PropertiesUtil("url.properties");
         //调用图谱API
         HttpApi<ResponseData> api = new HttpApi<>();
@@ -26,8 +32,11 @@ public class DiseaseCalculate {
         //走诊断推送
         List<FeatureRate> dis = (List<FeatureRate>)diseaseResponse.getDis();
         List<FeatureRate> diseaseName = getDisease(dis);
-        Map<String, Filnlly> treat = getTreat(diseaseResponse.getTreat());
-        responseData.setTreat(treat);
+        //走治疗推送
+        if(featureList.contains("8") && webDiag.trim()!=null && webDiag.trim()!="" ){
+            Map<String, Filnlly> treat = getTreat(diseaseResponse.getTreat());
+            responseData.setTreat(treat);
+        }
         responseData.setDis(diseaseName);
         return responseData;
     }

+ 10 - 3
graph-web/src/main/java/org/diagbot/graphWeb/work/GraphCalculate.java

@@ -29,13 +29,15 @@ public class GraphCalculate {
      */
     public ResponseData calculate(HttpServletRequest request, SearchData searchData) throws Exception {
         ResponseData responseData = new ResponseData();
-        ParamsDataProxy paramsDataProxy = new ParamsDataProxy();
-        paramsDataProxy.createSearchData(request,searchData);
+//        ParamsDataProxy paramsDataProxy = new ParamsDataProxy();
+//        paramsDataProxy.createSearchData(request,searchData);
         List<String> inputList = new ArrayList<>();
         Map<String, Map<String, String>> inputs = searchData.getInputs();
         Set<String> ss = inputs.keySet();
+        logger.info("从分词系统接收到的词 :"+ss);
         inputList.addAll(ss);
         Neo4jAPI neo4jAPI = new Neo4jAPI(DriverManager.newDrive());
+        logger.info("图谱开始推送诊断!!!!!!!!!!!");
         //计算诊断
         Map<String, String> condition = neo4jAPI.getCondition((String[]) inputList.toArray(new String[inputList.size()]));
         List<FeatureRate> featureRates = new ArrayList<>();
@@ -52,8 +54,10 @@ public class GraphCalculate {
         }
         String webDiag = searchData.getDiag();
         Set<String> diseaseSet = condition.keySet();
-        String[] featureTypes = searchData.getFeatureTypes();
+        String[] featureTypes = searchData.getFeatureType().split(",");
         List<String> featureTypeList = Arrays.asList(featureTypes);
+        logger.info("featureTypeList : "+featureTypeList);
+        logger.info("diseaseSet :"+diseaseSet);
         Integer diseaseType = searchData.getDisType();
         //走治疗
         if(webDiag.trim()!=null && webDiag.trim()!="" && featureTypeList.contains("8")){
@@ -63,12 +67,14 @@ public class GraphCalculate {
         }
         //管理评估(慢病才有)
         if(featureTypeList.contains("11") && diseaseType == 1){
+            logger.info("featureTypeList 包含11,走管理评估!!!");
             MangementEvaluation mangementEvaluation = this.getMangementEvaluation();
             Map<String, JSONObject> mangementEvaluation1 = mangementEvaluation.getMangementEvaluation();
             responseData.setManagementEvaluation(mangementEvaluation1);
         }
         //指标推送
         if(featureTypeList.contains("22") && diseaseSet != null && diseaseSet.size()>0){
+            logger.info("featureTypeList 包含22,走指标推送!!!,图谱推出的诊断为:"+diseaseSet);
             List<MedicalIndication> medicalIndicationList = new ArrayList<>();
             MedicalIndication medicalIndication = this.getMedicalIndication(diseaseSet);
             medicalIndicationList.add(medicalIndication);
@@ -225,6 +231,7 @@ public class GraphCalculate {
     public MedicalIndication getMedicalIndication(Set diseaseSet){
         MedicalIndication medicalIndication = new MedicalIndication();
         if(diseaseSet.contains("肾功能不全")){
+            logger.info("diseaseSet中包含肾功能不全");
             //推送指标
             medicalIndication.setName("肾功能不全");
             List<MedicalIndicationDetail> medicalIndicationDetailList = new ArrayList<>();

+ 6 - 2
graph/src/main/java/org/diagbot/graph/jdbc/Neo4jAPI.java

@@ -11,6 +11,8 @@ import org.neo4j.driver.v1.*;
 import org.neo4j.driver.v1.types.Node;
 import org.neo4j.driver.v1.types.Path;
 import org.neo4j.driver.v1.types.Relationship;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.FileWriter;
 import java.io.IOException;
@@ -27,6 +29,7 @@ import java.util.regex.Pattern;
  */
 
 public class Neo4jAPI {
+    Logger logger = LoggerFactory.getLogger(Neo4jAPI.class);
     Driver driver = null;
     Calendar calendar = Calendar.getInstance();
     int YY = calendar.get(Calendar.YEAR);
@@ -639,7 +642,6 @@ public class Neo4jAPI {
      * @return
      */
     public Map<String, String> getCondition(String[] keys) {
-        Map<String, String> conditionMap = new LinkedHashMap<>();
         Map<String, String> diseaseCondition = new LinkedHashMap<>();
         List<String> newList = new ArrayList<>();
         ArrayList<String> fildList = new ArrayList<>();
@@ -648,6 +650,7 @@ public class Neo4jAPI {
         for (String fild : keys) {
             fildList.add("\"" + fild.trim() + "\"");
         }
+        logger.info("根据 "+fildList+" 这些词推送图谱诊断!!!");
         Session session = null;
         StatementResult result = null;
         String query = "";
@@ -727,6 +730,7 @@ public class Neo4jAPI {
                 Map<String, String> dis_res = new HashMap<>();
                 dis_res.put("确诊", "");
                 diseaseCondition.put(qu, JSON.toJSONString(dis_res));
+                logger.info("图谱推出的诊断为: "+qu);
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -1155,7 +1159,7 @@ public class Neo4jAPI {
                         }
                         Filnlly filnlly = new Filnlly();
                         //显示不良反应
-                        if(1 == diseaseType){
+                        if(diseaseType !=null && 1 == diseaseType){
                             List<Indicators> indicatorsList1 = new ArrayList<>();
                             Indicators indicators1 = getAdverse(disSet, "低血糖反应");
                             Indicators indicators2 = getAdverse(disSet, "胃肠道不良反应");

+ 1 - 0
push-web/src/main/java/org/diagbot/push/controller/AlgorithmController.java

@@ -99,6 +99,7 @@ public class AlgorithmController extends BaseController {
         //量表和指标推送
         List<MedicalIndication> medicalIndications = graphResponseData.getMedicalIndications();
         if(medicalIndications !=null && medicalIndications.size()>0){
+            logger.info("指标推送!!!!!!!!!");
             bigDataResponseData.setMedicalIndications(medicalIndications);
         }
         //推送管理评估