kongwz 4 vuotta sitten
vanhempi
commit
ee4f32f3ba

+ 20 - 0
src/main/java/com/diagbot/entity/DiseaseInfo.java

@@ -0,0 +1,20 @@
+package com.diagbot.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.data.neo4j.annotation.QueryResult;
+
+import java.util.List;
+
+/**
+ * @author kwz
+ * @date 2020/10/15
+ * @time 14:23
+ */
+@Getter
+@Setter
+@QueryResult
+public class DiseaseInfo {
+    private String tp;
+    private List<String> col;
+}

+ 42 - 5
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -6,8 +6,9 @@ import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.client.ChiefPresentSimilarityServiceClient;
 import com.diagbot.client.StandConvertServiceClient;
 import com.diagbot.dto.*;
+import com.diagbot.entity.DiseaseInfo;
 import com.diagbot.entity.DiseaseProperty;
-import com.diagbot.entity.node.*;
+import com.diagbot.entity.node.LisRemind;
 import com.diagbot.entity.relationship.LisRemindMedicine;
 import com.diagbot.entity.relationship.LisRemindYiBaoDiseaseName;
 import com.diagbot.enums.RedisEnum;
@@ -20,8 +21,8 @@ import com.diagbot.util.ListUtil;
 import com.diagbot.util.NeoUtil;
 import com.diagbot.util.RedisUtil;
 import com.diagbot.util.StringUtil;
-import com.diagbot.vo.*;
 import com.diagbot.vo.Drug;
+import com.diagbot.vo.*;
 import com.diagbot.vo.neoPushEntity.*;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
@@ -298,7 +299,7 @@ public class NeoFacade {
      * 化验特异性推送疾病
      * @param age
      * @param sex
-     * @param neoPushDTOS
+     * @param
      * @param lises
      * @return
      */
@@ -521,6 +522,41 @@ public class NeoFacade {
         return number_diseases;
     }
 
+    /**
+     * 反推信息
+     * @param dis
+     * @return
+     */
+    public NeoPushDTO reverseInfo(String dis){
+        NeoPushDTO neoPushDTO = new NeoPushDTO();
+        List<DiseaseInfo> diseaseInfo = nodeRepository.getDiseaseInfo(dis);
+        if(ListUtil.isNotEmpty(diseaseInfo)){
+            diseaseInfo.forEach(disIf ->{
+                String tp = disIf.getTp();
+                List<String> col = disIf.getCol();
+                switch (tp){
+                    case "医保疾病名称相关症状":
+                        neoPushDTO.setSymptoms(col.stream().map(x ->NeoUtil.updatePushInfo(x)).collect(Collectors.toList()));
+                        break;
+                    case "医保疾病名称相关化验套餐名称":
+                        neoPushDTO.setLis(col.stream().map(x ->NeoUtil.updatePushInfo(x)).collect(Collectors.toList()));
+                        break;
+                    case "医保疾病名称相关辅助检查名称":
+                        neoPushDTO.setPacs(col.stream().map(x ->NeoUtil.updatePushInfo(x)).collect(Collectors.toList()));
+                        break;
+                    case "医保疾病名称相关体征":
+                        neoPushDTO.setVitals(col.stream().map(x ->NeoUtil.updatePushInfo(x)).collect(Collectors.toList()));
+                        break;
+                    default:
+                        break;
+                }
+            });
+
+        }
+
+
+        return neoPushDTO;
+    }
     /**
      * 处理开单合理性图谱数据
      *
@@ -802,14 +838,15 @@ public class NeoFacade {
         YiBaoDiseaseNode icdDiseaseNode = new YiBaoDiseaseNode();
         String term;
         term = neoPushVO.getDiagVo().getDiags().get(0).getName();
-        List<YiBaoDiseaseName> yiBaoName = yiBaoDiseaseRepository.findByNameIs(term);
+        /*List<YiBaoDiseaseName> yiBaoName = yiBaoDiseaseRepository.findByNameIs(term);
         YiBaoDiseaseName icdDisease = null;
         if (ListUtil.isNotEmpty(yiBaoName)) {
             icdDisease = yiBaoName.get(0);
         }
         if (icdDisease != null) {
             pushDTO = icdDiseaseNode.YiBaoDiseasetoDiseaseDTO(icdDisease, neoPushVO);
-        }
+        }*/
+        pushDTO = this.reverseInfo(term);
 
         return pushDTO;
     }

+ 4 - 0
src/main/java/com/diagbot/repository/BaseNodeRepository.java

@@ -1,6 +1,7 @@
 package com.diagbot.repository;
 
 
+import com.diagbot.entity.DiseaseInfo;
 import com.diagbot.entity.DiseaseProperty;
 import com.diagbot.entity.node.*;
 import com.diagbot.entity.node.base.BaseNode;
@@ -98,5 +99,8 @@ public interface BaseNodeRepository extends Neo4jRepository<BaseNode, Long> {
             "end as fbl")
     List<DiseaseProperty> getDiseaseProperty();
 
+    @Query("match(d:医保疾病名称{name:{dis}})-[r]->(j) return type(r) as tp,collect(distinct j.name) as col")
+    List<DiseaseInfo> getDiseaseInfo(@Param("dis") String dis);
+
 
 }

+ 1 - 1
src/main/java/com/diagbot/repository/YiBaoDiseaseNode.java

@@ -16,7 +16,6 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 public class YiBaoDiseaseNode {
-
 	public NeoPushDTO YiBaoDiseasetoDiseaseDTO(YiBaoDiseaseName disease, NeoPushVO neoPushVO) {
 
 		NeoPushDTO pushDTO = new NeoPushDTO();
@@ -25,6 +24,7 @@ public class YiBaoDiseaseNode {
 		int gender = neoPushVO.getSex();
 		double age = neoPushVO.getAgeNum();
 
+
 		if (NeoUtil.matchBasic(disease, gender, age)) {
 
 			pushBaseDTO = new PushBaseDTO();