Sfoglia il codice sorgente

将满足推送的条件和结果都输出到数据结构,以便对应查找

MarkHuang 5 anni fa
parent
commit
47e6b2ca54

+ 10 - 0
common-service/src/main/java/org/diagbot/common/javabean/MedicalIndication.java

@@ -7,6 +7,8 @@ import java.util.List;
  */
 public class MedicalIndication {
     private String name;
+    // 触发推送的规则
+    private String rule;
     private List<MedicalIndicationDetail> details;
 
     public String getName() {
@@ -17,6 +19,14 @@ public class MedicalIndication {
         this.name = name;
     }
 
+    public String getRule() {
+        return rule;
+    }
+
+    public void setRule(String rule) {
+        this.rule = rule;
+    }
+
     public List<MedicalIndicationDetail> getDetails() {
         return details;
     }

+ 7 - 0
nlp/pom.xml

@@ -38,6 +38,13 @@
             <artifactId>poi-ooxml</artifactId>
             <version>3.17</version>
         </dependency>
+        <!-- https://mvnrepository.com/artifact/org.mongodb/bson -->
+        <dependency>
+            <groupId>org.mongodb</groupId>
+            <artifactId>bson</artifactId>
+            <version>3.10.2</version>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 7 - 3
push-web/src/main/java/org/diagbot/push/transform/PreProcess.java

@@ -73,9 +73,6 @@ public class PreProcess {
                 }
             }
 
-            for (MedicalIndication r: reminder) {
-                System.out.println(r.getName());
-            }
         } catch (Exception ex) {
             ex.printStackTrace();
         } finally {
@@ -90,6 +87,7 @@ public class PreProcess {
         String minop, maxop, minunit, maxunit;
 
         try {
+            String detailname = lis.getDetailName();
             Double numval = lis.getValue();
             String unit = lis.getUnits();
             String otherval = lis.getOtherValue();
@@ -99,7 +97,10 @@ public class PreProcess {
                     if (rule.getMin_operator().equals("=") && otherval.contains(rule.getMin_value())) {
                         MedicalIndication medind = new MedicalIndication();
                         medind.setName(rule.getRemind());
+                        medind.setRule(detailname + ": " + otherval);
                         reminder.add(medind);
+
+                        System.out.println(medind.getRule() + " -> " + medind.getName());
                     }
                 }
             } else if (String.valueOf(numval).trim().length() > 0 && unit.length() > 0){
@@ -137,7 +138,10 @@ public class PreProcess {
                     if (minmatch && maxmatch) {
                         MedicalIndication medind = new MedicalIndication();
                         medind.setName(rule.getRemind());
+                        medind.setRule(detailname + ": " + numval + " " + unit);
                         reminder.add(medind);
+
+                        System.out.println(medind.getRule() + " -> " + medind.getName());
                     }
                 }
             }