|
@@ -0,0 +1,199 @@
|
|
|
+package org.diagbot;
|
|
|
+
|
|
|
+import jxl.Cell;
|
|
|
+import jxl.Sheet;
|
|
|
+import jxl.Workbook;
|
|
|
+import jxl.read.biff.BiffException;
|
|
|
+import jxl.write.Label;
|
|
|
+import jxl.write.WritableCellFormat;
|
|
|
+import jxl.write.WritableFont;
|
|
|
+import jxl.write.WritableSheet;
|
|
|
+import jxl.write.WritableWorkbook;
|
|
|
+import org.diagbot.pub.jdbc.MysqlJdbc;
|
|
|
+
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileInputStream;
|
|
|
+import java.io.FileNotFoundException;
|
|
|
+import java.io.IOException;
|
|
|
+import java.sql.Connection;
|
|
|
+import java.sql.PreparedStatement;
|
|
|
+import java.sql.ResultSet;
|
|
|
+import java.sql.SQLException;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Description:
|
|
|
+ * @Author: HUJING
|
|
|
+ * @Date: 2019/11/21 17:08
|
|
|
+ */
|
|
|
+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";
|
|
|
+ readExcel(fileNameRead);
|
|
|
+ writeExcel(ruleId, readExcel(fileNameRead), fileNameWrite);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void writeExcel(Map<String, String> ruleId, List<List<String>> ruleList, String fileName) {
|
|
|
+ String[] title = { "编码", "是否删除", "记录创建时间", "记录修改时间", "创建人", "修改人", "指标名称", "规则类别", "提醒内容" };
|
|
|
+ File file = new File(fileName);
|
|
|
+ if (file.exists()) {
|
|
|
+ //如果文件存在就删除
|
|
|
+ file.delete();
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ file.createNewFile();
|
|
|
+ WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 10, WritableFont.BOLD);
|
|
|
+ WritableCellFormat format = new WritableCellFormat(font);
|
|
|
+ //创建工作簿
|
|
|
+ WritableWorkbook workbookA = Workbook.createWorkbook(file);
|
|
|
+ //创建sheet
|
|
|
+ WritableSheet sheetA = workbookA.createSheet("sheet1", 0);
|
|
|
+ Label labelA = null;
|
|
|
+ //设置列名
|
|
|
+ for (int j = 0; j < title.length; j++) {
|
|
|
+ labelA = new Label(j, 0, title[j], format);
|
|
|
+ sheetA.addCell(labelA);
|
|
|
+ }
|
|
|
+ int row = 1;
|
|
|
+ for (int i = 0; i < ruleList.size(); i++) {
|
|
|
+ List<String> rule = ruleList.get(i);
|
|
|
+ if (rule.size() == 2 || rule.size() == 3) {
|
|
|
+ String[] pacsOrder = rule.get(0).split("、");
|
|
|
+ String[] rules = rule.get(1).split("、");
|
|
|
+ for (int j = 0; j < pacsOrder.length; j++) {
|
|
|
+ String content = "";
|
|
|
+ for (int k = 0; k < rules.length; k++) {
|
|
|
+ /** 原规则app样式
|
|
|
+ * labelA = new Label(6, row, ruleId.get(pacsOrder[j]) + "," + ruleId.get(rules[k]));
|
|
|
+ * sheetA.addCell(labelA);
|
|
|
+ * labelA = new Label(8, row, rules[k] + ",不宜做" + pacsOrder[j]);
|
|
|
+ * sheetA.addCell(labelA);
|
|
|
+ * 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";
|
|
|
+ } else if (rules[k].contains("经期")){
|
|
|
+ feature = "70、71";
|
|
|
+ } else if (rules[k].contains("妊娠")){
|
|
|
+ feature = "164、165";
|
|
|
+ } else if (rules[k].contains("妊娠1-3个月")){
|
|
|
+ feature = "166、167";
|
|
|
+ }
|
|
|
+
|
|
|
+ String[] featureArr = feature.split("、");
|
|
|
+ for (int l = 0; l < featureArr.length; l++) {
|
|
|
+ if (k == rules.length - 1 && l == featureArr.length - 1) {
|
|
|
+ content += ruleId.get(pacsOrder[j]) + "," + featureArr[l];
|
|
|
+ } else {
|
|
|
+ content += ruleId.get(pacsOrder[j]) + "," + featureArr[l] + "|";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ labelA = new Label(6, row, content);
|
|
|
+ sheetA.addCell(labelA);
|
|
|
+ labelA = new Label(8, row, "${remind}:" + pacsOrder[j]);
|
|
|
+ sheetA.addCell(labelA);
|
|
|
+ row++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // } else if (rule.size() == 3){
|
|
|
+ // String[] rules = rule.get(1).split("、");
|
|
|
+ // for (int j = 0; j < rules.length; j++) {
|
|
|
+ // labelA = new Label(6, row, ruleId.get(rule.get(0))+","+ruleId.get(rules[j]));
|
|
|
+ // sheetA.addCell(labelA);
|
|
|
+ // labelA = new Label(8, row, rule.get(2));
|
|
|
+ // sheetA.addCell(labelA);
|
|
|
+ // row++;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ System.out.println("成功写入文件,请前往" + fileName + "查看文件!");
|
|
|
+ workbookA.write(); //写入数据
|
|
|
+ workbookA.close();
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ System.out.println("文件写入失败,报异常...");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public static List<List<String>> readExcel(String fileName) {
|
|
|
+ List<List<String>> ruleList = new ArrayList<>();
|
|
|
+ List<String> rule = null;
|
|
|
+ FileInputStream fis = null;
|
|
|
+ try {
|
|
|
+ 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 j = 1; j < rs.getRows(); j++) {
|
|
|
+ rule = new ArrayList<>();
|
|
|
+ String content = "";
|
|
|
+ Cell[] cells = rs.getRow(j);
|
|
|
+ for (int k = 0; k < cells.length; k++) {
|
|
|
+ if (k == 0 || k == 2 || k == 3) {
|
|
|
+ content = cells[k].getContents();
|
|
|
+ rule.add(content.trim());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ruleList.add(rule);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ fis.close();
|
|
|
+ } catch (FileNotFoundException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } catch (BiffException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return ruleList;
|
|
|
+ }
|
|
|
+
|
|
|
+ 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");
|
|
|
+ Connection conn = jdbc.connect();
|
|
|
+ PreparedStatement pstQuery = null;
|
|
|
+ ResultSet rs = null;
|
|
|
+ String sql = "SELECT id,eq_value FROM kl_rule_pub WHERE eq_value is not null";
|
|
|
+ try {
|
|
|
+ pstQuery = conn.prepareStatement(sql);
|
|
|
+ rs = pstQuery.executeQuery();
|
|
|
+ while (rs.next()) {
|
|
|
+ String id = String.valueOf(rs.getInt(1));
|
|
|
+ String eqValue = rs.getString(2).trim();
|
|
|
+ ruleId.put(eqValue, id);
|
|
|
+ }
|
|
|
+ ruleId.put("收缩压≥180mmHg", "74");
|
|
|
+ ruleId.put("舒张压≥110mmHg", "75");
|
|
|
+ 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");
|
|
|
+
|
|
|
+ rs.close();
|
|
|
+ pstQuery.close();
|
|
|
+ conn.close();
|
|
|
+ } catch (SQLException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return ruleId;
|
|
|
+ }
|
|
|
+}
|