Browse Source

更新手术开单合理性

MarkHuang 4 years ago
parent
commit
fb16e9d3f2

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

@@ -22,6 +22,27 @@ public class Operation extends BaseNode  {
     @Property(name = "高危级别")
     @Property(name = "高危级别")
     private String risklevel;
     private String risklevel;
 
 
+    @Relationship(type = "手术和操作禁忌性别", direction = Relationship.OUTGOING)
+    private Gender gender;
+
+    @Relationship(type = "手术和操作禁忌体征", direction = Relationship.OUTGOING)
+    private Set<Vital> vitals;
+
+    @Relationship(type = "手术和操作禁忌临床表现", direction = Relationship.OUTGOING)
+    private Set<ClinicalFinding> clinicalFindings;
+
+    @Relationship(type = "手术和操作禁忌实验室检查", direction = Relationship.OUTGOING)
+    private Set<LIS> conflict_lis;
+
+    @Relationship(type = "手术和操作禁忌服用药品", direction = Relationship.OUTGOING)
+    private Set<OralMedicine> oralMedicines;
+
+    @Relationship(type = "手术和操作禁忌疾病", direction = Relationship.OUTGOING)
+    private Set<Disease> conflict_diseases;
+
+    @Relationship(type = "手术和操作禁忌人群", direction = Relationship.OUTGOING)
+    private Set<Group> groups;
+
     @Relationship(type="疾病相关手术和操作", direction = Relationship.INCOMING)
     @Relationship(type="疾病相关手术和操作", direction = Relationship.INCOMING)
     private Set<Disease> diseases;
     private Set<Disease> diseases;
 
 

+ 7 - 0
src/main/java/com/diagbot/facade/BillFacade.java

@@ -7,6 +7,7 @@ import com.diagbot.dto.BillMsg;
 import com.diagbot.dto.BillNeoDTO;
 import com.diagbot.dto.BillNeoDTO;
 import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.IndicationDTO;
 import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.dto.WordCrfDTO;
+import com.diagbot.entity.node.Operation;
 import com.diagbot.process.BillProcess;
 import com.diagbot.process.BillProcess;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.StringUtil;
@@ -96,6 +97,12 @@ public class BillFacade {
             }
             }
         }
         }
 
 
+        List<Item> operations = wordCrfDTO.getOperationOrder();
+        for (Item item : operations) {
+            billNeoVO.getOperationList().put(item.getName(), item.getUniqueName());
+        }
+
+
         List<Item> diags = wordCrfDTO.getDiagOrder();
         List<Item> diags = wordCrfDTO.getDiagOrder();
         for (Item item : diags) {
         for (Item item : diags) {
             billNeoVO.getDiagList().put(item.getName(), item.getUniqueName());
             billNeoVO.getDiagList().put(item.getName(), item.getUniqueName());

+ 46 - 1
src/main/java/com/diagbot/repository/OperationNode.java

@@ -5,11 +5,14 @@ import com.diagbot.dto.BillNeoDTO;
 import com.diagbot.dto.HighRiskNeoDTO;
 import com.diagbot.dto.HighRiskNeoDTO;
 import com.diagbot.dto.OperationBillNeoDTO;
 import com.diagbot.dto.OperationBillNeoDTO;
 import com.diagbot.dto.OperationInfoDTO;
 import com.diagbot.dto.OperationInfoDTO;
-import com.diagbot.entity.node.Operation;
+import com.diagbot.entity.node.*;
+import com.diagbot.util.NeoUtil;
 
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
+import java.util.Set;
 
 
 public class OperationNode {
 public class OperationNode {
 
 
@@ -17,6 +20,48 @@ public class OperationNode {
     public OperationBillNeoDTO OperationtoOperationDTO(Operation operation) {
     public OperationBillNeoDTO OperationtoOperationDTO(Operation operation) {
         OperationBillNeoDTO opBillNeoDTO = new OperationBillNeoDTO();
         OperationBillNeoDTO opBillNeoDTO = new OperationBillNeoDTO();
 
 
+
+        Gender gender = operation.getGender();
+        if (null!=gender) {
+            opBillNeoDTO.setGender(NeoUtil.updateNodeInfo(gender.getName(), null, null, null));
+        }
+
+        Set<ClinicalFinding> clinicalfindings = operation.getClinicalFindings();
+        for (ClinicalFinding clinicalfinding : clinicalfindings) {
+            String name = clinicalfinding.getName();
+            BigDecimal min = NeoUtil.DoubletoBigDecimal(clinicalfinding.getMinval());
+            BigDecimal max = NeoUtil.DoubletoBigDecimal(clinicalfinding.getMaxval());
+            String unit = clinicalfinding.getUnit();
+            opBillNeoDTO.getClinicfindings().add(NeoUtil.updateNodeInfo(name, min, max, unit));
+        }
+
+        Set<Vital> vitals = operation.getVitals();
+        for (Vital vital : vitals) {
+            String name = vital.getName();
+            BigDecimal min = NeoUtil.DoubletoBigDecimal(vital.getMinval());
+            BigDecimal max = NeoUtil.DoubletoBigDecimal(vital.getMaxval());
+            String unit = vital.getUnit();
+            opBillNeoDTO.getVitals().add(NeoUtil.updateNodeInfo(name, min, max, unit));
+        }
+
+        Set<OralMedicine> conflict_oralmeds = operation.getOralMedicines();
+        for (OralMedicine conflict_oralmed : conflict_oralmeds) {
+            String name = conflict_oralmed.getName();
+            opBillNeoDTO.getConflictmeds().add(NeoUtil.updateNodeInfo(name, null, null, null));
+        }
+
+        Set<Disease> conflict_disease = operation.getDiseases();
+        for (Disease disease : conflict_disease) {
+            String name = disease.getName();
+            opBillNeoDTO.getDisease().add(NeoUtil.updateNodeInfo(name, null, null, null));
+        }
+
+        Set<Group> conflict_group = operation.getGroups();
+        for (Group group : conflict_group) {
+            String name = group.getName();
+            opBillNeoDTO.getGroup().add(NeoUtil.updateNodeInfo(name, null, null, null));
+        }
+
         return opBillNeoDTO;
         return opBillNeoDTO;
     }
     }