Bladeren bron

更新疾病推导对接的数据结构

MarkHuang 4 jaren geleden
bovenliggende
commit
97e376883f

+ 48 - 0
src/main/java/com/diagbot/dto/DiseaseNeoDTO.java

@@ -0,0 +1,48 @@
+package com.diagbot.dto;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @description: 疾病图谱数据
+ * @author: Mark
+ * @time: 2020/08/10 10:19
+ */
+@Data
+public class DiseaseNeoDTO {
+    // 性别
+    private NodeNeoDTO gender;
+
+    // 年龄
+    private NodeNeoDTO ageNeoDTO;
+
+    // 临床表现
+    private List<NodeNeoDTO> clinicfindings = new ArrayList<>();
+
+    // 药品
+    private List<NodeNeoDTO> medicines = new ArrayList<>();
+
+    // 过敏药品
+//    private List<NodeNeoDTO> allergicmeds = new ArrayList<>();
+
+    // 手术
+    private List<NodeNeoDTO> operations = new ArrayList<>();
+
+    // 操作
+//    private List<NodeNeoDTO> procedures = new ArrayList<>();
+
+    // 化验
+    private List<NodeNeoDTO> lis = new ArrayList<>();
+
+    // 辅助检查
+    private List<NodeNeoDTO> pacs = new ArrayList<>();
+
+    // 鉴别诊断
+    private List<NodeNeoDTO> diff_disease = new ArrayList<>();
+
+    // 并发症
+    private List<NodeNeoDTO> complications = new ArrayList<>();
+
+}

+ 20 - 4
src/main/java/com/diagbot/dto/PushDTO.java

@@ -3,6 +3,7 @@ package com.diagbot.dto;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -14,14 +15,29 @@ import java.util.Map;
 @Getter
 @Setter
 public class PushDTO {
+
+    // 性别
+    private PushBaseDTO gender;
+
+    // 年龄
+    private PushBaseDTO ageNeoDTO;
+
     //症状
-    private List<PushBaseDTO> symptom;
+    private List<PushBaseDTO> symptom = new ArrayList<>();
     //体格检查
-    private List<PushBaseDTO> vital;
+    private List<PushBaseDTO> vital = new ArrayList<>();
     //检验
-    private List<PushBaseDTO> lis;
+    private List<PushBaseDTO> lis = new ArrayList<>();
     //检查
-    private List<PushBaseDTO> pacs;
+    private List<PushBaseDTO> pacs = new ArrayList<>();
+    // 手术
+    private List<PushBaseDTO> operations = new ArrayList<>();
+    // 药品
+    private List<PushBaseDTO> medicines = new ArrayList<>();
+    // 并发症
+    private List<PushBaseDTO> complications = new ArrayList<>();
+    // 鉴别诊断
+    private List<PushBaseDTO> diff_disease = new ArrayList<>();
     //诊断
     private Map<String, List<PushBaseDTO>> dis;
 }

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

@@ -1,20 +1,11 @@
 package com.diagbot.facade;
 
-import com.diagbot.dto.BillNeoDTO;
-import com.diagbot.dto.DrugBillNeoDTO;
-import com.diagbot.dto.LisBillNeoDTO;
-import com.diagbot.dto.PacsBillNeoDTO;
+import com.diagbot.dto.*;
 import com.diagbot.entity.node.Disease;
 import com.diagbot.entity.node.LIS;
 import com.diagbot.entity.node.Medicine;
 import com.diagbot.entity.node.PACS;
-import com.diagbot.repository.DiseaseRepository;
-import com.diagbot.repository.LISNode;
-import com.diagbot.repository.LisRepository;
-import com.diagbot.repository.MedicineNode;
-import com.diagbot.repository.MedicineRepository;
-import com.diagbot.repository.PACSNode;
-import com.diagbot.repository.PacsRepository;
+import com.diagbot.repository.*;
 import com.diagbot.vo.BillNeoVO;
 import com.diagbot.vo.PushNeoVO;
 import com.diagbot.vo.StandConvert;
