Quellcode durchsuchen

疾病反推数据结构调整

MarkHuang vor 4 Jahren
Ursprung
Commit
4b2f741236

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

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.diagbot.client.ChiefPresentSimilarityServiceClient;
 import com.diagbot.client.StandConvertServiceClient;
 import com.diagbot.dto.*;
+import com.diagbot.entity.node.ICDDisease;
 import com.diagbot.entity.node.Medicine_Code;
 import com.diagbot.entity.node.OralMedicine;
 import com.diagbot.entity.node.YiBaoDisease;
@@ -47,7 +48,7 @@ public class NeoFacade {
     @Autowired
     MedicineCodeRepository medicineCodeRepository;
     @Autowired
-    YiBaoDiseaseRepository yiBaoDiseaseRepository;
+    ICDDiseaseRepository icdDiseaseRepository;
     @Autowired
     ChiefPresentSimilarityServiceClient chiefPresentSimilarityServiceClient;
     @Autowired
@@ -233,16 +234,16 @@ public class NeoFacade {
         List<NeoPushDTO> neoPushDTOs = new ArrayList<>();
         NeoPushDTO pushDTO;
 
-        YiBaoDiseaseNode yiBaoDiseaseNode = new YiBaoDiseaseNode();
+        ICDDiseaseNode icdDiseaseNode = new ICDDiseaseNode();
         String term;
 
         for (Diag diag : neoPushVO.getDiagVo().getDiags()) {
             term = diag.getName();
 
-            YiBaoDisease yiBaoDisease = yiBaoDiseaseRepository.findByNameIs(term);
+            ICDDisease icdDisease = icdDiseaseRepository.findByNameIs(term).get(0);
 
-            if (yiBaoDisease != null) {
-                pushDTO = yiBaoDiseaseNode.YiBaoDiseasetoPushDTO(yiBaoDisease, neoPushVO);
+            if (icdDisease != null) {
+                pushDTO = icdDiseaseNode.ICDDiseasetoPushDTO(icdDisease, neoPushVO);
 
                 if (null!=pushDTO) {
                     neoPushDTOs.add(pushDTO);

+ 58 - 11
src/main/java/com/diagbot/repository/ICDDiseaseNode.java

@@ -1,17 +1,32 @@
 package com.diagbot.repository;
 
+import com.diagbot.dto.NeoPushDTO;
 import com.diagbot.dto.PushBaseDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.entity.node.*;
 import com.diagbot.util.NeoUtil;
+import com.diagbot.vo.NeoPushVO;
 
 import java.util.*;
 
 public class ICDDiseaseNode {
 
-	public PushDTO ICDDiseasetoDiseaseDTO(ICDDisease disease) {
+	public NeoPushDTO ICDDiseasetoPushDTO(ICDDisease disease, NeoPushVO neoPushVO) {
 
-        PushDTO pushDTO = new PushDTO();
+		NeoPushDTO pushDTO = null;
+		PushBaseDTO pushBaseDTO;
+		List<PushBaseDTO> pushBaseDTOS;
+
+		int gender = neoPushVO.getSex();
+		int age = neoPushVO.getAge();
+
+		if (matchBasic(disease, gender, age)) {
+
+			pushDTO = new NeoPushDTO();
+
+			pushBaseDTO = new PushBaseDTO();
+			pushBaseDTO.setName(disease.getName());
+			pushDTO.setDisease(pushBaseDTO);
 
 		/*
 		CureRate curerate = disease.getCurerate();
@@ -81,11 +96,11 @@ public class ICDDiseaseNode {
 		}
 		*/
 
-		Set<PACS> pacss = disease.getPacs();
-		for (PACS pacs : pacss) {
-			String name = pacs.getName();
-			pushDTO.getPacs().add(NeoUtil.updatePushInfo(name));
-		}
+			Set<PACS> pacss = disease.getPacs();
+			for (PACS pacs : pacss) {
+				String name = pacs.getName();
+				pushDTO.getPacs().add(NeoUtil.updatePushInfo(name));
+			}
 
 		/*
 		Set<Medicine> medicines = disease.getMedicines();
@@ -146,10 +161,10 @@ public class ICDDiseaseNode {
 		}
 		*/
 
-		Set<LIS> liss = disease.getLiss_dis();
-		for (LIS lis : liss) {
-			pushDTO.getLis().add(NeoUtil.updatePushInfo(lis.getName()));
-		}
+			Set<LIS> liss = disease.getLiss_dis();
+			for (LIS lis : liss) {
+				pushDTO.getLis().add(NeoUtil.updatePushInfo(lis.getName()));
+			}
 
 		/*
 		Set<PACS> pacs_disease= disease.getPacs_disease();
@@ -166,11 +181,43 @@ public class ICDDiseaseNode {
 			NeoUtil.updateNodeInfo(medicine_code.getName(), null, null, null);
 		}
 		*/
+		}
 
 		return pushDTO;
 	}
 
 
+		private boolean matchBasic(ICDDisease disease, int gender_code, int age) {
+			boolean match = true;
+
+			String gender = null;
+
+			if (gender_code==1) {
+				gender = "男";
+			}
+			else if (gender_code==2) {
+				gender = "女";
+			}
+
+//		if (null!=disease.getGender() && gender!=null) {
+//			if (!disease.getGender().getName().contains(gender)) {
+//				match = false;
+//			}
+//		}
+//
+//		if (null!=disease.getAge()) {
+//			int min = disease.getAge().getMinval();
+//			int max = disease.getAge().getMaxval();
+//			if (age < min || age > max) {
+//				match = false;
+//			}
+//		}
+
+			return match;
+		}
+
+
+
     /**
 	 * 获取疾病名称列表
 	 */

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

@@ -9,5 +9,7 @@ import java.util.List;
 public interface ICDDiseaseRepository extends Neo4jRepository<ICDDisease, Long> {
 
     List<ICDDisease> findByNameLike(String name);
+
+    List<ICDDisease> findByNameIs(String name);
 }