Procházet zdrojové kódy

更新图谱药品缓存的查询方法

MarkHuang před 4 roky
rodič
revize
da42589a6d

+ 1 - 1
src/main/java/com/diagbot/entity/node/Disease.java

@@ -103,7 +103,7 @@ public class Disease extends BaseNode  {
     @Relationship(type="疾病相关辅助检查", direction = Relationship.OUTGOING)
     private Set<PACS> pacs = new HashSet<>();
 
-    @Relationship(type="疾病相关药品名及编码", direction = Relationship.OUTGOING)
+    @Relationship(type="疾病相关药品代码通用名", direction = Relationship.OUTGOING)
     private Medicine_Code medicine_code;
 
     @Relationship(type="药品通用名禁忌疾病", direction = Relationship.INCOMING)

+ 3 - 0
src/main/java/com/diagbot/entity/node/Medicine.java

@@ -60,6 +60,9 @@ public class Medicine extends BaseNode implements Serializable {
     @Relationship(type="疾病相关药品", direction = Relationship.INCOMING)
     private Set<Disease> disease_related_meds;
 
+    @Relationship(type="药品代码名相关药品通用名称", direction = Relationship.INCOMING)
+    private Set<Medicine_Code> medicinecode_related_medicine;
+
     @Relationship(type="辅助检查禁忌服用药品", direction = Relationship.INCOMING)
     private Set<PACS> pacs_conflict_medicine;
 

+ 21 - 0
src/main/java/com/diagbot/entity/node/Medicine_Anatomy.java

@@ -0,0 +1,21 @@
+package com.diagbot.entity.node;
+
+import com.diagbot.entity.node.base.BaseNode;
+import lombok.Getter;
+import lombok.Setter;
+import org.neo4j.ogm.annotation.NodeEntity;
+import org.neo4j.ogm.annotation.Relationship;
+
+import java.util.HashSet;
+import java.util.Set;
+
+@Setter
+@Getter
+//@EqualsAndHashCode(callSuper = false)
+@NodeEntity(label = "药品解刨学类别")
+public class Medicine_Anatomy extends BaseNode  {
+
+    @Relationship(type="药品相关药品解刨学类别", direction = Relationship.INCOMING)
+    private Set<Medicine_Code> medicine_related_Anatomy = new HashSet<>();
+
+}

+ 6 - 5
src/main/java/com/diagbot/entity/node/Medicine_Code.java

@@ -6,18 +6,19 @@ import lombok.Setter;
 import org.neo4j.ogm.annotation.NodeEntity;
 import org.neo4j.ogm.annotation.Relationship;
 
+import java.util.HashSet;
 import java.util.Set;
 
 @Setter
 @Getter
 //@EqualsAndHashCode(callSuper = false)
-@NodeEntity(label = "药品名及编码")
+@NodeEntity(label = "药品代码通用名")
 public class Medicine_Code extends BaseNode  {
 
-    @Relationship(type="药品相关化学物质类别", direction = Relationship.OUTGOING)
-    private Set<OralMedicine> medicine_related_chem;
+    @Relationship(type="药品相关药品通用名称", direction = Relationship.OUTGOING)
+    private Set<Medicine> medicinecode_related_medicine = new HashSet<>();
 
-    @Relationship(type="疾病相关药品名及编码", direction = Relationship.INCOMING)
-    private Set<Disease> disease_related_medicode;
+    @Relationship(type="药品相关药品解刨学类别", direction = Relationship.OUTGOING)
+    private Set<Medicine_Anatomy> medicine_related_Anatomy = new HashSet<>();
 
 }

+ 19 - 15
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -9,9 +9,7 @@ import com.diagbot.dto.HighRiskNeoDTO;
 import com.diagbot.dto.NeoPushDTO;
 import com.diagbot.dto.StandConvertCrfBatchDTO;
 import com.diagbot.dto.StandConvertCrfDTO;
-import com.diagbot.entity.node.ICDDisease;
-import com.diagbot.entity.node.Medicine_Code;
-import com.diagbot.entity.node.OralMedicine;
+import com.diagbot.entity.node.*;
 import com.diagbot.enums.StandConvertEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
@@ -98,22 +96,28 @@ public class NeoFacade {
     public Map<String, List<String>> getDrugCache() {
         Map<String, List<String>> res = new HashMap<>();
 
-        Iterator<Medicine_Code> iterator = medicineCodeRepository.findAll().iterator();
-        Medicine_Code current;
+        Iterator<Medicine> iterator = medicineRepository.findAll().iterator();
+        Medicine current;
         String med_code, med_type;
-        List<OralMedicine> sets;
+        List<Medicine_Code> medcodes;
+        List<Medicine_Anatomy> medcates;
 
         while (iterator.hasNext()) {
             current = iterator.next();
-            if (current.getMedicine_related_chem().size() > 0) {
-                sets = new ArrayList<>(current.getMedicine_related_chem());
-                med_code = current.getName();
-                med_type = sets.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);
+            if (current.getMedicinecode_related_medicine().size() > 0) {
+                medcodes = new ArrayList<>(current.getMedicinecode_related_medicine());
+                for (Medicine_Code mcode : medcodes) {
+                    if (mcode.getMedicine_related_Anatomy().size()>0) {
+                        med_code = mcode.getName();
+                        medcates = new ArrayList<>(mcode.getMedicine_related_Anatomy());
+                        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);
+                        }
+                    }
                 }
             }
         }

+ 16 - 11
src/main/java/com/diagbot/repository/MedicineNode.java

@@ -131,7 +131,7 @@ public class MedicineNode {
 
         DrugBillNeoDTO drugBillNeoDTO;
 
-        Medicine medicine;
+        List<Medicine> medicine;
         String medname;
 
         for (String term : medsterm.keySet()) {
@@ -144,13 +144,13 @@ public class MedicineNode {
 
             medicine = medicineRepository.findByNameIs(medname);
 
-            if (medicine != null) {
-                drugBillNeoDTO = MedicinetoDrugDTO(medicine);
-            }
+            if (medicine != null && medicine.size()>0) {
+                drugBillNeoDTO = MedicinetoDrugDTO(medicine.get(0));
 
-            billNeoDTO.setDrugBillNeoDTO(drugBillNeoDTO);
+                billNeoDTO.setDrugBillNeoDTO(drugBillNeoDTO);
 
-            billNeoDTOs.add(billNeoDTO);
+                billNeoDTOs.add(billNeoDTO);
+            }
         }
 
 
@@ -191,7 +191,8 @@ public class MedicineNode {
         List<HighRiskNeoDTO> highRiskNeoDTOS = new ArrayList<>();
         HighRiskNeoDTO highRiskNeoDTO;
         String drugname;
-        Medicine medicine;
+        List<Medicine> medicine;
+        Medicine med;
 
         for (String term : drugsterm.keySet()) {
             highRiskNeoDTO = new HighRiskNeoDTO();
@@ -202,10 +203,14 @@ public class MedicineNode {
 
             medicine = medicineRepository.findByNameIs(drugname);
 
-            if (null != medicine && null!=medicine.getRisklevel() && medicine.getRisklevel().trim().length()>0) {
-                highRiskNeoDTO.setIsHighrisk(true);
-                highRiskNeoDTO.setType("药品");
-                highRiskNeoDTOS.add(highRiskNeoDTO);
+            if (null != medicine && medicine.size()>0) {
+                med = medicine.get(0);
+
+                if (null!=med.getRisklevel() && med.getRisklevel().trim().length()>0) {
+                    highRiskNeoDTO.setIsHighrisk(true);
+                    highRiskNeoDTO.setType("药品");
+                    highRiskNeoDTOS.add(highRiskNeoDTO);
+                }
             }
         }
 

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

@@ -8,7 +8,7 @@ import java.util.List;
 
 public interface MedicineRepository extends Neo4jRepository<Medicine, Long> {
 
-    Medicine findByNameIs(String name);
+    List<Medicine> findByNameIs(String name);
 
     List<Medicine> findByNameLike(String name);
 }