Explorar o código

更新辅检项目名称的查询

MarkHuang %!s(int64=4) %!d(string=hai) anos
pai
achega
6ce343c851

+ 8 - 17
src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -13,22 +13,7 @@ import com.diagbot.entity.node.PacsName;
 import com.diagbot.entity.node.YiBaoDiseaseName;
 import com.diagbot.entity.node.YiBaoOperationName;
 import com.diagbot.enums.StaticTypeEnum;
-import com.diagbot.repository.BaseNodeRepository;
-import com.diagbot.repository.DeptNode;
-import com.diagbot.repository.DeptRepository;
-import com.diagbot.repository.LisNameNode;
-import com.diagbot.repository.LisNameRepository;
-import com.diagbot.repository.LisSetNode;
-import com.diagbot.repository.LisSetRepository;
-import com.diagbot.repository.MedicineNode;
-import com.diagbot.repository.MedicineRepository;
-import com.diagbot.repository.PacsNameNode;
-import com.diagbot.repository.PacsNameRepository;
-import com.diagbot.repository.TransfusionRemindRepository;
-import com.diagbot.repository.YiBaoDiseaseNode;
-import com.diagbot.repository.YiBaoDiseaseRepository;
-import com.diagbot.repository.YiBaoOperationNameNode;
-import com.diagbot.repository.YiBaoOperationNameRepository;
+import com.diagbot.repository.*;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.RetrievalVO;
@@ -60,6 +45,9 @@ public class RetrievalFacade {
     @Autowired
     PacsNameRepository pacsRepository;
 
+    @Autowired
+    PacsSubNameRepository pacsSubNameRepository;
+
     @Autowired
     MedicineRepository medicineRepository;
 
@@ -144,7 +132,10 @@ public class RetrievalFacade {
     public List<String> getPACSs(String info) {
 
         PacsNameNode pacsNode = new PacsNameNode();
-        List<String> pacslist = pacsNode.getPACSNameList(info, pacsRepository, baseNodeRepository);
+        List<String> pacslist = pacsNode.getPACSNameList(info, pacsRepository);
+
+        PacsSubNameNode pacsSubNode = new PacsSubNameNode();
+        pacslist.addAll(pacsSubNode.getPACSSubNameList(info, pacsSubNameRepository));
 
         return pacslist;
     }

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

@@ -196,7 +196,7 @@ public class PacsNameNode {
     /**
      * 获取辅检名称列表
      */
-    public List<String> getPACSNameList(String name, PacsNameRepository pacsRepository, BaseNodeRepository baseNodeRepository) {
+    public List<String> getPACSNameList(String name, PacsNameRepository pacsRepository) {
         String pacsname;
 
         List<String> pacslist = new ArrayList<>();

+ 7 - 3
src/main/java/com/diagbot/repository/PacsSubNameNode.java

@@ -3,6 +3,7 @@ package com.diagbot.repository;
 import com.diagbot.dto.BillNeoDTO;
 import com.diagbot.dto.PacsBillNeoDTO;
 import com.diagbot.entity.node.*;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.NeoUtil;
 
 import java.util.ArrayList;
@@ -92,16 +93,19 @@ public class PacsSubNameNode {
 
         List<String> pacslist = new ArrayList<>();
 
-        List<PacsSubName> pacslt = pacsRepository.findByNameContaining(name);
+        List<PacsSubName> pacssublt = pacsRepository.index(name, name, 100);
 
-        for (PacsSubName pacs : pacslt) {
+        if (ListUtil.isNotEmpty(pacssublt) && pacssublt.size() > 100) {
+            pacssublt = pacssublt.subList(0, 100);
+        }
+
+        for (PacsSubName pacs : pacssublt) {
             pacsname = pacs.getName();
             if (!pacslist.contains(pacsname)) {
                 pacslist.add(pacsname);
             }
         }
 
-
         return pacslist;
     }
 }

+ 17 - 0
src/main/java/com/diagbot/repository/PacsSubNameRepository.java

@@ -1,7 +1,9 @@
 package com.diagbot.repository;
 
 import com.diagbot.entity.node.PacsSubName;
+import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
+import org.springframework.data.repository.query.Param;
 
 import java.util.List;
 
@@ -11,5 +13,20 @@ public interface PacsSubNameRepository extends Neo4jRepository<PacsSubName, Long
     List<PacsSubName> findByNameIs(String name);
 
     List<PacsSubName> findByNameContaining(String name);
+
+    @Query("MATCH (n:`辅助检查子项目名称`) WHERE toLower(n.`name`) = toLower($name) \n" +
+            "OR toLower(n.`拼音编码`) = toLower($pycode)  \n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
+            "union\n" +
+            "MATCH (n:`辅助检查子项目名称`) WHERE toLower(n.`name`) starts with toLower($name) \n" +
+            "OR toLower(n.`拼音编码`) starts with toLower($pycode)  \n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n" +
+            "union\n" +
+            "MATCH (n:`辅助检查子项目名称`) WHERE toLower(n.`name`) CONTAINS toLower($name) \n" +
+            "OR toLower(n.`拼音编码`) CONTAINS toLower($pycode)  \n" +
+            "WITH n SKIP 0 LIMIT $size\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
+    List<PacsSubName> index(@Param("name") String name, @Param("pycode") String pycode, @Param("size") Integer size);
 }