Parcourir la source

1、台州数据获取

louhr il y a 5 ans
Parent
commit
780573f849

+ 6 - 1
kernel/src/main/resources/kernel.properties

@@ -5,4 +5,9 @@ mysql.redis.url = jdbc:mysql://192.168.2.236:3306/qc?useUnicode=true&characterEn
 
 mysql.test.user = root
 mysql.test.password = lantone
-mysql.test.url = jdbc:mysql://192.168.2.236:3306/sys-qctest?useUnicode=true&characterEncoding=UTF-8
+mysql.test.url = jdbc:mysql://192.168.2.236:3306/sys-qctest?useUnicode=true&characterEncoding=UTF-8
+
+oracle.test.driver = oracle.jdbc.driver.OracleDriver
+oracle.test.user = ETRACKMRQC
+oracle.test.password = ETRACKMRQC
+oracle.test.url = jdbc:oracle:thin:@192.168.2.246:1521:orcl

+ 105 - 64
kernel/src/test/java/com/lantone/qc/kernel/TaizDataImportApiTest.java

@@ -25,73 +25,19 @@ public class TaizDataImportApiTest {
     private static String hospitalId = "3";
 
     private Map<String,String> caseMap = new HashMap<>();
-    {
-        caseMap.put("0010 入院记录(新生儿)", "入院记录");
-        caseMap.put("0160 术后首次病程录02", "术后首次谈话及病程录");
-        caseMap.put("0330 危急值处置记录", "危急值记录");
-        caseMap.put("0300 首次病程录02", "首次病程录");
-        caseMap.put("0010 入院记录(女)", "入院记录");
-        caseMap.put("0220 转出记录","转出记录");
-        caseMap.put("0310 会诊记录","会诊记录");
-        caseMap.put("0010 再次入院(男)","入院记录");
-        caseMap.put("0120 上级查房记录","查房记录");
-        caseMap.put("0010 入院记录(儿)","入院记录");
-        caseMap.put("0130 普通病程录","查房记录");
-        caseMap.put("0010 入院记录(产科)","入院记录");
-        caseMap.put("0433 病危(重)通知","病危通知书");
-        caseMap.put("会诊结果","会诊结果单");
-        caseMap.put("0290 术前讨论兼术前小结","术前讨论小结");
-        caseMap.put("0300 首次病程录(中医)","首次病程录");
-        caseMap.put("0900 手术记录02","手术记录");
-        caseMap.put("0010 入院记录(男)","入院记录");
-        caseMap.put("0010 入院记录(中医 女)","入院记录");
-        caseMap.put("0310 会诊申请","会诊申请单");
-        caseMap.put("0110 查房记录(SOAP)","查房记录");
-        caseMap.put("0840 出院记录(手术)","出院小结");
-        caseMap.put("0840 出院记录(非手术)","出院小结");
-        caseMap.put("0011 入院记录(神经外科--女)","入院记录");
-        caseMap.put("0073 (日间)手术及术后首次病程记录","术后首次谈话及病程录");
-        caseMap.put("0010 入院记录(中医 男)","入院记录");
-        caseMap.put("住院病案首页02(病人存档及卫生统计用)","病案首页");
-
-    }
 
     public static void main(String[] args) {
         TaizDataImportApiTest test = new TaizDataImportApiTest();
-        test.insertPatient(test.importPatient());
+        //台州模块映射
+        test.loadTaizhouModelHospital();
+        //台州患者信息
+        test.insertPatient(test.loadOraclePatients("BR_INPATIENTINFO_TZ20200330"));
         //病人流水号获取
         Map<String, String> patientMap = test.loadPatients(hospitalId);
         Map<String, String> modelMap = test.loadModel();
         test.insertPatientText(patientMap, modelMap);
     }
 
-    private List<Patient> importPatient() {
-        try {
-            String result = HttpApi.get("http://192.168.3.241:11000/api/inpatientlist");
-            List<Patient> patients = FastJsonUtils.getJsonToList(result, Patient.class);
-            return patients;
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-
-    private List<PatientText> importPatientText(String patientId) {
-        try {
-            String result = HttpApi.get("http://192.168.3.241:11000/api/GetMedrecords?brzyid=" + patientId);
-//            String s = result.substring(result.indexOf("[") + 1, result.lastIndexOf("]"));
-//            s = s.replaceAll("\\[","<");
-//            s = s.replaceAll("\\]",">");
-//
-//            s = "[" + s + "]";
-            List<PatientText> patientTexts = FastJsonUtils.getJsonToList(result, PatientText.class);
-            return patientTexts;
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-
     private void insertPatient(List<Patient> patients) {
         List<Map<String, Object>> list = new ArrayList<>();
         for (Patient patient : patients) {
@@ -100,19 +46,21 @@ public class TaizDataImportApiTest {
             patientMap.put("hospital_id", hospitalId);
             list.add(patientMap);
         }
-        initJdbc().insert(list, "qc_cases_number", new String[]{"hospital_id", "case_number"});
+        initMysqlJdbc().insert(list, "qc_cases_number", new String[]{"hospital_id", "case_number"});
     }
 
     private void insertPatientText(Map<String, String> patientMap, Map<String, String> modelMap) {
         List<Map<String, Object>> list = new ArrayList<>();
 
         for (Map.Entry<String, String> entry : patientMap.entrySet()) {
-            List<PatientText> patientTexts = importPatientText(entry.getKey());
+            List<PatientText> patientTexts = loadOraclePatientTexts(entry.getKey());
             for (PatientText patientText : patientTexts) {
+System.out.println(patientText.getBrzyid() + "  " + patientText.getBljlmc());
                 Map<String, Object> patientTextMap = new HashMap<>();
                 patientTextMap.put("case_number", patientText.getBrzyid());
                 patientTextMap.put("case_number_id", patientMap.get(patientText.getBrzyid()));
                 patientTextMap.put("hospital_id", hospitalId);
+System.out.println("******" + patientText.getBljlmc() + "**" + caseMap.get(patientText.getBljlmc()));
                 patientTextMap.put("mode_id", modelMap.get(caseMap.get(patientText.getBljlmc())));
 
                 if (patientTextMap.get("mode_id") == null) {
@@ -129,11 +77,72 @@ public class TaizDataImportApiTest {
                 list.add(patientTextMap);
             }
         }
-        initJdbc().insert(list, "qc_model_mapping", new String[]{"case_number", "case_number_id", "origin_text", "mode_id", "text"});
+        initMysqlJdbc().insert(list, "qc_model_mapping", new String[]{"case_number", "case_number_id", "origin_text", "mode_id", "text"});
+    }
+
+    private List<Patient> loadOraclePatients(String tableName) {
+        MysqlJdbc mysqlJdbc = initOracleJdbc();
+        Connection conn = mysqlJdbc.connect();
+        Statement st = null;
+        ResultSet rs = null;
+        String r1, r2;
+        List<Patient> patients = new ArrayList<>();
+        try {
+            st = conn.createStatement();
+            String sql = "select BRZYID from " + tableName;
+            rs = st.executeQuery(sql);
+            while (rs.next()) {
+                r1 = rs.getString(1);
+                Patient patient = new Patient();
+                patient.setBrzyid(r1);
+                patients.add(patient);
+            }
+        } catch (SQLException sqle) {
+            sqle.printStackTrace();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            mysqlJdbc.close(rs, st, conn);
+        }
+        return patients;
+    }
+
+    private List<PatientText> loadOraclePatientTexts(String brzyid) {
+        MysqlJdbc mysqlJdbc = initOracleJdbc();
+        Connection conn = mysqlJdbc.connect();
+        Statement st = null;
+        ResultSet rs = null;
+        String r1, r2, r3;
+        List<PatientText> patientTexts = new ArrayList<>();
+        try {
+            st = conn.createStatement();
+            String sql = "select brzyid,bljlmc,bljlnr from mr_medicalrecords_TZ20200330 a " +
+                    "left join mr_mrcontent_TZ20200330 b on a.bljlid=b.bljlid " +
+                    "where bljlnr is not null " +
+                    "order by brzyid";
+            rs = st.executeQuery(sql);
+            while (rs.next()) {
+                r1 = rs.getString(1);
+                r2 = rs.getString(2);
+                r3 = rs.getString(3);
+                PatientText patientText = new PatientText();
+                patientText.setBrzyid(r1);
+                patientText.setBljlmc(r2);
+                patientText.setBljlnr(r3);
+                patientTexts.add(patientText);
+            }
+        } catch (SQLException sqle) {
+            sqle.printStackTrace();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            mysqlJdbc.close(rs, st, conn);
+        }
+        return patientTexts;
     }
 
     private Map<String, String> loadPatients(String hospitalId) {
-        MysqlJdbc mysqlJdbc = initJdbc();
+        MysqlJdbc mysqlJdbc = initMysqlJdbc();
         Connection conn = mysqlJdbc.connect();
         Statement st = null;
         ResultSet rs = null;
@@ -159,7 +168,7 @@ public class TaizDataImportApiTest {
     }
 
     private Map<String, String> loadModel() {
-        MysqlJdbc mysqlJdbc = initJdbc();
+        MysqlJdbc mysqlJdbc = initMysqlJdbc();
         Connection conn = mysqlJdbc.connect();
         Statement st = null;
         ResultSet rs = null;
@@ -184,11 +193,43 @@ public class TaizDataImportApiTest {
         return map;
     }
 
-    private MysqlJdbc initJdbc() {
+    private void loadTaizhouModelHospital() {
+        MysqlJdbc mysqlJdbc = initMysqlJdbc();
+        Connection conn = mysqlJdbc.connect();
+        Statement st = null;
+        ResultSet rs = null;
+        String r1, r2;
+        try {
+            st = conn.createStatement();
+            String sql = "select hospital_model_name, stand_model_name from qc_model_hospital_taizhou where stand_model_name is not null";
+            rs = st.executeQuery(sql);
+            while (rs.next()) {
+                r1 = rs.getString(1);
+                r2 = rs.getString(2);
+                caseMap.put(r1, r2);
+            }
+        } catch (SQLException sqle) {
+            sqle.printStackTrace();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            mysqlJdbc.close(rs, st, conn);
+        }
+    }
+
+    private MysqlJdbc initMysqlJdbc() {
         PropertiesUtil propertiesUtil = new PropertiesUtil("kernel.properties");
         MysqlJdbc mysqlJdbc = new MysqlJdbc(propertiesUtil.getProperty("mysql.test.user"),
                 propertiesUtil.getProperty("mysql.test.password"),
                 propertiesUtil.getProperty("mysql.test.url"));
         return mysqlJdbc;
     }
+
+    private MysqlJdbc initOracleJdbc() {
+        PropertiesUtil propertiesUtil = new PropertiesUtil("kernel.properties");
+        MysqlJdbc mysqlJdbc = new MysqlJdbc(propertiesUtil.getProperty("oracle.test.user"),
+                propertiesUtil.getProperty("oracle.test.password"),
+                propertiesUtil.getProperty("oracle.test.url"), propertiesUtil.getProperty("oracle.test.driver"));
+        return mysqlJdbc;
+    }
 }

+ 7 - 0
public/src/main/java/com/lantone/qc/pub/jdbc/MysqlJdbc.java

@@ -28,6 +28,13 @@ public class MysqlJdbc {
         this.url = url;
     }
 
+    public MysqlJdbc(String user, String password, String url, String driver) {
+        this.user = user;
+        this.password = password;
+        this.url = url;
+        this.driver = driver;
+    }
+
     public MysqlJdbc(String property_file_path) {
         this.initProperties(property_file_path);
     }

+ 2 - 1
trans/src/main/java/com/lantone/qc/trans/taizhou/util/TzXmlUtil.java

@@ -21,7 +21,7 @@ public class TzXmlUtil {
         Map<String, String> retMap = Maps.newHashMap();
         try {
             Document doc = DocumentHelper.parseText(xml);
-            List<Element> emrTermElements = doc.getRootElement().element("BLHLNR").element("emr_xml_root").element("TermList").elements("EMR-TERM");
+            List<Element> emrTermElements = doc.getRootElement().element("emr_xml_root").element("TermList").elements("EMR-TERM");
             emrTermElements.forEach(emrTermElement -> {
                 retMap.put(
                         StringUtil.removeBlank(emrTermElement.attributeValue("ename")),
@@ -29,6 +29,7 @@ public class TzXmlUtil {
                 );
             });
         } catch (Exception e) {
+            e.printStackTrace();
         }
         return retMap;
     }