Pārlūkot izejas kodu

更新开单互斥项逻辑

MarkHuang 4 gadi atpakaļ
vecāks
revīzija
9593ec0d5c

+ 22 - 0
src/main/java/com/diagbot/entity/node/BillConflictItem.java

@@ -0,0 +1,22 @@
+package com.diagbot.entity.node;
+
+import com.diagbot.entity.node.base.BaseNode;
+import com.diagbot.entity.relationship.LisNameLisAlias;
+import com.diagbot.entity.relationship.PacsNameBillConflictItem;
+import lombok.Getter;
+import lombok.Setter;
+import org.neo4j.ogm.annotation.NodeEntity;
+import org.neo4j.ogm.annotation.Relationship;
+
+import java.util.HashSet;
+import java.util.Set;
+
+@Setter
+@Getter
+@NodeEntity(label = "开单项互斥")
+public class BillConflictItem extends BaseNode  {
+
+	@Relationship(type = "辅助检查名称禁忌开单项互斥", direction = Relationship.INCOMING)
+	private Set<PacsNameBillConflictItem> pacsNameBillConflictItems = new HashSet<>();
+
+}

+ 8 - 5
src/main/java/com/diagbot/entity/node/PacsName.java

@@ -55,10 +55,13 @@ public class PacsName extends BaseNode  {
 	@Relationship(type = "辅助检查名称相关医保疾病名称", direction = Relationship.OUTGOING)
 	private Set<PacsNameYiBaoDiseaseName> pacsNameDisease = new HashSet<>();
 
-	@Relationship(type = "辅助检查名称开单互斥辅助检查名称", direction = Relationship.OUTGOING)
-	private Set<PacsNamePacsName> conflictPacsName_out = new HashSet<>();
-
-	@Relationship(type = "辅助检查名称开单互斥辅助检查名称", direction = Relationship.INCOMING)
-	private Set<PacsNamePacsName> conflictPacsName_in = new HashSet<>();
+	@Relationship(type = "辅助检查名称禁忌开单项互斥", direction = Relationship.OUTGOING)
+	private Set<PacsNameBillConflictItem> pacsNameBillConflictItems = new HashSet<>();
+
+//	@Relationship(type = "辅助检查名称开单互斥辅助检查名称", direction = Relationship.OUTGOING)
+//	private Set<PacsNamePacsName> conflictPacsName_out = new HashSet<>();
+//
+//	@Relationship(type = "辅助检查名称开单互斥辅助检查名称", direction = Relationship.INCOMING)
+//	private Set<PacsNamePacsName> conflictPacsName_in = new HashSet<>();
 
 }

+ 23 - 0
src/main/java/com/diagbot/entity/relationship/PacsNameBillConflictItem.java

@@ -0,0 +1,23 @@
+package com.diagbot.entity.relationship;
+
+import com.diagbot.entity.node.BillConflictItem;
+import com.diagbot.entity.node.LisAlias;
+import com.diagbot.entity.node.LisName;
+import com.diagbot.entity.node.PacsName;
+import com.diagbot.entity.relationship.base.BaseRelation;
+import lombok.Getter;
+import lombok.Setter;
+import org.neo4j.ogm.annotation.EndNode;
+import org.neo4j.ogm.annotation.RelationshipEntity;
+import org.neo4j.ogm.annotation.StartNode;
+
+@Getter
+@Setter
+@RelationshipEntity(type = "辅助检查名称禁忌开单项互斥")
+public class PacsNameBillConflictItem extends BaseRelation {
+    @StartNode
+    private PacsName pacsName;
+
+    @EndNode
+    private BillConflictItem billConflictItem;
+}

+ 125 - 5
src/main/java/com/diagbot/repository/PacsNameNode.java

@@ -3,15 +3,15 @@ package com.diagbot.repository;
 import com.diagbot.dto.BillNeoDTO;
 import com.diagbot.dto.PacsBillNeoDTO;
 import com.diagbot.entity.BaseNodeInfo;
+import com.diagbot.entity.node.BillConflictItem;
+import com.diagbot.entity.node.ClinicalFinding;
 import com.diagbot.entity.node.PacsName;
 import com.diagbot.entity.relationship.*;
+import com.diagbot.entity.relationship.base.BaseRelation;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.NeoUtil;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 public class PacsNameNode {
@@ -176,7 +176,7 @@ public class PacsNameNode {
             }
         }
 
-
+        /*
         Set<PacsNamePacsName> pacsNamepacsNames = pacs.getConflictPacsName_out();
         for (PacsNamePacsName pacsName : pacsNamepacsNames) {
             if (NeoUtil.isExist(pacsName)) {
@@ -188,6 +188,19 @@ public class PacsNameNode {
                 }
             }
         }
+        */
+
+        Set<PacsNameBillConflictItem> pacsNameBillConflictItems = pacs.getPacsNameBillConflictItems();
+        for (PacsNameBillConflictItem pacsNameBill : pacsNameBillConflictItems) {
+            if (NeoUtil.isExist(pacsNameBill)) {
+                if (NeoUtil.isExist(pacsNameBill.getBillConflictItem())) {
+                    nodeInfo = new NodeInfo();
+                    nodeInfo.setName(pacsNameBill.getBillConflictItem().getName());
+                    nodeInfo.setTypeval(Constants.fujian);
+                    pacsBillNeoDTO.getPacsOrder().add(NeoUtil.updateNodeInfo(nodeInfo));
+                }
+            }
+        }
 
         return pacsBillNeoDTO;
     }
