瀏覽代碼

Merge remote-tracking branch 'origin/master'

MarkHuang 4 年之前
父節點
當前提交
87aa819037

+ 2 - 1
src/main/java/com/diagbot/enums/NeoEnum.java

@@ -22,7 +22,8 @@ public enum NeoEnum implements KeyedNamed {
     pacs(9, "禁忌辅助检查"),
     disease(10, "禁忌疾病"),
     group(11, "禁用人群"),
-    conflictmeds(12, "配伍禁忌");
+    conflictmeds(12, "配伍禁忌"),
+    vitals(13, "禁忌查体");
 
     @Setter
     private int key;

+ 15 - 17
src/main/java/com/diagbot/process/BillProcess.java

@@ -1,28 +1,14 @@
 package com.diagbot.process;
 
-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.dto.*;
 import com.diagbot.enums.NeoEnum;
 import com.diagbot.facade.NeoFacade;
-import com.diagbot.model.entity.Clinical;
-import com.diagbot.model.entity.Diag;
-import com.diagbot.model.entity.GeneralDesc;
-import com.diagbot.model.entity.Medicine;
-import com.diagbot.model.entity.Operation;
+import com.diagbot.model.entity.*;
 import com.diagbot.model.label.ChiefLabel;
 import com.diagbot.model.label.DiagLabel;
 import com.diagbot.model.label.PastLabel;
 import com.diagbot.model.label.PresentLabel;
-import com.diagbot.rule.AgeRule;
-import com.diagbot.rule.CommonRule;
-import com.diagbot.rule.DrugRule;
-import com.diagbot.rule.LisRule;
-import com.diagbot.rule.PacsRule;
-import com.diagbot.rule.SexRule;
+import com.diagbot.rule.*;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ListUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -84,6 +70,12 @@ public class BillProcess {
                 drug3.setName("泰舒达类");
                 billNeoDTO.getPacsBillNeoDTO().getOralmeds().add(drug3);
 
+//                NodeNeoDTO vital = new NodeNeoDTO();
+//                vital.setName("体温");
+//                vital.setMax(new BigDecimal(39.1));
+//                vital.setMin(new BigDecimal(37.1));
+//                billNeoDTO.getVitals().add(vital);
+
             }
             // 测试数据结束
 
@@ -102,6 +94,9 @@ public class BillProcess {
         PresentLabel presentLabel = wordCrfDTO.getPresentLabel();
         PastLabel pastLabel = wordCrfDTO.getPastLabel();
 
+        // 体征
+        List<Vital> vitals = wordCrfDTO.getVitalLabel().getVitals();
+
         // 诊断数据
         List<Diag> diags = diagLabel.getDiags();
 
@@ -134,6 +129,9 @@ public class BillProcess {
             // 化验
             LisRule.compareLisWithBill(wordCrfDTO.getLis(), bill, billMsgList, NeoEnum.lis.getName());
 
+            //体征
+            VitalRule.compareVitalWithBill(vitals, bill, billMsgList, NeoEnum.vitals.getName());
+
             // 辅检
             PacsRule.comparePacsWithBill(bill.getPacs(), wordCrfDTO.getPacs(), bill, billMsgList, NeoEnum.pacs.getName());
 

+ 60 - 0
src/main/java/com/diagbot/rule/VitalRule.java

@@ -0,0 +1,60 @@
+package com.diagbot.rule;
+
+import com.diagbot.dto.BillMsg;
+import com.diagbot.dto.BillNeoMaxDTO;
+import com.diagbot.dto.NodeNeoDTO;
+import com.diagbot.model.entity.Vital;
+import com.diagbot.util.CoreUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+
+import java.util.List;
+
+/**
+ * @description: 体征规则
+ * @author: kwz
+ * @time: 2020/8/3 14:47
+ */
+public class VitalRule {
+
+    /**
+     * 比较体征
+     *
+     * @param inputLis
+     * @param billNeoMaxDTO
+     * @return
+     */
+    public static void compareVitalWithBill(List<Vital> inputLis, BillNeoMaxDTO billNeoMaxDTO, List<BillMsg> billMsgList, String type) {
+        List<NodeNeoDTO> neoList = billNeoMaxDTO.getLis();
+        if(ListUtil.isNotEmpty(neoList) && ListUtil.isNotEmpty(inputLis)){
+            for (NodeNeoDTO neo : neoList) {
+                for (Vital lis : inputLis) {
+                    String val = lis.getName();
+                    if (StringUtil.isNotBlank(val) && val.equals(neo.getName()) && "体温".equals(val)) {
+//                        String val_name = lis.getDetailName();
+                        // 如果有结果数据,就不用比较数值
+                        String message = "";
+                        boolean flag = false;
+                        if (StringUtil.isNotBlank(lis.getValue())) {
+                            flag = CoreUtil.compareStr(neo, lis.getValue());
+                            if (flag) {
+                                message = CoreUtil.getStrMsg(neo, val, lis.getValue());
+                            }
+                        } else
+                            if (lis.getValue() != null) {
+                            flag = CoreUtil.compareNum(neo, Double.parseDouble(lis.getValue()));
+                            if (flag) {
+                                message = CoreUtil.getNumMsg(neo, val, Double.parseDouble(lis.getValue()), lis.getPd().getUnit());
+                            }
+                        }
+                        if (flag) {
+                            BillMsg commonBillMsg = CoreUtil.getCommonBillMsg(billNeoMaxDTO.getOrderName(),
+                                    billNeoMaxDTO.getOrderStandName(), message, message, type);
+                            billMsgList.add(commonBillMsg);
+                        }
+                    }
+                }
+            }
+        }
+    }
+}