Parcourir la source

量表结构接口更新,计算接口修改,分词枚举类添加SCALE,44

hujing il y a 6 ans
Parent
commit
092fb69441

+ 13 - 8
graph-web/src/main/java/org/diagbot/graphWeb/work/ScaleCalculate.java

@@ -32,16 +32,21 @@ public class ScaleCalculate {
             List<Map<String, Object>> rowsList = (List<Map<String, Object>>) group.get("rows");
             for (Map<String, Object> rows : rowsList) {
                 List<Map<String, Object>> rowList = (List<Map<String, Object>>) rows.get("row");
-                for (Map<String, Object> row : rowList) {
-                    List<Map<String, Object>> detailsList = (List<Map<String, Object>>) row.get("details");
-                    for (Map<String, Object> details : detailsList) {
-                        if (Integer.valueOf(details.get("select").toString()) == 1) {
-                            Double score = Double.valueOf(details.get("score").toString());
-                            groupSum += score;
-                            sum += score;
-                        }
+                //多条选第一条
+                Map<String, Object> firstRow = rowList.get(0);
+                int coefficent = Integer.valueOf(firstRow.get("coefficent").toString());
+                int constant = Integer.valueOf(firstRow.get("constant").toString());
+                List<Map<String, Object>> detailsList = (List<Map<String, Object>>) firstRow.get("details");
+                for (Map<String, Object> details : detailsList) {
+                    if (Integer.valueOf(details.get("select").toString()) == 1) {
+                        Double score = Double.valueOf(details.get("score").toString());
+                        //分值*系数+常数
+                        score = score * coefficent + constant;
+                        groupSum += score;
+                        sum += score;
                     }
                 }
+
             }
             //            String text = scaleResultText(groupSum);
             JSONObject groupCalculate = new JSONObject();

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

@@ -1838,7 +1838,7 @@ public class Neo4jAPI {
                     "return m.name,m.calc,m.type,m.titleName,n1.name,n1.isShow,r2.mutex as r2mutex,n2.name," +
                     "n2.required as n2required,n3.name as n3name,n3.coefficient as n3coefficient," +
                     "n3.constant as n3constant,n3.controlType as n3controlType,n3.indexId as n3indexId, r4.score as r4score," +
-                    "n4.name as n4name order by toInt(r1.p),toInt(r2.p),toInt(r3.p),toInt(r4.p) " +
+                    "n4.name as n4name order by toInt(r1.p),toInt(r2.p),toInt(r3.p) desc,toInt(r4.p) " +
                     "union " +
                     "match (m:Scale)-[r1]->(n1:Method)-[r2]->(n2) WHERE m.name=~'.*" + scaleName + ".*' " +
                     "return m.name,m.calc,m.type,m.titleName,n1.name,n1.isShow,r2.score as r2mutex,n2.name,null as n2required," +
@@ -1886,7 +1886,7 @@ public class Neo4jAPI {
                 groupCalcResult.put("unit", "");
                 groupCalcResult.put("text", "");
                 groupCalcJson.put("result", groupCalcResult);
-                groupCalcJson.put("isShow", Integer.valueOf(isShow));
+                groupCalcJson.put("isShow", isShow);
                 if (!scaleStructure.containsKey("scaleType")) {
                     scaleStructure.put("scaleType", Integer.valueOf(type));
                 }
@@ -1968,6 +1968,8 @@ public class Neo4jAPI {
                                                 rowDetail.put("state", 1);
                                                 scaleItem.remove(k);
                                                 break;
+                                            } else {
+                                                rowDetail.put("state", 0);
                                             }
                                         } else {
                                             rowDetail.put("state", 0);
@@ -2004,6 +2006,8 @@ public class Neo4jAPI {
                                             rowDetail.put("state", 1);
                                             scaleItem.remove(k);
                                             break;
+                                        } else {
+                                            rowDetail.put("state", 0);
                                         }
                                     } else {
                                         rowDetail.put("state", 0);
@@ -2048,6 +2052,8 @@ public class Neo4jAPI {
                                         rowDetail.put("state", 1);
                                         scaleItem.remove(k);
                                         break;
+                                    } else {
+                                        rowDetail.put("state", 0);
                                     }
                                 } else {
                                     rowDetail.put("state", 0);

+ 1 - 1
nlp/src/main/java/org/diagbot/nlp/feature/extract/CaseTokenFeature.java

@@ -15,7 +15,7 @@ public class CaseTokenFeature extends CaseToken {
     private NegativeEnum[] nees_symptom = new NegativeEnum[]{NegativeEnum.SYMPTOM,
             NegativeEnum.BODY_PART, NegativeEnum.PROPERTY, NegativeEnum.DEEP, NegativeEnum.DISEASE,
             NegativeEnum.CAUSE, NegativeEnum.VITAL_RESULT, NegativeEnum.LIS_TYPE, NegativeEnum.LIS_NAME, NegativeEnum.LIS_RESULT,
-            NegativeEnum.PACS_NAME, NegativeEnum.PACS_RESULT};
+            NegativeEnum.PACS_NAME, NegativeEnum.PACS_RESULT, NegativeEnum.SCALE};
 
     {
         stop_symbol = NlpUtil.extendsSymbol(stop_symbol, new String[]{",", ",", ":", ":"});

+ 5 - 1
nlp/src/main/java/org/diagbot/nlp/util/NegativeEnum.java

@@ -12,7 +12,8 @@ public enum NegativeEnum {
     HABIT("25"), SYMPTOM_PERFORMANCE("32"), NUMBER_QUANTIFIER("33"), FREQUENCY("34"),
     OTHER("99"),
     VITAL_INDEX("60"), VITAL_INDEX_VALUE("61"), VITAL_RESULT("62"), VITAL_BODY_PART("63"),
-    ADDRESS("70"), PERSON("72"), PERSON_FEATURE_DESC("73");
+    ADDRESS("70"), PERSON("72"), PERSON_FEATURE_DESC("73"),
+    SCALE("44");
     private String value;
 
     NegativeEnum(String value) {
@@ -114,6 +115,9 @@ public enum NegativeEnum {
             case "34":
                 negativeEnum = NegativeEnum.FREQUENCY;
                 break;
+            case "44":
+                negativeEnum = NegativeEnum.SCALE;
+                break;
             case "60":
                 negativeEnum = org.diagbot.nlp.util.NegativeEnum.VITAL_INDEX;
                 break;

+ 1 - 0
nlp/src/main/resources/classify.dict

@@ -1811,6 +1811,7 @@ EKk7ykn+s2R7CSSETOksI2ccM97hiAFxrLAhBU47Crs3agE8Ny0i5w==
 SXCqApOv3kb9iyQdjDsiShvvmKwrs+Q6bENZYM316MM=
 bvnxsDlI2hyFjd9iSJvlgfBVIj10wiFJ3SOOW2UIfJA=
 F91CnydSnNrY1Ibg/95moq1hLXzR+0e03POH/NCMANY=
+xgoBd8I5Srba1k4KP46G8KnZ1ieFK8WjNa9hI3KWfTa7CMowZT6enJP6SVIFRBSfV3LRrBgQCWBlSXZJJgLtksZKrG44LXBXSmARnfpRl/s=
 VF8zvHc8eRkNm2KyhoYb3q+/NJgZINxAajC5mdxyexhlXaK+4Ix2Nqn4bZwyZ6+E
 vBKSXv/LRm06s8TM1cSktun7/AT/q7whgCnEz04bjCAlG+5Ian+VFQ==
 6QjBIEydw18Ajg2+MGers+sbyljt/K53sezZEcNOhtUR7NwVCOtfJiffTUKw5hIa9YQ8RM5gOiY=

Fichier diff supprimé car celui-ci est trop grand
+ 203 - 203
nlp/src/main/resources/push-tc.dict


+ 12 - 9
push-web/src/main/java/org/diagbot/push/controller/GraphController.java

@@ -11,6 +11,7 @@ import org.diagbot.graph.jdbc.Neo4jAPI;
 import org.diagbot.graphWeb.work.GraphCalculate;
 import org.diagbot.graphWeb.work.HighRiskCalculate;
 import org.diagbot.graphWeb.work.LisPacsCalculate;
+import org.diagbot.graphWeb.work.ParamsDataProxy;
 import org.diagbot.graphWeb.work.ScaleCalculate;
 import org.diagbot.pub.api.Response;
 import org.diagbot.pub.web.BaseController;
@@ -95,6 +96,8 @@ public class GraphController extends BaseController {
     @RequestMapping(value = "/scale", method = RequestMethod.POST)
     @ResponseBody
     public Map<String, Object> scale(HttpServletRequest request, @RequestBody SearchData searchData) throws Exception {
+        ParamsDataProxy paramsDataProxy = new ParamsDataProxy();
+        paramsDataProxy.createSearchData(request, searchData);
         //Driver driver = DriverManager.newDrive("192.168.2.233", "neo4j", "root");
         Driver driver = DriverManager.newDrive();
         Neo4jAPI neo4jAPI = new Neo4jAPI(driver);
@@ -104,15 +107,15 @@ public class GraphController extends BaseController {
         return scale;
     }
 
-//    //测试用
-//    @RequestMapping(value = "/scaleTest", method = RequestMethod.POST)
-//    @ResponseBody
-//    public Map<String, Object> scaleTest(HttpServletRequest request, @RequestBody SearchData searchData) throws Exception {
-//        Driver driver = DriverManager.newDrive();
-//        Neo4jAPI neo4jAPI = new Neo4jAPI(driver);
-//        Map<String, Object> scale = neo4jAPI.getScaleCalc2(searchData.getScaleName());
-//        return scale;
-//    }
+    //    //测试用
+    //    @RequestMapping(value = "/scaleTest", method = RequestMethod.POST)
+    //    @ResponseBody
+    //    public Map<String, Object> scaleTest(HttpServletRequest request, @RequestBody SearchData searchData) throws Exception {
+    //        Driver driver = DriverManager.newDrive();
+    //        Neo4jAPI neo4jAPI = new Neo4jAPI(driver);
+    //        Map<String, Object> scale = neo4jAPI.getScaleCalc2(searchData.getScaleName());
+    //        return scale;
+    //    }
 
     @RequestMapping(value = "/scaleCalc", method = RequestMethod.POST)
     @ResponseBody