Procházet zdrojové kódy

添加特殊规则

zhoutg před 4 roky
rodič
revize
8945a00fe3
1 změnil soubory, kde provedl 38 přidání a 0 odebrání
  1. 38 0
      src/main/java/com/diagbot/facade/BillFacade.java

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

@@ -3,10 +3,13 @@ package com.diagbot.facade;
 import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.biz.push.entity.Pacs;
+import com.diagbot.dto.BillMsg;
 import com.diagbot.dto.BillNeoDTO;
 import com.diagbot.dto.IndicationDTO;
+import com.diagbot.dto.NodeNeoDTO;
 import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.process.BillProcess;
+import com.diagbot.util.CoreUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.BillNeoVO;
 import com.diagbot.vo.Drug;
@@ -15,6 +18,7 @@ import com.diagbot.vo.ItemExt;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -51,6 +55,40 @@ public class BillFacade {
         commonFacade.dealMsg(res.getBillMsgList());
     }
 
+    /**
+     * 体征特殊值规则处理(图谱数据不好录入)
+     *
+     * @param wordCrfDTO
+     * @param res
+     */
+    public void otherRule(WordCrfDTO wordCrfDTO, IndicationDTO res) {
+        // 特殊值处理
+        List<String> drugNameList = CoreUtil.getPropertyList(wordCrfDTO.getDrugOrder(), "name");
+        String drugOrderName = "阿托品";
+        if (drugNameList.contains(drugOrderName)) {
+            // 体征数值比较(例如:体温,血压)
+            NodeNeoDTO ssyNode = new NodeNeoDTO();
+            ssyNode.setName("收缩压");
+            ssyNode.setMax(new BigDecimal(100));
+            ssyNode.setMin(new BigDecimal(1));
+            Map<String, Object> objectMap = CoreUtil.compareVital(ssyNode, wordCrfDTO.getVitalLabel());
+
+            NodeNeoDTO szyNode = new NodeNeoDTO();
+            szyNode.setName("舒张压");
+            szyNode.setMax(new BigDecimal(100));
+            szyNode.setMin(new BigDecimal(1));
+
+            Map<String, Object> objectMap1 = CoreUtil.compareVital(szyNode, wordCrfDTO.getVitalLabel());
+            if (CoreUtil.getMapFlag(objectMap) || CoreUtil.getMapFlag(objectMap1)) {
+                BillMsg billMsg = new BillMsg();
+                billMsg.setOrderName(drugOrderName);
+                billMsg.setMsg(String.format("该患者%s,不宜开%s", objectMap.get("msg"), drugOrderName));
+                res.getBillMsgList().add(billMsg);
+            }
+        }
+
+    }
+
     public BillNeoVO fillBillNeo(WordCrfDTO wordCrfDTO) {
         BillNeoVO billNeoVO = new BillNeoVO();