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

1、修改病案首页RH填写错误

louhr 5 éve
szülő
commit
fe55999226

+ 16 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0449.java

@@ -1,6 +1,9 @@
 package com.lantone.qc.kernel.catalogue.behospitalized;
 
+import com.alibaba.fastjson.JSONArray;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.client.SimilarityServiceClient;
+import com.lantone.qc.kernel.structure.ai.FirstCourseRecordAI;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
@@ -8,6 +11,7 @@ import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.util.ListUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -21,6 +25,9 @@ import java.util.List;
  */
 @Component
 public class BEH0449 extends QCCatalogue {
+    @Autowired
+    SimilarityServiceClient similarityServiceClient;
+
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
         if (beHospitalizedDoc != null) {
@@ -40,6 +47,15 @@ public class BEH0449 extends QCCatalogue {
                             || clinical_present.getName().contains(clinical_chief.getName())) {
                         status.set("0");
                         return;
+                    } else {
+                        JSONArray similarContent = new JSONArray();
+                        FirstCourseRecordAI firstCourseRecordAI = new FirstCourseRecordAI();
+                        firstCourseRecordAI.putContent(similarContent, clinical_chief.getName(), clinical_present.getName());
+                        double likeRate = firstCourseRecordAI.loadSimilarAI(similarContent, similarityServiceClient);
+                        if (likeRate > 0.9) {
+                            status.set("0");
+                            return;
+                        }
                     }
                 }
             }

+ 2 - 2
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/ModelAI.java

