Bläddra i källkod

静态知识拼音检索

zhaops 4 år sedan
förälder
incheckning
14eda6563d

+ 25 - 10
src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -13,7 +13,22 @@ 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.*;
+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.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
@@ -69,7 +84,7 @@ public class RetrievalFacade {
      */
     public RetrievalDTO index(RetrievalVO retrievalVO) {
         RetrievalDTO retrievalDTO = new RetrievalDTO();
-        if (StringUtil.isWord(retrievalVO.getInputStr())){
+        if (StringUtil.isWord(retrievalVO.getInputStr())) {
             retrievalVO.setInputStr(retrievalVO.getInputStr().trim().toUpperCase());
         }
         switch (retrievalVO.getType()) {
@@ -206,13 +221,13 @@ public class RetrievalFacade {
     public List<StaticKnowledgeIndexDTO> staticKnowledgeIndex(StaticKnowledgeIndexVO staticKnowledgeIndexVO) {
         List<StaticKnowledgeIndexDTO> retList = Lists.newLinkedList();
         String inputStr = staticKnowledgeIndexVO.getInputStr();
-        if (StringUtil.isWord(staticKnowledgeIndexVO.getInputStr())){
+        if (StringUtil.isWord(staticKnowledgeIndexVO.getInputStr())) {
             inputStr = staticKnowledgeIndexVO.getInputStr().trim().toUpperCase();
         }
         List<Integer> types = staticKnowledgeIndexVO.getTypes();
 
         //TODO 诊断
-        List<YiBaoDiseaseName> icdDiseaseList = icdDiseaseRepository.findByNameContaining(inputStr);
+        List<YiBaoDiseaseName> icdDiseaseList = icdDiseaseRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
         List<StaticKnowledgeIndexDTO> disRetList = Lists.newLinkedList();
         for (YiBaoDiseaseName icdDisease : icdDiseaseList) {
             StaticKnowledgeIndexDTO staticDTO = new StaticKnowledgeIndexDTO();
@@ -222,7 +237,7 @@ public class RetrievalFacade {
             disRetList.add(staticDTO);
         }
         //TODO 药品
-        List<Medicine> medicineList = medicineRepository.findByNameContaining(inputStr);
+        List<Medicine> medicineList = medicineRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
 
         List<StaticKnowledgeIndexDTO> drugRetList = Lists.newLinkedList();
         for (Medicine medicine : medicineList) {
@@ -233,7 +248,7 @@ public class RetrievalFacade {
             drugRetList.add(staticDTO);
         }
         //TODO 检验套餐
-        List<LisSet> lisSetList = lisSetRepository.findByNameContaining(inputStr);
+        List<LisSet> lisSetList = lisSetRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
 
         List<StaticKnowledgeIndexDTO> lisSetRetList = Lists.newLinkedList();
         for (LisSet lisSet : lisSetList) {
@@ -244,7 +259,7 @@ public class RetrievalFacade {
             lisSetRetList.add(staticDTO);
         }
         //TODO 检验明细关联出检验套餐
-        List<LisName> lisList = lisRepository.findByNameContaining(inputStr);
+        List<LisName> lisList = lisRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
 
         List<StaticKnowledgeIndexDTO> lisSetRelatecLisRetList = Lists.newLinkedList();
         for (LisName lis : lisList) {
@@ -272,7 +287,7 @@ public class RetrievalFacade {
             }
         }
         //TODO 检验明细
-        lisList = lisRepository.findByNameContaining(inputStr);
+        lisList = lisRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
 
         List<StaticKnowledgeIndexDTO> lisRetList = Lists.newLinkedList();
         for (LisName lis : lisList) {
@@ -283,7 +298,7 @@ public class RetrievalFacade {
             lisRetList.add(staticDTO);
         }
         //TODO 检查
-        List<PacsName> pacsList = pacsRepository.findByNameContaining(inputStr);
+        List<PacsName> pacsList = pacsRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
 
         List<StaticKnowledgeIndexDTO> pacsRetList = Lists.newLinkedList();
         for (PacsName pacs : pacsList) {
@@ -296,7 +311,7 @@ public class RetrievalFacade {
 
 
         //TODO 手术和操作
-        List<YiBaoOperationName> operationList = operationRepository.findByNameContaining(inputStr);
+        List<YiBaoOperationName> operationList = operationRepository.findByNameContainingOrPycodeContaining(inputStr, inputStr);
 
         List<StaticKnowledgeIndexDTO> operationRetList = Lists.newLinkedList();
 

+ 2 - 0
src/main/java/com/diagbot/repository/DeptRepository.java

@@ -11,5 +11,7 @@ public interface DeptRepository extends Neo4jRepository<Dept, Long> {
     List<Dept> findByNameContaining(String name);
 
     List<Dept> findByNameIs(String name);
+
+    List<Dept> findByNameContainingOrPycodeContaining(String name, String pycode);
 }
 

+ 3 - 3
src/main/java/com/diagbot/repository/LisNameNode.java

@@ -180,12 +180,12 @@ public class LisNameNode {
 		List<LisDetailDTO> lislist = new ArrayList<>();
 		LisDetailDTO lisDetailDTO;
 
-		List<LisName> lislt = lisRepository.findByNameOrPycodeContaininglimit100(name);
-		/*lislt.addAll(baseNodeRepository.getLisbyPinYin(name));
+		List<LisName> lislt = lisRepository.findByNameContainingOrPycodeContaining(name,name);
+		//lislt.addAll(baseNodeRepository.getLisbyPinYin(name));
 
 		if (ListUtil.isNotEmpty(lislt) && lislt.size() > 100) {
 			lislt = lislt.subList(0, 100);
-		}*/
+		}
 
 		for (LisName lis : lislt) {
 			lisDetailDTO = new LisDetailDTO();

+ 2 - 0
src/main/java/com/diagbot/repository/LisNameRepository.java

@@ -16,6 +16,8 @@ public interface LisNameRepository extends Neo4jRepository<LisName, Long> {
 
     List<LisName> findByNameIn(List<String> names);
 
+    List<LisName> findByNameContainingOrPycodeContaining(String name, String pycode);
+
     @Query("MATCH (n:实验室检查名称)-[r]->(b) where n.name contains {name} or (EXISTS(n.拼音编码) AND n.拼音编码 CONTAINS {name}) return n.name, n.拼音编码,collect(r), collect(b) limit 100")
     List<LisName> findByNameOrPycodeContaininglimit100(@Param("name") String name);
 }

+ 2 - 2
src/main/java/com/diagbot/repository/LisSetNode.java

@@ -148,8 +148,8 @@ public class LisSetNode {
 
 		List<String> lispacklist = new ArrayList<>();
 
-		List<LisSet> lisSetlist = lisPackRepository.findByNameContaining(name);
-		lisSetlist.addAll(baseNodeRepository.getLisSetbyPinYin(name));
+		List<LisSet> lisSetlist = lisPackRepository.findByNameContainingOrPycodeContaining(name, name);
+		//lisSetlist.addAll(baseNodeRepository.getLisSetbyPinYin(name));
 
 		if (ListUtil.isNotEmpty(lisSetlist) && lisSetlist.size() > 100) {
 			lisSetlist = lisSetlist.subList(0, 100);

+ 2 - 1
src/main/java/com/diagbot/repository/LisSetRepository.java

@@ -1,7 +1,6 @@
 package com.diagbot.repository;
 
 import com.diagbot.entity.node.LisSet;
-import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
 
 import java.util.List;
@@ -14,5 +13,7 @@ public interface LisSetRepository extends Neo4jRepository<LisSet, Long> {
     List<LisSet> findByNameContaining(String name);
 
     List<LisSet> findByNameIn(List<String> names);
+
+    List<LisSet> findByNameContainingOrPycodeContaining(String name, String pycode);
 }
 

+ 15 - 6
src/main/java/com/diagbot/repository/MedicineNode.java

@@ -1,12 +1,21 @@
 package com.diagbot.repository;
 
-import com.diagbot.dto.*;
-import com.diagbot.entity.node.*;
+import com.diagbot.dto.BillNeoDTO;
+import com.diagbot.dto.DrugBillNeoDTO;
+import com.diagbot.dto.DrugInfoDTO;
+import com.diagbot.dto.NodeNeoDTO;
+import com.diagbot.entity.node.Age;
+import com.diagbot.entity.node.Disease;
+import com.diagbot.entity.node.Group;
+import com.diagbot.entity.node.MedAllergen;
+import com.diagbot.entity.node.Medicine;
 import com.diagbot.util.ListUtil;
-import com.diagbot.util.NeoUtil;
 
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 public class MedicineNode {
 
@@ -119,8 +128,8 @@ public class MedicineNode {
         List<DrugInfoDTO> medslist = new ArrayList<>();
         DrugInfoDTO drugInfoDTO;
 
-        List<Medicine> medicines = medicineRepository.findByNameContaining(name);
-        medicines.addAll(baseNodeRepository.getMedicinebyPinYin(name));
+        List<Medicine> medicines = medicineRepository.findByNameContainingOrPycodeContaining(name, name);
+        //medicines.addAll(baseNodeRepository.getMedicinebyPinYin(name));
 
         if (ListUtil.isNotEmpty(medicines) && medicines.size() > 100) {
             medicines = medicines.subList(0, 100);

+ 2 - 0
src/main/java/com/diagbot/repository/MedicineRepository.java

@@ -13,5 +13,7 @@ public interface MedicineRepository extends Neo4jRepository<Medicine, Long> {
     List<Medicine> findByNameContaining(String name);
 
     List<Medicine> findByNameIn(List<String> names);
+
+    List<Medicine> findByNameContainingOrPycodeContaining(String name, String pycode);
 }
 

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

@@ -14,7 +14,6 @@ import com.diagbot.entity.node.OralMedicine;
 import com.diagbot.entity.node.PacsDescribe;
 import com.diagbot.entity.node.PacsName;
 import com.diagbot.entity.node.Vital;
-import com.diagbot.entity.node.base.BaseNode;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.NeoUtil;
 
@@ -189,8 +188,8 @@ public class PacsNameNode {
 
         List<String> pacslist = new ArrayList<>();
 
-        List<PacsName> pacslt = pacsRepository.findByNameContaining(name);
-        pacslt.addAll(baseNodeRepository.getPacsbyPinYin(name));
+        List<PacsName> pacslt = pacsRepository.findByNameContainingOrPycodeContaining(name, name);
+        //pacslt.addAll(baseNodeRepository.getPacsbyPinYin(name));
 
         if (ListUtil.isNotEmpty(pacslt) && pacslt.size() > 100) {
             pacslt = pacslt.subList(0, 100);

+ 2 - 0
src/main/java/com/diagbot/repository/PacsNameRepository.java

@@ -13,5 +13,7 @@ public interface PacsNameRepository extends Neo4jRepository<PacsName, Long> {
     List<PacsName> findByNameContaining(String name);
 
     List<PacsName> findByNameIn(List<String> names);
+
+    List<PacsName> findByNameContainingOrPycodeContaining(String name, String pycode);
 }
 

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

@@ -252,8 +252,8 @@ public class YiBaoDiseaseNode {
 		List<String> dislist = new ArrayList<>();
 		List<DiseaseInfoDTO> diseaseInfoDTOList = new ArrayList<>();
 
-		List<YiBaoDiseaseName> diseases = diseaseRepository.findByNameContaining(name);
-		diseases.addAll(baseNodeRepository.getYiBaoDiseasebyPinYin(name));
+		List<YiBaoDiseaseName> diseases = diseaseRepository.findByNameContainingOrPycodeContaining(name, name);
+		//diseases.addAll(baseNodeRepository.getYiBaoDiseasebyPinYin(name));
 
 		if (ListUtil.isNotEmpty(diseases) && diseases.size() > 100) {
 			diseases = diseases.subList(0, 100);

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

@@ -13,5 +13,9 @@ public interface YiBaoDiseaseRepository extends Neo4jRepository<YiBaoDiseaseName
     List<YiBaoDiseaseName> findByNameContaining(String name);
 
     List<YiBaoDiseaseName> findByNameIn(List<String> names);
+
+    List<YiBaoDiseaseName> findByNameContainingOrPycodeContaining(String name, String pycode);
+
+    List<YiBaoDiseaseName> findTop100ByNameContainingOrPycodeContaining(String name, String pycode);
 }
 

+ 2 - 2
src/main/java/com/diagbot/repository/YiBaoOperationNameNode.java

@@ -174,8 +174,8 @@ public class YiBaoOperationNameNode {
         List<OperationInfoDTO> opslist = new ArrayList<>();
         OperationInfoDTO opInfoDTO;
 
-        List<YiBaoOperationName> operations = operationRepository.findByNameContaining(name);
-        operations.addAll(baseNodeRepository.getYiBaoOperationbyPinYin(name));
+        List<YiBaoOperationName> operations = operationRepository.findByNameContainingOrPycodeContaining(name, name);
+        //operations.addAll(baseNodeRepository.getYiBaoOperationbyPinYin(name));
 
         if (ListUtil.isNotEmpty(operations) && operations.size() > 100) {
             operations = operations.subList(0, 100);

+ 2 - 0
src/main/java/com/diagbot/repository/YiBaoOperationNameRepository.java

@@ -13,4 +13,6 @@ public interface YiBaoOperationNameRepository extends Neo4jRepository<YiBaoOpera
     List<YiBaoOperationName> findByNameContaining(String name);
 
     List<YiBaoOperationName> findByNameIn(List<String> names);
+
+    List<YiBaoOperationName> findByNameContainingOrPycodeContaining(String name, String pycode);
 }