浏览代码

其他值提醒化验

zhoutg 3 年之前
父节点
当前提交
5a2d524245

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

@@ -29,7 +29,8 @@ public enum RedisEnum implements KeyedNamed {
     frequency(20, "frequency"),
     msg(21, "msg"),
     vteAdvice(22, "vteAdvice:"),
-    drugAllergen(23, "drugAllergen");
+    drugAllergen(23, "drugAllergen"),
+    otherMsg(24, "otherMsg");
 
     @Setter
     private int key;

+ 13 - 2
src/main/java/com/diagbot/facade/CacheFacade.java

@@ -234,9 +234,8 @@ public class CacheFacade {
      * 加载提示语
      */
     public void loadMsg() {
-        // 删除
+        // 开单提示语
         redisUtil.delete(RedisEnum.msg.getName());
-        // 加载
         List<DictionaryInfoDTO> dictionaryInfoDTOList = klDictionaryInfoFacade.getListByGroupType(41);
         if (ListUtil.isNotEmpty(dictionaryInfoDTOList)) {
             // 提示语
@@ -246,5 +245,17 @@ public class CacheFacade {
             }
             redisUtil.putHashMap(RedisEnum.msg.getName(), msgMap);
         }
+
+        // 其他值提醒化验提示语
+        redisUtil.delete(RedisEnum.otherMsg.getName());
+        List<DictionaryInfoDTO> otherLisList = klDictionaryInfoFacade.getListByGroupType(42);
+        if (ListUtil.isNotEmpty(otherLisList)) {
+            // 提示语
+            Map<String, Object> msgMap = new LinkedMap<>();
+            for (DictionaryInfoDTO dic : otherLisList) {
+                msgMap.put(dic.getName(), dic.getVal());
+            }
+            redisUtil.putHashMap(RedisEnum.otherMsg.getName(), msgMap);
+        }
     }
 }

+ 3 - 1
src/main/java/com/diagbot/process/OtherTipProcess.java

@@ -74,7 +74,9 @@ public class OtherTipProcess {
                 for (RuleConditionDTO ruleConditionDTO : ruleConditionDTOList) {
                     List<RuleBaseDTO> ruleBaseDTOList = ruleConditionDTO.getRuleBaseDTOList();
                     // 2、规则匹配
-                    lisRule.otherLis(lis, ruleBaseDTOList, otherList, wordCrfDTO);
+                    // TODO 测试数据
+                    ruleConditionDTO.setMsg("请留意");
+                    lisRule.otherLis(lis, ruleBaseDTOList, otherList, wordCrfDTO, ruleConditionDTO.getMsg());
                 }
             }
         }

+ 14 - 13
src/main/java/com/diagbot/rule/LisRule.java

