Browse Source

重启药品缓存加载服务

MarkHuang 4 years ago
parent
commit
3ac6234004

+ 2 - 2
src/main/java/com/diagbot/config/CacheDeleteInit.java

@@ -29,7 +29,7 @@ public class CacheDeleteInit implements CommandLineRunner {
         cacheFacade.clear();
         cacheFacade.clear();
         log.info("CDSS-CORE服务启动清除redis缓存成功!");
         log.info("CDSS-CORE服务启动清除redis缓存成功!");
         //
         //
-        // neoFacade.getDrugCache();
-        // log.info("CDSS-CORE服务启动加载药品缓存成功!");
+         neoFacade.getDrugCache();
+         log.info("CDSS-CORE服务启动加载药品缓存成功!");
     }
     }
 }
 }

+ 20 - 27
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -56,12 +56,14 @@ public class NeoFacade {
     @Autowired
     @Autowired
     MedicineCodeRepository medicineCodeRepository;
     MedicineCodeRepository medicineCodeRepository;
     @Autowired
     @Autowired
-    MedRegNameRepository medRegNameRepository;
+    MedJiePouClassRepository medJiePouClassRepository;
     @Autowired
     @Autowired
     YiBaoDiseaseRepository yiBaoDiseaseRepository;
     YiBaoDiseaseRepository yiBaoDiseaseRepository;
     @Autowired
     @Autowired
     CombiOperationRepository combiOperationRepository;
     CombiOperationRepository combiOperationRepository;
     @Autowired
     @Autowired
+    BaseNodeRepository nodeRepository;
+    @Autowired
     ChiefPresentSimilarityServiceClient chiefPresentSimilarityServiceClient;
     ChiefPresentSimilarityServiceClient chiefPresentSimilarityServiceClient;
     @Autowired
     @Autowired
     NeoFacade self;
     NeoFacade self;
@@ -81,35 +83,26 @@ public class NeoFacade {
     public Map<String, List<String>> getDrugCache() {
     public Map<String, List<String>> getDrugCache() {
         Map<String, List<String>> res = new HashMap<>();
         Map<String, List<String>> res = new HashMap<>();
 
 
-        Iterator<Medicine> iterator = medicineRepository.findAll().iterator();
-        Medicine current;
-        String med_name, med_code, med_type;
-        List<MedCodeName> medcodename;
-        List<MedJiePouClass> medcates;
-
-        while (iterator.hasNext()) {
-            current = iterator.next();
-            med_name = current.getName();
-            if (current.getMedcodenames().size() > 0) {
-                medcodename = new ArrayList<>(current.getMedcodenames());
-                for (MedCodeName mcode : medcodename) {
-                    if (mcode.getMedjiepouclass().size()>0) {
-                        med_code = mcode.getName();
-                        medcates = new ArrayList<>(mcode.getMedjiepouclass());
-                        if (ListUtil.isNotEmpty(medcates)) {
-                            med_type = medcates.get(0).getName();
-                            if (res.get(med_type) == null) {
-                                res.put(med_type, new ArrayList<>());
-                            }
-                            if (res.get(med_type).indexOf(med_code) == -1) {
-                                res.get(med_type).add(med_code);
-                            }
-                        }
-                    }
-                }
+        String med_type;
+        String med_name;
+        String comma="::";
+
+        List<String> medClass = nodeRepository.getMedClass();
+
+        for (String medcls : medClass) {
+            String[] spres = medcls.split(comma);
+            med_type = spres[1];
+            med_name = spres[0];
+
+            if (res.get(med_type) == null) {
+                res.put(med_type, new ArrayList<>());
+            }
+            if (res.get(med_type).indexOf(med_name) == -1) {
+                res.get(med_type).add(med_name);
             }
             }
         }
         }
 
 
+
         // TODO 测试数据
         // TODO 测试数据
         res.put("泰舒达类", Arrays.asList("泰舒达"));
         res.put("泰舒达类", Arrays.asList("泰舒达"));
         res.put("青霉素类", Arrays.asList("青霉素"));
         res.put("青霉素类", Arrays.asList("青霉素"));

+ 7 - 2
src/main/java/com/diagbot/repository/BaseNodeRepository.java

@@ -1,11 +1,11 @@
 package com.diagbot.repository;
 package com.diagbot.repository;
 
 
 
 
+import com.diagbot.entity.node.MedCate;
+import com.diagbot.entity.node.Medicine;
 import com.diagbot.entity.node.base.BaseNode;
 import com.diagbot.entity.node.base.BaseNode;
-import com.fasterxml.jackson.databind.ser.Serializers;
 import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
-import org.springframework.data.repository.query.Param;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -19,6 +19,11 @@ public interface BaseNodeRepository extends Neo4jRepository<BaseNode, Long> {
     /*
     /*
     @Query("MATCH (n) RETURN DISTINCT(KEYS(n))")
     @Query("MATCH (n) RETURN DISTINCT(KEYS(n))")
     List<List<String>> getKeys();
     List<List<String>> getKeys();
+    */
+
+    @Query("MATCH (c:药品解剖学类别)<-[r:药品相关药品解剖学类别]-(y:药品代码通用名)-[r1:药品相关药品通用名称]->(m:药品通用名称) " +
+            " RETURN DISTINCT(m.name)+'::'+c.name")
+    List<String> getMedClass();
 
 
     /*
     /*
     @Query("MATCH (m) DELETE m")
     @Query("MATCH (m) DELETE m")

+ 15 - 0
src/main/java/com/diagbot/repository/MedJiePouClassRepository.java

@@ -0,0 +1,15 @@
+package com.diagbot.repository;
+
+import com.diagbot.entity.node.MedJiePouClass;
+import org.springframework.data.neo4j.repository.Neo4jRepository;
+
+import java.util.List;
+
+
+public interface MedJiePouClassRepository extends Neo4jRepository<MedJiePouClass, Long> {
+
+    List<MedJiePouClass> findByNameIs(String name);
+
+    List<MedJiePouClass> findByNameContaining(String name);
+}
+

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

@@ -1,6 +1,8 @@
 package com.diagbot.repository;
 package com.diagbot.repository;
 
 
+import com.diagbot.entity.node.MedCode;
 import com.diagbot.entity.node.MedCodeName;
 import com.diagbot.entity.node.MedCodeName;
+import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
 
 
 import java.util.List;
 import java.util.List;