소스 검색

根据不同的医院模式,pushMOde 选择不同的推送方式

kongwz 4 년 전
부모
커밋
2bfa5674a8

+ 5 - 0
src/main/java/com/diagbot/entity/TranHospitalFilter.java

@@ -61,5 +61,10 @@ public class TranHospitalFilter implements Serializable {
      */
     private String uniqueName;
 
+    /**
+     * 病历数
+     */
+    private Long docNum;
+
 
 }

+ 9 - 16
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -227,14 +227,15 @@ public class NeoFacade {
     }
 
     public void diseaseFilterCache() {
-        Map<String,List<String>> data = new HashMap<>();
+        Map<String,Map> data = new HashMap<>();
         QueryWrapper<TranHospitalFilter> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
         List<TranHospitalFilter> tranHospitalFilters = tranHospitalFilterMapper.selectList(queryWrapper);
         if (ListUtil.isNotEmpty(tranHospitalFilters)) {
             Map<Long, List<TranHospitalFilter>> longListMap = tranHospitalFilters.stream().collect(Collectors.groupingBy(TranHospitalFilter::getHospitalId));
             longListMap.forEach((x,y)->{
-                data.put(RedisEnum.diseaseFilter.getName() + x.toString(),y.stream().map(z ->z.getUniqueName()).collect(Collectors.toList()));
+                Map<String, Long> collect = y.stream().collect(Collectors.toMap(TranHospitalFilter::getUniqueName, TranHospitalFilter::getDocNum, (existing, replacement) -> replacement));
+                data.put(RedisEnum.diseaseFilter.getName() + x.toString(),collect);
             });
             redisTemplate.opsForValue().multiSet(data);
         }
@@ -424,9 +425,11 @@ public class NeoFacade {
         pushSpeDis.removeAll(disByDiag);
         disByDiag.addAll(pushSpeDis);
 
-        List<String> diag_filters = (List<String>)redisUtil.get(RedisEnum.diseaseFilter.getName() + pushVO.getHospitalId().toString());
-
-        disByDiag.retainAll(diag_filters);
+        Map diag_filters = (Map)redisUtil.get(RedisEnum.diseaseFilter.getName() + pushVO.getHospitalId().toString());
+        if(MapUtils.isNotEmpty(diag_filters)){
+            Set set = diag_filters.keySet();
+            disByDiag.retainAll(set);
+        }
 
         return disByDiag;
     }
@@ -781,7 +784,6 @@ public class NeoFacade {
             diseases = redisUtil.geth(allDis);
             allDis = diseases.stream().filter(x -> NeoUtil.matchBasic(x, gender_code, age) && NeoUtil.matchPds(x.get("name"), pd)
                     && NeoUtil.matchDept(x, depts)).map(x -> x.get("name")).collect(Collectors.toList());
-//            diseases.forEach(x -> dis_fbl.put(x.get("name"), Double.parseDouble(x.get("fbl"))));
             diseases.forEach(x ->{
                 String name = x.get("name");
                 double clafy = Double.parseDouble(x.get("clafy"));
@@ -790,11 +792,7 @@ public class NeoFacade {
         }
 
         Map<Long, List<String>> numberDiseasesMap = disCountSort(allDis);
-        /*if (MapUtils.isNotEmpty(numberDiseasesMap)) {
-            for (Map.Entry<Long, List<String>> ds : numberDiseasesMap.entrySet()) {
-                dises.addAll(ds.getValue());
-            }
-        }*/
+
         //根据发病率排序
         //        Map<String, Double> disdistributionCache = self.getDisdistributionCache();
         Map<Long, Map<String, Double>> disPack = new LinkedHashMap<>();
@@ -826,11 +824,6 @@ public class NeoFacade {
     }
 
     public List<String> getDisByPacsResult(List<String> pacsResult) {
-
-        /*List<PacsResult> byNameIn = pacsResultRepository.findByNameIn(pacsResult);
-        List<String> allDis = byNameIn.stream()
-                .map(z -> z.getDisease().stream().filter(o -> NeoUtil.matchBasic(o,sex,age)).map(y -> y.getName()).collect(Collectors.toList())).flatMap(List::stream)
-                .collect(Collectors.toList());*/
         List<String> allDis = pacsResultRepository.getDisByPacsResults(pacsResult);
         return allDis;
     }

+ 1 - 0
src/main/resources/mapper/TranHospitalFilterMapper.xml

@@ -12,6 +12,7 @@
         <result column="modifier" property="modifier" />
         <result column="hospital_id" property="hospitalId" />
         <result column="unique_name" property="uniqueName" />
+        <result column="doc_num" property="docNum" />
     </resultMap>
 
 </mapper>