@@ -84,8 +84,9 @@ public class LisRule {
      * @param ruleBaseDTOList
      * @param otherList
      * @param wordCrfDTO
+     * @param msg
      */
-    public void otherLis(Lis lisBean, List<RuleBaseDTO> ruleBaseDTOList, List<BillMsg> otherList, WordCrfDTO wordCrfDTO) {
+    public void otherLis(Lis lisBean, List<RuleBaseDTO> ruleBaseDTOList, List<BillMsg> otherList, WordCrfDTO wordCrfDTO, String msg) {
         if (ListUtil.isEmpty(ruleBaseDTOList)) {
             return ;
         }
@@ -146,40 +147,40 @@ public class LisRule {
         if (i == ruleBaseDTOList.size()) {
             if (StringUtil.isNotBlank(lisOtherDTO.getName())) {
                 // 就化验本身一个条件符合
-                if (ListUtil.isEmpty(lisOtherDTO.getDiseaseMsg())
-                        && ListUtil.isEmpty(lisOtherDTO.getGroupMsg())
-                        && ListUtil.isEmpty(lisOtherDTO.getLisMsg())
-                        && ListUtil.isEmpty(lisOtherDTO.getDrugMsg())
-                ) {
-                    BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.lis.getName(),
-                            lisOtherDTO.getName(), "", TypeEnum.lisSelf.getName(), lisBean);
+                if (i == 1) {
+                    BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(),
+                            lisOtherDTO.getName(), "", TypeEnum.lisSelf.getName(), lisBean, msg);
                     otherList.add(billMsg);
                 } else { // 有其他条件符合
                     // 诊断
                     if (ListUtil.isNotEmpty(lisOtherDTO.getDiseaseMsg())) {
                         for (String str : lisOtherDTO.getDiseaseMsg()) {
-                            BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(), str, TypeEnum.disease.getName(), lisBean);
+                            BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(),
+                                    str, TypeEnum.disease.getName(), lisBean, msg);
                             otherList.add(billMsg);
                         }
                     }
                     // 药品
                     if (ListUtil.isNotEmpty(lisOtherDTO.getDrugMsg())) {
                         for (String str : lisOtherDTO.getDrugMsg()) {
-                            BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(), str, TypeEnum.drug.getName(), lisBean);
+                            BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(),
+                                    str, TypeEnum.drug.getName(), lisBean, msg);
                             otherList.add(billMsg);
                         }
                     }
                     // 人群
                     if (ListUtil.isNotEmpty(lisOtherDTO.getGroupMsg())) {
                         for (String str : lisOtherDTO.getGroupMsg()) {
-                            BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(), str, TypeEnum.group.getName(), lisBean);
+                            BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(),
+                                    str, TypeEnum.group.getName(), lisBean, msg);
                             otherList.add(billMsg);
                         }
                     }
-                    // 化验
+                    // 化验——暂无数据
                     if (ListUtil.isNotEmpty(lisOtherDTO.getLisMsg())) {
                         for (String str : lisOtherDTO.getLisMsg()) {
-                            BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(), str, TypeEnum.lis.getName(), lisBean);
+                            BillMsg billMsg = msgNewUtil.getCommonOtherMsg(TypeEnum.lis.getName(), lisOtherDTO.getName(),
+                                    str, TypeEnum.lis.getName(), lisBean, msg);
                             otherList.add(billMsg);
                         }
                     }

+ 45 - 0
src/main/java/com/diagbot/util/MsgNewUtil.java

@@ -1,9 +1,11 @@
 package com.diagbot.util;
 
+import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.dto.BillMsg;
 import com.diagbot.dto.RuleSimpleDTO;
 import com.diagbot.enums.ConEnum;
 import com.diagbot.enums.RedisEnum;
+import com.diagbot.enums.TypeEnum;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -69,4 +71,47 @@ public class MsgNewUtil {
         billMsg.setType(conType);
         return billMsg;
     }
+
+    /**
+     * 其他值通用提示信息
+     *
+     * @param content
+     * @param name
+     * @param type
+     * @param lis
+     * @param suggestMsg
+     * @return
+     */
+    public BillMsg getCommonOtherMsg(String otherType, String content, String name, String type, Lis lis, String suggestMsg) {
+        BillMsg billMsg = new BillMsg();
+        String msg = "";
+        switch (TypeEnum.getEnum(otherType)) {
+            case lis: // 其他值提醒——化验
+                switch (TypeEnum.getEnum(type)) {
+                    case disease: // 诊断
+                    case drug: // 药品
+                    case group: // 人群
+                    case lisSelf: // 就化验本身一个条件
+                        msg = redisUtil.getByKeyAndField(RedisEnum.otherMsg.getName(), otherType + "_" + type);
+                        break;
+                }
+                if (StringUtil.isNotBlank(suggestMsg)) {
+                    msg = msg.replaceAll("\\[原因及建议]", "," + suggestMsg);
+                } else {
+                    msg = msg.replaceAll("\\[原因及建议]", "");
+                }
+                // 放到最后统一替换【多处匹配】
+                msg = msg.replaceAll("\\[化验结果]", content);
+                msg = msg.replaceAll("\\[匹配内容]", name);
+                billMsg.setType(type);
+                billMsg.setOrderName(lis.getName());
+                billMsg.setOrderDetailName(lis.getDetailName());
+                break;
+            default:
+                break;
+        }
+        billMsg.setMsg(msg);
+        billMsg.setContent(content);
+        return billMsg;
+    }
 }