浏览代码

开单合理性数据结构的更新

MarkHuang 4 年之前
父节点
当前提交
587afcd167

+ 11 - 11
src/main/java/com/diagbot/dto/DrugBillNeoDTO.java

@@ -13,35 +13,35 @@ import java.util.List;
 @Data
 public class DrugBillNeoDTO {
     // 禁忌性别
-    private String gender;
+    private NodeNeoDTO gender;
 
     // 禁忌年龄
-    private RangeNeoDTO ageNeoDTO;
+    private NodeNeoDTO ageNeoDTO;
 
     // 临床表现
-    private List<RangeNeoDTO> clinicfindings = new ArrayList<>();
+    private List<NodeNeoDTO> clinicfindings = new ArrayList<>();
 
     // 禁忌手术
-    private List<String> operations = new ArrayList<>();
+    private List<NodeNeoDTO> operations = new ArrayList<>();
 
     // 禁忌操作
-    private List<String> procedures = new ArrayList<>();
+    private List<NodeNeoDTO> procedures = new ArrayList<>();
 
     // 禁忌实验室检查
-    private List<RangeNeoDTO> lis = new ArrayList<>();
+    private List<NodeNeoDTO> lis = new ArrayList<>();
 
     // 禁忌辅助检查
-    private List<RangeNeoDTO> Pacs = new ArrayList<>();
+    private List<NodeNeoDTO> pacs = new ArrayList<>();
 
     // 禁忌过敏药品
-    private List<String> allergicmeds = new ArrayList<>();
+    private List<NodeNeoDTO> allergicmeds = new ArrayList<>();
 
     // 禁忌疾病
-    private List<String> disease = new ArrayList<>();
+    private List<NodeNeoDTO> disease = new ArrayList<>();
 
     // 禁用人群
-    private List<String> group = new ArrayList<>();
+    private List<NodeNeoDTO> group = new ArrayList<>();
 
     // 配伍禁忌
-    private List<String> conflictmeds = new ArrayList<>();
+    private List<NodeNeoDTO> prescribe = new ArrayList<>();
 }

+ 10 - 10
src/main/java/com/diagbot/dto/LisBillNeoDTO.java

@@ -14,33 +14,33 @@ import java.util.List;
 @Data
 public class LisBillNeoDTO {
     // 禁忌性别
-    private String gender;
+    private NodeNeoDTO gender;
 
     // 年龄
-    private RangeNeoDTO ageNeoDTO;
+    private NodeNeoDTO ageNeoDTO;
 
     // 临床表现
-    private List<RangeNeoDTO> clinicfindings = new ArrayList<>();
+    private List<NodeNeoDTO> clinicfindings = new ArrayList<>();
 
     // 服用药品
-    private List<String> prescribe = new ArrayList<>();
+    private List<NodeNeoDTO> prescribe = new ArrayList<>();
 
     // 禁忌过敏药品
-    private List<String> allergmeds = new ArrayList<>();
+    private List<NodeNeoDTO> allergmeds = new ArrayList<>();
 
     // 禁忌手术
-    private List<String> operations = new ArrayList<>();
+    private List<NodeNeoDTO> operations = new ArrayList<>();
 
     // 禁忌操作
-    private List<String> procedures = new ArrayList<>();
+    private List<NodeNeoDTO> procedures = new ArrayList<>();
 
     // 禁忌辅助检查
-    private List<RangeNeoDTO> Pacs = new ArrayList<>();
+    private List<NodeNeoDTO> pacs = new ArrayList<>();
 
     // 禁忌疾病
-    private List<String> disease = new ArrayList<>();
+    private List<NodeNeoDTO> disease = new ArrayList<>();
 
     // 禁用人群
-    private List<String> group = new ArrayList<>();
+    private List<NodeNeoDTO> group = new ArrayList<>();
 
 }

+ 1 - 1
src/main/java/com/diagbot/dto/RangeNeoDTO.java

@@ -6,7 +6,7 @@ import lombok.Data;
 import java.math.BigDecimal;
 
 @Data
