Sfoglia il codice sorgente

更新从图谱中获取高危药品节点数据

MarkHuang 4 anni fa
parent
commit
edb91ee2e4

+ 1 - 5
src/main/java/com/diagbot/facade/HighRiskFacade.java

@@ -45,11 +45,7 @@ public class HighRiskFacade {
     public HighRiskNeoVO fillHighRiskNeo(WordCrfDTO wordCrfDTO) {
         HighRiskNeoVO highRiskNeoVO = new HighRiskNeoVO();
 
-        List<Drug> drugs = wordCrfDTO.getDrugOrder();
-
-        for (Drug item : drugs) {
-            highRiskNeoVO.getDrugList().put(item.getName(), item.getUniqueName());
-        }
+        highRiskNeoVO.getDrugList().addAll(wordCrfDTO.getDrugOrder());
 
         List<Item> items = wordCrfDTO.getOperationOrder();
 

+ 6 - 10
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -17,12 +17,7 @@ import com.diagbot.repository.*;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RedisUtil;
 import com.diagbot.util.StringUtil;
-import com.diagbot.vo.BillNeoVO;
-import com.diagbot.vo.CriticalNeoVO;
-import com.diagbot.vo.HighRiskNeoVO;
-import com.diagbot.vo.NeoPushVO;
-import com.diagbot.vo.StandConvert;
-import com.diagbot.vo.StandConvertCrfVO;
+import com.diagbot.vo.*;
 import com.diagbot.vo.neoPushEntity.Diag;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -88,13 +83,14 @@ public class NeoFacade {
 
         Iterator<Medicine> iterator = medicineRepository.findAll().iterator();
         Medicine current;
-        String med_code, med_type;
+        String med_name, med_code, med_type;
         List<MedCodeName> medcodename;
         List<MedJiePouClass> medcates;
 
         while (iterator.hasNext()) {
             current = iterator.next();
-            if (null!=current.getMedcodenames() && current.getMedcodenames().size() > 0) {
+            med_name = current.getName();
+            if (current.getMedcodenames().size() > 0) {
                 medcodename = new ArrayList<>(current.getMedcodenames());
                 for (MedCodeName mcode : medcodename) {
                     if (mcode.getMedjiepouclass().size()>0) {
@@ -334,9 +330,9 @@ public class NeoFacade {
      * @param drugs
      * @return
      */
-    public List<HighRiskNeoDTO> getHighRiskDrugList(Map<String, String> drugs) {
+    public List<HighRiskNeoDTO> getHighRiskDrugList(List<Drug> drugs) {
         MedRegNameNode medRegNameNode = new MedRegNameNode();
-        List<HighRiskNeoDTO> highRiskNeoDTOS = medRegNameNode.getHighRiskDrug(drugs, medRegNameRepository);
+        List<HighRiskNeoDTO> highRiskNeoDTOS = medRegNameNode.getHighRiskDrug(drugs, medicineRepository, medicineCodeRepository);
 
         return highRiskNeoDTOS;
     }

+ 39 - 18
src/main/java/com/diagbot/repository/MedRegNameNode.java

@@ -1,44 +1,65 @@
 package com.diagbot.repository;
 
-import com.diagbot.dto.BillNeoDTO;
-import com.diagbot.dto.DrugBillNeoDTO;
-import com.diagbot.dto.DrugInfoDTO;
 import com.diagbot.dto.HighRiskNeoDTO;
+import com.diagbot.entity.node.MedCodeName;
 import com.diagbot.entity.node.MedRegName;
 import com.diagbot.entity.node.Medicine;
+import com.diagbot.vo.Drug;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
+
 
 public class MedRegNameNode {
 
     /**
      * 获取高危药品数据
      */
-    public List<HighRiskNeoDTO> getHighRiskDrug(Map<String, String> drugsterm, MedRegNameRepository medRegNameRepository) {
+    public List<HighRiskNeoDTO> getHighRiskDrug(List<Drug> druglist, MedicineRepository medRepository,
+                                                MedicineCodeRepository medCodeRepository) {
         List<HighRiskNeoDTO> highRiskNeoDTOS = new ArrayList<>();
         HighRiskNeoDTO highRiskNeoDTO;
-        String drugname;
-        List<MedRegName> medicine;
-        MedRegName med;
+        String drugname, drugform;
+        List<Medicine> medicine;
+        List<MedCodeName> medcdnames;
+        MedRegName medreg;
 
-        for (String term : drugsterm.keySet()) {
+        for (Drug drug : druglist) {
             highRiskNeoDTO = new HighRiskNeoDTO();
 
-            drugname = drugsterm.get(term);
-            highRiskNeoDTO.setName(term);
+            drugname = drug.getUniqueName();
+            highRiskNeoDTO.setName(drug.getName());
             highRiskNeoDTO.setStandname(drugname);
+            drugform = drug.getForm();
+
+            medicine = medRepository.findByNameIs(drugname);
+
+            if (null != medicine) {
+                for (Medicine med: medicine) {
+                    for (MedCodeName medcdname : med.getMedcodenames()) {
+                        if (medcdname.getReg_JiXin().equals(drugform)) {
+                            medcdnames = medCodeRepository.findByNameIs(medcdname.getName());
+                            for (MedCodeName medcdnm : medcdnames) {
+                                List<MedRegName> medRegNames = new ArrayList<>(medcdnm.getMedregnames());
+                                medreg = medRegNames.get(0);
+                                if (null != medreg.getRisklevel() && medreg.getRisklevel().trim().length() > 0) {
+                                    highRiskNeoDTO.setIsHighrisk(true);
+                                    highRiskNeoDTO.setType(Constants.medicine);
+                                    highRiskNeoDTOS.add(highRiskNeoDTO);
+                                    break;
+                                }
+                            }
 
-            medicine = medRegNameRepository.findByNameIs(drugname);
+                            if (highRiskNeoDTO.getType()!=null) {
+                                break;
+                            }
+                        }
+                    }
 
-            if (null != medicine && medicine.size()>0) {
-                med = medicine.get(0);
+                    if (highRiskNeoDTO.getType()!=null) {
+                        break;
+                    }
 
-                if (null!=med.getRisklevel() && med.getRisklevel().trim().length()>0) {
-                    highRiskNeoDTO.setIsHighrisk(true);
-                    highRiskNeoDTO.setType(Constants.medicine);
-                    highRiskNeoDTOS.add(highRiskNeoDTO);
                 }
             }
         }

+ 3 - 1
src/main/java/com/diagbot/vo/HighRiskNeoVO.java

@@ -2,14 +2,16 @@ package com.diagbot.vo;
 
 import lombok.Data;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @Data
 public class HighRiskNeoVO {
 
     // 药品入参
-    private Map<String, String> drugList = new HashMap<>();
+    private List<Drug> drugList = new ArrayList<>();
 
     // 手术和操作入参
     private Map<String, String> operationList = new HashMap<>();