@@ -42,7 +42,7 @@ public class ModelAI {
      * @param similarityServiceClient
      * @return
      */
-    protected double loadSimilarAI(JSONArray similarContent, SimilarityServiceClient similarityServiceClient) {
+    public double loadSimilarAI(JSONArray similarContent, SimilarityServiceClient similarityServiceClient) {
         //存储CRF完整所需结构数据
         SimilarityVo similarityVo = new SimilarityVo();
         similarityVo.setData(similarContent);
@@ -116,7 +116,7 @@ public class ModelAI {
      * @param firstText
      * @param secondText
      */
-    protected void putContent(JSONArray similarContent, String firstText, String secondText) {
+    public void putContent(JSONArray similarContent, String firstText, String secondText) {
         String moveFirstText = CatalogueUtil.removeSpecialChar(firstText);
         String moveSecondText = CatalogueUtil.removeSpecialChar(secondText);
         if (StringUtil.isEmpty(moveFirstText) || StringUtil.isEmpty(moveSecondText)) {

+ 81 - 0
kernel/src/test/java/com/lantone/qc/kernel/DataImportQcText.java

@@ -0,0 +1,81 @@
+package com.lantone.qc.kernel;
+
+import java.sql.*;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : DataImportQcText
+ * @Description :
+ * @Author : 楼辉荣
+ * @Date: 2020-04-16 18:28
+ */
+public class DataImportQcText {
+    public static void main(String[] args) {
+        DataImportQcText test = new DataImportQcText();
+        test.transRechome();
+    }
+
+    private void transRechome() {
+        Connection conn = null;
+        Statement stmt = null;
+        ResultSet rs = null;
+        try {
+            conn = MysqlJdbcUtil.getConnection("3");
+            stmt = conn.createStatement();
+
+            DatabaseMetaData dmd = conn.getMetaData();
+            ResultSet dmdRs = dmd.getColumns(null, null, "BR_RECHOME", null);
+
+            Map<String, String> colMap = new LinkedHashMap<>();
+
+            String sql = "insert into BR_RECHOME_CX(";
+
+            while(dmdRs.next()){
+                colMap.put(dmdRs.getString(4), dmdRs.getString("REMARKS"));
+            }
+            int i = 0;
+            for (Map.Entry<String, String> map : colMap.entrySet()) {
+                if (i == 0) {
+                    sql = sql + map.getKey();
+                } else {
+                    sql = sql + "," + map.getKey();
+                }
+                i++;
+            }
+            sql = sql + ") select ";
+            i = 0;
+            for (Map.Entry<String, String> map : colMap.entrySet()) {
+                if (i == 0) {
+                    sql = sql + map.getKey();
+                } else {
+                    sql = sql + "," + map.getKey();
+                }
+                i++;
+            }
+            sql = sql + " from BR_RECHOME";
+            System.out.println(sql);
+            dmdRs.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                if (rs != null) {
+                    rs.close();
+                    rs = null;
+                }
+                if (stmt != null) {
+                    stmt.close();
+                    stmt = null;
+                }
+                if (conn != null) {
+                    conn.close();
+                    conn = null;
+                }
+            } catch (SQLException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+}

+ 3 - 32
kernel/src/test/java/com/lantone/qc/kernel/DataTest.java

@@ -27,7 +27,7 @@ public class DataTest {
         ResultSet rs = null;
         List<Map<String, Object>> resultList = null;
         try {
-            conn = getConnection(hospitalId);
+            conn = MysqlJdbcUtil.getConnection(hospitalId);
             stmt = conn.createStatement();
 
             DatabaseMetaData dmd = conn.getMetaData();
@@ -70,7 +70,7 @@ public class DataTest {
         ResultSet rs = null;
         List<Map<String, String>> resultList = new ArrayList<>();
         try {
-            conn = getConnection(hospitalId);
+            conn = MysqlJdbcUtil.getConnection(hospitalId);
             stmt = conn.createStatement();
             if (zdlbdm.equals("1")) {
                 zdlbdm = "'门诊诊断'";
@@ -117,7 +117,7 @@ public class DataTest {
         ResultSet rs = null;
         List<Map<String, String>> resultList = new ArrayList<>();
         try {
-            conn = getConnection(hospitalId);
+            conn = MysqlJdbcUtil.getConnection(hospitalId);
             stmt = conn.createStatement();
             rs = stmt.executeQuery("SELECT r.BASYID, r.brssxh, r.BRSSRQ, r.BRSSMC, SSDMID, r.QKDJDM, r.YHDJDM, SSYSID, \n" +
                     "U1.YHRYMC, r.YZHSID, u3.yhrymc, r.MZYSID, u2.yhrymc, r.MZFFMC  FROM " + tableNameOperation + " r\n" +
@@ -180,33 +180,4 @@ public class DataTest {
         }
         return resultList;
     }
-
-    private static Connection getConnection(String hospitalId) throws Exception {
-        PropertiesUtil propertiesUtil = new PropertiesUtil("kernel.properties");
-        Class.forName(propertiesUtil.getProperty("oracle.test.driver"));
-
-        String url = "";
-        String user = "";
-        String password = "";
-                Properties props = new Properties();
-        if ("1".equals(hospitalId)) {
-            url = propertiesUtil.getProperty("oracle.test.url");
-            // 127.0.0.1是本机地址,1521是Oracle默认连接端口,DATABASE_NAME为实例名(SID)
-            user = propertiesUtil.getProperty("oracle.test.user");// 用户系统默认的账户名
-            password = propertiesUtil.getProperty("oracle.test.password");// 你安装时选设置的密码
-        } else if ("3".equals(hospitalId)) {
-            url = propertiesUtil.getProperty("oracle.taizhou.url");
-            // 127.0.0.1是本机地址,1521是Oracle默认连接端口,DATABASE_NAME为实例名(SID)
-            user = propertiesUtil.getProperty("oracle.taizhou.user");// 用户系统默认的账户名
-            password = propertiesUtil.getProperty("oracle.taizhou.password");// 你安装时选设置的密码
-        }
-        props.put("user", user);
-        props.put("password", password);
-        props.put("defaultRowPrefetch", "15");
-        props.put("remarksReporting", "true");
-        //默认情况下不允许用dba身份连接数据库,通过property设置以实现dba连接
-        Connection conn = DriverManager.getConnection(url, props);
-        return conn;
-    }
-
 }

+ 60 - 0
kernel/src/test/java/com/lantone/qc/kernel/MysqlJdbcUtil.java

@@ -0,0 +1,60 @@
+package com.lantone.qc.kernel;
+
+import com.lantone.qc.pub.jdbc.MysqlJdbc;
+import com.lantone.qc.pub.util.PropertiesUtil;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.util.Properties;
+
+/**
+ * @ClassName : MysqlJdbcUtil
+ * @Description :
+ * @Author : 楼辉荣
+ * @Date: 2020-04-16 18:29
+ */
+public class MysqlJdbcUtil {
+    public static MysqlJdbc initOracleJdbc() {
+        PropertiesUtil propertiesUtil = new PropertiesUtil("kernel.properties");
+        MysqlJdbc mysqlJdbc = new MysqlJdbc(propertiesUtil.getProperty("oracle.taizhou.user"),
+                propertiesUtil.getProperty("oracle.taizhou.password"),
+                propertiesUtil.getProperty("oracle.taizhou.url"), propertiesUtil.getProperty("oracle.taizhou.driver"));
+        return mysqlJdbc;
+    }
+
+    public static 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;
+    }
+
+    public static Connection getConnection(String hospitalId) throws Exception {
+        PropertiesUtil propertiesUtil = new PropertiesUtil("kernel.properties");
+        Class.forName(propertiesUtil.getProperty("oracle.test.driver"));
+
+        String url = "";
+        String user = "";
+        String password = "";
+        Properties props = new Properties();
+        if ("1".equals(hospitalId)) {
+            url = propertiesUtil.getProperty("oracle.test.url");
+            // 127.0.0.1是本机地址,1521是Oracle默认连接端口,DATABASE_NAME为实例名(SID)
+            user = propertiesUtil.getProperty("oracle.test.user");// 用户系统默认的账户名
+            password = propertiesUtil.getProperty("oracle.test.password");// 你安装时选设置的密码
+        } else if ("3".equals(hospitalId)) {
+            url = propertiesUtil.getProperty("oracle.taizhou.url");
+            // 127.0.0.1是本机地址,1521是Oracle默认连接端口,DATABASE_NAME为实例名(SID)
+            user = propertiesUtil.getProperty("oracle.taizhou.user");// 用户系统默认的账户名
+            password = propertiesUtil.getProperty("oracle.taizhou.password");// 你安装时选设置的密码
+        }
+        props.put("user", user);
+        props.put("password", password);
+        props.put("defaultRowPrefetch", "15");
+        props.put("remarksReporting", "true");
+        //默认情况下不允许用dba身份连接数据库,通过property设置以实现dba连接
+        Connection conn = DriverManager.getConnection(url, props);
+        return conn;
+    }
+}

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

@@ -62,7 +62,7 @@ public class TaizDataImportApiTest {
     }
 
     public static void main(String[] args) {
-        String patientId = "181758_5";
+        String patientId = "";
 
         TaizDataImportApiTest test = new TaizDataImportApiTest();
         initTableMap();
@@ -238,7 +238,7 @@ public class TaizDataImportApiTest {
             if (StringUtils.isNotEmpty(patientId)) {
                 sql = "select BRZYID from " + tableName + " where BRZYID = '" + patientId + "'";
             } else {
-                sql = "select BRZYID from " + tableName;
+                sql = "select BRZYID from " + tableName + " where rownum BETWEEN 0 and 100";
             }
             rs = st.executeQuery(sql);
             while (rs.next()) {