Procházet zdrojové kódy

合并push-lis-convert和push-lisPublic分支

louhr před 5 roky
rodič
revize
d68999807b

+ 2 - 2
graph/src/main/resources/bolt.properties

@@ -5,9 +5,9 @@ pass_235 = diagbot@20180822
 
 # neo4j bolt credentials
 #\u7EBF\u4E0A\u4F7F\u7528
-bolt.uri=bolt://192.168.2.233
+bolt.uri=bolt://192.168.3.180
 bolt.user=neo4j
-bolt.passwd=root
+bolt.passwd=123456
 
 
 #\u6D4B\u8BD5\u4F7F\u7528

+ 1 - 1
graphdb/src/main/java/org/diagbot/pub/Ciku.java

@@ -2,7 +2,7 @@ package org.diagbot.pub;
 
 public enum Ciku {
     SYMPTOM("1","1,70"),VITAL_RESULT("2","35,70"),BIGlIS("3","12"),SUBLIS("subLis","13")
-    ,RESULTLIS("resultLis","14,70"),PACS("4","16"),RESULTPACS("resultPacs","17,70"),DISEASE("5","18")
+    ,RESULTLIS("resultLis","14"),PACS("4","16"),RESULTPACS("resultPacs","17"),DISEASE("5","18")
     ,HISTORY("6","18,70"),CAUSE("7","5,70"),PROGNOSIS("8","70"),OTHER("9","70");
     private String name;
     private String label;

+ 11 - 2
graphdb/src/main/java/org/diagbot/repository/DiseaseRepository.java

@@ -140,12 +140,18 @@ public interface DiseaseRepository extends Neo4jRepository<Disease, Long> {
     //疾病和鉴别诊断创建关系
     @Query("match(d:Disease{disId:{0}}),(s:DifferentDis{name:{1}}) merge(d)-[r:鉴别诊断]->(s)")
     void mergeRelationDifferentDis(Long disId,String name);
-    //创建公表名
+    //创建化验大项
     @Query("merge(l:LIS{name:{0}})")
     void mergePublicLIS(String lisName);
-    //疾病和鉴别诊断创建关系
+    //疾病和化验大项创建关系
     @Query("match(d:Disease{disId:{0}}),(s:LIS{name:{1}}) merge(d)-[r:推荐]->(s)")
     void mergeRelationLIS(Long disId,String name);
+    //创建化验公表项
+    @Query("merge(l:PublicLIS{name:{0}})")
+    void mergePublicLIS_1(String lisName);
+    //疾病和化验公表项创建关系
+    @Query("match(d:Disease{disId:{0}}),(s:PublicLIS{name:{1}}) merge(d)-[r:推荐]->(s)")
+    void mergeRelationLIS_1(Long disId,String name);
     //创建化验结果节点
     @Query("merge(l:LISResult{name:{0}})")
     void mergeLISRESULT(String name);
@@ -155,6 +161,9 @@ public interface DiseaseRepository extends Neo4jRepository<Disease, Long> {
     //化验结果和对应的codeCondition创建关系
     @Query("match(d:Condition{name:{0}}),(s:LISResult{name:{1}}) merge(d)<-[r:诊断依据]-(s)")
     void mergeRelationCondiLisRes(String codeCondition,String lisRes);
+    //公表名和化验结果创建关系
+    @Query("match(d:LIS{name:{0}}),(s:PublicLIS{name:{1}}) merge(d)-[r:化验公表]->(s)")
+    void mergeRelationPublicAndLIS(String lis,String publicLis);
     //创建辅检项目
     @Query("merge(p:PACS{name:{0}})")
     void mergePacs(String pacsName);

+ 61 - 23
graphdb/src/main/java/org/diagbot/service/impl/KnowledgeServiceImpl.java

@@ -28,10 +28,7 @@ import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
 
 import java.math.RoundingMode;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
+import java.sql.*;
 import java.text.NumberFormat;
 import java.util.*;
 
@@ -57,7 +54,7 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
     private List<BaseNode> baseNodes;
     private String user = "root";
     private String password = "lantone";
-    private String url = "jdbc:mysql://192.168.2.241:3306/med?useUnicode=true&characterEncoding=UTF-8";
+    private String url = "jdbc:mysql://192.168.2.236:3306/med?useUnicode=true&characterEncoding=UTF-8";
     private Pageable pageable;
     /**
      * 处理症状节点相关的申请
@@ -399,7 +396,7 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
         List<String> bigdataDiagList = new LinkedList<>();//大数据诊断
         if (bigdataDiagFeature.size() > 0) {
             for (FeatureRate fe : bigdataDiagFeature) {
-                if ("neo4j".equals(fe.getSource()) && fe.getDesc().contains("确诊")) {
+                if ("neo4j".equals(fe.getSource()) && (fe.getDesc().contains("确诊") || fe.getDesc().contains("拟诊"))) {
                     neo4jDiagList.add(fe.getFeatureName());
                 } else if (fe.getDesc() == null) {
                     bigdataDiagList.add(fe.getFeatureName());
@@ -1465,8 +1462,8 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
         Statement st = null;
         ResultSet rs = null;
         try {
-            String type, code ,standard,relation,result,formula,name;
-            String sql = "SELECT diagnose_id,dis_name,`type`,`code`,standard,relation,result,formula FROM `kl_diagnose_detail` where diagnose_id = "+disId+"  and is_deleted = 'N'";
+            String type, code ,standard,relation,unique_name,result,formula,name;
+            String sql = "SELECT diagnose_id,dis_name,`type`,`code`,standard,relation,unique_name,result,formula FROM `kl_diagnose_detail` where diagnose_id = "+disId+"  and is_deleted = 'N'";
             st = connection.createStatement();
             rs = st.executeQuery(sql);
             while (rs.next()){
@@ -1475,6 +1472,7 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
                 code = rs.getString("code");
                 standard = rs.getString("standard");
                 relation = rs.getString("relation");
+                unique_name = rs.getString("unique_name");
                 result = rs.getString("result");
                 formula = rs.getString("formula");
                 name = Type.getName(Integer.parseInt(type));
@@ -1483,6 +1481,7 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
                 content.put("code",code);
                 content.put("standard",standard);
                 content.put("relation",relation);
+                content.put("unique_name",unique_name);
                 content.put("result",result);
                 content.put("formula",formula);
                 contentList.add(content);
@@ -1569,9 +1568,9 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
         ResultSet rs = null;
         try {
             String tongName, type,  isConcept,stand;
-            String sql = "SELECT name, type_id,is_concept,IF(is_concept=1,a.name,(select lib_name from kl_concept b where b.id = a.concept_id) ) lib_name \n" +
-                    "from kl_library_info a where  a.is_deleted = 'N'\n" +
-                    "and type_id in (1,5,12,13,14,16,17,18,35,70)";
+            String sql = "SELECT a.name,a.type_id,a.is_concept, b.lib_name  from kl_library_info a, kl_concept b\n" +
+                    " where a.is_deleted = 'N' and b.is_deleted = 'N' and a.concept_id = b.id\n" +
+                    " and a.type_id in (1,5,12,13,14,16,17,18,35,70)";
             st = connection.createStatement();
             rs = st.executeQuery(sql);
             Map<String,String> detail =null;
@@ -1706,6 +1705,15 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
                 }else if(ni.contains("任七")){
                     path = 7;
                     rel = "任七";
+                }else if(ni.contains("任八")){
+                    path = 8;
+                    rel = "任八";
+                }else if(ni.contains("任九")){
+                    path = 9;
+                    rel = "任九";
+                }else if(ni.contains("任十")){
+                    path = 10;
+                    rel = "任十";
                 }else {
                     path = 1;
                     rel = "任一";
@@ -1790,6 +1798,7 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
             String typeName = row.get("typeName");//类型对应的中文名
             String standard = row.get("standard");//标准词
             String relation = row.get("relation");//关联词
+            String unique_name = row.get("unique_name");//公表项
             String result = row.get("result");//结果
             if(StringUtils.isNotEmpty(type)){
                 String[] split =null;
@@ -1957,9 +1966,22 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
                         }
                     }
                 } else if("3".equals(type)){ //处理化验
-                    String lis = "";
+                    String lis = "";//大项
+                    if(StringUtils.isNotEmpty(unique_name)){
+                        //创建化验公表项
+                        diseaseRepository.mergePublicLIS_1(unique_name);
+                        //疾病和化验公表项创建推荐关系
+                        diseaseRepository.mergeRelationLIS_1(disId,unique_name);
+                       if(StringUtils.isNotEmpty(result)){
+                           lis = standard;
+
+                       }else {
+                           lis = unique_name;
+                       }
+                    }
+
                     //查找化验大项的标准词
-                    standWord = searchStandWord(standard,type,ciKu);
+                   /* standWord = searchStandWord(standard,type,ciKu);
                     if(StringUtils.isNotEmpty(standWord)){
                         if(StringUtils.isNotEmpty(relation) && standard.equals(relation)){
                             lis = standWord;
@@ -1971,22 +1993,30 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
                                 //查找化验小项的标准词
                                 lis = standWord+"--"+searchStandWord(relation,type,ciKu);
                             }
-
                         }
-                    }
+                    }*/
+
 
-                    //创建公表
+                    //创建大项
                     diseaseRepository.mergePublicLIS(lis);
-                    //疾病推荐化验公表
+                    //疾病推荐化验大项
                     diseaseRepository.mergeRelationLIS(disId,lis);
                     //处理化验结果
-                    if(StringUtils.isNotEmpty(result)){
+                    if(StringUtils.isNotEmpty(result) && StringUtils.isNotEmpty(unique_name)){
                         lisResultSplit = result.split("、");
                         if(lisResultSplit != null && lisResultSplit.length>0){
                             //化验结果找标准词
                             for (String lisRs:lisResultSplit) {
                                 if(StringUtils.isNotEmpty(lisRs)){
-                                    lisResult = searchStandWord(lisRs,"resultLis",ciKu);
+                                    //创建化验结果节点
+                                    diseaseRepository.mergeLISRESULT(lisRs);
+                                    //大项和化验结果创建关系
+                                    diseaseRepository.mergeRelationPublicLIS(lis,lisRs);
+                                    //化验结果和对应的codeCondition创建关系
+                                    diseaseRepository.mergeRelationCondiLisRes(disName+code,lisRs);
+                                    //化验大项和化验公表项创建关系
+                                    diseaseRepository.mergeRelationPublicAndLIS(lis,unique_name);
+                                    /*lisResult = searchStandWord(lisRs,"resultLis",ciKu);
                                     if(StringUtils.isNotEmpty(lisResult)){
                                         //创建化验结果节点
                                         diseaseRepository.mergeLISRESULT(lisResult);
@@ -1994,7 +2024,7 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
                                         diseaseRepository.mergeRelationPublicLIS(lis,lisResult);
                                         //化验结果和对应的codeCondition创建关系
                                         diseaseRepository.mergeRelationCondiLisRes(disName+code,lisResult);
-                                    }
+                                    }*/
 
                                 }
                             }
@@ -2124,7 +2154,7 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
             if(disList != null && disList.size()>0){
                 for (Long disId:disList) {
                    respDTO = this.updateNeo(respDTO, disId, connect, ciKu);
-
+                   this.updateDate(connect,disId);
                 }
             }
             connect.close();
@@ -2134,8 +2164,16 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
 
         return respDTO;
     }
-    public void updateDate(Connection connection,Long disId){
-        String sql = "UPDATE `kl_diagnose` set neo_update='1970-01-01 12:00:00' where id="+disId+";";
+    public void updateDate(Connection connection,Long disId) {
+        String sql = "UPDATE `kl_diagnose` set neo_update='1970-01-01 12:00:00' where id=?";
+        try {
+            PreparedStatement preparedStatement = connection.prepareStatement(sql);
+            preparedStatement.setLong(1,disId);
+            int i = preparedStatement.executeUpdate();
+            preparedStatement.close();
+        } catch (SQLException e) {
+            e.printStackTrace();
+        }
     }
     public List<Long> getDisList(Connection connection){
         List<Long> disIds = new ArrayList<>();

+ 2 - 2
graphdb/src/main/resources/application.yml

@@ -6,14 +6,14 @@ spring:
     active: local
   data:
     neo4j:
-      uri: bolt://192.168.2.233:7687
+      uri: bolt://192.168.2.234:7687
       username: neo4j
       password: root
 
 # 驱动配置信息
   datasource:
     driver-class-name: org.neo4j.jdbc.Driver
-    url: jdbc:neo4j:http://192.168.2.123:7474
+    url: jdbc:neo4j:http://192.168.2.234:7474
     username: neo4j
     password: root
     #定义初始连接数