zhoutg 4 years ago
parent
commit
c9b426d61d

+ 29 - 0
src/main/java/com/diagbot/facade/LisConfigFacade.java

@@ -2,16 +2,19 @@ package com.diagbot.facade;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.entity.LisConfig;
 import com.diagbot.entity.LisConfig;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.LisConfigServiceImpl;
 import com.diagbot.service.impl.LisConfigServiceImpl;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ListUtil;
+import com.google.common.collect.Lists;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * @Description:
  * @Description:
@@ -104,4 +107,30 @@ public class LisConfigFacade extends LisConfigServiceImpl {
         this.update(updateWrapper);
         this.update(updateWrapper);
         return true;
         return true;
     }
     }
+
+    /**
+     * 获取过滤化验套餐名= 映射套餐名称 + 结构化套餐名称
+     *
+     * @param wordCrfDTO
+     * @return
+     */
+    public List<String> getMappingLisItem(WordCrfDTO wordCrfDTO) {
+        if (ListUtil.isNotEmpty(wordCrfDTO.getLis())) {
+            // 医院化验套餐名
+            List<String> itemList = wordCrfDTO.getLis().stream().map(r -> r.getName()).collect(Collectors.toList());
+            // 获取标准套餐名
+            List<LisConfig> records = this.list(new QueryWrapper<LisConfig>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("hospital_id", wordCrfDTO.getHospitalId())
+                    .in("his_name", itemList)
+                    .apply("(his_detail_name is null or his_detail_name = '')")
+            );
+            // 映射套餐名称
+            List<String> uniqueName = records.stream().map(r -> r.getUniqueName()).collect(Collectors.toList());
+            // 追加医院套餐名称
+            uniqueName.addAll(itemList);
+            return uniqueName;
+        }
+        return Lists.newArrayList();
+    }
 }
 }

+ 37 - 2
src/main/java/com/diagbot/process/PushProcess.java

@@ -30,6 +30,7 @@ import com.diagbot.facade.CommonFacade;
 import com.diagbot.facade.ConceptInfoFacade;
 import com.diagbot.facade.ConceptInfoFacade;
 import com.diagbot.facade.KlDiagnoseFacade;
 import com.diagbot.facade.KlDiagnoseFacade;
 import com.diagbot.facade.KlRelationFacade;
 import com.diagbot.facade.KlRelationFacade;
+import com.diagbot.facade.LisConfigFacade;
 import com.diagbot.facade.NeoFacade;
 import com.diagbot.facade.NeoFacade;
 import com.diagbot.facade.TranLisConfigIcssFacade;
 import com.diagbot.facade.TranLisConfigIcssFacade;
 import com.diagbot.model.entity.Clinical;
 import com.diagbot.model.entity.Clinical;
