소스 검색

优化规则处理血压情况,遇到数字/数字时往后找mmHg找3个位置

hujing 5 년 전
부모
커밋
2e7cf6df7a
1개의 변경된 파일23개의 추가작업 그리고 15개의 파일을 삭제
  1. 23 15
      nlp/src/main/java/org/diagbot/nlp/rule/pretreat/PretreatmentVital.java

+ 23 - 15
nlp/src/main/java/org/diagbot/nlp/rule/pretreat/PretreatmentVital.java

@@ -35,22 +35,30 @@ public class PretreatmentVital extends Pretreatment {
                 result.setValue(NlpUtil.concept(l, NegativeEnum.VITAL_INDEX));
                 preResults.add(result);
             } else if (NlpUtil.isFeature(l.getProperty(), nees_digit) && l.getText().contains("/")) {
-                String[] digits = l.getText().split("/");
-                if (digits.length != 2) {
-                    continue;
+                int position = ++i;
+                while (position < ++i + 3 && position < lexemes.size()) {
+                    if (!"mmHg".equals(lexemes.get(position).getText())) {
+                        position++;
+                        continue;
+                    }
+                    String[] digits = l.getText().split("/");
+                    if (digits.length == 2) {
+                        PreResult result = new PreResult();
+                        result.setUniqueName("体征--收缩压");
+                        result.setDetailName("收缩压");
+                        result.setValue(digits[0]);
+                        result.setUnits("mmHg");
+                        preResults.add(result);
+                        result = new PreResult();
+                        result.setUniqueName("体征--舒张压");
+                        result.setDetailName("舒张压");
+                        result.setValue(digits[1]);
+                        result.setUnits("mmHg");
+                        preResults.add(result);
+                        break;
+                    }
+                    position++;
                 }
-                PreResult result = new PreResult();
-                result.setUniqueName("体征--收缩压");
-                result.setDetailName("收缩压");
-                result.setValue(digits[0]);
-                result.setUnits("mmHg");
-                preResults.add(result);
-                result = new PreResult();
-                result.setUniqueName("体征--舒张压");
-                result.setDetailName("舒张压");
-                result.setValue(digits[1]);
-                result.setUnits("mmHg");
-                preResults.add(result);
             }
         }
         return preResults;