Ver código fonte

更新图谱实体及查询的方法

MarkHuang 4 anos atrás
pai
commit
9780ae0acf

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

@@ -1,6 +1,5 @@
 package com.diagbot.entity.node;
 
-import lombok.Data;
 import com.diagbot.entity.node.base.BaseNode;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
@@ -9,8 +8,6 @@ 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.HashSet;
 import java.util.Set;
 
 @Setter

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

@@ -11,6 +11,7 @@ import org.neo4j.ogm.annotation.Property;
 import org.neo4j.ogm.annotation.Relationship;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.HashSet;
 import java.util.Set;
 

+ 9 - 4
src/main/java/com/diagbot/entity/node/PACS.java

@@ -11,6 +11,7 @@ import org.neo4j.ogm.annotation.Property;
 import org.neo4j.ogm.annotation.Relationship;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -20,14 +21,16 @@ import java.util.Set;
 @NodeEntity(label = "辅助检查")
 public class PACS extends BaseNode  {
 
+    /*
     @Property(name = "最大值")
-    private Double maxval;
+    private BigDecimal maxval;
 
     @Property(name = "最小值")
-    private Double minval;
+    private BigDecimal minval;
 
     @Property(name = "单位")
     private String unit;
+    */
 
     @Relationship(type = "辅助检查禁忌性别", direction = Relationship.OUTGOING)
     private Gender gender;
@@ -62,17 +65,19 @@ public class PACS extends BaseNode  {
     @Relationship(type="辅助检查禁忌人群", direction = Relationship.OUTGOING)
     private Set<Group> groups = new HashSet<>();
 
+
     @Relationship(type="疾病相关辅助检查", direction = Relationship.INCOMING)
     private Set<Disease> disease_related_pacs;
 
-    @Relationship(type="药品通用名禁忌辅助检查", direction = Relationship.INCOMING)
-    private Set<Medicine> medicine_conflict_pacs = new HashSet<>();
+//    @Relationship(type="药品通用名禁忌辅助检查", direction = Relationship.INCOMING)
+//    private Set<Medicine> medicine_conflict_pacs = new HashSet<>();
 
     @Relationship(type="实验室检查禁忌辅助检查", direction = Relationship.INCOMING)
     private Set<LIS> lis_conflict_pacs;
 
     @Relationship(type="医保ICD-10疾病相关辅助检查", direction = Relationship.INCOMING)
     private Set<Disease> icddis_related_pacs = new HashSet<>();
+
 }
 
 

+ 3 - 2
src/main/java/com/diagbot/entity/node/Vital.java

@@ -7,6 +7,7 @@ import org.neo4j.ogm.annotation.NodeEntity;
 import org.neo4j.ogm.annotation.Property;
 import org.neo4j.ogm.annotation.Relationship;
 
+import java.math.BigDecimal;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -34,7 +35,7 @@ public class Vital extends BaseNode  {
     @Relationship(type="辅助检查禁忌体征", direction = Relationship.INCOMING)
     private Set<PACS> conflict_pacs = new HashSet<>();
 
-    @Relationship(type = "药品通用名禁忌体征", direction = Relationship.INCOMING)
-    private Set<Medicine> conflict_mediciness = new HashSet<>();
+//    @Relationship(type = "药品通用名禁忌体征", direction = Relationship.INCOMING)
+//    private Set<Medicine> conflict_mediciness = new HashSet<>();
 
 }

+ 9 - 8
src/main/java/com/diagbot/repository/LisNode.java

@@ -37,8 +37,8 @@ public class LisNode {
 		Set<ClinicalFinding> clinicalfindings = lis.getClinicalfindings();
 		for (ClinicalFinding clinicalfinding : clinicalfindings) {
 			String name = clinicalfinding.getName();
-			Double min = clinicalfinding.getMinval();
-			Double max = clinicalfinding.getMaxval();
+			BigDecimal min = NeoUtil.DoubletoBigDecimal(clinicalfinding.getMinval());
+			BigDecimal max = NeoUtil.DoubletoBigDecimal(clinicalfinding.getMaxval());
 			String unit = clinicalfinding.getUnit();
 			lisBillNeoDTO.getClinicfindings().add(NeoUtil.updateNodeInfo(name, min, max, unit));
 		}
@@ -46,8 +46,8 @@ public class LisNode {
 		Set<Vital> vitals = lis.getVitals();
 		for (Vital vital : vitals) {
 			String name = vital.getName();
-			Double min = vital.getMinval();
-			Double max = vital.getMaxval();
+			BigDecimal min = NeoUtil.DoubletoBigDecimal(vital.getMinval());
+			BigDecimal max = NeoUtil.DoubletoBigDecimal(vital.getMaxval());
 			String unit = vital.getUnit();
 			lisBillNeoDTO.getVitals().add(NeoUtil.updateNodeInfo(name, min, max, unit));
 		}
@@ -79,10 +79,11 @@ public class LisNode {
 		Set<PACS> pacss = lis.getPacs();
 		for (PACS pacs : pacss) {
 			String name = pacs.getName();
-			Double min = pacs.getMinval();
-			Double max = pacs.getMaxval();
-			String unit = pacs.getUnit();
-			lisBillNeoDTO.getPacs().add(NeoUtil.updateNodeInfo(name, min, max, unit));
+//			BigDecimal min = pacs.getMinval();
+//			BigDecimal max = pacs.getMaxval();
+//			String unit = pacs.getUnit();
+//			lisBillNeoDTO.getPacs().add(NeoUtil.updateNodeInfo(name, min, max, unit));
+			lisBillNeoDTO.getPacs().add(NeoUtil.updateNodeInfo(name, null, null, null));
 		}
 
 		Set<Disease> diseases = lis.getDiseases();

+ 7 - 6
src/main/java/com/diagbot/repository/LisPackNode.java

@@ -36,8 +36,8 @@ public class LisPackNode {
 		Set<ClinicalFinding> clinicalfindings = lispack.getClinicalfindings();
 		for (ClinicalFinding clinicalfinding : clinicalfindings) {
 			String name = clinicalfinding.getName();
-			Double min = clinicalfinding.getMinval();
-			Double max = clinicalfinding.getMaxval();
+			BigDecimal min = NeoUtil.DoubletoBigDecimal(clinicalfinding.getMinval());
+			BigDecimal max = NeoUtil.DoubletoBigDecimal(clinicalfinding.getMaxval());
 			String unit = clinicalfinding.getUnit();
 			lisBillNeoDTO.getClinicfindings().add(NeoUtil.updateNodeInfo(name, min, max, unit));
 		}
@@ -69,10 +69,11 @@ public class LisPackNode {
 		Set<PACS> pacss = lispack.getPacs();
 		for (PACS pacs : pacss) {
 			String name = pacs.getName();
-			Double min = pacs.getMinval();
-			Double max = pacs.getMaxval();
-			String unit = pacs.getUnit();
-			lisBillNeoDTO.getPacs().add(NeoUtil.updateNodeInfo(name, min, max, unit));
+//			BigDecimal min = pacs.getMinval();
+//			BigDecimal max = pacs.getMaxval();
+//			String unit = pacs.getUnit();
+//			lisBillNeoDTO.getPacs().add(NeoUtil.updateNodeInfo(name, min, max, unit));
+			lisBillNeoDTO.getPacs().add(NeoUtil.updateNodeInfo(name, null, null, null));
 		}
 
 		Set<Disease> diseases = lispack.getDiseases();

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

@@ -34,8 +34,8 @@ public class MedicineNode {
         Set<ClinicalFinding> clinicalfindings = medicine.getClinicalfindings();
         for (ClinicalFinding clinicalfinding : clinicalfindings) {
             String name = clinicalfinding.getName();
-            Double min = clinicalfinding.getMinval();
-            Double max = clinicalfinding.getMaxval();
+            BigDecimal min = NeoUtil.DoubletoBigDecimal(clinicalfinding.getMinval());
+            BigDecimal max = NeoUtil.DoubletoBigDecimal(clinicalfinding.getMaxval());
             String unit = clinicalfinding.getUnit();
             drugBillNeoDTO.getClinicfindings().add(NeoUtil.updateNodeInfo(name, min, max, unit));
         }
@@ -44,8 +44,8 @@ public class MedicineNode {
         Set<Vital> vitals = medicine.getVitals();
         for (Vital vital : vitals) {
             String name = vital.getName();
-            Double min = vital.getMinval();
-            Double max = vital.getMaxval();
+            BigDecimal min = NeoUtil.DoubletoBigDecimal(vital.getMinval());
+            BigDecimal max = NeoUtil.DoubletoBigDecimal(vital.getMaxval());
             String unit = vital.getUnit();
             drugBillNeoDTO.getVitals().add(NeoUtil.updateNodeInfo(name, min, max, unit));
         }
@@ -54,8 +54,8 @@ public class MedicineNode {
         Set<LIS> lisset = medicine.getLisset();
         for (LIS lis : lisset) {
             String name = lis.getName();
-            Double min = lis.getMinval();
-            Double max = lis.getMaxval();
+            BigDecimal min = NeoUtil.DoubletoBigDecimal(lis.getMinval());
+            BigDecimal max = NeoUtil.DoubletoBigDecimal(lis.getMaxval());
             String unit = lis.getUnit();
             drugBillNeoDTO.getLis().add(NeoUtil.updateNodeInfo(name, min, max, unit));
         }
@@ -64,10 +64,11 @@ public class MedicineNode {
         Set<PACS> pacsset = medicine.getPacs();
         for (PACS pacs : pacsset) {
             String name = pacs.getName();
-            Double min = pacs.getMinval();
-            Double max = pacs.getMaxval();
-            String unit = pacs.getUnit();
-            drugBillNeoDTO.getPacs().add(NeoUtil.updateNodeInfo(name, min, max, unit));
+//            BigDecimal min = pacs.getMinval();
+//            BigDecimal max = pacs.getMaxval();
+//            String unit = pacs.getUnit();
+//            drugBillNeoDTO.getPacs().add(NeoUtil.updateNodeInfo(name, min, max, unit));
+            drugBillNeoDTO.getPacs().add(NeoUtil.updateNodeInfo(name, null, null, null));
         }
 
 

+ 10 - 7
src/main/java/com/diagbot/repository/PACSNode.java

@@ -14,9 +14,11 @@ import java.util.Set;
 
 public class PACSNode {
 
+
     public PacsBillNeoDTO PacstoPACSDTO(PACS pacs) {
         PacsBillNeoDTO pacsBillNeoDTO = new PacsBillNeoDTO();
 
+
         Age age = pacs.getAge();
         if (age!=null) {
             NodeNeoDTO ageNeoDTO = new NodeNeoDTO();
@@ -32,12 +34,13 @@ public class PACSNode {
         }
 
 
+
         Set<ClinicalFinding> clinicalfindings = pacs.getClinicalfindings();
         for (ClinicalFinding clinicalfinding : clinicalfindings) {
             String name = clinicalfinding.getName();
-            Double min = clinicalfinding.getMinval();
-            Double max = clinicalfinding.getMaxval();
-            String unit = clinicalfinding.getUnit();
+            BigDecimal min = NeoUtil.DoubletoBigDecimal(clinicalfinding.getMinval());
+            BigDecimal max = NeoUtil.DoubletoBigDecimal(clinicalfinding.getMaxval());
+             String unit = clinicalfinding.getUnit();
             pacsBillNeoDTO.getClinicfindings().add(NeoUtil.updateNodeInfo(name, min, max, unit));
         }
 
@@ -45,8 +48,8 @@ public class PACSNode {
         Set<Vital> vitals = pacs.getVitals();
         for (Vital vital : vitals) {
             String name = vital.getName();
-            Double min = vital.getMinval();
-            Double max = vital.getMaxval();
+            BigDecimal min = NeoUtil.DoubletoBigDecimal(vital.getMinval());
+            BigDecimal max = NeoUtil.DoubletoBigDecimal(vital.getMaxval());
             String unit = vital.getUnit();
             pacsBillNeoDTO.getVitals().add(NeoUtil.updateNodeInfo(name, min, max, unit));
         }
@@ -79,8 +82,8 @@ public class PACSNode {
         Set<LIS> liss = pacs.getLiss();
         for (LIS lis : liss) {
             String name = lis.getName();
-            Double min = lis.getMinval();
-            Double max = lis.getMaxval();
+            BigDecimal min = NeoUtil.DoubletoBigDecimal(lis.getMinval());
+            BigDecimal max = NeoUtil.DoubletoBigDecimal(lis.getMaxval());
             String unit = lis.getUnit();
             pacsBillNeoDTO.getLis().add(NeoUtil.updateNodeInfo(name, min, max, unit));
         }

+ 14 - 3
src/main/java/com/diagbot/util/NeoUtil.java

@@ -6,18 +6,19 @@ import com.diagbot.dto.PushBaseDTO;
 import java.math.BigDecimal;
 
 public class NeoUtil {
-    public static NodeNeoDTO updateNodeInfo(String name, Double min, Double max, String unit) {
+
+    public static NodeNeoDTO updateNodeInfo(String name, BigDecimal min, BigDecimal max, String unit) {
         NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
 
         name = (null==name)?"":name;
         nodeNeoDTO.setName(name);
 
         if (null!=min) {
-            nodeNeoDTO.setMin(new BigDecimal(min));
+            nodeNeoDTO.setMin(min);
         }
 
         if (null!=max) {
-            nodeNeoDTO.setMax(new BigDecimal(max));
+            nodeNeoDTO.setMax(max);
         }
 
         unit = (null==unit)?"":unit;
@@ -34,4 +35,14 @@ public class NeoUtil {
 
         return pushBaseDTO;
     }
+
+    public static BigDecimal DoubletoBigDecimal(Double val) {
+        BigDecimal bd = null;
+        if (null!=val) {
+            bd = new BigDecimal(val);
+            bd = bd.setScale(2, BigDecimal.ROUND_DOWN);
+        }
+
+        return bd;
+    }
 }