Browse Source

推送诊断根据性别诊断进行过滤

kongwz 4 years ago
parent
commit
8aaf764011
1 changed files with 22 additions and 0 deletions
  1. 22 0
      src/main/java/com/diagbot/facade/NeoFacade.java

+ 22 - 0
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -178,6 +178,8 @@ public class NeoFacade {
      * @return
      */
     public List<NeoPushDTO> getPush(NeoPushVO pushVO) {
+        Integer age = pushVO.getAge();
+        Integer sex = pushVO.getSex();
         List<NeoPushDTO> neoPushDTOS = new ArrayList<>();
         List<String> allDis = Lists.newArrayList();
         // 如果没有诊断名称,则通过其它信息推送诊断
@@ -203,6 +205,26 @@ public class NeoFacade {
         //体征推出的疾病
         //化验推出的疾病辅检
         //辅检推出的疾病
+        //推送出的所有疾病进行性别和年龄的过滤
+        Map<String, String> disSexCache = getDisSexCache();
+        Map<String, String> disAgeCache = getDisAgeCache();
+        Iterator<String> iterator_dis = allDis.iterator();
+        while (iterator_dis.hasNext()){
+            String disease = iterator_dis.next();
+            if(disSexCache.containsKey(disease)){
+                if((disSexCache.get(disease) == "男" && sex != 1) ||
+                        (disSexCache.get(disease) == "女" && sex != 2)){
+                    iterator_dis.remove();
+                }
+            }
+            if(disAgeCache.containsKey(disease)){
+                String[] betweenAge = disAgeCache.get(disease).split("-");
+                if(betweenAge.length == 2 && (age < Integer.parseInt(betweenAge[0])
+                        || age > Integer.parseInt(betweenAge[1]))){
+                    iterator_dis.remove();
+                }
+            }
+        }
 
         Map<String, Long> disCountSortMap = disCountSort(allDis);
 //      String dis_first = dis_count.entrySet().stream().map(x -> x.getKey()).collect(Collectors.toList()).get(0);