Explorar el Código

开单科室规则匹配增加

wangsy hace 1 año
padre
commit
7261fe5938

+ 1 - 0
src/main/java/com/diagbot/enums/ConEnum.java

@@ -30,6 +30,7 @@ public enum ConEnum implements KeyedNamed {
     otherAllergy(17, "禁忌其他过敏原"),
     repeat24(18, "24小时重复开立"),
     repeat(19, "正常项目重复开立"),
+    dept(20, "禁忌科室"),
     ;
 
     @Setter

+ 5 - 0
src/main/java/com/diagbot/rule/BillRule.java

@@ -32,6 +32,8 @@ public class BillRule {
     @Autowired
     AgeRule ageRule;
     @Autowired
+    DeptRule deptRule;
+    @Autowired
     MsgNewUtil msgNewUtil;
     @Autowired
     CommonRule commonRule;
@@ -92,6 +94,9 @@ public class BillRule {
                     case Age: // 年龄
                         flag = ageRule.bill(wordCrfDTO, ruleBaseDTO, ruleSimpleDTO);
                         break;
+                    case Dept: // 科室
+                        flag = deptRule.bill(wordCrfDTO, ruleBaseDTO, ruleSimpleDTO);
+                        break;
                     case Disease: // 诊断
                         flag = commonRule.compareItemWithBill(diags, ruleBaseDTO, ruleSimpleDTO, ConEnum.disease.getName());
                         break;

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

@@ -0,0 +1,60 @@
+package com.diagbot.rule;
+
+import com.diagbot.biz.push.entity.Item;
+import com.diagbot.dto.RuleBaseDTO;
+import com.diagbot.dto.RuleSimpleDTO;
+import com.diagbot.dto.WordCrfDTO;
+import com.diagbot.enums.ConEnum;
+import com.diagbot.util.CoreUtil;
+import com.diagbot.util.StringUtil;
+import com.google.common.collect.Lists;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @description: 科室规则
+ * @author: zhoutg
+ * @time: 2023/7/21 14:47
+ */
+@Component
+public class DeptRule {
+
+    /**
+     * 比较科室
+     *
+     * @param wordCrfDTO
+     * @param ruleBaseDTO
+     * @param ruleSimpleDTO
+     */
+    public Boolean bill(WordCrfDTO wordCrfDTO, RuleBaseDTO ruleBaseDTO, RuleSimpleDTO ruleSimpleDTO) {
+        boolean flag = getFlag(wordCrfDTO, ruleBaseDTO);
+        if (flag) {
+            List<String> contentList = Lists.newArrayList();
+            if (!contentList.contains(ruleBaseDTO.getBaseLibName())) {
+                contentList.add(ruleBaseDTO.getBaseLibName());
+            }
+            CoreUtil.setListAndType(ruleSimpleDTO, contentList, ConEnum.dept.getName());
+        }
+        return flag;
+    }
+
+    /**
+     * 匹配规则——返回状态
+     *
+     * @param wordCrfDTO
+     * @param ruleBaseDTO
+     * @return
+     */
+    public boolean getFlag(WordCrfDTO wordCrfDTO, RuleBaseDTO ruleBaseDTO) {
+        String dept = ruleBaseDTO.getBaseLibName();
+        if (StringUtil.isNotBlank(dept) && wordCrfDTO.getDept() != null) {
+            for (Item item : wordCrfDTO.getDept()) {
+                if (dept.equals(item.getName())) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+}