@@ -289,6 +302,113 @@ public class PacsNameNode {
 
         return pacslist;
     }
+
+
+    /**
+     * 根据关系名查询对应节点
+     */
+    public List<?> getNodesbyRelation(PacsName pacsName, String relname) {
+        List<?> nodelist =  new ArrayList<>();
+
+        try {
+            switch (relname) {
+                case "辅助检查名称禁忌性别":
+                    nodelist = Arrays.asList(pacsName.getPacsNameGender().getGender());
+                    break;
+                case "辅助检查名称禁忌临床表现":
+                    nodelist = pacsName.getPacsNameClinicalfindings().stream().map(x -> x.getClinicalFinding()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌体征":
+                    nodelist = pacsName.getPacsNameVitals().stream().map(x -> x.getVital()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌实验室检查":
+                    nodelist = pacsName.getPacsNameLis().stream().map(x -> x.getLis()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌辅助检查名称描述":
+                    nodelist = pacsName.getPacsNamePacsdescribes().stream().map(x -> x.getPacsDescribe()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌禁忌人群":
+                    nodelist = pacsName.getPacsNameGroups().stream().map(x -> x.getGroup()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌服用药品":
+                    nodelist = pacsName.getPacsNameOralmedicines().stream().map(x -> x.getOralMedicine()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌药物过敏原":
+                    nodelist = pacsName.getPacsNameMedallergens().stream().map(x -> x.getMedAllergen()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌疾病":
+                    nodelist = pacsName.getPacsNameDiseases().stream().map(x -> x.getDisease()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌过敏原":
+                    nodelist = pacsName.getPacsNameAllergens().stream().map(x -> x.getAllergen()).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌禁忌医疗器械及物品":
+                    nodelist = pacsName.getPacsNameConflictdevices().stream().map(x -> x.getConflictDevice()).collect(Collectors.toList());
+                    break;
+            }
+        }
+        catch (Exception ex) {
+            ex.printStackTrace();
+        }
+        finally {
+            return nodelist;
+        }
+    }
+
+
+    /**
+     * 更新关系状态属性
+     */
+    public void updateRelation(PacsName pacsName, String relname, Integer status, String e_name, PacsNameRepository pacsNameRepository) {
+
+        try {
+            switch (relname) {
+                case "辅助检查名称禁忌性别":
+                    pacsName.getPacsNameGender().setStatus(status);
+                    pacsNameRepository.save(pacsName);
+                    break;
+                case "辅助检查名称禁忌临床表现":
+                    pacsName.getPacsNameClinicalfindings().stream().filter(x -> x.getClinicalFinding().getName()==e_name).
+                            collect(Collectors.toList()).stream().forEach(y -> y.setStatus(status));
+                    pacsNameRepository.save(pacsName);
+                    break;
+                case "辅助检查名称禁忌体征":
+                    List<PacsNameVital> pacsNameVitals = pacsName.getPacsNameVitals().stream().filter(x -> x.getVital().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌实验室检查":
+                    List<PacsNameLis> pacsNameLis = pacsName.getPacsNameLis().stream().filter(x -> x.getLis().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌辅助检查名称描述":
+                    List<PacsNamePacsDescribe> pacsNamePacsDescribes = pacsName.getPacsNamePacsdescribes().stream().filter(x -> x.getPacsDescribe().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌禁忌人群":
+                    List<PacsNameGroup> pacsNameGroups = pacsName.getPacsNameGroups().stream().filter(x -> x.getGroup().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌服用药品":
+                    List<PacsNameOralMedicine> pacsNameOralMedicines = pacsName.getPacsNameOralmedicines().stream().filter(x -> x.getOralMedicine().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌药物过敏原":
+                    List<PacsNameMedAllergen> pacsNameMedAllergens = pacsName.getPacsNameMedallergens().stream().filter(x -> x.getMedAllergen().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌疾病":
+                    List<PacsNameDisease> pacsNameDiseases = pacsName.getPacsNameDiseases().stream().filter(x -> x.getDisease().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌过敏原":
+                    List<PacsNameAllergen> pacsNameAllergens = pacsName.getPacsNameAllergens().stream().filter(x -> x.getAllergen().getName()==e_name).collect(Collectors.toList());
+                    break;
+                case "辅助检查名称禁忌禁忌医疗器械及物品":
+                    List<PacsNameConflictDevice> pacsNameConflictDevices = pacsName.getPacsNameConflictdevices().stream().filter(x -> x.getConflictDevice().getName()==e_name).collect(Collectors.toList());
+                    break;
+            }
+        }
+        catch (Exception ex) {
+            ex.printStackTrace();
+        }
+        finally {
+
+        }
+    }
+
 }