zhoutg 4 éve
szülő
commit
1877f510a2

+ 0 - 3
src/main/java/com/diagbot/config/CacheDeleteInit.java

@@ -54,9 +54,6 @@ public class CacheDeleteInit implements CommandLineRunner {
         cacheFacade.loadAllBaseDiagnoseCache();
         log.info("CDSS-CORE服务启动加载诊断依据缓存成功!");
 
-        cacheFacade.loadAllBaseRegulationCache();
-        log.info("CDSS-CORE服务启动加载诊断依据缓存成功!");
-
         conceptInfoFacade.loadCustomDictionary();
         log.info("CDSS-CORE服务启动加载NLP分词字典成功!");
 

+ 10 - 6
src/main/java/com/diagbot/dto/ScaleDTO.java

@@ -1,18 +1,22 @@
 package com.diagbot.dto;
 
-import lombok.Getter;
-import lombok.Setter;
+import com.google.common.collect.Lists;
+import lombok.Data;
 
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description:
  * @Author:zhoutg
  * @time: 2020/8/17 11:28
  */
-@Getter
-@Setter
+@Data
 public class ScaleDTO {
-    // 编码
-    private List<String> codeList;
+
+    // 匹配的编码列表
+    private List<String> codeList = Lists.newArrayList();
+    // 调试使用
+    private Map<String, Object> debug = new LinkedHashMap<>();
 }

+ 63 - 0
src/main/java/com/diagbot/enums/BaseRegulationTypeEnum.java

@@ -0,0 +1,63 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @author zhoutg
+ * @Description: 类型枚举
+ * @date 2018年10月11日 下午3:33:22
+ */
+public enum BaseRegulationTypeEnum implements KeyedNamed {
+
+    equals(1, "等于术语本身"),
+    compare(2, "存在比较"),
+    regexChiefSymptom(3, "主诉现病史正则"),
+    regexPast(4, "既往史正则");
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    BaseRegulationTypeEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static BaseRegulationTypeEnum getEnum(int key) {
+        for (BaseRegulationTypeEnum item : BaseRegulationTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static BaseRegulationTypeEnum getEnum(String value) {
+        for (BaseRegulationTypeEnum item : BaseRegulationTypeEnum.values()) {
+            if (item.getName().equals(value)) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        BaseRegulationTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+
+}

+ 8 - 2
src/main/java/com/diagbot/facade/KlRegulationBaseFacade.java

@@ -5,7 +5,7 @@ import com.diagbot.dto.RegulationDTO;
 import com.diagbot.dto.RuleBaseDTO;
 import com.diagbot.dto.ScaleDTO;
 import com.diagbot.dto.WordCrfDTO;
-import com.diagbot.enums.BaseDiagnoseTypeEnum;
+import com.diagbot.enums.BaseRegulationTypeEnum;
 import com.diagbot.enums.LexiconEnum;
 import com.diagbot.model.entity.Clinical;
 import com.diagbot.rule.AgeRule;
@@ -19,6 +19,7 @@ import com.diagbot.util.ListUtil;
 import com.diagbot.util.RedisUtil;
 import com.diagbot.vo.RegulationVO;
 import com.diagbot.vo.ScaleVO;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -92,7 +93,11 @@ public class KlRegulationBaseFacade extends KlRegulationBaseServiceImpl {
             RuleBaseDTO ruleBaseDTO = new RuleBaseDTO();
             BeanUtil.copyProperties(base, ruleBaseDTO);
             String baseIds = base.getIds();
-            switch (BaseDiagnoseTypeEnum.getEnum(base.getBaseType())) {
+            BaseRegulationTypeEnum typeEnum = BaseRegulationTypeEnum.getEnum(base.getBaseType());
+            if (typeEnum == null) {
+                continue;
+            }
+            switch (typeEnum) {
                 case equals: // 等于术语本身
                     switch (LexiconEnum.getEnum(base.getBaseLibType())) {
                         case Symptom: // 症状
@@ -136,6 +141,7 @@ public class KlRegulationBaseFacade extends KlRegulationBaseServiceImpl {
             }
         }
         Collections.sort(baseIdList); // id排序,方便调试查看
+        scaleDTO.getDebug().put("基础规则匹配", StringUtils.join(baseIdList));
 
         if (ListUtil.isNotEmpty(baseIdList)) {
             RegulationVO regulationVO = new RegulationVO();

+ 8 - 9
src/main/java/com/diagbot/web/CacheController.java

@@ -43,7 +43,6 @@ public class CacheController {
         cacheFacade.getdiseaseFilterCache();
         cacheFacade.loadAllRuleCache();
         cacheFacade.loadAllBaseDiagnoseCache();
-        cacheFacade.loadAllBaseRegulationCache();
         //无用的缓存
 //        cacheFacade.loadDiseaseTypeCache();
 //        cacheFacade.getSymptomCache();
@@ -63,14 +62,14 @@ public class CacheController {
         return RespDTO.onSuc(true);
     }
 
-    @ApiOperation(value = "重新加载基础规则[by:zhoutg]",
-            notes = "")
-    @PostMapping("/reloadRegulation")
-    @SysLogger("reloadRegulation")
-    public RespDTO<Boolean> reloadRegulation() {
-        cacheFacade.loadAllBaseRegulationCache();
-        return RespDTO.onSuc(true);
-    }
+    // @ApiOperation(value = "重新加载基础规则[by:zhoutg]",
+    //         notes = "")
+    // @PostMapping("/reloadRegulation")
+    // @SysLogger("reloadRegulation")
+    // public RespDTO<Boolean> reloadRegulation() {
+    //     cacheFacade.loadAllBaseRegulationCache();
+    //     return RespDTO.onSuc(true);
+    // }
 
     @ApiOperation(value = "重新加载药物缓存[by:zhoutg]",
             notes = "")

+ 1 - 1
src/main/resources/mapper/KlRegulationBaseMapper.xml

@@ -123,7 +123,7 @@
             kl_regulation_condition b
             WHERE
             a.id = b.regulation_id
-            <if test="codeList != null and codeList.size > 0">
+            <if test="list != null and list.size > 0">
                 and a.`code` in
                 <foreach item="code" collection="list" open="(" separator="," close=")">
                     #{code}