Forráskód Böngészése

1、添加开单合理性支撑类,修改BUG

louhr 5 éve
szülő
commit
ceceba231c

+ 1 - 1
common-push/src/main/java/org/diagbot/common/push/cache/ApplicationCacheUtil.java

@@ -143,7 +143,7 @@ public class ApplicationCacheUtil {
         List<String> fileContents = configuration.readFileContents("bigdata_rule_app_filter.dict");
 
         for (String line : fileContents) {
-            String[] content = line.split("\\|");
+            String[] content = line.split("\\|", -1);
             RuleApp ruleApp = new RuleApp();
             if (content.length == 4) {
                 ruleApp.setId(content[0] == null ? "" : content[0]);

+ 2 - 0
common-push/src/main/java/org/diagbot/common/push/filter/pretreat/Pretreatment.java

@@ -19,6 +19,8 @@ public abstract class Pretreatment {
 
     protected int cursor = 0;
 
+    protected int max_back_search = 3;
+
     public abstract List<PreResult> analyze(String content) throws java.io.IOException;
 
     abstract PreResult createPreResult(LexemePath<Lexeme> lexemes, Lexeme lexeme, int index);

+ 3 - 3
common-push/src/main/java/org/diagbot/common/push/filter/pretreat/PretreatmentNormal.java

@@ -20,8 +20,8 @@ public class PretreatmentNormal extends Pretreatment {
                 Lexeme afterLexeme = lexemes.get(i + 1);
                 if ("男性".equals(afterLexeme.getText()) || "女性".equals(afterLexeme.getText())) {
                     PreResult result = new PreResult();
-                    result.setUniqueName(l.getText());
-                    result.setDetailName(l.getText());
+                    result.setUniqueName(l.getText()+"--");
+                    result.setDetailName(l.getText()+"--");
                     result.setValue(afterLexeme.getText());
                     preResults.add(result);
                     return preResults;
@@ -39,7 +39,7 @@ public class PretreatmentNormal extends Pretreatment {
         if (cursor > 0) cursor--;
         Lexeme leftLexeme = lexemes.get(cursor);
         if (leftLexeme.getText().equals("年龄")) {
-            return leftLexeme.getText();
+            return leftLexeme.getText()+"--";
         }
         return null;
     }

+ 45 - 0
common-push/src/main/java/org/diagbot/common/push/filter/pretreat/PretreatmentOther.java

@@ -0,0 +1,45 @@
+package org.diagbot.common.push.filter.pretreat;
+
+import org.diagbot.common.push.bean.PreResult;
+import org.diagbot.nlp.participle.ParticipleUtil;
+import org.diagbot.nlp.participle.word.Lexeme;
+import org.diagbot.nlp.participle.word.LexemePath;
+import org.diagbot.nlp.util.NegativeEnum;
+import org.diagbot.nlp.util.NlpUtil;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PretreatmentOther extends Pretreatment {
+    protected NegativeEnum[] nees_disease = new NegativeEnum[]{NegativeEnum.DISEASE};
+    protected NegativeEnum[] nees_operation = new NegativeEnum[]{NegativeEnum.OPERATION};
+
+    public List<PreResult> analyze(String content) throws java.io.IOException{
+        List<PreResult> preResults = new ArrayList<>();
+        LexemePath<Lexeme> lexemes = ParticipleUtil.participle(content);
+        for (int i = 0; i < lexemes.size(); i++) {
+            Lexeme l = lexemes.get(i);
+            PreResult result = new PreResult();
+            if (NlpUtil.isFeature(l.getProperty(), nees_disease)) {
+                result.setUniqueName("诊断--");
+                result.setDetailName("诊断--");
+                result.setValue(NlpUtil.concept(l, NegativeEnum.DISEASE));
+                preResults.add(result);
+            } else if (NlpUtil.isFeature(l.getProperty(), nees_operation)) {
+                result.setUniqueName("手术--");
+                result.setDetailName("手术--");
+                result.setValue(NlpUtil.concept(l, NegativeEnum.OPERATION));
+                preResults.add(result);
+            }
+        }
+        return preResults;
+    }
+
+    public PreResult createPreResult(LexemePath<Lexeme> lexemes, Lexeme lexeme, int index) {
+        return null;
+    }
+
+    public String findBodyValue(LexemePath<Lexeme> lexemes, Lexeme lexeme, int index) {
+        return null;
+    }
+}

+ 32 - 4
common-push/src/main/java/org/diagbot/common/push/filter/pretreat/PretreatmentVital.java

@@ -1,6 +1,7 @@
 package org.diagbot.common.push.filter.pretreat;
 
 import org.diagbot.common.push.bean.PreResult;
+import org.diagbot.nlp.participle.ParticipleUtil;
 import org.diagbot.nlp.participle.word.Lexeme;
 import org.diagbot.nlp.participle.word.LexemePath;
 import org.diagbot.nlp.util.NegativeEnum;
@@ -9,8 +10,29 @@ import org.diagbot.nlp.util.NlpUtil;
 import java.util.List;
 
 public class PretreatmentVital extends Pretreatment {
+    protected NegativeEnum[] nees_vital_result = new NegativeEnum[]{NegativeEnum.VITAL_RESULT};
+    protected NegativeEnum[] nees_vital_index = new NegativeEnum[]{NegativeEnum.VITAL_INDEX};
+
     public List<PreResult> analyze(String content) throws java.io.IOException{
-        return super.analyzeDefault(content);
+        List<PreResult> preResults = super.analyzeDefault(content);
+        LexemePath<Lexeme> lexemes = ParticipleUtil.participle(content);
+        for (int i = 0; i < lexemes.size(); i++) {
+            Lexeme l = lexemes.get(i);
+            if (NlpUtil.isFeature(l.getProperty(), nees_vital_result)) {
+                PreResult result = new PreResult();
+                result.setUniqueName("体征结果--");
+                result.setDetailName("体征结果--");
+                result.setValue(NlpUtil.concept(l, NegativeEnum.VITAL_RESULT));
+                preResults.add(result);
+            }else if (NlpUtil.isFeature(l.getProperty(), nees_vital_index)) {
+                PreResult result = new PreResult();
+                result.setUniqueName("体征结果--");
+                result.setDetailName("体征结果--");
+                result.setValue(NlpUtil.concept(l, NegativeEnum.VITAL_INDEX));
+                preResults.add(result);
+            }
+        }
+        return preResults;
     }
 
     public PreResult createPreResult(LexemePath<Lexeme> lexemes, Lexeme lexeme, int index) {
@@ -20,9 +42,15 @@ public class PretreatmentVital extends Pretreatment {
 
     public String findBodyValue(LexemePath<Lexeme> lexemes, Lexeme lexeme, int index) {
         if (cursor > 0) cursor--;
-        Lexeme leftLexeme = lexemes.get(cursor);
-        if (NlpUtil.isFeature(leftLexeme.getProperty(), new NegativeEnum[]{NegativeEnum.VITAL_INDEX})) {
-            return NlpUtil.concept(leftLexeme, NegativeEnum.VITAL_INDEX);
+        int search_len = 0;
+        Lexeme leftLexeme = null;
+        while (search_len < max_back_search && cursor > -1) {
+            leftLexeme = lexemes.get(cursor);
+            if (NlpUtil.isFeature(leftLexeme.getProperty(), new NegativeEnum[]{NegativeEnum.VITAL_INDEX})) {
+                return NlpUtil.concept(leftLexeme, NegativeEnum.VITAL_INDEX);
+            }
+            search_len++;
+            cursor--;
         }
         return null;
     }

+ 17 - 1
common-push/src/main/java/org/diagbot/common/push/filter/rule/PretreatmentRule.java

@@ -40,6 +40,22 @@ public class PretreatmentRule {
         if (!StringUtils.isEmpty(searchData.getPacs())) {
             searchData.setPacs(add2PreResultList(new PretreatmentPacs(), searchData.getPacs(), "pacs", searchData));
         }
+        //其他史
+        if (!StringUtils.isEmpty(searchData.getOther())) {
+            searchData.setOther(add2PreResultList(new PretreatmentOther(), searchData.getOther(), "other", searchData));
+        }
+        //开具诊断
+        if (!StringUtils.isEmpty(searchData.getDiag())) {
+            add2PreResultList(new PretreatmentDiag(), searchData.getDiag(), "diag", searchData);
+        }
+        //开具辅检化验
+        if (!StringUtils.isEmpty(searchData.getLisOrder())) {
+            add2PreResultList(new PretreatmentMakeList(), searchData.getLisOrder(), "lisOrder", searchData);
+        }
+        //开具辅检化验
+        if (!StringUtils.isEmpty(searchData.getPacsOrder())) {
+            add2PreResultList(new PretreatmentMakeList(), searchData.getPacsOrder(), "pacsOrder", searchData);
+        }
     }
 
     private String add2PreResultList(Pretreatment pretreatment, String content, String ruleType, SearchData searchData) throws java.io.IOException {
@@ -116,7 +132,7 @@ public class PretreatmentRule {
             }
         } else if(org.apache.commons.lang3.StringUtils.isNotEmpty(rule.getMax_value()))  {
             if (compareMax(result.getValue(), rule.getMax_value(), rule.getMax_operator())   //比最大值大
-                    && result.getUnits().equals(rule.getMin_unit())) {
+                    && result.getUnits().equals(rule.getMax_unit())) {
                 return true;
             } else {
                 return false;

+ 29 - 9
push-web/src/main/resources/static/pages/algorithm/list.html

@@ -109,11 +109,15 @@
                 </div>
                 <div class="form-group">
                     <label for="other_id">化验结果</label>&nbsp;
-                    <input type="text" id="lis_id" placeholder="" size="140">&nbsp;&nbsp;&nbsp;&nbsp;
+                    <input type="text" id="lis_id" placeholder="" size="60">&nbsp;&nbsp;&nbsp;&nbsp;
+                    <label for="other_id">辅检结果</label>&nbsp;
+                    <input type="text" id="pacs_id" placeholder="" size="60">&nbsp;&nbsp;&nbsp;&nbsp;
                 </div>
                 <div class="form-group">
-                    <label for="other_id">辅检结果</label>&nbsp;
-                    <input type="text" id="pacs_id" placeholder="" size="140">&nbsp;&nbsp;&nbsp;&nbsp;
+                    <label for="other_id">开单化验</label>&nbsp;
+                    <input type="text" id="lis_order" placeholder="" size="60">&nbsp;&nbsp;&nbsp;&nbsp;
+                    <label for="other_id">开单检查</label>&nbsp;
+                    <input type="text" id="pacs_order" placeholder="" size="60">&nbsp;&nbsp;&nbsp;&nbsp;
                 </div>
                 <div class="form-group">
                     <label for="diag_id">诊断</label>&nbsp;
@@ -402,12 +406,12 @@
 
         } else {
             startDiag('/algorithm/page_neural', '#symptom_list', '1', resourceType, '11', '1');
-            startDiag('/algorithm/page_neural', '#vital_list', '3,2,7', resourceType, '31', '3');
-            startDiag('/algorithm/page_neural', '#lis_list', '4,2,7', resourceType, '41', '4');
-            startDiag('/algorithm/page_neural', '#pacs_list', '5,2,7', resourceType, '51', '5');
-
-            startDiagMapping('/algorithm/page_neural', '#diag_list', '2', resourceType, '21', '2');
-            startDiagMapping('/algorithm/page_neural', '#before_combine_diag_list', '2', resourceType, '21', '6');
+//            startDiag('/algorithm/page_neural', '#vital_list', '3,2,7', resourceType, '31', '3');
+//            startDiag('/algorithm/page_neural', '#lis_list', '4,2,7', resourceType, '41', '4');
+//            startDiag('/algorithm/page_neural', '#pacs_list', '5,2,7', resourceType, '51', '5');
+//
+//            startDiagMapping('/algorithm/page_neural', '#diag_list', '2', resourceType, '21', '2');
+//            startDiagMapping('/algorithm/page_neural', '#before_combine_diag_list', '2', resourceType, '21', '6');
         }
     }
 
@@ -440,6 +444,8 @@
                     var other = $("#other_id").val();
                     var lis = $("#lis_id").val();
                     var pacs = $("#pacs_id").val();
+                    var lisOrder = $("#lis_order").val();
+                    var pacsOrder = $("#pacs_order").val();
                     var diag = $("#diag_id").val();
                     var length = $("#length").val();
                     var sex = $("#sex").val();
@@ -466,6 +472,12 @@
                     if (pacs != null && pacs != undefined) {
                         d.pacs = pacs;
                     }
+                    if (lisOrder != null && lisOrder != undefined) {
+                        d.lisOrder = lisOrder;
+                    }
+                    if (pacsOrder != null && pacsOrder != undefined) {
+                        d.pacsOrder = pacsOrder;
+                    }
                     if (diag != null && diag != undefined && diag != '') {
                         d.diag = diag;
                     }
@@ -553,6 +565,8 @@
                     var other = $("#other_id").val();
                     var lis = $("#lis_id").val();
                     var pacs = $("#pacs_id").val();
+                    var lisOrder = $("#lis_order").val();
+                    var pacsOrder = $("#pacs_order").val();
                     var diag = $("#diag_id").val();
                     var length = $("#length").val();
                     var sex = $("#sex").val();
@@ -579,6 +593,12 @@
                     if (pacs != null && pacs != undefined) {
                         d.pacs = pacs;
                     }
+                    if (lisOrder != null && lisOrder != undefined) {
+                        d.lisOrder = lisOrder;
+                    }
+                    if (pacsOrder != null && pacsOrder != undefined) {
+                        d.pacsOrder = pacsOrder;
+                    }
                     if (diag != null && diag != undefined && diag != '') {
                         d.diag = diag;
                     }