浏览代码

针对血压修改给症状添加标准词部分

hujing 6 年之前
父节点
当前提交
dc91056f8b

+ 13 - 6
bigdata-web/src/main/java/org/diagbot/bigdata/work/ParamsDataProxy.java

@@ -356,7 +356,7 @@ public class ParamsDataProxy {
                 if (standWord.contains("<") || standWord.contains("<=") || standWord.contains("小于")) {
                     smallerStandWord += "," + standWord;
                 } else {
-                    addStandWords += "," + standWord;
+                    addStandWords += "," + proxy(standWord);
                     flag = false;
                 }
             }
@@ -374,7 +374,7 @@ public class ParamsDataProxy {
         if (hasDigit(features[1])) {
             try {
                 if (">".equals(standWordMap.get("op"))) {
-                    //单独处理  血压140/90mmHg   类似情况
+                    //单独处理  血压>140/90mmHg   类似情况
                     if (features[1].contains("/")) {
                         if (standWordMap.get("value").contains("/")) {
                             String[] feature = features[1].split("/");
@@ -391,7 +391,7 @@ public class ParamsDataProxy {
                     } else {
                         String num = getNum(standWordMap.get("value"));
                         if (Double.valueOf(getNum(features[1])) > Double.valueOf(num)) {
-                            sData.setSymptom(sData.getSymptom() + "," + standWordMap.get("standword"));
+                            sData.setSymptom(sData.getSymptom() + "," + proxy(standWordMap.get("standword")));
                         }
                     }
                 } else if ("<".equals(standWordMap.get("op"))) {
@@ -416,7 +416,7 @@ public class ParamsDataProxy {
                         }
                     }
                 } else if (">=".equals(standWordMap.get("op"))) {
-                    //单独处理  血压小于90/60mmHg   类似情况
+                    //单独处理  血压大于等于140/90mmHg   类似情况
                     if (standWordMap.get("value").contains("/")) {
                         if (features[1].contains("/")) {
                             String[] feature = features[1].split("/");
@@ -433,11 +433,11 @@ public class ParamsDataProxy {
                     } else {
                         String num = getNum(standWordMap.get("value"));
                         if (Double.valueOf(getNum(features[1])) >= Double.valueOf(num)) {
-                            sData.setSymptom(sData.getSymptom() + "," + standWordMap.get("standword"));
+                            sData.setSymptom(sData.getSymptom() + "," + proxy(standWordMap.get("standword")));
                         }
                     }
                 } else if ("<=".equals(standWordMap.get("op"))) {
-                    //单独处理  血压小于90/60mmHg   类似情况
+                    //单独处理  血压小于等于90/60mmHg   类似情况
                     if (standWordMap.get("value").contains("/")) {
                         if (features[1].contains("/")) {
                             String[] feature = features[1].split("/");
@@ -483,6 +483,13 @@ public class ParamsDataProxy {
         return sb.toString();
     }
 
+    private String proxy(String standWord){
+        if (standWord.contains("压") && (standWord.contains("≥") || standWord.contains("大于"))){
+            standWord = "血压升高";
+        }
+        return standWord;
+    }
+
     private SearchData cleanFeature(List<Map<String, Object>> featuresList, FeatureAnalyze fa,
                                     SearchData searchData) {
         // 在输入的辅检文本中,只提取辅检信息

+ 1 - 1
bigdata-web/src/test/java/org/diagbot/AddStandWordTest.java

@@ -36,7 +36,7 @@ public class AddStandWordTest {
         long cacheTime = endCacheTime - startTime;
         System.out.println("处理标准词最终用了:" + cacheTime + "毫秒.");
         SearchData searchData = new SearchData();
-        searchData.setSymptom("血压14/43mmhg,收缩压180.5mmhg,血压149/43mmhg");
+        searchData.setSymptom("血压14/43mmhg,收缩压140mmhg,血压149/43mmhg");
         long splitStartTime = System.currentTimeMillis();
         LexemePath<Lexeme> data = ParticipleUtil.participle(searchData.getSymptom());
         ParamsDataProxy paramsDataProxy = new ParamsDataProxy();