Prechádzať zdrojové kódy

手术和药物提醒修改

wangfeng 4 rokov pred
rodič
commit
2187c0a3ac

+ 21 - 2
src/main/java/com/diagbot/process/BillProcess.java

@@ -5,9 +5,11 @@ import com.diagbot.dto.BillMsg;
 import com.diagbot.dto.BillNeoDTO;
 import com.diagbot.dto.BillNeoMaxDTO;
 import com.diagbot.dto.IndicationDTO;
+import com.diagbot.dto.NodeNeoDTO;
 import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.enums.NeoEnum;
 import com.diagbot.facade.NeoFacade;
+import com.diagbot.model.entity.AllergyMedicine;
 import com.diagbot.model.entity.Clinical;
 import com.diagbot.model.entity.Operation;
 import com.diagbot.model.label.ChiefLabel;
@@ -25,6 +27,7 @@ import com.diagbot.rule.SexRule;
 import com.diagbot.rule.VitalRule;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ListUtil;
+import com.diagbot.vo.Drug;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -143,7 +146,14 @@ public class BillProcess {
         ChiefLabel chiefLabel = wordCrfDTO.getChiefLabel();
         PresentLabel presentLabel = wordCrfDTO.getPresentLabel();
         PastLabel pastLabel = wordCrfDTO.getPastLabel();
-
+        List<AllergyMedicine> allergyMedicines = pastLabel.getAllergyMedicines();
+        List<Drug> drug = wordCrfDTO.getDrug();
+        for(Item item:drug){
+            AllergyMedicine operaData = new AllergyMedicine();
+            operaData.setName(item.getName());
+            operaData.setStandName(item.getUniqueName());
+            allergyMedicines.add(operaData);
+        }
         // 诊断数据
         List<Item> diags = wordCrfDTO.getDiag();
 
@@ -167,7 +177,16 @@ public class BillProcess {
         // 手术数据
         List<Operation> operations_present = presentLabel.getOperations();
         List<Operation> operations_past = pastLabel.getOperations();
+        List<Item> operation = wordCrfDTO.getOperation();
+        List<Operation> operationsItem = new ArrayList<>();
+        for(Item item:operation){
+            Operation operaData = new Operation();
+            operaData.setName(item.getName());
+            operaData.setStandName(item.getUniqueName());
+            operationsItem.add(operaData);
+        }
         operations_present.addAll(operations_past);
+        operations_present.addAll(operationsItem);
 
         // 临床表现数据
         List<Clinical> clinicals = new ArrayList<>();
@@ -206,7 +225,7 @@ public class BillProcess {
             commonRule.compareNameWithBill(bill.getOperations(), operations_present, bill, billMsgList, NeoEnum.operations.getName());
 
             // 禁忌过敏药品(既往史)
-            drugRule.compareDrugWithBill(bill.getAllergicmeds(), pastLabel.getAllergyMedicines(), bill, billMsgList, NeoEnum.allergicmeds.getName());
+            drugRule.compareDrugWithBill(bill.getAllergicmeds(), allergyMedicines, bill, billMsgList, NeoEnum.allergicmeds.getName());
 
             // 服用药品(现病史一般情况后的药品)
             drugRule.compareDrugWithBill(bill.getOralmeds(), presentLabel.getTakeMedicine(), bill, billMsgList, NeoEnum.oralmeds.getName());

+ 2 - 1
src/main/java/com/diagbot/rule/CommonRule.java

@@ -1,5 +1,6 @@
 package com.diagbot.rule;
 
+import com.diagbot.biz.push.entity.Item;
 import com.diagbot.dto.BillMsg;
 import com.diagbot.dto.BillNeoMaxDTO;
 import com.diagbot.dto.NodeNeoDTO;
@@ -55,7 +56,7 @@ public class CommonRule {
             }
             if (old_stand.size() > 0) {
                 for (Map.Entry<String, String> d : old_stand.entrySet()) {
-                    BillMsg commonBillMsg = CoreUtil.getCommonBillMsg(
+                    BillMsg commonBillMsg = CoreUtil.getCommonSurgeryMsg(
                             billNeoMaxDTO.getOrderName(), billNeoMaxDTO.getOrderStandName(),
                             d.getKey(), type);
                     billMsgList.add(commonBillMsg);

+ 1 - 1
src/main/java/com/diagbot/rule/DrugRule.java

@@ -67,7 +67,7 @@ public class DrugRule {
                     if ("禁忌过敏药品".equals(type)) {
                         message = d.getKey() + "过敏";
                     } else {
-                        message = "已开" + d.getKey();
+                        message = "可能正在用药" + d.getKey();
                     }
                     BillMsg commonBillMsg = CoreUtil.getCommonBillMsg(
                             billNeoMaxDTO.getOrderName(), billNeoMaxDTO.getOrderStandName(),

+ 19 - 1
src/main/java/com/diagbot/util/CoreUtil.java

@@ -278,7 +278,25 @@ public class CoreUtil {
         billMsg.setType(type);
         return billMsg;
     }
-
+    /**
+     * 开单合理性手术提示信息
+     *
+     * @param orderName 原开单项
+     * @param orderStandName 标准开单项
+     * @param content 匹配内容
+     * @param type 类型
+     * @return
+     */
+    public static BillMsg getCommonSurgeryMsg(String orderName, String orderStandName, String content, String type) {
+        BillMsg billMsg = new BillMsg();
+        String msg = String.format("该患者有%s史,不宜开%s", content, orderName);
+        billMsg.setMsg(msg);
+        billMsg.setOrderName(orderName);
+        billMsg.setOrderStandName(orderStandName);
+        billMsg.setContent(content);
+        billMsg.setType(type);
+        return billMsg;
+    }
     /**
      * 复杂情况高危手术提示
      *