@@ -104,7 +105,8 @@ public class PushProcess {
     GroupRule groupRule;
     GroupRule groupRule;
     @Autowired
     @Autowired
     ConceptInfoFacade conceptInfoFacade;
     ConceptInfoFacade conceptInfoFacade;
-
+    @Autowired
+    LisConfigFacade lisConfigFacade;
 
 
     public PushDTO processIcss(PushVO pushVo) {
     public PushDTO processIcss(PushVO pushVo) {
 
 
@@ -391,6 +393,26 @@ public class PushProcess {
         // 查询数据
         // 查询数据
         List<ReverseDTO> reverseDTOList = conceptInfoFacade.getReverseFac(reverseVO);
         List<ReverseDTO> reverseDTOList = conceptInfoFacade.getReverseFac(reverseVO);
         // 获取各个类型的界面过滤元素
         // 获取各个类型的界面过滤元素
+        // TODO 测试数据
+        ReverseDTO reverseDTO = new ReverseDTO();
+        reverseDTO.setSonType(101);
+        reverseDTO.setSonName("氨来呫诺");
+        reverseDTOList.add(reverseDTO);
+
+        ReverseDTO reverseDTO1 = new ReverseDTO();
+        reverseDTO1.setSonType(106);
+        reverseDTO1.setSonName("鞍区病损切除术");
+        reverseDTOList.add(reverseDTO1);
+
+        for (int i = 0; i <reverseDTOList.size(); i++) {
+            if (reverseDTOList.get(i).getSonType().intValue() == 107) {
+                reverseDTOList.remove(i--);
+            }
+        }
+        ReverseDTO reverseDTO2 = new ReverseDTO();
+        reverseDTO2.setSonType(107);
+        reverseDTO2.setSonName("钾测定");
+        reverseDTOList.add(reverseDTO2);
         Map<String, List<String>> filterMap = getFilterMap(wordCrfDTO);
         Map<String, List<String>> filterMap = getFilterMap(wordCrfDTO);
         // 设置推送信息(过滤已有)
         // 设置推送信息(过滤已有)
         setPushItem(pushDTO, ruleTypeList, filterMap, reverseDTOList, pushVo.getLength());
         setPushItem(pushDTO, ruleTypeList, filterMap, reverseDTOList, pushVo.getLength());
@@ -534,7 +556,6 @@ public class PushProcess {
      */
      */
     public Map<String, List<String>> getFilterMap(WordCrfDTO wordCrfDTO) {
     public Map<String, List<String>> getFilterMap(WordCrfDTO wordCrfDTO) {
         Map<String, List<String>> filterMap = new HashMap<>();
         Map<String, List<String>> filterMap = new HashMap<>();
-        // TODO 界面过滤元素
         // 主诉症状
         // 主诉症状
         dealFilter(filterMap, StandConvertEnum.symptom.toString(),
         dealFilter(filterMap, StandConvertEnum.symptom.toString(),
                 CoreUtil.getByPropertyName(wordCrfDTO.getChiefLabel().getClinicals(), "name", "standName"));
                 CoreUtil.getByPropertyName(wordCrfDTO.getChiefLabel().getClinicals(), "name", "standName"));
@@ -544,6 +565,20 @@ public class PushProcess {
         // 查体结果
         // 查体结果
         dealFilter(filterMap, StandConvertEnum.vital.toString(),
         dealFilter(filterMap, StandConvertEnum.vital.toString(),
                 CoreUtil.getByPropertyName(wordCrfDTO.getVitalLabel().getClinicals(), "name", "standName"));
                 CoreUtil.getByPropertyName(wordCrfDTO.getVitalLabel().getClinicals(), "name", "standName"));
+        // 检查
+        dealFilter(filterMap, StandConvertEnum.pacs.toString(),
+                CoreUtil.getByPropertyName(wordCrfDTO.getPacs(), "name", "uniqueName"));
+        // 药品
+        dealFilter(filterMap, StandConvertEnum.drug.toString(),
+                CoreUtil.getByPropertyName(wordCrfDTO.getDrug(), "name", "uniqueName"));
+        // 手术
+        dealFilter(filterMap, StandConvertEnum.operation.toString(),
+                CoreUtil.getByPropertyName(wordCrfDTO.getOperation(), "name", "uniqueName"));
+        // 诊断
+        dealFilter(filterMap, StandConvertEnum.disease.toString(),
+                CoreUtil.getByPropertyName(wordCrfDTO.getDiag(), "name", "uniqueName"));
+        // 化验——获取过滤化验套餐名
+        dealFilter(filterMap, StandConvertEnum.lis.toString(), lisConfigFacade.getMappingLisItem(wordCrfDTO));
         return filterMap;
         return filterMap;
     }
     }
 
 

+ 1 - 1
src/main/java/com/diagbot/util/CoreUtil.java

@@ -955,7 +955,7 @@ public class CoreUtil {
         for (T t : tList) {
         for (T t : tList) {
             for (String key : propertyName) {
             for (String key : propertyName) {
                 String name = (String)getFieldValue(t, key);
                 String name = (String)getFieldValue(t, key);
-                if (StringUtil.isNotBlank(name)) {
+                if (StringUtil.isNotBlank(name) && !list.contains(name)) {
                     list.add(name);
                     list.add(name);
                 }
                 }
             }
             }