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 4d555f7..652dbb3 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 @@ -172,6 +172,18 @@ public class PuerperaManageController extends BaseController { return patientFacade.queryAbnormalWeight(patientsQueryRequest, loginState.getId()); } /** + * 巨大儿管理 + * @param patientsQueryRequest 全部孕妇管理查询 (因为请求参数一样同用一个对象) + * @return 返回结果 + */ + @RequestMapping(value = "/queryGiantWeight", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public BaseResponse queryGiantWeight(@Valid RiskPatientsQueryRequest patientsQueryRequest, HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return patientFacade.queryGiantWeight(patientsQueryRequest, loginState.getId()); + } + /** * 孕期体重异常管理 导出 * @Author: 武涛涛 * @Date: 2021/1/4 14:27 @@ -183,6 +195,16 @@ public class PuerperaManageController extends BaseController { patientFacade.exportQueryAbnormalWeight(riskPatientsQueryRequest, loginState.getId(), response); } /** + * 巨大儿管理 导出 + * @Author: 武涛涛 + */ + @RequestMapping(value = "/exportQueryGiantWeight", method = RequestMethod.GET) + @TokenRequired + public void exportQueryGiantWeight(@Valid RiskPatientsQueryRequest riskPatientsQueryRequest, HttpServletRequest request, HttpServletResponse response) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + patientFacade.exportQueryGiantWeight(riskPatientsQueryRequest, loginState.getId(), response); + } + /** * 双胎全部孕妇管理 * * @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 c2de5c2..a1713b9 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 @@ -25,10 +25,7 @@ import com.lyms.platform.permission.model.Users; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.UsersService; import com.lyms.platform.pojo.*; -import com.lyms.platform.query.AntExChuQuery; -import com.lyms.platform.query.BabyModelQuery; -import com.lyms.platform.query.DataPermissionsModelQuery; -import com.lyms.platform.query.PatientsQuery; +import com.lyms.platform.query.*; import org.apache.commons.collections.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -784,14 +781,93 @@ public class PatientFacade { } } - //获取bmi大于 25 &筛选bmi条件 - PatientsQuery pq = new PatientsQuery(); - pq.setIds(ids); - pq.setPage(riskPatientsQueryRequest.getPage()); - pq.setLimit(riskPatientsQueryRequest.getLimit()); - List ps = patientsService.queryPatientBySort(pq, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); - if(CollectionUtils.isNotEmpty(ps)){ - data = convertToQuanWeight(ps); + if(CollectionUtils.isNotEmpty(ids)) { + //获取bmi大于 25 &筛选bmi条件 + PatientsQuery pq = new PatientsQuery(); + pq.setIds(ids); + pq.setPage(riskPatientsQueryRequest.getPage()); + pq.setLimit(riskPatientsQueryRequest.getLimit()); + List ps = patientsService.queryPatientBySort(pq, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); + if (CollectionUtils.isNotEmpty(ps)) { + data = convertToQuanWeight(ps); + } + } + } + return new BaseListResponse().setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(data).setPageInfo(patientsQuery.getPageInfo()); + } + /** + * 巨大儿管理 + * @param riskPatientsQueryRequest + * @return + */ + public BaseResponse queryGiantWeight(RiskPatientsQueryRequest riskPatientsQueryRequest, Integer userId) { + + //分娩档案 + String hospital = autoMatchFacade.getHospitalId(userId); + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setYn(YnEnums.YES.getId()); + patientsQuery.setType(3); + patientsQuery.setSort(" created "); + patientsQuery.setDueStatus(0); + List buildType = new ArrayList(); + buildType.add(0); + buildType.add(3); + patientsQuery.setSmsBuildTypeList(buildType); + patientsQuery.setIsAutoFm(YnEnums.NO.getId()); + patientsQuery.setFmHospital(hospital); + patientsQuery.setCardNo(riskPatientsQueryRequest.getCardNo()); + patientsQuery.setLastMensesStart(riskPatientsQueryRequest.capEnd()); + patientsQuery.setLastMensesEnd(riskPatientsQueryRequest.capStart()); + patientsQuery.setrLevel(riskPatientsQueryRequest.getrLevel()); + patientsQuery.setrFactorList(com.lyms.platform.common.utils.StringUtils.covertToList(riskPatientsQueryRequest.getrFacotr(), String.class)); + List patientses = patientsService.queryPatientBySort(patientsQuery, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); + List data = new ArrayList<>(); + List idsMd = new ArrayList<>(); + List idsPW = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(patientses)) { + for (Patients patients : patientses) { + //儿童体重大于等于4000克 + if(com.lyms.platform.common.utils.StringUtils.isNotEmpty(patients.getId())){ + Query querymd = Query.query(Criteria.where("parentId").is(patients.getId()).and("yn").ne("0") + .and("baby").elemMatch(Criteria.where("babyWeight").gte("4000"))); + List deliverModels = mongoTemplate.find(querymd, MaternalDeliverModel.class); + if(CollectionUtils.isNotEmpty(deliverModels)){ + MaternalDeliverModel maternalDeliverModel = deliverModels.get(0); + idsMd.add(patients.getId()); + } + } + } + + //孕妇体重 + if(StringUtils.isNotEmpty(riskPatientsQueryRequest.getBmiStart()) && StringUtils.isNotEmpty(riskPatientsQueryRequest.getBmiEnd()) && CollectionUtils.isNotEmpty(idsMd)){ + for (String id : idsMd) { + Query query = new Query(); + if(StringUtils.isNotEmpty(riskPatientsQueryRequest.getBmiStart()) && StringUtils.isNotEmpty(riskPatientsQueryRequest.getBmiEnd())){ + query = Query.query(Criteria.where("patientId").is(id) + .and("yn").ne("0").and("bmi").gte(riskPatientsQueryRequest.getBmiStart()).lte(riskPatientsQueryRequest.getBmiEnd())); + }else if(StringUtils.isEmpty(riskPatientsQueryRequest.getBmiStart()) && StringUtils.isEmpty(riskPatientsQueryRequest.getBmiEnd())){ + query = Query.query(Criteria.where("patientId").is(id) .and("yn").ne("0")); + } + List patientWeightList = mongoTemplate.find(query, PatientWeight.class); + if(CollectionUtils.isNotEmpty(patientWeightList)){ + PatientWeight patientWeight = patientWeightList.get(0); + if(patientWeight!=null && com.lyms.platform.common.utils.StringUtils.isNotEmpty(patientWeight.getBmi())){ + idsPW.add(id); + } + } + + } + } + if(CollectionUtils.isNotEmpty(idsMd) || CollectionUtils.isNotEmpty(idsPW)){ + //获取bmi大于 25 &筛选bmi条件 + PatientsQuery pq = new PatientsQuery(); + pq.setIds(CollectionUtils.isEmpty(idsPW)? idsMd : idsPW); + pq.setPage(riskPatientsQueryRequest.getPage()); + pq.setLimit(riskPatientsQueryRequest.getLimit()); + List ps = patientsService.queryPatientBySort(pq, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); + if(CollectionUtils.isNotEmpty(ps)){ + data = convertToQuanWeight(ps); + } } } return new BaseListResponse().setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(data).setPageInfo(patientsQuery.getPageInfo()); @@ -849,6 +925,57 @@ public class PatientFacade { } + public void exportQueryGiantWeight(RiskPatientsQueryRequest riskPatientsQueryRequest, Integer id, HttpServletResponse response) { + + try { + BaseListResponse listResponse = (BaseListResponse) queryGiantWeight(riskPatientsQueryRequest, id); + + List list = listResponse.getData(); + List> datas = new ArrayList<>(); + + if (CollectionUtils.isNotEmpty(list)) { + for (Map map : list) { + Map m = new HashMap <>(); + m.put("username", map.get("username")); + m.put("age", map.get("age")); + m.put("phone", map.get("phone")); + m.put("currentWeek", map.get("currentWeek")); + m.put("riskFactor", map.get("riskFactor")); + m.put("bmi", map.get("bmi")); + m.put("beforeHeight", map.get("beforeHeight")); + m.put("beforeWeight", map.get("beforeWeight")); + Map dayWeights = (Map)map.get("dayWeights"); + List stringList = new ArrayList <>(); + for(Map.Entry entry : dayWeights.entrySet()){ + if(StringUtils.isNotEmpty(entry.getKey()) && StringUtils.isNotEmpty(entry.getValue())){ + String mapKey = entry.getKey(); + String mapValue = entry.getValue(); + stringList.add(mapKey + " / " + mapValue); + } + } + for (int i = 0; i <= 20 ; i++) { + if(i >= stringList.size()){ + m.put("dayWeight"+i,""); + }else { + m.put("dayWeight"+i, stringList.get(i)); + } + } + datas.add(m); + } + } + OutputStream out = response.getOutputStream(); + Map cnames = new LinkedHashMap<>(); + cnamesMap(cnames); + response.setContentType("application/octet-stream"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-Disposition", "attachment;fileName=" + "巨大儿管理.xls"); + ExcelUtil.toExcel(out, datas, cnames); + } catch (Exception e) { + e.printStackTrace(); + ExceptionUtils.catchException(e, "巨大儿管理导出异常"); + } + + } private void cnamesMap(Map cnames) { cnames.put("username", "姓名"); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsQueryRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsQueryRequest.java index b8e7b1d..35df083 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsQueryRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsQueryRequest.java @@ -17,6 +17,8 @@ import java.util.Date; public class RiskPatientsQueryRequest extends BasePageQueryRequest { //巨大儿使用 BMI:⭕ 1 〇25≤BMI<28 、 2 〇BMI≥28 private String bmi; + private String bmiStart; + private String bmiEnd; //判断定制机构 lp滦平 private String hstart; @@ -862,4 +864,20 @@ public class RiskPatientsQueryRequest extends BasePageQueryRequest { public void setTwinsType(String twinsType) { this.twinsType = twinsType; } + + public String getBmiStart() { + return bmiStart; + } + + public void setBmiStart(String bmiStart) { + this.bmiStart = bmiStart; + } + + public String getBmiEnd() { + return bmiEnd; + } + + public void setBmiEnd(String bmiEnd) { + this.bmiEnd = bmiEnd; + } }