-public class RangeNeoDTO {
+public class NodeNeoDTO {
 
     // 最小值
     private BigDecimal min;

+ 10 - 10
src/main/java/com/diagbot/dto/PacsBillNeoDTO.java

@@ -13,33 +13,33 @@ import java.util.List;
 @Data
 public class PacsBillNeoDTO {
     // 禁忌性别
-    private String gender;
+    private NodeNeoDTO gender;
 
     // 禁忌年龄
-    private RangeNeoDTO ageNeoDTO;
+    private NodeNeoDTO ageNeoDTO;
 
     // 临床表现
-    private List<RangeNeoDTO> clinicfindings = new ArrayList<>();
+    private List<NodeNeoDTO> clinicfindings = new ArrayList<>();
 
     // 服用药品
-    private List<String> prescribe = new ArrayList<>();
+    private List<NodeNeoDTO> prescribe = new ArrayList<>();
 
     // 禁忌过敏药品
-    private List<String> allergicmeds = new ArrayList<>();
+    private List<NodeNeoDTO> allergicmeds = new ArrayList<>();
 
     // 禁忌手术
-    private List<String> operations = new ArrayList<>();
+    private List<NodeNeoDTO> operations = new ArrayList<>();
 
     // 禁忌操作
-    private List<String> procedures = new ArrayList<>();
+    private List<NodeNeoDTO> procedures = new ArrayList<>();
 
     // 禁忌实验室检查
-    private List<RangeNeoDTO> Lis = new ArrayList<>();
+    private List<NodeNeoDTO> lis = new ArrayList<>();
 
     // 禁忌疾病
-    private List<String> disease = new ArrayList<>();
+    private List<NodeNeoDTO> disease = new ArrayList<>();
 
     // 禁用人群
-    private List<String> group = new ArrayList<>();
+    private List<NodeNeoDTO> group = new ArrayList<>();
 
 }

+ 9 - 2
src/main/java/com/diagbot/entity/node/Age.java

@@ -1,12 +1,16 @@
 package com.diagbot.entity.node;
 
+import lombok.Data;
 import com.diagbot.entity.node.base.BaseNode;
+import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
+import org.neo4j.ogm.annotation.Labels;
 import org.neo4j.ogm.annotation.NodeEntity;
 import org.neo4j.ogm.annotation.Property;
 import org.neo4j.ogm.annotation.Relationship;
 
+import java.io.Serializable;
 import java.util.Set;
 
 @Setter
@@ -21,13 +25,16 @@ public class Age extends BaseNode  {
     @Property(name = "最小值")
     private Integer minval;
 
+    @Relationship(type="疾病相关年龄", direction = Relationship.INCOMING)
+    private Set<Disease> diseases;
+
     @Relationship(type="药品通用名禁忌年龄", direction = Relationship.INCOMING)
     private Set<Medicine> medicines;
 
-    @Relationship(type="辅助检查禁忌年龄", direction = Relationship.INCOMING)
+    @Relationship(type = "辅助检查禁忌年龄", direction = Relationship.INCOMING)
     private Set<PACS> pacs;
 
     @Relationship(type="实验室检查禁忌年龄", direction = Relationship.INCOMING)
     private Set<LIS> lis;
-
 }
+

+ 19 - 0
src/main/java/com/diagbot/entity/node/CureRate.java

@@ -0,0 +1,19 @@
+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.Set;
+
+@Setter
+@Getter
+//@EqualsAndHashCode(callSuper = false)
+@NodeEntity(label = "治愈率")
+public class CureRate extends BaseNode  {
+
+    @Relationship(type="疾病相关治愈率", direction = Relationship.INCOMING)
+    private Set<Disease> diseases;
+}

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

@@ -10,6 +10,7 @@ import org.neo4j.ogm.annotation.NodeEntity;
 import org.neo4j.ogm.annotation.Relationship;
 
 import java.io.Serializable;
+import java.util.HashSet;
 import java.util.Set;
 
 @Setter
@@ -18,12 +19,104 @@ import java.util.Set;
 @NodeEntity(label = "疾病")
 public class Disease extends BaseNode  {
 
+    @Relationship(type="疾病相关年龄", direction = Relationship.OUTGOING)
+    private Age age;
+/*
+    @Relationship(type="疾病相关治愈率", direction = Relationship.OUTGOING)
+    private Set<CureRate> curerates = new HashSet<>();
+
+    @Relationship(type="疾病相关治疗周期", direction = Relationship.OUTGOING)
+    private Set<TreatCycle> treatcycles = new HashSet<>();
+
+    @Relationship(type="疾病相关传染途径", direction = Relationship.OUTGOING)
+    private Set<Infection> infections = new HashSet<>();
+
+    @Relationship(type="疾病相关多发人群", direction = Relationship.OUTGOING)
+    private Set<Group> groups = new HashSet<>();
+
+    @Relationship(type="疾病相关别名", direction = Relationship.OUTGOING)
+    private Set<Alias> alias = new HashSet<>();
+
+    @Relationship(type="疾病相关体征", direction = Relationship.OUTGOING)
+    private Set<Vital> vitals = new HashSet<>();
+
+    @Relationship(type="疾病相关科室", direction = Relationship.OUTGOING)
+    private Set<Dept> depts = new HashSet<>();
+
+    @Relationship(type="疾病相关症状", direction = Relationship.OUTGOING)
+    private Set<Symptom> symptoms = new HashSet<>();
+
+    @Relationship(type="疾病相关发病情况", direction = Relationship.OUTGOING)
+    private Set<Situation> situations = new HashSet<>();
+
+    @Relationship(type="疾病相关编码", direction = Relationship.OUTGOING)
+    private Set<Code> codes = new HashSet<>();
+
+    @Relationship(type="疾病相关标准科室", direction = Relationship.OUTGOING)
+    private Set<StdDept> stddepts = new HashSet<>();
+
+    @Relationship(type="疾病相关性别", direction = Relationship.OUTGOING)
+    private Set<Gender> genders = new HashSet<>();
+
+    @Relationship(type="疾病相关并发症", direction = Relationship.OUTGOING)
+    private Set<Complication> complications = new HashSet<>();
+
+    @Relationship(type="疾病相关检查", direction = Relationship.OUTGOING)
+    private Set<PACS> pacss = new HashSet<>();
+
+    @Relationship(type="疾病相关药品", direction = Relationship.OUTGOING)
+    private Set<Medicine> medicines = new HashSet<>();
+
+    @Relationship(type="疾病相关发病原因", direction = Relationship.OUTGOING)
+    private Set<Cause> causes = new HashSet<>();
+    */
+
+    @Relationship(type="疾病相关鉴别诊断", direction = Relationship.OUTGOING)
+    private Set<Disease> diff_diseases = new HashSet<>();
+
+    /*
+    @Relationship(type="疾病相关手术", direction = Relationship.OUTGOING)
+    private Set<Operation> operations = new HashSet<>();
+
+    @Relationship(type="疾病相关病原体", direction = Relationship.OUTGOING)
+    private Set<Pathogen> pathogens = new HashSet<>();
+
+    @Relationship(type="疾病相关遗传性", direction = Relationship.OUTGOING)
+    private Set<Heredity> hereditys = new HashSet<>();
+
+    @Relationship(type="疾病相关治疗", direction = Relationship.OUTGOING)
+    private Set<Treatment> treatments = new HashSet<>();
+
+    @Relationship(type="疾病相关分型", direction = Relationship.OUTGOING)
+    private Set<DiseaseType> diseasetypes = new HashSet<>();
+
+    @Relationship(type="疾病相关局部并发症", direction = Relationship.OUTGOING)
+    private Set<LocalCompl> localcompls = new HashSet<>();
+
+    @Relationship(type="疾病相关全身并发症", direction = Relationship.OUTGOING)
+    private Set<GeneralCompl> generalcompls = new HashSet<>();
+
+    @Relationship(type="疾病相关化验", direction = Relationship.OUTGOING)
+    private Set<LIS> liss = new HashSet<>();
+
+    @Relationship(type="疾病相关辅助检查", direction = Relationship.OUTGOING)
+    private Set<PACS> pacs = new HashSet<>();
+
+    @Relationship(type="疾病相关药品名及编码", direction = Relationship.OUTGOING)
+    private Medicine_Code medicine_code;
+*/
     @Relationship(type="药品通用名禁忌疾病", direction = Relationship.INCOMING)
-    private Set<Medicine> medicines;
+    private Set<Medicine> medicine_diseases;
 
     @Relationship(type="辅助检查禁忌疾病", direction = Relationship.INCOMING)
-    private Set<PACS> pacs;
+    private Set<PACS> pacs_disease;
 
     @Relationship(type="实验室检查禁忌疾病", direction = Relationship.INCOMING)
-    private Set<Disease> diseases;
+    private Set<Disease> lis_diseases;
 }
+
+
+
+
+
+

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

@@ -18,6 +18,9 @@ import java.util.Set;
 @NodeEntity(label = "性别")
 public class Gender extends BaseNode  {
 
+    @Relationship(type="疾病相关性别", direction = Relationship.INCOMING)
+    private Set<Disease> diseases;
+
     @Relationship(type="药品通用名禁忌性别", direction = Relationship.INCOMING)
     private Set<Medicine> medicines;
 

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

@@ -18,6 +18,9 @@ import java.util.Set;
 @NodeEntity(label = "人群")
 public class Group extends BaseNode  {
 
+    @Relationship(type="疾病相关多发人群", direction = Relationship.INCOMING)
+    private Set<Disease> diseases;
+
     @Relationship(type="药品通用名禁忌人群", direction = Relationship.INCOMING)
     private Set<Medicine> medicines;
 

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

@@ -29,6 +29,9 @@ public class LIS extends BaseNode  {
     @Property(name = "单位")
     private String unit;
 
+    @Relationship(type="疾病相关化验", direction = Relationship.INCOMING)
+    private Set<Disease> lis_diseases;
+
     @Relationship(type="实验室检查禁忌性别", direction = Relationship.OUTGOING)
     private Gender gender;
 
@@ -67,4 +70,3 @@ public class LIS extends BaseNode  {
 }
 
 
-

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

@@ -18,6 +18,9 @@ import java.util.Set;
 @NodeEntity(label = "药品通用名")
 public class Medicine extends BaseNode implements Serializable {
 
+    @Relationship(type="疾病相关药品", direction = Relationship.INCOMING)
+    private Set<Disease> med_diseases;
+
     @Relationship(type = "药品通用名禁忌性别", direction = Relationship.OUTGOING)
     private Gender gender;
 
@@ -59,3 +62,4 @@ public class Medicine extends BaseNode implements Serializable {
 
 }
 
+

+ 5 - 0
src/main/java/com/diagbot/entity/node/Operation.java

@@ -18,6 +18,9 @@ import java.util.Set;
 @NodeEntity(label = "手术")
 public class Operation extends BaseNode  {
 
+    @Relationship(type="疾病相关手术", direction = Relationship.INCOMING)
+    private Set<Disease> diseases;
+
     @Relationship(type="药品通用名禁忌手术", direction = Relationship.INCOMING)
     private Set<Medicine> medicines;
 
@@ -27,3 +30,5 @@ public class Operation extends BaseNode  {
     @Relationship(type="实验室检查禁忌手术", direction = Relationship.INCOMING)
     private Set<LIS> lis;
 }
+
+

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

@@ -29,6 +29,9 @@ public class PACS extends BaseNode  {
     @Property(name = "单位")
     private String unit;
 
+    @Relationship(type="疾病相关辅助检查", direction = Relationship.INCOMING)
+    private Set<Disease> pacs_diseases;
+
     @Relationship(type = "辅助检查禁忌性别", direction = Relationship.OUTGOING)
     private Gender gender;
 

+ 61 - 31
src/main/java/com/diagbot/repository/LISNode.java

@@ -1,8 +1,9 @@
 package com.diagbot.repository;
 
 import com.diagbot.dto.LisBillNeoDTO;
-import com.diagbot.dto.RangeNeoDTO;
+import com.diagbot.dto.NodeNeoDTO;
 import com.diagbot.entity.node.*;
+import com.diagbot.util.NeoUtil;
 
 import java.math.BigDecimal;
 import java.util.Set;
@@ -14,20 +15,23 @@ public class LISNode {
 		LisBillNeoDTO lisBillNeoDTO = new LisBillNeoDTO();
 
 		Gender gender = lis.getGender();
-		String gender_val = (gender==null)?"":gender.getName();
-		lisBillNeoDTO.setGender(gender_val);
+		if (null!=gender) {
+			lisBillNeoDTO.setGender(NeoUtil.updateNodeInfo(gender.getName(), null, null, null));
+		}
 
 
 		Age age = lis.getAge();
 		if (null!=age) {
-			RangeNeoDTO ageNeoDTO = new RangeNeoDTO();
+			NodeNeoDTO ageNeoDTO = new NodeNeoDTO();
 			ageNeoDTO.setMin(BigDecimal.valueOf(age.getMinval()));
 			ageNeoDTO.setMax(BigDecimal.valueOf(age.getMaxval()));
+			ageNeoDTO.setName("年龄");
 			lisBillNeoDTO.setAgeNeoDTO(ageNeoDTO);
 		}
 
 		Set<ClinicalFinding> clinicalfindings = lis.getClinicalfindings();
 		for (ClinicalFinding clinicalfinding : clinicalfindings) {
+			/*
 			RangeNeoDTO rangeNeoDTO = new RangeNeoDTO();
 			String clinicalfinding_val = (clinicalfinding==null)?"":clinicalfinding.getName();
 			rangeNeoDTO.setName(clinicalfinding_val);
@@ -42,65 +46,91 @@ public class LISNode {
 				}
 			}
 			lisBillNeoDTO.getClinicfindings().add(rangeNeoDTO);
+			*/
+			String name = clinicalfinding.getName();
+			String min = clinicalfinding.getMinval();
+			String max = clinicalfinding.getMaxval();
+			String unit = clinicalfinding.getUnit();
+			lisBillNeoDTO.getClinicfindings().add(NeoUtil.updateNodeInfo(name, min, max, unit));
 		}
 
 		Set<Medicine> conflict_medicines = lis.getConflict_medicines();
 		for (Medicine conflict_medicine : conflict_medicines) {
-			String medicine_val = (conflict_medicine==null)?"":conflict_medicine.getName();
-			lisBillNeoDTO.getPrescribe().add(medicine_val);
+//			String medicine_val = (conflict_medicine==null)?"":conflict_medicine.getName();
+//			lisBillNeoDTO.getPrescribe().add(medicine_val);
+			String name = conflict_medicine.getName();
+			lisBillNeoDTO.getPrescribe().add(NeoUtil.updateNodeInfo(name, null, null, null));
 		}
 
 		Set<AllergicMed> allergicmeds = lis.getAllergicmeds();
 		for (AllergicMed allergicmed : allergicmeds) {
-			String allergicmed_val = (allergicmed==null)?"":allergicmed.getName();
-			lisBillNeoDTO.getAllergmeds().add(allergicmed_val);
+//			String allergicmed_val = (allergicmed==null)?"":allergicmed.getName();
+//			lisBillNeoDTO.getAllergmeds().add(allergicmed_val);
+			String name = allergicmed.getName();
+			lisBillNeoDTO.getAllergmeds().add(NeoUtil.updateNodeInfo(name, null, null, null));
 		}
 
 		Set<Operation> operations = lis.getOperations();
 		for (Operation operation : operations) {
-			String operation_val = (operation==null)?"":operation.getName();
-			lisBillNeoDTO.getOperations().add(operation_val);
+//			String operation_val = (operation==null)?"":operation.getName();
+//			lisBillNeoDTO.getOperations().add(operation_val);
+			String name = operation.getName();
+			lisBillNeoDTO.getOperations().add(NeoUtil.updateNodeInfo(name, null, null, null));
 		}
 
 		Set<Procedure> procedures = lis.getProcedures();
 		for (Procedure procedure : procedures) {
-			String procedure_val = (procedure==null)?"":procedure.getName();
-			lisBillNeoDTO.getProcedures().add(procedure_val);
+//			String procedure_val = (procedure==null)?"":procedure.getName();
+//			lisBillNeoDTO.getProcedures().add(procedure_val);
+			String name = procedure.getName();
+			lisBillNeoDTO.getProcedures().add(NeoUtil.updateNodeInfo(name, null, null, null));
 		}
 
 		Set<PACS> pacss = lis.getPacs();
 		for (PACS pacs : pacss) {
-			RangeNeoDTO rangeNeoDTO = new RangeNeoDTO();
-			String pacs_val = (pacs==null)?"":pacs.getName();
-			rangeNeoDTO.setName(pacs_val);
-
-			if (pacs.getUnit()!=null) {
-				rangeNeoDTO.setUnit(pacs.getUnit());
-				if (null!=pacs.getMinval()) {
-					rangeNeoDTO.setMin(new BigDecimal(pacs.getMinval()));
-				}
-				if (null!=pacs.getMaxval()) {
-					rangeNeoDTO.setMax(new BigDecimal(pacs.getMaxval()));
-				}
-			}
-
-			lisBillNeoDTO.getPacs().add(rangeNeoDTO);
+//			RangeNeoDTO rangeNeoDTO = new RangeNeoDTO();
+//			String pacs_val = (pacs==null)?"":pacs.getName();
+//			rangeNeoDTO.setName(pacs_val);
+//
+//			if (pacs.getUnit()!=null) {
+//				rangeNeoDTO.setUnit(pacs.getUnit());
+//				if (null!=pacs.getMinval()) {
+//					rangeNeoDTO.setMin(new BigDecimal(pacs.getMinval()));
+//				}
+//				if (null!=pacs.getMaxval()) {
+//					rangeNeoDTO.setMax(new BigDecimal(pacs.getMaxval()));
+//				}
+//			}
+//
+//			lisBillNeoDTO.getPacs().add(rangeNeoDTO);
+			String name = pacs.getName();
+			String min = pacs.getMinval();
+			String max = pacs.getMaxval();
+			String unit = pacs.getUnit();
+			lisBillNeoDTO.getPacs().add(NeoUtil.updateNodeInfo(name, min, max, unit));
 		}
 
 		Set<Disease> diseases = lis.getDiseases();
 		for (Disease disease : diseases) {
-			String disease_val = (disease==null)?"":disease.getName();
-			lisBillNeoDTO.getDisease().add(disease_val);
+//			String disease_val = (disease==null)?"":disease.getName();
+//			lisBillNeoDTO.getDisease().add(disease_val);
+			String name = disease.getName();
+			lisBillNeoDTO.getDisease().add(NeoUtil.updateNodeInfo(name, null, null, null));
 		}
 
 		Set<Group> groups = lis.getGroups();
 		for (Group group : groups) {
-			String group_val = (group==null)?"":group.getName();
-			lisBillNeoDTO.getGroup().add(group_val);
+//			String group_val = (group==null)?"":group.getName();
+//			lisBillNeoDTO.getGroup().add(group_val);
+			String name = group.getName();
+			lisBillNeoDTO.getGroup().add(NeoUtil.updateNodeInfo(name, null, null, null));
 		}
 
 
 		return lisBillNeoDTO;
 	}
+
+
+	
 }
 

+ 91 - 62
src/main/java/com/diagbot/repository/MedicineNode.java

@@ -1,8 +1,9 @@
 package com.diagbot.repository;
 
 import com.diagbot.dto.DrugBillNeoDTO;
-import com.diagbot.dto.RangeNeoDTO;
+import com.diagbot.dto.NodeNeoDTO;
 import com.diagbot.entity.node.*;
+import com.diagbot.util.NeoUtil;
 
 import java.math.BigDecimal;
 import java.util.Set;
@@ -15,7 +16,7 @@ public class MedicineNode {
 
         Age age = medicine.getAge();
         if (age!=null) {
-            RangeNeoDTO ageNeoDTO = new RangeNeoDTO();
+            NodeNeoDTO ageNeoDTO = new NodeNeoDTO();
             ageNeoDTO.setMin(BigDecimal.valueOf(age.getMinval()));
             ageNeoDTO.setMax(BigDecimal.valueOf(age.getMaxval()));
             drugBillNeoDTO.setAgeNeoDTO(ageNeoDTO);
@@ -23,108 +24,136 @@ public class MedicineNode {
 
 
         Gender gender = medicine.getGender();
-        String gender_val = (gender==null)?"":gender.getName();
-        drugBillNeoDTO.setGender(gender_val);
+        if (gender!=null) {
+            drugBillNeoDTO.setGender(NeoUtil.updateNodeInfo(gender.getName(), null, null, null));
+        }
 
 
         Set<ClinicalFinding> clinicalfindings = medicine.getClinicalfindings();
         for (ClinicalFinding clinicalfinding : clinicalfindings) {
-            RangeNeoDTO rangeNeoDTO = new RangeNeoDTO();
-            String clinicalfinding_val = (clinicalfinding==null)?"":clinicalfinding.getName();
-            rangeNeoDTO.setName(clinicalfinding_val);
-
-            if (clinicalfinding.getUnit()!=null) {
-                rangeNeoDTO.setUnit(clinicalfinding.getUnit());
-                if (null!=clinicalfinding.getMinval()) {
-                    rangeNeoDTO.setMin(new BigDecimal(clinicalfinding.getMinval()));
-                }
-                if (null!=clinicalfinding.getMaxval()) {
-                    rangeNeoDTO.setMax(new BigDecimal(clinicalfinding.getMaxval()));
-                }
-            }
-            drugBillNeoDTO.getClinicfindings().add(rangeNeoDTO);
+//            RangeNeoDTO rangeNeoDTO = new RangeNeoDTO();
+//            String clinicalfinding_val = (clinicalfinding==null)?"":clinicalfinding.getName();
+//            rangeNeoDTO.setName(clinicalfinding_val);
+//
+//            if (clinicalfinding.getUnit()!=null) {
+//                rangeNeoDTO.setUnit(clinicalfinding.getUnit());
+//                if (null!=clinicalfinding.getMinval()) {
+//                    rangeNeoDTO.setMin(new BigDecimal(clinicalfinding.getMinval()));
+//                }
+//                if (null!=clinicalfinding.getMaxval()) {
+//                    rangeNeoDTO.setMax(new BigDecimal(clinicalfinding.getMaxval()));
+//                }
+//            }
+//            drugBillNeoDTO.getClinicfindings().add(rangeNeoDTO);
+            String name = clinicalfinding.getName();
+            String min = clinicalfinding.getMinval();
+            String max = clinicalfinding.getMaxval();
+            String unit = clinicalfinding.getUnit();
+            drugBillNeoDTO.getClinicfindings().add(NeoUtil.updateNodeInfo(name, min, max, unit));
         }
 
 
         Set<LIS> lisset = medicine.getLisset();
         for (LIS lis : lisset) {
-            RangeNeoDTO rangeNeoDTO = new RangeNeoDTO();
-            String lis_val = (lis==null)?"":lis.getName();
-            rangeNeoDTO.setName(lis_val);
-
-            if (lis.getUnit()!=null) {
-                rangeNeoDTO.setUnit(lis.getUnit());
-                if (null!=lis.getMinval()) {
-                    rangeNeoDTO.setMin(new BigDecimal(lis.getMinval()));
-                }
-                if (null!=lis.getMaxval()) {
-                    rangeNeoDTO.setMax(new BigDecimal(lis.getMaxval()));
-                }
-            }
-
-            drugBillNeoDTO.getLis().add(rangeNeoDTO);
+//            RangeNeoDTO rangeNeoDTO = new RangeNeoDTO();
+//            String lis_val = (lis==null)?"":lis.getName();
+//            rangeNeoDTO.setName(lis_val);
+//
+//            if (lis.getUnit()!=null) {
+//                rangeNeoDTO.setUnit(lis.getUnit());
+//                if (null!=lis.getMinval()) {
+//                    rangeNeoDTO.setMin(new BigDecimal(lis.getMinval()));
+//                }
+//                if (null!=lis.getMaxval()) {
+//                    rangeNeoDTO.setMax(new BigDecimal(lis.getMaxval()));
+//                }
+//            }
+//
+//            drugBillNeoDTO.getLis().add(rangeNeoDTO);
+            String name = lis.getName();
+            String min = lis.getMinval();
+            String max = lis.getMaxval();
+            String unit = lis.getUnit();
+            drugBillNeoDTO.getLis().add(NeoUtil.updateNodeInfo(name, min, max, unit));
         }
 
 
         Set<PACS> pacsset = medicine.getPacs();
         for (PACS pacs : pacsset) {
-            RangeNeoDTO rangeNeoDTO = new RangeNeoDTO();
-            String pacs_val = (pacs==null)?"":pacs.getName();
-            rangeNeoDTO.setName(pacs_val);
-
-            if (pacs.getUnit()!=null) {
-                rangeNeoDTO.setUnit(pacs.getUnit());
-                if (null!=pacs.getMinval()) {
-                    rangeNeoDTO.setMin(new BigDecimal(pacs.getMinval()));
-                }
-                if (null!=pacs.getMaxval()) {
-                    rangeNeoDTO.setMax(new BigDecimal(pacs.getMaxval()));
-                }
-            }
-
-            drugBillNeoDTO.getPacs().add(rangeNeoDTO);
+//            RangeNeoDTO rangeNeoDTO = new RangeNeoDTO();
+//            String pacs_val = (pacs==null)?"":pacs.getName();
+//            rangeNeoDTO.setName(pacs_val);
+//
+//            if (pacs.getUnit()!=null) {
+//                rangeNeoDTO.setUnit(pacs.getUnit());
+//                if (null!=pacs.getMinval()) {
+//                    rangeNeoDTO.setMin(new BigDecimal(pacs.getMinval()));
+//                }
+//                if (null!=pacs.getMaxval()) {
+//                    rangeNeoDTO.setMax(new BigDecimal(pacs.getMaxval()));
+//                }
+//            }
+//
+//            drugBillNeoDTO.getPacs().add(rangeNeoDTO);
+            String name = pacs.getName();
+            String min = pacs.getMinval();
+            String max = pacs.getMaxval();
+            String unit = pacs.getUnit();
+            drugBillNeoDTO.getPacs().add(NeoUtil.updateNodeInfo(name, min, max, unit));
         }
 
 
         Set<AllergicMed> allergicmeds = medicine.getAllergicmeds();
         for (AllergicMed allergicmed: allergicmeds) {
-            String allergicmed_val = (allergicmed == null) ? "" : allergicmed.getName();
-            drugBillNeoDTO.getAllergicmeds().add(allergicmed_val);
+//            String allergicmed_val = (allergicmed == null) ? "" : allergicmed.getName();
+//            drugBillNeoDTO.getAllergicmeds().add(allergicmed_val);
+            String name = allergicmed.getName();
+            drugBillNeoDTO.getAllergicmeds().add(NeoUtil.updateNodeInfo(name, null, null, null));
         }
 
 
         Set<Operation> operations = medicine.getOperations();
         for (Operation operation : operations) {
-            String operation_val = (operation == null) ? "" : operation.getName();
-            drugBillNeoDTO.getOperations().add(operation_val);
+//            String operation_val = (operation == null) ? "" : operation.getName();
+//            drugBillNeoDTO.getOperations().add(operation_val);
+            String name = operation.getName();
+            drugBillNeoDTO.getOperations().add(NeoUtil.updateNodeInfo(name, null, null, null));
         }
 
 
         Set<Procedure> procedures = medicine.getProcedures();
         for (Procedure procedure : procedures) {
-            String procedure_val = (procedure == null) ? "" : procedure.getName();
-            drugBillNeoDTO.getProcedures().add(procedure_val);
+//            String procedure_val = (procedure == null) ? "" : procedure.getName();
+//            drugBillNeoDTO.getProcedures().add(procedure_val);
+            String name = procedure.getName();
+            drugBillNeoDTO.getProcedures().add(NeoUtil.updateNodeInfo(name, null, null, null));
         }
 
 
         Set<Disease> diseases = medicine.getDiseases();
         for (Disease disease : diseases) {
-            String disease_val = (disease == null) ? "" : disease.getName();
-            drugBillNeoDTO.getDisease().add(disease_val);
+//            String disease_val = (disease == null) ? "" : disease.getName();
+//            drugBillNeoDTO.getDisease().add(disease_val);
+            String name = disease.getName();
+            drugBillNeoDTO.getDisease().add(NeoUtil.updateNodeInfo(name, null, null, null));
         }
 
 
         Set<Group> groups = medicine.getGroups();
         for (Group group : groups) {
-            String group_val = (group == null) ? "" : group.getName();
-            drugBillNeoDTO.getGroup().add(group_val);
+//            String group_val = (group == null) ? "" : group.getName();
+//            drugBillNeoDTO.getGroup().add(group_val);
+            String name = group.getName();
+            drugBillNeoDTO.getGroup().add(NeoUtil.updateNodeInfo(name, null, null, null));
         }
 
 
-        Set<ConflictMed> conflictmeds = medicine.getConflictmeds();
-        for (ConflictMed conflictMed : conflictmeds) {
-            String conflict_val = (conflictMed == null) ? "" : conflictMed.getName();
-            drugBillNeoDTO.getConflictmeds().add(conflict_val);
+        Set<ConflictMed> conflict_medicines = medicine.getConflictmeds();
+        for (ConflictMed conflict_medicine : conflict_medicines) {
+//            String conflict_val = (conflictMed == null) ? "" : conflictMed.getName();
+//            drugBillNeoDTO.getConflictmeds().add(conflict_val);
+            String name = conflict_medicine.getName();
+            drugBillNeoDTO.getPrescribe().add(NeoUtil.updateNodeInfo(name, null, null, null));
         }
 
 

+ 70 - 46
src/main/java/com/diagbot/repository/PACSNode.java

@@ -1,8 +1,9 @@
 package com.diagbot.repository;
 
 import com.diagbot.dto.PacsBillNeoDTO;
-import com.diagbot.dto.RangeNeoDTO;
+import com.diagbot.dto.NodeNeoDTO;
 import com.diagbot.entity.node.*;
+import com.diagbot.util.NeoUtil;
 
 import java.math.BigDecimal;
 import java.util.Set;
@@ -14,7 +15,7 @@ public class PACSNode {
 
         Age age = pacs.getAge();
         if (age!=null) {
-            RangeNeoDTO ageNeoDTO = new RangeNeoDTO();
+            NodeNeoDTO ageNeoDTO = new NodeNeoDTO();
             ageNeoDTO.setMin(BigDecimal.valueOf(age.getMinval()));
             ageNeoDTO.setMax(BigDecimal.valueOf(age.getMaxval()));
             pacsBillNeoDTO.setAgeNeoDTO(ageNeoDTO);
@@ -22,82 +23,105 @@ public class PACSNode {
 
 
         Gender gender = pacs.getGender();
-        String gender_val = (gender==null)?"":gender.getName();
-        pacsBillNeoDTO.setGender(gender_val);
+        if (gender!=null) {
+            pacsBillNeoDTO.setGender(NeoUtil.updateNodeInfo(gender.getName(), null, null, null));
+        }
 
 
         Set<ClinicalFinding> clinicalfindings = pacs.getClinicalfindings();
         for (ClinicalFinding clinicalfinding : clinicalfindings) {
-            RangeNeoDTO rangeNeoDTO = new RangeNeoDTO();
-            String clinicalfinding_val = (clinicalfinding == null) ? "" : clinicalfinding.getName();
-            rangeNeoDTO.setName(clinicalfinding_val);
-
-            if (clinicalfinding.getUnit()!=null) {
-                rangeNeoDTO.setUnit(clinicalfinding.getUnit());
-                if (null!=clinicalfinding.getMinval()) {
-                    rangeNeoDTO.setMin(new BigDecimal(clinicalfinding.getMinval()));
-                }
-                if (null!=clinicalfinding.getMaxval()) {
-                    rangeNeoDTO.setMax(new BigDecimal(clinicalfinding.getMaxval()));
-                }
-            }
-
-            pacsBillNeoDTO.getClinicfindings().add(rangeNeoDTO);
+//            RangeNeoDTO rangeNeoDTO = new RangeNeoDTO();
+//            String clinicalfinding_val = (clinicalfinding == null) ? "" : clinicalfinding.getName();
+//            rangeNeoDTO.setName(clinicalfinding_val);
+//
+//            if (clinicalfinding.getUnit()!=null) {
+//                rangeNeoDTO.setUnit(clinicalfinding.getUnit());
+//                if (null!=clinicalfinding.getMinval()) {
+//                    rangeNeoDTO.setMin(new BigDecimal(clinicalfinding.getMinval()));
+//                }
+//                if (null!=clinicalfinding.getMaxval()) {
+//                    rangeNeoDTO.setMax(new BigDecimal(clinicalfinding.getMaxval()));
+//                }
+//            }
+//
+//            pacsBillNeoDTO.getClinicfindings().add(rangeNeoDTO);
+            String name = clinicalfinding.getName();
+            String min = clinicalfinding.getMinval();
+            String max = clinicalfinding.getMaxval();
+            String unit = clinicalfinding.getUnit();
+            pacsBillNeoDTO.getClinicfindings().add(NeoUtil.updateNodeInfo(name, min, max, unit));
         }
 
         Set<Medicine> conflict_medicines = pacs.getConflict_medicines();
         for (Medicine conflict_medicine : conflict_medicines) {
-            String medicine_val = (conflict_medicine==null)?"":conflict_medicine.getName();
-            pacsBillNeoDTO.getPrescribe().add(medicine_val);
+//            String medicine_val = (conflict_medicine==null)?"":conflict_medicine.getName();
+//            pacsBillNeoDTO.getPrescribe().add(medicine_val);
+            String name = conflict_medicine.getName();
+            pacsBillNeoDTO.getPrescribe().add(NeoUtil.updateNodeInfo(name, null, null, null));
         }
 
         Set<AllergicMed> allergicmeds = pacs.getAllergicmeds();
         for (AllergicMed allergicmed : allergicmeds) {
-            String allergicmed_val = (allergicmed==null)?"":allergicmed.getName();
-            pacsBillNeoDTO.getAllergicmeds().add(allergicmed_val);
+//            String allergicmed_val = (allergicmed==null)?"":allergicmed.getName();
+//            pacsBillNeoDTO.getAllergicmeds().add(allergicmed_val);
+            String name = allergicmed.getName();
+            pacsBillNeoDTO.getAllergicmeds().add(NeoUtil.updateNodeInfo(name, null, null, null));
         }
 
         Set<Operation> operations = pacs.getOperations();
         for (Operation operation : operations) {
-            String operation_val = (operation==null)?"":operation.getName();
-            pacsBillNeoDTO.getOperations().add(operation_val);
+//            String operation_val = (operation==null)?"":operation.getName();
+//            pacsBillNeoDTO.getOperations().add(operation_val);
+            String name = operation.getName();
+            pacsBillNeoDTO.getOperations().add(NeoUtil.updateNodeInfo(name, null, null, null));
         }
 
         Set<Procedure> procedures = pacs.getProcedures();
         for (Procedure procedure : procedures) {
-            String procedure_val = (procedure==null)?"":procedure.getName();
-            pacsBillNeoDTO.getProcedures().add(procedure_val);
+//            String procedure_val = (procedure==null)?"":procedure.getName();
+//            pacsBillNeoDTO.getProcedures().add(procedure_val);
+            String name = procedure.getName();
+            pacsBillNeoDTO.getProcedures().add(NeoUtil.updateNodeInfo(name, null, null, null));
         }
 
         Set<LIS> liss = pacs.getLiss();
         for (LIS lis : liss) {
-            RangeNeoDTO rangeNeoDTO = new RangeNeoDTO();
-            String lis_val = (lis==null)?"":lis.getName();
-            rangeNeoDTO.setName(lis_val);
-
-            if (lis.getUnit()!=null) {
-                rangeNeoDTO.setUnit(lis.getUnit());
-                if (null!=lis.getMinval()) {
-                    rangeNeoDTO.setMin(new BigDecimal(lis.getMinval()));
-                }
-                if (null!=lis.getMaxval()) {
-                    rangeNeoDTO.setMax(new BigDecimal(lis.getMaxval()));
-                }
-            }
-
-            pacsBillNeoDTO.getLis().add(rangeNeoDTO);
+//            RangeNeoDTO rangeNeoDTO = new RangeNeoDTO();
+//            String lis_val = (lis==null)?"":lis.getName();
+//            rangeNeoDTO.setName(lis_val);
+//
+//            if (lis.getUnit()!=null) {
+//                rangeNeoDTO.setUnit(lis.getUnit());
+//                if (null!=lis.getMinval()) {
+//                    rangeNeoDTO.setMin(new BigDecimal(lis.getMinval()));
+//                }
+//                if (null!=lis.getMaxval()) {
+//                    rangeNeoDTO.setMax(new BigDecimal(lis.getMaxval()));
+//                }
+//            }
+//
+//            pacsBillNeoDTO.getLis().add(rangeNeoDTO);
+            String name = lis.getName();
+            String min = lis.getMinval();
+            String max = lis.getMaxval();
+            String unit = lis.getUnit();
+            pacsBillNeoDTO.getLis().add(NeoUtil.updateNodeInfo(name, min, max, unit));
         }
 
         Set<Disease> diseases = pacs.getDiseases();
         for (Disease disease : diseases) {
-            String disease_val = (disease==null)?"":disease.getName();
-            pacsBillNeoDTO.getDisease().add(disease_val);
+//            String disease_val = (disease==null)?"":disease.getName();
+//            pacsBillNeoDTO.getDisease().add(disease_val);
+            String name = disease.getName();
+            pacsBillNeoDTO.getDisease().add(NeoUtil.updateNodeInfo(name, null, null, null));
         }
 
         Set<Group> groups = pacs.getGroups();
         for (Group group : groups) {
-            String group_val = (group==null)?"":group.getName();
-            pacsBillNeoDTO.getGroup().add(group_val);
+//            String group_val = (group==null)?"":group.getName();
+//            pacsBillNeoDTO.getGroup().add(group_val);
+            String name = group.getName();
+            pacsBillNeoDTO.getGroup().add(NeoUtil.updateNodeInfo(name, null, null, null));
         }
 
 

+ 2 - 2
src/main/java/com/diagbot/rule/AgeRule.java

@@ -1,6 +1,6 @@
 package com.diagbot.rule;
 
-import com.diagbot.dto.RangeNeoDTO;
+import com.diagbot.dto.NodeNeoDTO;
 import com.diagbot.dto.BillMsg;
 import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.util.CoreUtil;
@@ -22,7 +22,7 @@ public class AgeRule {
      * @param name
      * @return
      */
-    public static BillMsg compareAgeWithBill(RangeNeoDTO ageNeoDTO, WordCrfDTO wordCrfDTO, String name) {
+    public static BillMsg compareAgeWithBill(NodeNeoDTO ageNeoDTO, WordCrfDTO wordCrfDTO, String name) {
         Boolean flag = false;
         if (ageNeoDTO != null && wordCrfDTO.getAge() != null) {
             Integer age = wordCrfDTO.getAge();

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

@@ -0,0 +1,27 @@
+package com.diagbot.util;
+
+import com.diagbot.dto.NodeNeoDTO;
+
+import java.math.BigDecimal;
+
+public class NeoUtil {
+    public static NodeNeoDTO updateNodeInfo(String name, String min, String max, String unit) {
+        NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
+
+        name = (null==name)?"":name;
+        nodeNeoDTO.setName(name);
+
+        if (null!=min) {
+            nodeNeoDTO.setMin(new BigDecimal(min));
+        }
+
+        if (null!=max) {
+            nodeNeoDTO.setMax(new BigDecimal(max));
+        }
+
+        unit = (null==unit)?"":unit;
+        nodeNeoDTO.setUnit(unit);
+
+        return nodeNeoDTO;
+    }
+}