ソースを参照

Merge branch 'master' into dev/word

zhoutg 4 年 前
コミット
d9ebcbc2c0

+ 59 - 2
src/main/java/com/diagbot/facade/EntityFacade.java

@@ -1,9 +1,14 @@
 package com.diagbot.facade;
 
 import com.diagbot.dto.NeoEntityDTO;
+import com.diagbot.entity.node.Symptom;
+import com.diagbot.entity.node.base.BaseNode;
 import com.diagbot.repository.*;
+//import com.diagbot.util.GenericNode;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.*;
 
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.stereotype.Component;
@@ -25,6 +30,9 @@ public class EntityFacade {
     @Autowired
     BaseNodeRepository baseNodeRepository;
 
+    @Autowired
+    SymptomNameRepository symptomNameRepository;
+
     @Autowired
     LisNameRepository lisRepository;
 
@@ -39,11 +47,37 @@ public class EntityFacade {
     }
 
 
-    public void initEntity() {
-        List<String> labels = getLabels();
+    public List<BaseNode> getNodes(KgQueryVO kgQueryVO) {
+
+        List<BaseNode> baseNodes = new ArrayList<>();
+
+        String label = kgQueryVO.getStartLabel().trim();
+        String name = kgQueryVO.getStartName();
+
+        try {
+            if (StringUtil.isNotBlank(label) && StringUtil.isNotBlank(name)) {
+                if (Constants.node_Labels.contains(label)) {
+                    switch (label) {
+                        case "症状":
+                            List<Symptom> symptoms = symptomNameRepository.findByNameIs(name);
+//                            GenericNode<Symptom> sNodes = new GenericNode<>();
+//                            baseNodes = sNodes.fillNodeTree(symptoms);
+                            break;
+                    }
 
+                }
+            }
+        }
+        catch (Exception ex) {
+            ex.printStackTrace();
+        }
+        finally {
+            return baseNodes;
+        }
     }
 
+
+
     public NeoEntityDTO updateNeoNode(NeoEntityVO neoEntityVO) {
 
         List<String> keys;
@@ -130,4 +164,27 @@ public class EntityFacade {
     }
 
 
+    /**
+     * 删除节点
+     * @param neoEntityVO
+     * @return
+     */
+    public int deleteNeoNode(NeoEntityVO neoEntityVO) {
+        int cnt = 0;
+
+        try {
+            if (null != neoEntityVO.getID()) {
+                long id = neoEntityVO.getID();
+                BaseNode node = baseNodeRepository.findById(id);
+                cnt = 1;
+//                baseNodeRepository.delete(node);
+            }
+        }
+        catch (Exception ex) {
+            ex.printStackTrace();
+        }
+        finally {
+            return cnt;
+        }
+    }
 }

+ 8 - 0
src/main/java/com/diagbot/repository/Constants.java

@@ -1,5 +1,8 @@
 package com.diagbot.repository;
 
+import java.util.Arrays;
+import java.util.List;
+
 public class Constants {
 
     public static String yaoping = "药品";
@@ -81,4 +84,9 @@ public class Constants {
     public static String combioperation = "联合项目";
     public static String allergen = "过敏原";
     public static String yibaooperation = "医保手术和操作";
+
+    public static List<String> node_Labels = Arrays.asList("症状","体征","临床表现","过敏原","药物过敏原",
+            "实验室检查套餐名","实验室检查名称","实验室检查一级分类","实验室检查二级分类","辅助检查名称",
+            "辅助检查子项目名称","医保疾病名称","医保手术和操作名称","联合项目","科室","药品代码通用名",
+            "药品通用名称","药品注册名称");
 }

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

@@ -30,19 +30,19 @@ public class YiBaoDiseaseNode {
 			pushBaseDTO = new PushBaseDTO();
 			pushBaseDTO.setName(disease.getName());
 			pushDTO.setDisease(pushBaseDTO);
-			pushDTO.setSymptoms(disease.getSymptoms().stream().collect(Collectors.toMap(Symptom::getName,Symptom::getNodeId,(e1, e2) -> e2))
+			pushDTO.setSymptoms(disease.getSymptoms().stream().collect(Collectors.toMap(Symptom::getName,Symptom::getId,(e1, e2) -> e2))
 					.entrySet().stream().sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
 					.map(x ->NeoUtil.updatePushInfo(x.getKey())).collect(Collectors.toList()));
 
-			pushDTO.setVitals(disease.getVitals().stream().collect(Collectors.toMap(Vital::getName,Vital::getNodeId,(e1, e2) -> e2))
+			pushDTO.setVitals(disease.getVitals().stream().collect(Collectors.toMap(Vital::getName,Vital::getId,(e1, e2) -> e2))
 					.entrySet().stream().sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
 					.map(x ->NeoUtil.updatePushInfo(x.getKey())).collect(Collectors.toList()));
 
-			pushDTO.setLis(disease.getLisnames().stream().collect(Collectors.toMap(LisBigName::getName,LisBigName::getNodeId,(e1, e2) -> e2))
+			pushDTO.setLis(disease.getLisnames().stream().collect(Collectors.toMap(LisBigName::getName,LisBigName::getId,(e1, e2) -> e2))
 					.entrySet().stream().sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
 					.map(x ->NeoUtil.updatePushInfo(x.getKey())).collect(Collectors.toList()));
 
-			pushDTO.setPacs(disease.getPacsnames().stream().collect(Collectors.toMap(PacsName::getName,PacsName::getNodeId,(e1, e2) -> e2))
+			pushDTO.setPacs(disease.getPacsnames().stream().collect(Collectors.toMap(PacsName::getName,PacsName::getId,(e1, e2) -> e2))
 					.entrySet().stream().sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
 					.map(x ->NeoUtil.updatePushInfo(x.getKey())).collect(Collectors.toList()));
 

+ 11 - 4
src/main/java/com/diagbot/vo/KgQueryVO.java

@@ -14,10 +14,17 @@ import javax.validation.constraints.NotBlank;
 @Getter
 @Setter
 public class KgQueryVO {
-    @ApiModelProperty(value = "标签名")
+
+    @ApiModelProperty(value = "起始节点标签名")
     @NotBlank(message = "标签名不能为空")
-    private String labelName;
-    @ApiModelProperty(value = "搜索内容")
+    private String startLabel;
+    @ApiModelProperty(value = "起始节点名")
     @NotBlank(message = "搜索内容不能为空")
-    private String inputStr;
+    private String startName;
+    @ApiModelProperty(value = "关系名")
+    private String relName;
+    @ApiModelProperty(value = "终结节点标签名")
+    private String endLabel;
+    @ApiModelProperty(value = "终结节点名")
+    private String endName;
 }

+ 15 - 6
src/main/java/com/diagbot/web/EntityController.java

@@ -1,7 +1,9 @@
 package com.diagbot.web;
 
 import com.diagbot.dto.NeoEntityDTO;
+import com.diagbot.entity.node.base.BaseNode;
 import com.diagbot.facade.EntityFacade;
+import com.diagbot.vo.KgQueryVO;
 import com.diagbot.vo.NeoEntityVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -10,7 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
-import java.util.Map;
+
 
 /**
  * @Description: 图谱实体API控制层
@@ -26,11 +28,6 @@ public class EntityController {
     @Autowired
     private EntityFacade entityFacade;
 
-    @ApiOperation(value = "实体API", notes = "")
-    @PostMapping("/initEntity")
-    public void initEntity() {
-        entityFacade.initEntity();
-    }
 
     @ApiOperation(value = "实体标签API", notes = "")
     @GetMapping("/getLabels")
@@ -39,6 +36,12 @@ public class EntityController {
     }
 
 
+    @ApiOperation(value = "实体查询API", notes = "")
+    @PostMapping("/getNode")
+    public List<BaseNode> getNodes(@RequestBody KgQueryVO kgQueryVO) {
+        return entityFacade.getNodes(kgQueryVO);
+    }
+
     @ApiOperation(value = "实体更新API", notes = "")
     @PostMapping("/updateNode")
     public NeoEntityDTO updateNode(@RequestBody NeoEntityVO neoEntityVO) {
@@ -46,5 +49,11 @@ public class EntityController {
         return entityFacade.updateNeoNode(neoEntityVO);
     }
 
+    @ApiOperation(value = "实体删除API", notes = "")
+    @PostMapping("/deleteNode")
+    public int deleteNode(@RequestBody NeoEntityVO neoEntityVO) {
+        return entityFacade.deleteNeoNode(neoEntityVO);
+    }
+
 }