hujing 5 rokov pred
rodič
commit
5cf06961e8

+ 61 - 29
bigdata-web/src/test/java/org/diagbot/Rule2AppTest.java

@@ -9,6 +9,7 @@ import jxl.write.WritableCellFormat;
 import jxl.write.WritableFont;
 import jxl.write.WritableSheet;
 import jxl.write.WritableWorkbook;
+import org.apache.commons.lang3.StringUtils;
 import org.diagbot.pub.jdbc.MysqlJdbc;
 
 import java.io.File;
@@ -32,11 +33,8 @@ import java.util.Map;
 public class Rule2AppTest {
     public static void main(String[] args) {
         Map<String, String> ruleId = getRuleId();
-        //        for (Map.Entry<String, Integer> ruleAndId:ruleId.entrySet()) {
-        //            System.out.println(ruleAndId.getValue() + "---" + ruleAndId.getKey());
-        //        }
-        String fileNameRead = "D:\\大数据小组\\慢病\\11.病历评级案例-20191024心内科&呼吸科.xls";
-        String fileNameWrite = "D:\\大数据小组\\慢病\\病历评级规则app列表20191125.xls";
+        String fileNameRead = "D:\\大数据小组\\慢病\\11.病历评级案例-20191126.xls";
+        String fileNameWrite = "D:\\大数据小组\\慢病\\病历评级规则app列表20191126.xls";
         readExcel(fileNameRead);
         writeExcel(ruleId, readExcel(fileNameRead), fileNameWrite);
     }
@@ -50,8 +48,9 @@ public class Rule2AppTest {
         }
         try {
             file.createNewFile();
-            WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 10, WritableFont.BOLD);
-            WritableCellFormat format = new WritableCellFormat(font);
+            WritableFont titleFont = new WritableFont(WritableFont.createFont("宋体"), 10, WritableFont.BOLD);
+            WritableFont contentFont = new WritableFont(WritableFont.createFont("宋体"), 10);
+            WritableCellFormat format = new WritableCellFormat(titleFont);
             //创建工作簿
             WritableWorkbook workbookA = Workbook.createWorkbook(file);
             //创建sheet
@@ -63,6 +62,7 @@ public class Rule2AppTest {
                 sheetA.addCell(labelA);
             }
             int row = 1;
+            format = new WritableCellFormat(contentFont);
             for (int i = 0; i < ruleList.size(); i++) {
                 List<String> rule = ruleList.get(i);
                 if (rule.size() == 2 || rule.size() == 3) {
@@ -70,6 +70,7 @@ public class Rule2AppTest {
                     String[] rules = rule.get(1).split("、");
                     for (int j = 0; j < pacsOrder.length; j++) {
                         String content = "";
+                        String remind = "";
                         for (int k = 0; k < rules.length; k++) {
                             /** 原规则app样式
                              * labelA = new Label(6, row, ruleId.get(pacsOrder[j]) + "," + ruleId.get(rules[k]));
@@ -79,15 +80,19 @@ public class Rule2AppTest {
                              * row++;*/
                             String feature = ruleId.get(rules[k]) != null ? ruleId.get(rules[k]) : rules[k];
                             if (rules[k].contains("血小板计数(PLT)")){
-                                feature = "131";
-                            } else if (rules[k].contains("氧饱和度(O2sat)")){
-                                feature = "138";
+                                feature = "1131";
                             } else if (rules[k].contains("经期")){
                                 feature = "70、71";
                             } else if (rules[k].contains("妊娠")){
-                                feature = "164、165";
+                                feature = "1164、1165";
+                                remind = rule.size()>2?rule.get(2):"妊娠不宜做此项检查";
                             } else if (rules[k].contains("妊娠1-3个月")){
-                                feature = "166、167";
+                                feature = "1166、1167、1168、1169";
+//                                remind = rule.size()>2?rule.get(2):"妊娠不宜做此项检查";
+                            } else if (rules[k].contains("男性")){
+                                remind = rule.size()>2?rule.get(2):"男性不宜做此项检查";
+                            } else if (rules[k].contains("女性")){
+                                remind = rule.size()>2?rule.get(2):"女性不宜做此项检查";
                             }
 
                             String[] featureArr = feature.split("、");
@@ -95,13 +100,14 @@ public class Rule2AppTest {
                                 if (k == rules.length - 1 && l == featureArr.length - 1) {
                                     content += ruleId.get(pacsOrder[j]) + "," + featureArr[l];
                                 } else {
-                                    content += ruleId.get(pacsOrder[j]) + "," + featureArr[l] + "|";
+                                    content += ruleId.get(pacsOrder[j]) + "," + featureArr[l] + "^";
                                 }
                             }
                         }
-                        labelA = new Label(6, row, content);
+//                        write2DB(content,StringUtils.isEmpty(remind)?"请注意:该患者${remind}":remind);
+                        labelA = new Label(6, row, content,format);
                         sheetA.addCell(labelA);
-                        labelA = new Label(8, row, "${remind}:" + pacsOrder[j]);
+                        labelA = new Label(8, row, StringUtils.isEmpty(remind)?"请注意:该患者${remind}":remind,format);
                         sheetA.addCell(labelA);
                         row++;
                     }
@@ -134,8 +140,8 @@ public class Rule2AppTest {
             fis = new FileInputStream(new File(fileName));
             Workbook rwb = Workbook.getWorkbook(fis);
             Sheet[] sheet = rwb.getSheets();
-            for (int i = 0; i < sheet.length; i++) {
-                Sheet rs = rwb.getSheet(i);
+//            for (int i = 0; i < sheet.length; i++) {
+                Sheet rs = rwb.getSheet(0);
                 for (int j = 1; j < rs.getRows(); j++) {
                     rule = new ArrayList<>();
                     String content = "";
@@ -148,7 +154,7 @@ public class Rule2AppTest {
                     }
                     ruleList.add(rule);
                 }
-            }
+//            }
             fis.close();
         } catch (FileNotFoundException e) {
             e.printStackTrace();
@@ -160,6 +166,27 @@ public class Rule2AppTest {
         return ruleList;
     }
 
+    public static void write2DB(String ruleId,String remind){
+        MysqlJdbc jdbc = new MysqlJdbc( "root", "diagbot@20180822","jdbc:mysql://192.168.2.235:3306/med-s?useUnicode=true&characterEncoding=UTF-8");
+        Connection conn = jdbc.connect();
+        PreparedStatement pstUpdate = null;
+        String sql = "INSERT INTO kl_rule_app(rule_id,type_id,remind) VALUES (?,?,?)";
+
+        try {
+            pstUpdate = conn.prepareStatement(sql);
+            pstUpdate.setString(1,ruleId);
+            pstUpdate.setString(2,"2");
+            pstUpdate.setString(3,remind);
+            System.out.println(ruleId + "\t" + remind);
+            pstUpdate.executeUpdate();
+            pstUpdate.close();
+            conn.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
     public static Map<String, String> getRuleId() {
         Map<String, String> ruleId = new HashMap<>();
         MysqlJdbc jdbc = new MysqlJdbc( "root", "diagbot@20180822","jdbc:mysql://192.168.2.235:3306/med-s?useUnicode=true&characterEncoding=UTF-8");
@@ -175,19 +202,24 @@ public class Rule2AppTest {
                 String eqValue = rs.getString(2).trim();
                 ruleId.put(eqValue, id);
             }
-            ruleId.put("收缩压≥180mmHg", "74");
-            ruleId.put("舒张压≥110mmHg", "75");
+            ruleId.put("收缩压≥180mmHg", "238");
+            ruleId.put("舒张压≥110mmHg", "239");
             ruleId.put("收缩压≤80mmHg", "29");
             ruleId.put("舒张压≤50mmHg", "30");
-            ruleId.put("收缩压≥140mmHg", "129");
-            ruleId.put("舒张压≥90mmHg", "130");
-            ruleId.put("体温>39.1℃", "122");
-            ruleId.put("体温>37.3℃", "123");
-            ruleId.put("凝血酶原时间(PT)对照>5s", "132");
-            ruleId.put("活化部分凝血活酶(APTT)对照>10s", "133");
-            ruleId.put("T7至L3椎体MR增强", "648");
-            ruleId.put("体温>39.0℃", "743");
-
+            ruleId.put("收缩压≥140mmHg", "273");
+            ruleId.put("舒张压≥90mmHg", "274");
+            ruleId.put("体温>39.1℃", "272");
+            ruleId.put("体温>37.3℃", "1123");
+            ruleId.put("凝血酶原时间(PT)对照>5s", "1132");
+            ruleId.put("活化部分凝血活酶(APTT)对照>10s", "1133");
+            ruleId.put("T7至L3椎体MR增强", "1648");
+//            ruleId.put("体温>39.0℃", "743");
+            ruleId.put("心率<60次/分", "1128");
+            ruleId.put("心率≥120次/分", "28");
+            ruleId.put("肾病综合征+胸腔积液", "1211,1140");
+            ruleId.put("肝硬化+胸腔积液", "1212,1140");
+            ruleId.put("心力衰竭+胸腔积液", "60,1140");
+            ruleId.put("低蛋白血症+胸腔积液", "1213,1140");
             rs.close();
             pstQuery.close();
             conn.close();