@@ -64,7 +55,7 @@ public class NeoFacade {
      * @return
      */
     public Map<String, Object> getInverse(PushNeoVO pushNeoVO) {
-        Map<String, Object> map = new LinkedHashMap<>();
+        Map<String, Object> map = getDiag(pushNeoVO.getDiags());
 
         return map;
     }
@@ -81,7 +72,6 @@ public class NeoFacade {
         billNeoDTOs.addAll(getDrugBill(billNeoVO.getDrugList()));
         billNeoDTOs.addAll(getPacsBill(billNeoVO.getPacsList()));
         billNeoDTOs.addAll(getLisBill(billNeoVO.getLisList()));
-        getDiag(billNeoVO.getDiagList());
 
         for (BillNeoDTO billNeoDTO:billNeoDTOs) {
             System.out.println(billNeoDTO);
@@ -200,22 +190,26 @@ public class NeoFacade {
     }
 
 
-    public void getDiag(Map<String, String> diaglist) {
+    public Map<String, Object> getDiag(List<String> diaglist) {
 
+        Map<String, Object> pushDTOs = new HashMap<>();
+        PushDTO pushDTO;
+
+        DiseaseNode diseaseNode = new DiseaseNode();
         Disease disease;
-        String diag;
 
-        for (String term : diaglist.keySet()) {
+        for (String term : diaglist) {
 
-            diag = diaglist.get(term);
-            disease = diseaseRepository.findByNameIs(diag);
+            disease = diseaseRepository.findByNameIs(term);
 
             if (disease != null) {
-                System.out.println(disease);
+                pushDTO = diseaseNode.DiseasetoDiseaseDTO(disease);
+
+                pushDTOs.put(term, pushDTO);
             }
         }
 
-
+        return pushDTOs;
     }
 
 

+ 27 - 24
src/main/java/com/diagbot/repository/DiseaseNode.java

@@ -1,7 +1,6 @@
 package com.diagbot.repository;
 
-import com.diagbot.dto.LisBillNeoDTO;
-import com.diagbot.dto.NodeNeoDTO;
+import com.diagbot.dto.*;
 import com.diagbot.entity.node.*;
 import com.diagbot.util.NeoUtil;
 
@@ -10,24 +9,24 @@ import java.util.Set;
 
 public class DiseaseNode {
 
-	public void DiseasetoDiseaseDTO(Disease disease) {
+	public PushDTO DiseasetoDiseaseDTO(Disease disease) {
 
+        PushDTO pushDTO = new PushDTO();
 
 		Age age = disease.getAge();
 		if (null!=age) {
-			NodeNeoDTO ageNeoDTO = new NodeNeoDTO();
-			ageNeoDTO.setMin(BigDecimal.valueOf(age.getMinval()));
-			ageNeoDTO.setMax(BigDecimal.valueOf(age.getMaxval()));
+			PushBaseDTO ageNeoDTO = new PushBaseDTO();
 			ageNeoDTO.setName("年龄");
-//			lisBillNeoDTO.setAgeNeoDTO(ageNeoDTO);
+			pushDTO.setAgeNeoDTO(ageNeoDTO);
 		}
 
 		Gender gender = disease.getGender();
 		if (null!=gender) {
-			NeoUtil.updateNodeInfo(gender.getName(), null, null, null);
+			pushDTO.setGender(NeoUtil.updatePushInfo(gender.getName()));
 		}
 
 
+		/*
 		CureRate curerate = disease.getCurerate();
 		if (null != curerate) {
 			NeoUtil.updateNodeInfo(curerate.getName(), null, null, null);
@@ -52,23 +51,27 @@ public class DiseaseNode {
 		for (Alias alias : aliass) {
 			NeoUtil.updateNodeInfo(alias.getName(), null, null, null);
 		}
+		*/
 
 		Set<Vital> vitals = disease.getVitals();
 		for (Vital vital : vitals) {
 			String name = vital.getName();
-			NeoUtil.updateNodeInfo(name, null, null, null);
+			pushDTO.getVital().add(NeoUtil.updatePushInfo(name));
 		}
 
+		/*
 		Set<Dept> depts = disease.getDepts();
 		for (Dept dept : depts) {
 			NeoUtil.updateNodeInfo(dept.getName(), null, null, null);
 		}
+		*/
 
 		Set<Symptom> symptoms = disease.getSymptoms();
 		for (Symptom symptom : symptoms) {
-			NeoUtil.updateNodeInfo(symptom.getName(), null, null, null);
+            pushDTO.getSymptom().add(NeoUtil.updatePushInfo(symptom.getName()));
 		}
 
+		/*
 		Set<Situation> situations = disease.getSituations();
 		for (Situation situation : situations) {
 			NeoUtil.updateNodeInfo(situation.getName(), null, null, null);
@@ -83,42 +86,42 @@ public class DiseaseNode {
 		for (Dept stddept : stddepts) {
 			NeoUtil.updateNodeInfo(stddept.getName(), null, null, null);
 		}
+		*/
 
 		Set<Complication> complications = disease.getComplications();
 		for (Complication complication : complications) {
-			String name = complication.getName();
-			NeoUtil.updateNodeInfo(complication.getName(), null, null, null);
+			pushDTO.getComplications().add(NeoUtil.updatePushInfo(complication.getName()));
 		}
 
 		Set<PACS> pacss = disease.getPacs();
 		for (PACS pacs : pacss) {
 			String name = pacs.getName();
-			String min = pacs.getMinval();
-			String max = pacs.getMaxval();
-			String unit = pacs.getUnit();
-			NeoUtil.updateNodeInfo(name, min, max, unit);
+			pushDTO.getPacs().add(NeoUtil.updatePushInfo(name));
 		}
 
 		Set<Medicine> medicines = disease.getMedicines();
 		for (Medicine medicine : medicines) {
-			NeoUtil.updateNodeInfo(medicine.getName(), null, null, null);
+			pushDTO.getMedicines().add(NeoUtil.updatePushInfo(medicine.getName()));
 		}
 
+		/*
 		Set<Cause> causes = disease.getCauses();
 		for (Cause cause : causes) {
 			NeoUtil.updateNodeInfo(cause.getName(), null, null, null);
 		}
+		*/
 
 		Set<Disease> diff_diseases = disease.getDiff_diseases();
 		for (Disease diff_disease : diff_diseases) {
-			NeoUtil.updateNodeInfo(diff_disease.getName(), null, null, null);
+			pushDTO.getDiff_disease().add(NeoUtil.updatePushInfo(diff_disease.getName()));
 		}
 
 		Set<Operation> operations = disease.getOperations();
 		for (Operation operation : operations) {
-			NeoUtil.updateNodeInfo(operation.getName(), null, null, null);
+			pushDTO.getOperations().add(NeoUtil.updatePushInfo(operation.getName()));
 		}
 
+		/*
 		Set<Pathogen> pathogens = disease.getPathogens();
 		for (Pathogen pathogen : pathogens) {
 			NeoUtil.updateNodeInfo(pathogen.getName(), null, null, null);
@@ -148,16 +151,14 @@ public class DiseaseNode {
 		for (Complication generalcompl : generalcompls) {
 			NeoUtil.updateNodeInfo(generalcompl.getName(), null, null, null);
 		}
+		*/
 
 		Set<LIS> liss = disease.getLiss();
 		for (LIS lis : liss) {
-			String name = lis.getName();
-			String min = lis.getMinval();
-			String max = lis.getMaxval();
-			String unit = lis.getUnit();
-			NeoUtil.updateNodeInfo(name, min, max, unit);
+			pushDTO.getLis().add(NeoUtil.updatePushInfo(lis.getName()));
 		}
 
+		/*
 		Set<PACS> pacs_disease= disease.getPacs_disease();
 		for (PACS pacs : pacs_disease) {
 			String name = pacs.getName();
@@ -171,7 +172,9 @@ public class DiseaseNode {
 		if (null != medicine_code) {
 			NeoUtil.updateNodeInfo(medicine_code.getName(), null, null, null);
 		}
+		*/
 
+		return pushDTO;
 	}
 
 }

+ 10 - 0
src/main/java/com/diagbot/util/NeoUtil.java

@@ -1,6 +1,7 @@
 package com.diagbot.util;
 
 import com.diagbot.dto.NodeNeoDTO;
+import com.diagbot.dto.PushBaseDTO;
 
 import java.math.BigDecimal;
 
@@ -24,4 +25,13 @@ public class NeoUtil {
 
         return nodeNeoDTO;
     }
+
+    public static PushBaseDTO updatePushInfo(String name) {
+        PushBaseDTO pushBaseDTO = new PushBaseDTO();
+
+        name = (null==name)?"":name;
+        pushBaseDTO.setName(name);
+
+        return pushBaseDTO;
+    }
 }