Browse Source

诊断依据的化验,体征等处理

kongwz 5 years ago
parent
commit
a853aff540

+ 15 - 0
graphdb/src/main/java/org/diagbot/repository/DiseaseRepository.java

@@ -135,5 +135,20 @@ 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:LISResult(name:{0}))")
+    void mergeLISRESULT(String name);
+    //公表名和化验结果创建关系
+    @Query("match(d:LIS{name:{0}}),(s:LISResult{name:{1}}) merge(d)-[r:结果]->(s)")
+    void mergeRelationPublicLIS(String publicLis,String lisResult);
+    //化验结果和对应的codeCondition创建关系
+    @Query("match(d:Condition{name:{0}}),(s:LISResult{name:{1}}) merge(d)<-[r:诊断依据]-(s)")
+    void mergeRelationCondiLisRes(String codeCondition,String lisRes);
 }
 

+ 32 - 3
graphdb/src/main/java/org/diagbot/service/impl/KnowledgeServiceImpl.java

@@ -1731,6 +1731,8 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
             String result = row.get("result");//结果
             if(StringUtils.isNotEmpty(type)){
                 String[] split =null;
+                String[] lisResultSplit =null;
+                String[] pacsResultSplit =null;
                 if(!"3".equals(type) && !"4".equals(type) && !"5".equals(type)){
                     //添加词语之前,要找标准词
                     //添加standard
@@ -1854,7 +1856,12 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
                             }
                         }
                     }
-                }else if("3".equals(type)){ //处理化验
+                }else {
+                    LIS lis = new LIS();
+                    lis.setLabel("LIS");
+                    lis.setName("lis");
+                }
+                /*else if("3".equals(type)){ //处理化验
                     String lis = "";
                     //查找化验大项的标准词
                     if(StringUtils.isNotEmpty(relation) && standard.equals(relation)){
@@ -1862,9 +1869,31 @@ public class    KnowledgeServiceImpl implements KnowledgeService {
                     }else if(StringUtils.isNotEmpty(standard) && StringUtils.isEmpty(relation)){
                         lis = standard;
                     }else if(StringUtils.isNotEmpty(standard)&& StringUtils.isNotEmpty(relation)&&!standard.equals(relation)){
-
+                        //查找化验小项的标准词
+                        lis = standard+"--"+relation;
                     }
-                }
+                    //创建公表名
+                    diseaseRepository.mergePublicLIS(lis);
+                    //疾病推荐化验公表名
+                    diseaseRepository.mergeRelationLIS(disId,lis);
+                    //处理化验结果
+                    if(StringUtils.isNotEmpty(result)){
+                        lisResultSplit = result.split("、");
+                        if(lisResultSplit != null && lisResultSplit.length>0){
+                            //化验结果找标准词
+                            for (String lisResult:lisResultSplit) {
+                                if(StringUtils.isNotEmpty(lisResult)){
+                                    //创建化验结果节点
+                                    diseaseRepository.mergeLISRESULT(lisResult);
+                                    //公表名和化验结果创建关系
+                                    diseaseRepository.mergeRelationPublicLIS(lis,lisResult);
+                                    //化验结果和对应的codeCondition创建关系
+                                    diseaseRepository.mergeRelationCondiLisRes(disName+code,lisResult);
+                                }
+                            }
+                        }
+                    }
+                }*/
             }
         }