diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java index b339e5e..8bd9cd4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java @@ -656,4 +656,17 @@ public class AntenatalExaminationController extends BaseController { return antenatalExaminationFacade.antexCheckCount(checkTime,loginState.getId()); } + + /** + * 获取产妇整个产程的建档记录 + * + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/antex/wxantexlist") + @ResponseBody + public BaseResponse wxantexlist( AntExListQueryRequest exListQueryRequest, String doctorId) { + int id = Integer.parseInt(doctorId); + return antenatalExaminationFacade.findAntExListTwo(exListQueryRequest, id); + } + } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RiskReportController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RiskReportController.java index 5879983..1fa4db7 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RiskReportController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RiskReportController.java @@ -3,7 +3,10 @@ package com.lyms.platform.operate.web.controller; import com.lyms.platform.common.annotation.TokenRequired; import com.lyms.platform.common.base.BaseController; import com.lyms.platform.common.base.LoginContext; +import com.lyms.platform.common.constants.ErrorCodeConstants; +import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.ExcelUtil; import com.lyms.platform.operate.web.facade.RiskReportFacade; import com.lyms.platform.operate.web.request.RiskBabysQueryRequest; @@ -11,6 +14,7 @@ import com.lyms.platform.operate.web.request.RiskPatientsCountRequest; import com.lyms.platform.operate.web.request.RiskPatientsQueryRequest; import com.lyms.platform.operate.web.result.RiskReportResult; import com.lyms.platform.operate.web.utils.CollectionUtils; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -142,4 +146,29 @@ public class RiskReportController extends BaseController { } + /** + * 院内高危统计报表 + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/querywxRiskReportCount") + @ResponseBody + public BaseResponse querywxRiskReportCount(RiskPatientsQueryRequest patientsQueryRequest,String userId) { + Date now = new Date(); + List result = new ArrayList(); + for (int i=0;i<7;i++){ + Map map = new HashMap(); + String ctime = DateUtil.getYyyyMmDd(DateUtil.addDay(now,-i)); + patientsQueryRequest.setLastCTime(ctime); + int id = Integer.parseInt(userId); + BaseListResponse br = riskReportFacade.querywxRiskReportCount(patientsQueryRequest,id); + map.put("data",br); + map.put("date",ctime); + result.add(map); + } + + return new BaseListResponse().setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(result); + + } + + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ViewController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ViewController.java index 09a4366..4e3b617 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ViewController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ViewController.java @@ -1279,4 +1279,17 @@ public class ViewController extends BaseController { public BaseObjectResponse findMatDeliverData2wx(String id) { return viewFacade.findMatDeliverData(id); } + + /** + * 微信小程序查询复诊接口 + * + * @param id + * @return + */ + @RequestMapping(value = "/wxfindAntenatalExaminationData", method = RequestMethod.GET) + @ResponseBody + public BaseObjectResponse wxfindAntenatalExaminationData( String id) { + + return viewFacade.findAntenatalExamination(id); + } } 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 54e4c9e..cbf0eec 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 @@ -267,6 +267,10 @@ public class PatientFacade extends BaseServiceImpl { if(StringUtils.isNotEmpty(riskPatientsQueryRequest.getIsFocus())){ patientsQuery.setIsFocus(riskPatientsQueryRequest.getIsFocus()); } + //重点关注人数时间查询 + if(StringUtils.isNotEmpty(riskPatientsQueryRequest.getFocusTime())){ + patientsQuery.setFocusTime(riskPatientsQueryRequest.getFocusTime()); + } //乡镇卫生院查询条件 if (StringUtils.isNotEmpty(riskPatientsQueryRequest.getTownOrgId())) { patientsQuery.setTownOrgId(riskPatientsQueryRequest.getTownOrgId()); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java index 5b33e58..ad220d7 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java @@ -1636,4 +1636,192 @@ public class RiskReportFacade { // series.addAll(mom); + /** + * 孕妇、产妇查询高危统计,wx该统计的高危是已经有孕妇有此高危 + * + * @return + */ + public BaseListResponse querywxRiskReportCount(RiskPatientsQueryRequest riskPatientsQueryRequest, Integer userId) { + +// String hospitalId = "242"; + String hospitalId = autoMatchFacade.getHospitalId(userId); + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setYn(YnEnums.YES.getId()); + //最后一次检查时间 + if (StringUtils.isNotEmpty(riskPatientsQueryRequest.getLastCTime())) { + String nextDateStr = riskPatientsQueryRequest.getLastCTime(); + String[] dates = nextDateStr.split(" - "); + + patientsQuery.setLastCTimeStart(DateUtil.parseYMD(dates[0])); + if (dates.length == 2) { + patientsQuery.setLastCTimeEnd(DateUtil.parseYMD(dates[1])); + } + } + + List buildType = new ArrayList(); + buildType.add(0); + buildType.add(2); + patientsQuery.setBuildTypeList(buildType); + patientsQuery.setHospitalId(hospitalId); + + if (StringUtils.isNotEmpty(riskPatientsQueryRequest.getType())) { + if ("2".equals(riskPatientsQueryRequest.getType())) { + //1孕妇 + patientsQuery.setType(1); + } else if ("3".equals(riskPatientsQueryRequest.getType())) { + //3产妇 + patientsQuery.setType(3); + } + } + + + //预产期 + if (org.apache.commons.lang.StringUtils.isNotEmpty(riskPatientsQueryRequest.getDueDate())) { + String nextDateStr = riskPatientsQueryRequest.getDueDate(); + String[] dates = nextDateStr.split(" - "); + patientsQuery.setDueDateStart(DateUtil.parseYMD(dates[0])); + if (dates.length == 2) { + patientsQuery.setDueDateEnd(DateUtil.parseYMD(dates[1])); + } + } + + //建档时间 + if (org.apache.commons.lang.StringUtils.isNotEmpty(riskPatientsQueryRequest.getBuildTime())) { + + String nextDateStr = riskPatientsQueryRequest.getBuildTime(); + String[] dates = nextDateStr.split(" - "); + + patientsQuery.setBookbuildingDateStart(DateUtil.parseYMD(dates[0])); + if (dates.length == 2) { + patientsQuery.setBookbuildingDateEnd(DateUtil.parseYMD(dates[1])); + } + } + + //高危等级 + patientsQuery.setrLevel(riskPatientsQueryRequest.getrLevel()); + //产检医生 + patientsQuery.setLastCheckEmployeeId(riskPatientsQueryRequest.getLastCheckDoctorId()); + + patientsQuery.setNorFactor(Boolean.TRUE); + + PatientsQuery query = new PatientsQuery(); + query.setYn(YnEnums.YES.getId()); + query.setBuildTypeList(patientsQuery.getBuildTypeList()); + query.setHospitalId(patientsQuery.getHospitalId()); + query.setDueStatus(patientsQuery.getDueStatus()); + //高危等级 + query.setrLevel(patientsQuery.getrLevel()); + //产检医生 + query.setLastCheckEmployeeId(patientsQuery.getLastCheckEmployeeId()); + query.setDueDateStart(patientsQuery.getDueDateStart()); + query.setDueDateEnd(patientsQuery.getDueDateEnd()); + //最后一次检查时间 + if (StringUtils.isNotEmpty(riskPatientsQueryRequest.getLastCTime())) { + String nextDateStr = riskPatientsQueryRequest.getLastCTime(); + String[] dates = nextDateStr.split(" - "); + query.setLastCTimeStart(DateUtil.parseYMD(dates[0])); + query.setLastCTimeEnd(DateUtil.parseYMD(dates[0])); + } + query.setBookbuildingDateStart(patientsQuery.getBookbuildingDateStart()); + query.setBookbuildingDateEnd(patientsQuery.getBookbuildingDateEnd()); + query.setNotoRiskFactor(""); + query.setoRiskFactor("true"); + query.setNullrFactor(true); + query.setType(patientsQuery.getType()); + + //不包含国家高危的自定义高危人数 + int riskPatientCount = patientsService.queryPatientCount(query); + query.setNullrFactor(false); + //包含国家高危的自定义高危人数 + int otherPatientCount = patientsService.queryPatientCount(query); + + System.out.println(patientsQuery.convertToQuery().convertToMongoQuery().toString()); + //总的孕妇条数(国家标准高危) + int allPatientCount = patientsService.queryPatientCount(patientsQuery); + // allPatientCount += riskPatientCount; + + List results = new ArrayList<>(); + + BasicConfigQuery basicConfigQuery = new BasicConfigQuery(); + basicConfigQuery.setYn(YnEnums.YES.getId()); + basicConfigQuery.setParentId(SystemConfig.HIGH_RISK_ID); + basicConfigQuery.setEnable(1); + basicConfigQuery.setId(riskPatientsQueryRequest.getrLevel()); + + List futures = new ArrayList<>(); + List riskLevelConfig = basicConfigService.queryBasicConfig(basicConfigQuery); + if (CollectionUtils.isNotEmpty(riskLevelConfig)) { + + List mainRiskReportResults = new ArrayList<>(); + + for (BasicConfig levelConfig : riskLevelConfig) { + if ("e637b361-99cf-41eb-84f2-f0dab596e928".equals(levelConfig.getId())) { + continue; + } + RiskReportResult risk = new RiskReportResult(); + risk.setLevel(1); + risk.setHighRiskId(levelConfig.getId()); + risk.setHighRisk(levelConfig.getName()); + risk.setPid(levelConfig.getpId()); + Map map = new HashMap(); + levelConfig.replenRisk(map); + risk.setHighLevel(Arrays.asList(new Map[]{map})); + mainRiskReportResults.add(risk); + Callable c = new HiskCountTask(basicConfigService, + patientsService, levelConfig, + patientsQuery, + allPatientCount); + Future f = commonThreadPool.submit(c); + futures.add(f); + } + results.addAll(mainRiskReportResults); + + + if (CollectionUtils.isNotEmpty(futures)) { + for (Future f : futures) { + try { + results.addAll((List) f.get()); + } catch (Exception e) { + ExceptionUtils.catchException(e, "high risk count error."); + } + } + } + + results.addAll(getOtherRiskCount(otherPatientCount, allPatientCount + riskPatientCount)); + Map> slaveBasicConfigMap = new HashMap<>(); + for (RiskReportResult bc : results) { + if (bc.getPid() != null) { + if (slaveBasicConfigMap.containsKey(bc.getPid())) { + slaveBasicConfigMap.get(bc.getPid()).add(bc); + } else { + List basicConfigs = new ArrayList<>(); + basicConfigs.add(bc); + slaveBasicConfigMap.put(bc.getPid(), basicConfigs); + } + } + } + for (RiskReportResult bs : mainRiskReportResults) { + System.out.println(bs); + configData(bs, slaveBasicConfigMap, allPatientCount); + } + } + List datas = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(results)) + { + for (RiskReportResult result : results) + { + if (result.getRiskCount() == 0) + { + continue; + } + datas.add(result); + } + } + + + return new BaseListResponse() + .setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(datas); + } + + }