|
@@ -4,14 +4,7 @@ import com.alibaba.fastjson.JSONArray;
|
|
|
import com.diagbot.biz.push.entity.Lis;
|
|
|
import com.diagbot.client.ChiefPresentSimilarityServiceClient;
|
|
|
import com.diagbot.client.StandConvertServiceClient;
|
|
|
-import com.diagbot.dto.BillNeoDTO;
|
|
|
-import com.diagbot.dto.CriticalNeoDTO;
|
|
|
-import com.diagbot.dto.HighRiskNeoDTO;
|
|
|
-import com.diagbot.dto.NeoPushDTO;
|
|
|
-import com.diagbot.dto.NodeNeoDTO;
|
|
|
-import com.diagbot.dto.OtherTipNeoDTO;
|
|
|
-import com.diagbot.dto.StandConvertCrfBatchDTO;
|
|
|
-import com.diagbot.dto.StandConvertCrfDTO;
|
|
|
+import com.diagbot.dto.*;
|
|
|
import com.diagbot.entity.node.LisRemind;
|
|
|
import com.diagbot.entity.node.Medicine;
|
|
|
import com.diagbot.entity.node.Symptom;
|
|
@@ -23,13 +16,7 @@ import com.diagbot.repository.*;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.RedisUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
|
-import com.diagbot.vo.BillNeoVO;
|
|
|
-import com.diagbot.vo.CriticalNeoVO;
|
|
|
-import com.diagbot.vo.Drug;
|
|
|
-import com.diagbot.vo.HighRiskNeoVO;
|
|
|
-import com.diagbot.vo.NeoPushVO;
|
|
|
-import com.diagbot.vo.StandConvert;
|
|
|
-import com.diagbot.vo.StandConvertCrfVO;
|
|
|
+import com.diagbot.vo.*;
|
|
|
import com.diagbot.vo.neoPushEntity.ChiefPushVo;
|
|
|
import com.diagbot.vo.neoPushEntity.Diag;
|
|
|
import com.diagbot.vo.neoPushEntity.PresentPushVo;
|
|
@@ -37,16 +24,12 @@ import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.cache.annotation.Cacheable;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Collection;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.LinkedHashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
@@ -133,7 +116,36 @@ public class NeoFacade {
|
|
|
}
|
|
|
return res;
|
|
|
}
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 返回图谱中所有症状缓存信息
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Cacheable(value = "cache", key = "'symptomCache'")
|
|
|
+ public List<String> getSymptomCache() {
|
|
|
+ List<String> symptomClass = nodeRepository.getSymptomClass();
|
|
|
+ return symptomClass;
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 返回图谱中所有疾病和性别信息
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Cacheable(value = "cache", key = "'disSexCache'")
|
|
|
+ public Map<String,String> getDisSexCache() {
|
|
|
+ Map<String, String> disSexClass = nodeRepository.getDisSexClass();
|
|
|
+ return disSexClass;
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 返回图谱中所有疾病和年龄信息
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Cacheable(value = "cache", key = "'disAgeCache'")
|
|
|
+ public Map<String,String> getDisAgeCache() {
|
|
|
+ Map<String, String> disAgeClass = nodeRepository.getDisAgeClass();
|
|
|
+ return disAgeClass;
|
|
|
+ }
|
|
|
/**
|
|
|
* 图谱反推的数据
|
|
|
*
|
|
@@ -178,12 +190,17 @@ public class NeoFacade {
|
|
|
symptom_present = presentPushVo.getSymptoms().stream().map(x -> x.getName()).collect(Collectors.toList());
|
|
|
}
|
|
|
symptoms = Stream.of(symptom_chief,symptom_present).flatMap(Collection::stream).distinct().collect(Collectors.toList());
|
|
|
+ //症状推疾病
|
|
|
+ getDisBySymptom(symptoms);
|
|
|
|
|
|
|
|
|
return neoPushDTOS;
|
|
|
}
|
|
|
|
|
|
public void getDisBySymptom(List<String> symptoms){
|
|
|
+ List<String> symptomCache = getSymptomCache();
|
|
|
+ //取交集
|
|
|
+ symptoms.retainAll(symptomCache);
|
|
|
List<String> allDis = new ArrayList<>();
|
|
|
if(ListUtil.isNotEmpty(symptoms)){
|
|
|
symptoms.forEach(x ->{
|