소스 검색

Merge remote-tracking branch 'origin/master'

MarkHuang 4 년 전
부모
커밋
ab3d9f73c0

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

@@ -18,6 +18,7 @@ import com.diagbot.util.RedisUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.*;
 import com.diagbot.vo.neoPushEntity.ChiefPushVo;
+import com.diagbot.vo.neoPushEntity.LisPushVo;
 import com.diagbot.vo.neoPushEntity.PacsPushVo;
 import com.diagbot.vo.neoPushEntity.PresentPushVo;
 import com.google.common.collect.Lists;
@@ -245,6 +246,19 @@ public class NeoFacade {
         List<String> allDis_bySymptom = getDisBySymptom(symptoms,age,sex);
         allDis.addAll(allDis_bySymptom);
         //化验推出的疾病
+        LisPushVo lisPushVo = pushVO.getLisPushVo();
+        if(lisPushVo != null){
+            List<Lis> lises = lisPushVo.getLises();
+            if(ListUtil.isNotEmpty(lises)){
+                List<YiBaoDiseaseName> collect = lises.parallelStream()
+                        .map(x -> nodeRepository.getDisByLis(x.getUniqueName(), x.getDetailName())).collect(Collectors.toList());
+                List<String> lis_dis = lises.parallelStream()
+                        .map(x -> nodeRepository.getDisByLis(x.getUniqueName(), x.getDetailName()))
+                        .filter(z->z!=null && NeoUtil.matchBasic(z,sex,age)).map(z->z.getName())
+                        .collect(Collectors.toList());
+                allDis.addAll(lis_dis);
+            }
+        }
         //辅检推出的疾病
         PacsPushVo pacsPushVo = pushVO.getPacsPushVo();
         if(pacsPushVo !=null){
@@ -260,7 +274,7 @@ public class NeoFacade {
         Map<Long,List<String>> numberDiseasesMap = disCountSort(allDis);
         //根据发病率排序
         Map<String, Double> disdistributionCache = self.getDisdistributionCache();
-        numberDiseasesMap.forEach((x,y)->{
+        /*numberDiseasesMap.forEach((x,y)->{
             y.forEach(z ->{
                 if(disdistributionCache.containsKey(z)){
                     disdistributionCache.put(z,disdistributionCache.get(z));
@@ -268,13 +282,18 @@ public class NeoFacade {
                     disdistributionCache.put(z,0.0);
                 }
             });
-        });
+        });*/
         Map<Long,Map<String,Double>> disPack = new LinkedHashMap<>();
         numberDiseasesMap.forEach((x,y)->{
+            Map<String, Double> collect = y.stream()
+                    .collect(Collectors.toMap(v -> v, v -> disdistributionCache.get(v) != null?disdistributionCache.get(v):0.0, (e1, e2) -> e2));
+            disPack.put(x,collect);
+        });
+        /*numberDiseasesMap.forEach((x,y)->{
             Map<String,Double> dis_dbt = new HashMap<>();
             y.forEach(dis -> dis_dbt.put(dis,disdistributionCache.get(dis)));
             disPack.put(x,dis_dbt);
-        });
+        });*/
         disPack.forEach((x,y)->{
             Map<String, Double> collect = y.entrySet().stream()
                     .sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
@@ -642,11 +661,8 @@ public class NeoFacade {
      */
     public NeoPushDTO getDiagInfo(NeoPushVO neoPushVO) {
         NeoPushDTO pushDTO = new NeoPushDTO();
-
         YiBaoDiseaseNode icdDiseaseNode = new YiBaoDiseaseNode();
         String term;
-
-//        for (Diag diag : neoPushVO.getDiagVo().getDiags()) {
         term = neoPushVO.getDiagVo().getDiags().get(0).getName();
             List<YiBaoDiseaseName> yiBaoName = yiBaoDiseaseRepository.findByNameIs(term);
             YiBaoDiseaseName icdDisease = null;
@@ -655,12 +671,7 @@ public class NeoFacade {
             }
             if (icdDisease != null) {
                 pushDTO = icdDiseaseNode.YiBaoDiseasetoDiseaseDTO(icdDisease, neoPushVO);
-
-                /*if (null != pushDTO) {
-                    neoPushDTOs.add(pushDTO);
-                }*/
             }
-//        }
 
         return pushDTO;
     }

+ 5 - 0
src/main/java/com/diagbot/process/BillProcess.java

@@ -94,6 +94,11 @@ public class BillProcess {
             // // TODO 测试数据开始
             // if (billNeoDTO.getStandname().equals("胸部CT")) {
             //     NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
+            //     nodeNeoDTO.setName("幼儿");
+            //     billNeoMaxDTO.getGroup().add(nodeNeoDTO);
+            // }
+            // if (billNeoDTO.getStandname().equals("胸部CT")) {
+            //     NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
             //     nodeNeoDTO.setName("心电图");
             //     billNeoMaxDTO.getPacsOrder().add(nodeNeoDTO);
             // }

+ 93 - 92
src/main/java/com/diagbot/process/PushProcess.java

@@ -25,11 +25,13 @@ import java.util.stream.Collectors;
  */
 @Component
 public class PushProcess {
+
     @Autowired
     NeoFacade neoFacade;
     @Autowired
     CommonFacade commonFacade;
-    public PushDTO process(PushVO pushVo,Map<String, Map<String, String>> standConvertMap,WordCrfDTO wordCrfDTO) {
+
+    public PushDTO process(PushVO pushVo, Map<String, Map<String, String>> standConvertMap, WordCrfDTO wordCrfDTO) {
         int length = pushVo.getLength();
         PushDTO pushDTO = new PushDTO();
 
@@ -39,23 +41,23 @@ public class PushProcess {
         NeoPushVO pushVO = commonFacade.generatePushInput(wordCrfDTO);
         Map<String, List<PushBaseDTO>> dis = new HashMap<>();
         //如果下的诊断有数据就反推
-        if(pushVO.getDiagVo() != null && pushVO.getDiagVo().getDiags().size() > 0){
-            reversePushPackage(length, pushDTO, ruleTypeList, typeWords, pushVO,dis);
-        }else {
+        if (pushVO.getDiagVo() != null && pushVO.getDiagVo().getDiags().size() > 0) {
+            reversePushPackage(length, pushDTO, ruleTypeList, typeWords, pushVO, dis);
+        } else {
             //正推
             List<NeoPushDTO> push = neoFacade.getPush(pushVO);
-            if(ListUtil.isNotEmpty(push) && push.size() >0){
+            if (ListUtil.isNotEmpty(push) && push.size() > 0) {
                 //先把所有疾病推出来
-                if(ruleTypeList.contains("7")){
+                if (ruleTypeList.contains("7")) {
                     List<PushBaseDTO> diseeases = push.stream().filter(x -> x.getDisease() != null).map(x -> x.getDisease()).collect(Collectors.toList());
                     diseeases = diseeases.subList(0, diseeases.size() >= length ? length : diseeases.size());
-                    dis.put(DiseaseTypeEnum.possibleDis.getName(),diseeases);
+                    dis.put(DiseaseTypeEnum.possibleDis.getName(), diseeases);
                     pushDTO.setDis(dis);
                 }
                 //把第一个推送出来的诊断set到diagOrder中,再反推
                 setPushVo(pushVO, push);
                 //调用反推
-                reversePushPackage(length, pushDTO, ruleTypeList, typeWords, pushVO,dis);
+                reversePushPackage(length, pushDTO, ruleTypeList, typeWords, pushVO, dis);
             }
         }
         return pushDTO;
@@ -72,17 +74,17 @@ public class PushProcess {
         pushVO.setDiagVo(diagVo);
     }
 
-    public Map<String,List<String>> typeWords( Map<String, Map<String, String>> standConvertMap){
-        Map<String,List<String>> typeWordsMap = new HashMap<>();
-        for (Map.Entry<String, Map<String, String>> s:standConvertMap.entrySet()) {
+    public Map<String, List<String>> typeWords(Map<String, Map<String, String>> standConvertMap) {
+        Map<String, List<String>> typeWordsMap = new HashMap<>();
+        for (Map.Entry<String, Map<String, String>> s : standConvertMap.entrySet()) {
             List<String> words = new ArrayList<>();
             String type = s.getKey();
             Map<String, String> value = s.getValue();
-            value.forEach((name,standName)->{
+            value.forEach((name, standName) -> {
                 words.add(name);
                 words.add(standName);
             });
-            typeWordsMap.put(type,new ArrayList<>(new HashSet<>(words)));
+            typeWordsMap.put(type, new ArrayList<>(new HashSet<>(words)));
         }
 
         return typeWordsMap;
@@ -90,61 +92,61 @@ public class PushProcess {
 
     private void reversePushPackage(int length, PushDTO pushDTO, List<String> ruleTypeList, Map<String, List<String>> typeWords, NeoPushVO pushVO, Map<String, List<PushBaseDTO>> dis) {
         NeoPushDTO reversePush = neoFacade.getReversePush(pushVO);
-//        if(ListUtil.isNotEmpty(reversePush)){
-            // 症状
-            if (ruleTypeList.contains("1")) {
-                if(ListUtil.isNotEmpty(reversePush.getSymptoms())){
-                    List<String> symptoms = reversePush.getSymptoms().stream().map(x->x.getName()).collect(Collectors.toList());
+        //        if(ListUtil.isNotEmpty(reversePush)){
+        // 症状
+        if (ruleTypeList.contains("1")) {
+            if (ListUtil.isNotEmpty(reversePush.getSymptoms())) {
+                List<String> symptoms = reversePush.getSymptoms().stream().map(x -> x.getName()).collect(Collectors.toList());
                 /*reversePush.stream().filter(x -> ListUtil.isNotEmpty(x.getSymptoms())).forEach(x -> {
                     List<String> symptomList = x.getSymptoms().stream().map(y -> y.getName()).collect(Collectors.toList());
                     symptoms.removeAll(symptomList);
                     symptoms.addAll(symptomList);
                 });*/
-                    if (symptoms.size() > 0) {
-                        List<PushBaseDTO> filtervitals = getPackagePushBaseDTO(typeWords, symptoms, StandConvertEnum.symptom);
-                        pushDTO.setSymptom(filtervitals.subList(0, filtervitals.size() >= length ? length : filtervitals.size()));
-                    }
+                if (symptoms.size() > 0) {
+                    List<PushBaseDTO> filtervitals = getPackagePushBaseDTO(typeWords, symptoms, StandConvertEnum.symptom);
+                    pushDTO.setSymptom(filtervitals.subList(0, filtervitals.size() >= length ? length : filtervitals.size()));
                 }
-
             }
-            // 查体
-            if (ruleTypeList.contains("4")) {
-                if(ListUtil.isNotEmpty(reversePush.getVitals())){
-                    List<String> vitals = reversePush.getVitals().stream().map(x->x.getName()).collect(Collectors.toList());
-                    if (vitals.size() > 0) {
-                        List<PushBaseDTO> filtervitals = getPackagePushBaseDTO(typeWords, vitals, StandConvertEnum.vital);
-                        pushDTO.setVital(filtervitals.subList(0, filtervitals.size() >= length ? length : filtervitals.size()));
-                    }
-                }
 
-            }
-            // 化验
-            if (ruleTypeList.contains("5")) {
-                if(ListUtil.isNotEmpty(reversePush.getLis())){
-                    List<String> lises = reversePush.getLis().stream().map(x->x.getName()).collect(Collectors.toList());
-                    if (lises.size() > 0) {
-                        List<PushBaseDTO> filterlis = getPackagePushBaseDTO(typeWords, lises, StandConvertEnum.lis);
-                        pushDTO.setLis(filterlis.subList(0, filterlis.size() >= length ? length : filterlis.size()));
-                    }
+        }
+        // 查体
+        if (ruleTypeList.contains("4")) {
+            if (ListUtil.isNotEmpty(reversePush.getVitals())) {
+                List<String> vitals = reversePush.getVitals().stream().map(x -> x.getName()).collect(Collectors.toList());
+                if (vitals.size() > 0) {
+                    List<PushBaseDTO> filtervitals = getPackagePushBaseDTO(typeWords, vitals, StandConvertEnum.vital);
+                    pushDTO.setVital(filtervitals.subList(0, filtervitals.size() >= length ? length : filtervitals.size()));
                 }
-
             }
-            // 辅检
-            if (ruleTypeList.contains("6")) {
-                if(ListUtil.isNotEmpty(reversePush.getPacs())){
-                    List<String> pacses = reversePush.getPacs().stream().map(x->x.getName()).collect(Collectors.toList());
-                    if (pacses.size() > 0) {
-                        List<PushBaseDTO> filterpacs = getPackagePushBaseDTO(typeWords, pacses, StandConvertEnum.pacs);
-                        pushDTO.setPacs(filterpacs.subList(0, filterpacs.size() >= length ? length : filterpacs.size()));
-                    }
+
+        }
+        // 化验
+        if (ruleTypeList.contains("5")) {
+            if (ListUtil.isNotEmpty(reversePush.getLis())) {
+                List<String> lises = reversePush.getLis().stream().map(x -> x.getName()).collect(Collectors.toList());
+                if (lises.size() > 0) {
+                    List<PushBaseDTO> filterlis = getPackagePushBaseDTO(typeWords, lises, StandConvertEnum.lis);
+                    pushDTO.setLis(filterlis.subList(0, filterlis.size() >= length ? length : filterlis.size()));
                 }
+            }
 
+        }
+        // 辅检
+        if (ruleTypeList.contains("6")) {
+            if (ListUtil.isNotEmpty(reversePush.getPacs())) {
+                List<String> pacses = reversePush.getPacs().stream().map(x -> x.getName()).collect(Collectors.toList());
+                if (pacses.size() > 0) {
+                    List<PushBaseDTO> filterpacs = getPackagePushBaseDTO(typeWords, pacses, StandConvertEnum.pacs);
+                    pushDTO.setPacs(filterpacs.subList(0, filterpacs.size() >= length ? length : filterpacs.size()));
+                }
             }
-            // 药品
-            if (ruleTypeList.contains("8")) {
-                if(reversePush.getTreat() != null && ListUtil.isNotEmpty(reversePush.getTreat().get(MedicalAdviceEnum.drug.getName()))){
 
-                List<String> drugs = reversePush.getTreat().get(MedicalAdviceEnum.drug.getName()).stream().map(x->x.getName()).collect(Collectors.toList());
+        }
+        // 药品
+        if (ruleTypeList.contains("8")) {
+            if (reversePush.getTreat() != null && ListUtil.isNotEmpty(reversePush.getTreat().get(MedicalAdviceEnum.drug.getName()))) {
+
+                List<String> drugs = reversePush.getTreat().get(MedicalAdviceEnum.drug.getName()).stream().map(x -> x.getName()).collect(Collectors.toList());
                 /*reversePush.stream().filter(x ->x.getTreat() != null && ListUtil.isNotEmpty(x.getTreat().get(MedicalAdviceEnum.drug.getName())))
                         .forEach(x -> {
                             List<String> drugList = x.getTreat().get(MedicalAdviceEnum.drug.getName()).stream().map(y -> y.getName()).collect(Collectors.toList());
@@ -155,55 +157,54 @@ public class PushProcess {
                     List<PushBaseDTO> filterdrugs = getPackagePushBaseDTO(typeWords, drugs, StandConvertEnum.drug);
                     pushDTO.setMedicines(filterdrugs.subList(0, filterdrugs.size() >= length ? length : filterdrugs.size()));
                 }
-                }
-
             }
-            // 手术
-            if (ruleTypeList.contains("9")) {
-                if(reversePush.getTreat() != null && ListUtil.isNotEmpty(reversePush.getTreat().get(MedicalAdviceEnum.operation.getName())))
-                {
-
-                    List<String> operations = reversePush.getTreat().get(MedicalAdviceEnum.operation.getName()).stream().map(x -> x.getName()).collect(Collectors.toList());
-                    if (operations.size() > 0) {
-                        List<PushBaseDTO> filteroperations = getPackagePushBaseDTO(typeWords, operations, StandConvertEnum.operation);
-                        pushDTO.setOperations(filteroperations.subList(0, filteroperations.size() >= length ? length : filteroperations.size()));
-                    }
+
+        }
+        // 手术
+        if (ruleTypeList.contains("9")) {
+            if (reversePush.getTreat() != null && ListUtil.isNotEmpty(reversePush.getTreat().get(MedicalAdviceEnum.operation.getName()))) {
+
+                List<String> operations = reversePush.getTreat().get(MedicalAdviceEnum.operation.getName()).stream().map(x -> x.getName()).collect(Collectors.toList());
+                if (operations.size() > 0) {
+                    List<PushBaseDTO> filteroperations = getPackagePushBaseDTO(typeWords, operations, StandConvertEnum.operation);
+                    pushDTO.setOperations(filteroperations.subList(0, filteroperations.size() >= length ? length : filteroperations.size()));
                 }
             }
-            //反推,推鉴别诊断
-            if (ruleTypeList.contains("7")) {
-                if(ListUtil.isNotEmpty(reversePush.getDifferentialDis())){
-                    List<String> differentDis = reversePush.getDifferentialDis().stream().map(x->x.getName()).collect(Collectors.toList());
-                    if (differentDis.size() > 0) {
-                        List<PushBaseDTO> filterpacs = getPackagePushBaseDTO(typeWords, differentDis, StandConvertEnum.disease);
-                        List<PushBaseDTO> pushDiffBaseDTOS = filterpacs.subList(0, filterpacs.size() >= length ? length : filterpacs.size());
-                        dis.put(DiseaseTypeEnum.identify.getName(),pushDiffBaseDTOS);
-                        pushDTO.setDis(dis);
-                    }
+        }
+        //反推,推鉴别诊断
+        if (ruleTypeList.contains("7")) {
+            if (ListUtil.isNotEmpty(reversePush.getDifferentialDis())) {
+                List<String> differentDis = reversePush.getDifferentialDis().stream().map(x -> x.getName()).collect(Collectors.toList());
+                if (differentDis.size() > 0) {
+                    List<PushBaseDTO> filterpacs = getPackagePushBaseDTO(typeWords, differentDis, StandConvertEnum.disease);
+                    List<PushBaseDTO> pushDiffBaseDTOS = filterpacs.subList(0, filterpacs.size() >= length ? length : filterpacs.size());
+                    dis.put(DiseaseTypeEnum.identify.getName(), pushDiffBaseDTOS);
+                    pushDTO.setDis(dis);
                 }
-
-            }
-            if (ruleTypeList.contains("10") && pushVO.getDiaeaseName() != null) {
-                List<TreatDTO> collect = new ArrayList<>();
-                Item diaeaseName = pushVO.getDiaeaseName();
-                TreatDTO treatDTO = new TreatDTO();
-                treatDTO.setName(diaeaseName.getName());
-                treatDTO.setUniqueName(diaeaseName.getUniqueName());
-                collect.add(treatDTO);
-                pushDTO.setTreat(collect);
             }
-//        }
-//            return pushDTO;
+
+        }
+        if (ruleTypeList.contains("10") && pushVO.getDiaeaseName() != null) {
+            List<TreatDTO> collect = new ArrayList<>();
+            Item diaeaseName = pushVO.getDiaeaseName();
+            TreatDTO treatDTO = new TreatDTO();
+            treatDTO.setName(diaeaseName.getName());
+            treatDTO.setUniqueName(diaeaseName.getUniqueName());
+            collect.add(treatDTO);
+            pushDTO.setTreat(collect);
+        }
+        //        }
+        //            return pushDTO;
     }
 
     private List<PushBaseDTO> getPackagePushBaseDTO(Map<String, List<String>> typeWords, List<String> symptoms, StandConvertEnum symptom) {
         List<PushBaseDTO> symptomPush = symptoms.stream()
                 .filter(x -> !typeWords.get(symptom.toString()).contains(x))
                 .map(x -> {
-            PushBaseDTO pushBaseDTO = new PushBaseDTO();
-            pushBaseDTO.setName(x);
-            return pushBaseDTO;
-        }).collect(Collectors.toList());
+                    PushBaseDTO pushBaseDTO = new PushBaseDTO();
+                    pushBaseDTO.setName(x);
+                    return pushBaseDTO;
+                }).collect(Collectors.toList());
         return symptomPush;
     }
 }

+ 4 - 0
src/main/java/com/diagbot/repository/BaseNodeRepository.java

@@ -41,6 +41,10 @@ public interface BaseNodeRepository extends Neo4jRepository<BaseNode, Long> {
     @Query("match(s) where any(label in labels(s) where label in ['症状','体征']) return distinct s.name")
     List<String> getSymptomClass();
 
+    //化验查疾病
+    @Query("match(d:医保疾病名称)-[r1]->(l:化验套餐名称{name:{lisBig}})-[r:化验套餐名称相关化验细项及结果]->(lr:化验细项及结果{name:{subres}}),(d)-[r2]->(lr) return d")
+    YiBaoDiseaseName getDisByLis(@Param("lisBig") String lisBig,@Param("subres") String subres);
+
     @Query("match(d:医保疾病名称)-[r:医保疾病名称相关性别]->(h) return DISTINCT d.name+'&'+h.name")
     List<String> getDisSexClass();
 

+ 2 - 0
src/main/java/com/diagbot/repository/YiBaoDiseaseNode.java

@@ -28,6 +28,8 @@ public class YiBaoDiseaseNode {
 			pushBaseDTO = new PushBaseDTO();
 			pushBaseDTO.setName(disease.getName());
 			pushDTO.setDisease(pushBaseDTO);
+			Set<Symptom> symptoms = disease.getSymptoms();
+//			disease.getSymptoms().stream().collect(Collectors.toMap(Symptom::getName,Symptom::getNodeId,(e1, e2) -> e2)))
 
 			pushDTO.setSymptoms(disease.getSymptoms().stream().map(x ->NeoUtil.updatePushInfo(x.getName())).collect(Collectors.toList()));
 

+ 21 - 0
src/main/java/com/diagbot/rule/GroupRule.java

@@ -29,6 +29,7 @@ public class GroupRule {
      */
     public void bill(WordCrfDTO wordCrfDTO, BillNeoMaxDTO billNeoMaxDTO, List<BillMsg> billMsgList, String type) {
         List<NodeNeoDTO> group = billNeoMaxDTO.getGroup();
+        Double age = wordCrfDTO.getAgeNum();
         for (NodeNeoDTO node : group) {
             // 妊娠目前从诊断里判断,包含“妊娠”
             String symptom = wordCrfDTO.getSymptom(); // 现病史内容
@@ -64,6 +65,26 @@ public class GroupRule {
                         billMsgList.add(commonBillMsg);
                     }
                     break;
+                case "幼儿":
+                    if (age != null) {
+                        if (age <= 2.5D) {
+                            BillMsg commonBillMsg = MsgUtil.getCommonBillMsg(
+                                    billNeoMaxDTO.getOrderName(), billNeoMaxDTO.getOrderStandName(),
+                                    "幼儿", type, billNeoMaxDTO.getType());
+                            billMsgList.add(commonBillMsg);
+                        }
+                    }
+                    break;
+                case "儿童":
+                    if (age != null) {
+                        if (age <= 12.0D && age >= 4.0D) {
+                            BillMsg commonBillMsg = MsgUtil.getCommonBillMsg(
+                                    billNeoMaxDTO.getOrderName(), billNeoMaxDTO.getOrderStandName(),
+                                    "儿童", type, billNeoMaxDTO.getType());
+                            billMsgList.add(commonBillMsg);
+                        }
+                    }
+                    break;
             }
         }
     }

+ 11 - 9
src/main/java/com/diagbot/util/NeoUtil.java

@@ -127,16 +127,18 @@ public class NeoUtil {
 
     public static boolean matchBasic(YiBaoDiseaseName disease, int gender_code, double age){
         boolean match = true;
-        String gender_neo4j = disease.getGender();
-        String age_neo4j = disease.getAge();
-        if((gender_neo4j != null && gender_neo4j.equals("男") && gender_code != 1) ||
-                (gender_neo4j != null && gender_neo4j.equals("女") && gender_code != 2)){
-            match = false;
-        }else if(age_neo4j != null ){
-            String[] betweenAge = age_neo4j.split("-");
-            if(betweenAge.length == 2 && (age < Double.parseDouble(betweenAge[0])
-                    || age > Double.parseDouble(betweenAge[1]))){
+        if(disease != null){
+            String gender_neo4j = disease.getGender();
+            String age_neo4j = disease.getAge();
+            if((gender_neo4j != null && gender_neo4j.equals("男") && gender_code != 1) ||
+                    (gender_neo4j != null && gender_neo4j.equals("女") && gender_code != 2)){
                 match = false;
+            }else if(age_neo4j != null ){
+                String[] betweenAge = age_neo4j.split("-");
+                if(betweenAge.length == 2 && (age < Double.parseDouble(betweenAge[0])
+                        || age > Double.parseDouble(betweenAge[1]))){
+                    match = false;
+                }
             }
         }
         return match;