Browse Source

获取图谱标准ICD疾病名称的模糊查询列表

MarkHuang 4 years ago
parent
commit
5d4f9cbfd9

+ 3 - 3
src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -30,7 +30,7 @@ public class RetrievalFacade {
         RetrievalDTO retrievalDTO = new RetrievalDTO();
 
         if (retrievalVO.getType()==4) {
-            retrievalDTO.setDiseaseNames(getDiseaseList());
+            retrievalDTO.setDiseaseNames(getDiseases(retrievalVO.getInputStr()));
         }
 
         return retrievalDTO;
@@ -40,10 +40,10 @@ public class RetrievalFacade {
     /*
      * 获取疾病名称列表
      */
-    public List<String> getDiseaseList() {
+    public List<String> getDiseases(String name) {
 
         ICDDiseaseNode diseaseNode = new ICDDiseaseNode();
-        List<String> diseaselist = diseaseNode.getDiseaseNameList(icdDiseaseRepository);
+        List<String> diseaselist = diseaseNode.getDiseaseNameList(name,icdDiseaseRepository);
 
         return diseaselist;
     }

+ 8 - 11
src/main/java/com/diagbot/repository/ICDDiseaseNode.java

@@ -174,23 +174,20 @@ public class ICDDiseaseNode {
     /**
 	 * 获取疾病名称列表
 	 */
-	public List<String> getDiseaseNameList(ICDDiseaseRepository diseaseRepository) {
+	public List<String> getDiseaseNameList(String name, ICDDiseaseRepository diseaseRepository) {
 		String icdname;
 
-		ICDDisease current;
-
 		List<String> dislist = new ArrayList<>();
 
-		Iterator<ICDDisease> disIter = diseaseRepository.findAll().iterator();
+		List<ICDDisease> diseases = diseaseRepository.findByNameLike("*"+name+"*");
 
-		while (disIter.hasNext()) {
-			current = disIter.next();
-			icdname = current.getName();
+		for (ICDDisease dis : diseases) {
+		    icdname = dis.getName();
+            if (!dislist.contains(icdname)) {
+                dislist.add(icdname);
+            }
+        }
 
-			if (!dislist.contains(icdname)) {
-				dislist.add(icdname);
-			}
-		}
 
 		return dislist;
 	}

+ 3 - 2
src/main/java/com/diagbot/repository/ICDDiseaseRepository.java

@@ -1,12 +1,13 @@
 package com.diagbot.repository;
 
-import com.diagbot.entity.node.Disease;
 import com.diagbot.entity.node.ICDDisease;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
 
+import java.util.List;
+
 
 public interface ICDDiseaseRepository extends Neo4jRepository<ICDDisease, Long> {
 
-    ICDDisease findByNameIs(String name);
+    List<ICDDisease> findByNameLike(String name);
 }