Przeglądaj źródła

优化规则判断 血压

hujing 5 lat temu
rodzic
commit
a208bd28b0

+ 6 - 0
nlp/src/main/java/org/diagbot/nlp/rule/pretreat/PretreatmentVital.java

@@ -43,12 +43,18 @@ public class PretreatmentVital extends Pretreatment {
                     }
                     String[] digits = l.getText().split("/");
                     if (digits.length == 2) {
+                        if (!NlpUtil.isNumberString(digits[0])){
+                            continue;
+                        }
                         PreResult result = new PreResult();
                         result.setUniqueName("体征--收缩压");
                         result.setDetailName("收缩压");
                         result.setValue(digits[0]);
                         result.setUnits("mmHg");
                         preResults.add(result);
+                        if (!NlpUtil.isNumberString(digits[1])){
+                            continue;
+                        }
                         result = new PreResult();
                         result.setUniqueName("体征--舒张压");
                         result.setDetailName("舒张压");

+ 6 - 0
nlp/src/main/java/org/diagbot/nlp/util/NlpUtil.java

@@ -1,5 +1,6 @@
 package org.diagbot.nlp.util;
 
+import org.apache.commons.lang3.StringUtils;
 import org.diagbot.nlp.participle.word.Lexeme;
 
 import java.util.*;
@@ -43,6 +44,11 @@ public class NlpUtil {
         return Pattern.matches("^[-\\+]?\\d+(\\.\\d+)?",l.getText());
     }
 
+    public static boolean isNumberString(String s) {
+        if (StringUtils.isEmpty(s)) return false;
+        return Pattern.matches("^[-\\+]?\\d+(\\.\\d+)?",s);
+    }
+
     public static double numberText2value(Lexeme l) {
         double value = 0.0;
         if (numtextList.contains(l.getText())) {