|
@@ -1,6 +1,7 @@
|
|
package com.diagbot.facade;
|
|
package com.diagbot.facade;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.diagbot.biz.push.entity.Item;
|
|
import com.diagbot.biz.push.entity.Item;
|
|
import com.diagbot.biz.push.entity.Lis;
|
|
import com.diagbot.biz.push.entity.Lis;
|
|
import com.diagbot.client.ChiefPresentSimilarityServiceClient;
|
|
import com.diagbot.client.ChiefPresentSimilarityServiceClient;
|
|
@@ -11,12 +12,14 @@ import com.diagbot.entity.node.LisRemind;
|
|
import com.diagbot.entity.relationship.LisRemindGroup;
|
|
import com.diagbot.entity.relationship.LisRemindGroup;
|
|
import com.diagbot.entity.relationship.LisRemindMedicine;
|
|
import com.diagbot.entity.relationship.LisRemindMedicine;
|
|
import com.diagbot.entity.relationship.LisRemindYiBaoDiseaseName;
|
|
import com.diagbot.entity.relationship.LisRemindYiBaoDiseaseName;
|
|
|
|
+import com.diagbot.enums.IsDeleteEnum;
|
|
import com.diagbot.enums.RedisEnum;
|
|
import com.diagbot.enums.RedisEnum;
|
|
import com.diagbot.enums.StandConvertEnum;
|
|
import com.diagbot.enums.StandConvertEnum;
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
import com.diagbot.exception.CommonException;
|
|
import com.diagbot.exception.CommonException;
|
|
import com.diagbot.mapper.GraphDiseaseCorrespondingMapper;
|
|
import com.diagbot.mapper.GraphDiseaseCorrespondingMapper;
|
|
import com.diagbot.mapper.SymptomFeatureMapper;
|
|
import com.diagbot.mapper.SymptomFeatureMapper;
|
|
|
|
+import com.diagbot.mapper.TranHospitalFilterMapper;
|
|
import com.diagbot.model.entity.PD;
|
|
import com.diagbot.model.entity.PD;
|
|
import com.diagbot.repository.*;
|
|
import com.diagbot.repository.*;
|
|
import com.diagbot.util.ListUtil;
|
|
import com.diagbot.util.ListUtil;
|
|
@@ -111,6 +114,8 @@ public class NeoFacade {
|
|
SymptomFeatureMapper symptomFeatureMapper;
|
|
SymptomFeatureMapper symptomFeatureMapper;
|
|
@Autowired
|
|
@Autowired
|
|
GraphDiseaseCorrespondingMapper graphDiseaseCorrespondingMapper;
|
|
GraphDiseaseCorrespondingMapper graphDiseaseCorrespondingMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ TranHospitalFilterMapper tranHospitalFilterMapper;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 返回药品缓存信息
|
|
* 返回药品缓存信息
|
|
@@ -221,6 +226,21 @@ public class NeoFacade {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public void diseaseFilterCache() {
|
|
|
|
+ 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)->{
|
|
|
|
+ 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);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
public void symptomFeatureCache() {
|
|
public void symptomFeatureCache() {
|
|
List<SymptomFeature> symptomFeatures = symptomFeatureMapper.selectList(null);
|
|
List<SymptomFeature> symptomFeatures = symptomFeatureMapper.selectList(null);
|
|
if (ListUtil.isNotEmpty(symptomFeatures)) {
|
|
if (ListUtil.isNotEmpty(symptomFeatures)) {
|
|
@@ -405,6 +425,12 @@ public class NeoFacade {
|
|
pushSpeDis.removeAll(disByDiag);
|
|
pushSpeDis.removeAll(disByDiag);
|
|
disByDiag.addAll(pushSpeDis);
|
|
disByDiag.addAll(pushSpeDis);
|
|
|
|
|
|
|
|
+ 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;
|
|
return disByDiag;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -758,7 +784,6 @@ public class NeoFacade {
|
|
diseases = redisUtil.geth(allDis);
|
|
diseases = redisUtil.geth(allDis);
|
|
allDis = diseases.stream().filter(x -> NeoUtil.matchBasic(x, gender_code, age) && NeoUtil.matchPds(x.get("name"), pd)
|
|
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());
|
|
&& 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 ->{
|
|
diseases.forEach(x ->{
|
|
String name = x.get("name");
|
|
String name = x.get("name");
|
|
double clafy = Double.parseDouble(x.get("clafy"));
|
|
double clafy = Double.parseDouble(x.get("clafy"));
|
|
@@ -767,11 +792,7 @@ public class NeoFacade {
|
|
}
|
|
}
|
|
|
|
|
|
Map<Long, List<String>> numberDiseasesMap = disCountSort(allDis);
|
|
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<String, Double> disdistributionCache = self.getDisdistributionCache();
|
|
Map<Long, Map<String, Double>> disPack = new LinkedHashMap<>();
|
|
Map<Long, Map<String, Double>> disPack = new LinkedHashMap<>();
|
|
@@ -803,11 +824,6 @@ public class NeoFacade {
|
|
}
|
|
}
|
|
|
|
|
|
public List<String> getDisByPacsResult(List<String> pacsResult) {
|
|
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);
|
|
List<String> allDis = pacsResultRepository.getDisByPacsResults(pacsResult);
|
|
return allDis;
|
|
return allDis;
|
|
}
|
|
}
|