瀏覽代碼

规则更新

rengb 5 年之前
父節點
當前提交
15beb3ceb9

+ 14 - 9
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0030.java

@@ -1,15 +1,14 @@
 package com.lantone.qc.kernel.catalogue.behospitalized;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.kernel.util.RedisUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.DiagInfectious;
 import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.List;
-
 /**
  * @Description: 传染病史未填写
  * @author: rengb
@@ -18,13 +17,19 @@ import java.util.List;
 @Component
 public class BEH0030 extends QCCatalogue {
 
+    @Autowired
+    private RedisUtil redisUtil;
+
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        List<DiagInfectious> diagInfectiouses = inputInfo.getBeHospitalizedDoc().getPastLabel().getDiagInfectiouses();
-        if (ListUtil.isNotEmpty(diagInfectiouses)) {
-            if (diagInfectiouses.stream().map(i -> i.getName()).filter(i -> StringUtil.isNotBlank(i)).count() > 0) {
-                status = "0";
-            }
+        if (ListUtil.isNotEmpty(
+                CatalogueUtil.filterDiagsByNature(
+                        inputInfo.getBeHospitalizedDoc().getPastLabel().getDiags(),
+                        "infectious",
+                        "1"
+                )
+        )) {
+            status = "0";
         }
     }
 

+ 8 - 27
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0031.java

@@ -1,18 +1,14 @@
 package com.lantone.qc.kernel.catalogue.behospitalized;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.kernel.util.RedisUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.List;
-import java.util.Map;
-
 /**
  * @Description: 慢病史未填写
  * @author: rengb
@@ -26,28 +22,13 @@ public class BEH0031 extends QCCatalogue {
 
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        List<Diag> diags = inputInfo.getBeHospitalizedDoc().getPastLabel().getDiags();
-        if (ListUtil.isEmpty(diags)) {
-            return;
-        }
-
-        Map<String, Map<String, Object>> diagCache = (Map) redisUtil.get("concept_diag_property_map");
-        long count = diags.stream().map(i -> i.getName())
-                .filter(i -> {
-                    boolean flag = false;
-                    if (StringUtil.isNotBlank(i)) {
-                        Map<String, Object> diagDetailMap = diagCache.get(i);
-                        if (diagDetailMap != null) {
-                            String chronic = (String) diagDetailMap.get("chronic");
-                            if (StringUtil.isNotBlank(chronic) && chronic.equals("1")) {
-                                flag = true;
-                            }
-                        }
-                    }
-                    return flag;
-                }).count();
-
-        if (count > 0) {
+        if (ListUtil.isNotEmpty(
+                CatalogueUtil.filterDiagsByNature(
+                        inputInfo.getBeHospitalizedDoc().getPastLabel().getDiags(),
+                        "chronic",
+                        "1"
+                )
+        )) {
             status = "0";
         }
     }

+ 30 - 0
kernel/src/main/java/com/lantone/qc/kernel/util/CatalogueUtil.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.util;
 
 import com.google.common.collect.Lists;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.model.entity.Diag;
 import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import lombok.Getter;
@@ -86,4 +87,33 @@ public class CatalogueUtil {
         return retWords;
     }
 
+    /**
+     * 从现有诊断中筛选符合某一属性值的诊断
+     *
+     * @param diags
+     * @param nature
+     * @param natureValue
+     * @return
+     */
+    public static List<Diag> filterDiagsByNature(List<Diag> diags, String nature, String natureValue) {
+        if (ListUtil.isEmpty(diags) || StringUtil.isBlank(nature) || StringUtil.isBlank(natureValue)) {
+            return null;
+        }
+        List<Diag> retDiags = Lists.newArrayList();
+        RedisUtil redisUtil = SpringContextUtil.getBean("redisUtil");
+        Map<String, Map<String, Object>> diagCache = (Map) redisUtil.get("concept_diag_property_map");
+        diags.forEach(i -> {
+            if (i != null && StringUtil.isNotBlank(i.getName())) {
+                Map<String, Object> diagDetailMap = diagCache.get(i.getName());
+                if (diagDetailMap != null) {
+                    String natureValue_ = (String) diagDetailMap.get(nature);
+                    if (StringUtil.isNotBlank(natureValue_) && natureValue_.equals(natureValue)) {
+                        retDiags.add(i);
+                    }
+                }
+            }
+        });
+        return retDiags;
+    }
+
 }