diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientDtController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientDtController.java index 650978a..318cd26 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientDtController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientDtController.java @@ -1,5 +1,6 @@ package com.lyms.platform.operate.web.controller; +import com.google.common.base.Strings; import com.lyms.hospitalapi.dtdyrm.IdtdyrmFmService; import com.lyms.platform.biz.service.*; import com.lyms.platform.common.annotation.TokenRequired; @@ -12,7 +13,9 @@ import com.lyms.platform.common.result.CommonResult; import com.lyms.platform.common.utils.*; import com.lyms.platform.operate.web.facade.*; import com.lyms.platform.operate.web.request.*; +import com.lyms.platform.operate.web.result.AntExManagerResult; import com.lyms.platform.operate.web.result.HighScoreResult; +import com.lyms.platform.operate.web.service.IBloodPressureService; import com.lyms.platform.operate.web.service.PatientWeightService; import com.lyms.platform.operate.web.utils.CollectionUtils; import com.lyms.platform.operate.web.utils.FunvCommonUtil; @@ -53,6 +56,8 @@ public class PatientDtController extends BaseController { @Autowired private BloodPressureService bloodPressureService; @Autowired + private IBloodPressureService iBloodPressureService; + @Autowired private AntenatalExaminationService antExService; @Autowired private BasicConfigService basicConfigService; @@ -1187,4 +1192,142 @@ public class PatientDtController extends BaseController { } return str; } + + @Autowired + private AntExRecordFacade antExRecordFacade; + @Autowired + private AntExRecordService recordService; + + /** + * 根据身份证号获取患者是否建档及五色数据(his调用) + * @param cardNo + * @return + */ + @RequestMapping(method = RequestMethod.GET,value = "/dt/getDTPatient") + @ResponseBody + public BaseResponse getWxPatients(@RequestParam("cardNo") String cardNo){ + BaseResponse baseResponse=new BaseResponse(); + if (Strings.isNullOrEmpty(cardNo)){ + baseResponse.setErrorcode(-1); + baseResponse.setErrormsg("参数异常"); + return baseResponse; + } + PatientsQuery patientsQuery =new PatientsQuery(); + patientsQuery.setYn(1); + patientsQuery.setHospitalId(hospitalId); + patientsQuery.setCardNo(cardNo); + List patientsList=patientsService.queryPatient(patientsQuery); + if (CollectionUtils.isEmpty(patientsList)){ + baseResponse.setErrorcode(10001); + baseResponse.setErrormsg("当前患者未建档"); + return baseResponse; + } + + AntExRecordQuery antExRecordQuery=new AntExRecordQuery(); + antExRecordQuery.setParentId(patientsList.get(0).getId()); + List antExRecordModelList = recordService.queryAntExRecords(antExRecordQuery, Sort.Direction.DESC, "created"); + if (CollectionUtils.isEmpty(antExRecordModelList)){ + baseResponse.setErrorcode(10001); + baseResponse.setErrormsg("产检记录不存在"); + return baseResponse; + } + List data = antExRecordFacade.getAntExRecords(antExRecordModelList, hospitalId, false, null); + if (CollectionUtils.isNotEmpty(data)){ + AntExManagerResult antExManagerResult= data.get(0); + Map params=new HashMap<>(); + //TODO 过滤rLevel大同要求只返回最高级别的颜色等级 紫-红-橙-黄-绿 + params.put("rLevel",getObjectRLevel(antExManagerResult.getrLevel())); + params.put("riskFactor",antExManagerResult.getRiskFactor()); + params.put("nextCheckTime",antExManagerResult.getNextCheckTime()); + params.put("username",antExManagerResult.getName()); + baseResponse.setObject(params); + baseResponse.setErrorcode(0); + baseResponse.setErrormsg("成功"); + } + return baseResponse; + } + + /** + * 获取最高优先级的风险等级 + * 按优先级: 紫色(1) > 红色(2) > 橙色(3) > 黄色(4) > 绿色(5) + */ + private static Map getObjectRLevel(List rLevel) { + if (rLevel == null || rLevel.isEmpty()) { + return new HashMap<>(); + } + + // 定义颜色优先级表(数字越小优先级越高) + Map priorityMap = new HashMap<>(); + priorityMap.put("紫色", 1); + priorityMap.put("红色", 2); + priorityMap.put("橙色", 3); + priorityMap.put("黄色", 4); + priorityMap.put("绿色", 5); + + Map highestPriorityMap = null; + int highestPriority = Integer.MAX_VALUE; + + // 遍历找到优先级最高的 + for (Map item : rLevel) { + String name = item.get("name"); + if (priorityMap.containsKey(name)) { + int currentPriority = priorityMap.get(name); + if (currentPriority < highestPriority) { + highestPriority = currentPriority; + highestPriorityMap = item; + } + } + } + + return highestPriorityMap != null ? highestPriorityMap : new HashMap(); + } + + /** + * 根据身份证号获取患者自动化测量数据 + * @param cardNo + * @return + */ + @RequestMapping(method = RequestMethod.GET,value = "/dt/getDTPatientBase") + @ResponseBody + public BaseResponse getWxPatientsBase(@RequestParam("cardNo") String cardNo){ + + BaseResponse baseResponse=new BaseResponse(); + if (Strings.isNullOrEmpty(cardNo)){ + baseResponse.setErrorcode(-1); + baseResponse.setErrormsg("参数异常"); + return baseResponse; + } + PatientsQuery patientsQuery =new PatientsQuery(); + patientsQuery.setYn(1); + patientsQuery.setHospitalId(hospitalId); + patientsQuery.setCardNo(cardNo); + List patientsList=patientsService.queryPatient(patientsQuery); + if (CollectionUtils.isEmpty(patientsList)){ + baseResponse.setErrorcode(10001); + baseResponse.setErrormsg("当前患者未建档"); + return baseResponse; + } + Patients patients= patientsList.get(0); + PatientWeight patientWeight= patientWeightService1.queryPatientWeight(patients.getPid()); + if (patientWeight==null){ + baseResponse.setErrorcode(10002); + baseResponse.setErrormsg("当前患者还未录入自动化测量数据"); + return baseResponse; + } + Map params=new HashMap<>(); + params.put("beforeWeight",StringUtils.isEmpty(patientWeight.getBeforeWeight())? "" : patientWeight.getBeforeWeight()+"kg"); + params.put("beforeHeight",StringUtils.isEmpty(patientWeight.getBeforeHeight())? "" : patientWeight.getBeforeHeight()+"cm"); + params.put("nowWeight",StringUtils.isEmpty(patientWeight.getNowWeight())? "" : patientWeight.getNowWeight()+"kg"); + + BloodPressure bloodPressure= iBloodPressureService.getLastInfo(patients.getPid()); + String blood=""; + if (bloodPressure!=null&&StringUtils.isNotEmpty(bloodPressure.getSsy())){ + blood=bloodPressure.getSsy() + "/" + bloodPressure.getSzy() + "mmHg"; + } + params.put("bloodPressure",blood); + baseResponse.setObject(params); + baseResponse.setErrorcode(0); + baseResponse.setErrormsg("成功"); + return baseResponse; + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java index 4d1a573..be55410 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PuerperaManageController.java @@ -254,6 +254,19 @@ public class PuerperaManageController extends BaseController { } /** + * 孕妇管理-专病-贫血专病管理 + * + * @param patientsQueryRequest + * @return 返回结果 + */ + @RequestMapping(value = "/anaemia", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public BaseResponse queryAnaemiaAllPuerpera(@Valid RiskPatientsQueryRequest patientsQueryRequest, HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return patientFacade.queryAnaemiaAllPuerpera(patientsQueryRequest, null, 1, loginState.getId(), "true", Boolean.FALSE); + } + /** * 血压全部孕妇管理 * * @param patientsQueryRequest diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java index ea1efd7..ef0569d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java @@ -1343,6 +1343,171 @@ public class PatientFacade extends BaseServiceImpl { } }); } + /** + * 查询贫血专病管理 + * + * @param riskPatientsQueryRequest + * @param isHighRisk 控制是否是高危 + * @param type 控制类型 1孕妇 3产妇 + * @return + */ + public BaseResponse queryAnaemiaAllPuerpera(RiskPatientsQueryRequest riskPatientsQueryRequest, Boolean isHighRisk, Integer type, Integer userId, String needPage, boolean isRegion) { + String hospital = autoMatchFacade.getHospitalId(userId); + + //组合请求 + PatientsQuery patientsQuery = complayRequest(riskPatientsQueryRequest, isHighRisk, type, userId, needPage, isRegion,hospital); + + + //查询符合条件的孕妇 + StopWatch stopWatch = new StopWatch("queryPatient1 -" + hospital); + stopWatch.start(); + + + Query yn = null; + + //妊娠合并贫血(Hb 60-110g/L) 轻度缺铁性贫血(100-109g/L)中度缺铁性贫血(70-99g/L)轻度妊娠期贫血(100-109g/l)(缺铁性) + //轻度妊娠期贫血(100-109g/l)(巨幼细胞性) 轻度妊娠期贫血(100-109g/l)(再生障碍性) 中度妊娠期贫血(70-99g/l)(缺铁性) + //中度妊娠期贫血(70-99g/l)(巨幼细胞性) 中度妊娠期贫血(70-99g/l)(再生障碍性) 中度妊娠期贫血(70-99g/l)(未分类) 轻度妊娠期贫血(100-109g/l)(未分类) + //重度贫血(Hb40-60g/L) 极重度贫血(Hb<40g/L)极重度贫血(<40 g/L)(缺铁性)极重度贫血(<40 g/L)(巨幼细胞) + //极重度贫血(<40 g/L)(再生障碍性) 极重度贫血(<40 g/L)(未分类)重度妊娠期贫血(40-69g/L)(缺铁性)重度妊娠期贫血(40-69g/L)(巨幼细胞性) + //重度妊娠期贫血(40-69g/l)(再生障碍性) 重度妊娠期贫血(40-69g/l)(未分类)再生障碍性贫血 + if ("1".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("妊娠合并贫血(Hb 60-110g/L)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("2".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("轻度缺铁性贫血(100-109g/L)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("3".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria3 = Criteria.where("name").is("中度缺铁性贫血(70-99g/L)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria3)); + }else if ("4".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("轻度妊娠期贫血(100-109g/l)(缺铁性)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("5".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("轻度妊娠期贫血(100-109g/l)(巨幼细胞性)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("6".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria3 = Criteria.where("name").is("轻度妊娠期贫血(100-109g/l)(再生障碍性)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria3)); + } else if ("7".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("轻度妊娠期贫血(100-109g/l)(未分类)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("8".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("中度妊娠期贫血(70-99g/l)(缺铁性)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("9".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria3 = Criteria.where("name").is("中度妊娠期贫血(70-99g/l)(巨幼细胞性)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria3)); + }else if ("10".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("中度妊娠期贫血(70-99g/l)(再生障碍性)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("11".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria3 = Criteria.where("name").is("中度妊娠期贫血(70-99g/l)(未分类)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria3)); + }else if ("12".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("重度贫血(Hb40-60g/L)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("13".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("重度妊娠期贫血(40-69g/L)(缺铁性)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("14".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria3 = Criteria.where("name").is("重度妊娠期贫血(40-69g/L)(巨幼细胞性)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria3)); + }else if ("15".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("重度妊娠期贫血(40-69g/l)(再生障碍性)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("16".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria3 = Criteria.where("name").is("重度妊娠期贫血(40-69g/l)(未分类)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria3)); + }else if ("17".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria3 = Criteria.where("name").is("极重度贫血(Hb<40g/L)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria3)); + }else if ("18".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("极重度贫血(Hb<40g/L)(缺铁性)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("19".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("极重度贫血(<40 g/L)(巨幼细胞)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("20".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria3 = Criteria.where("name").is("极重度贫血(<40 g/L)(再生障碍性)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria3)); + }else if ("21".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria2 = Criteria.where("name").is("极重度贫血(<40 g/L)(未分类)"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria2)); + + } else if ("22".equals(riskPatientsQueryRequest.getTwinsType())) { + Criteria criteria3 = Criteria.where("name").is("再生障碍性贫血"); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria3)); + }else { + Criteria criteria1 = Criteria.where("name").is("妊娠合并贫血(Hb 60-110g/L)"); + Criteria criteria2 = Criteria.where("name").is("轻度缺铁性贫血(100-109g/L)"); + Criteria criteria3 = Criteria.where("name").is("中度缺铁性贫血(70-99g/L)"); + Criteria criteria4 = Criteria.where("name").is("轻度妊娠期贫血(100-109g/l)(缺铁性)"); + Criteria criteria5 = Criteria.where("name").is("轻度妊娠期贫血(100-109g/l)(巨幼细胞性)"); + Criteria criteria6 = Criteria.where("name").is("轻度妊娠期贫血(100-109g/l)(再生障碍性)"); + Criteria criteria11 = Criteria.where("name").is("轻度妊娠期贫血(100-109g/l)(未分类)"); + + Criteria criteria7 = Criteria.where("name").is("中度妊娠期贫血(70-99g/l)(缺铁性)"); + Criteria criteria8 = Criteria.where("name").is("中度妊娠期贫血(70-99g/l)(巨幼细胞性)"); + Criteria criteria9 = Criteria.where("name").is("中度妊娠期贫血(70-99g/l)(再生障碍性)"); + Criteria criteria10 = Criteria.where("name").is("中度妊娠期贫血(70-99g/l)(未分类)"); + + Criteria criteria12 = Criteria.where("name").is("重度贫血(Hb40-60g/L)"); + Criteria criteria17 = Criteria.where("name").is("重度妊娠期贫血(40-69g/L)(缺铁性)"); + Criteria criteria18 = Criteria.where("name").is("重度妊娠期贫血(40-69g/L)(巨幼细胞性)"); + Criteria criteria19 = Criteria.where("name").is("重度妊娠期贫血(40-69g/l)(再生障碍性)"); + Criteria criteria20 = Criteria.where("name").is("重度妊娠期贫血(40-69g/l)(未分类)"); + + Criteria criteria22 = Criteria.where("name").is("极重度贫血(Hb<40g/L)"); + Criteria criteria13 = Criteria.where("name").is("极重度贫血(Hb<40g/L)(缺铁性)"); + Criteria criteria14 = Criteria.where("name").is("极重度贫血(<40 g/L)(巨幼细胞)"); + Criteria criteria15 = Criteria.where("name").is("极重度贫血(<40 g/L)(再生障碍性)"); + Criteria criteria16 = Criteria.where("name").is("极重度贫血(<40 g/L)(未分类)"); + + Criteria criteria21 = Criteria.where("name").is("再生障碍性贫血"); + //yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria4)); + yn = Query.query(Criteria.where("yn").is(1).orOperator(criteria1, criteria2, criteria3,criteria4,criteria5, criteria6, criteria7,criteria8, + criteria9, criteria10, criteria11,criteria12,criteria13, criteria14, criteria15,criteria16,criteria17, criteria18, criteria19,criteria20,criteria21, criteria22 + )); + } + + + List models = mongoTemplate.find(yn, BasicConfig.class); + List rFactorList = new ArrayList <>(); + if (models != null && models.size() > 0) { + for (int i = 0; i < models.size(); i++) { + rFactorList.add(models.get(i).getId()); + } + } + patientsQuery.setrFactorList(rFactorList); + List patientses = patientsService.queryPatientBySort(patientsQuery, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); + stopWatch.stop(); + + logger.info(stopWatch.toString()); + List data = new ArrayList (); + if (CollectionUtils.isNotEmpty(patientses)) { + if (type == 1) { + //处理全部孕妇的情况 + data = convertToTwinsPatient(riskPatientsQueryRequest, patientses, userId, hospital); + } + } +// patientsQuery.mysqlBuild(data.size()); + return new BaseListResponse().setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(data).setPageInfo(patientsQuery.getPageInfo()); + + } + /** * 查询双胎全部孕妇管理 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java index f1e4a06..3dc3489 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java @@ -31,4 +31,6 @@ public interface IBloodPressureService extends IBaseService { BaseResponse getBloodPressures(String doctorId, Integer type, Integer status, String keyword); BaseResponse getXyPresentation(String id,Integer userId, String doctorId); + + BloodPressure getLastInfo(String parentId); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java index 1becf52..be09924 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java @@ -83,4 +83,6 @@ public interface PatientWeightService extends IBaseService { BaseResponse updataPrint(String id,Integer type); + + PatientWeight queryPatientWeight(String pid); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java index 28a14b2..8937e45 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java @@ -852,6 +852,21 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP } } + @Override + public BloodPressure getLastInfo(String parentId) { + + Query query = new Query(); + query.addCriteria(Criteria.where("pid").is(parentId)); + query.with(new Sort(Sort.Direction.DESC, "modified")); + List bloodPressures = mongoTemplate.find( + query, BloodPressure.class); + BloodPressure bloodPressure = null; + if (CollectionUtils.isNotEmpty(bloodPressures)) { + bloodPressure = bloodPressures.get(0); + } + return bloodPressure; + } + public void getSeries(Map> series, String bmiStr, String bregmatic) { Map highMap = new LinkedHashMap<>(); Map normalMap = new LinkedHashMap<>(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java index e0b1d4d..30dc89a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java @@ -868,7 +868,7 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient * @param pid * @return */ - private PatientWeight queryPatientWeight(String pid) { + public PatientWeight queryPatientWeight(String pid) { Query query = new Query(); query.addCriteria(Criteria.where("pid").is(pid).and("nowWeight").ne("")); query.with(new Sort(Sort.Direction.DESC, "modified"));