From 29299877d5ba2de5fd30a3aacc42e2c3450c5b62 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Wed, 30 Nov 2016 11:24:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/RiskReportController.java | 57 ++++++++ .../operate/web/facade/AntExRecordFacade.java | 5 +- .../operate/web/facade/RiskReportFacade.java | 149 +++++++++++++++++++++ .../operate/web/result/CjStatisticsListResult.java | 7 +- .../web/result/RiskReportPatientResult.java | 95 +++++++++++++ .../operate/web/result/RiskReportResult.java | 64 +++++++++ 6 files changed, 372 insertions(+), 5 deletions(-) create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RiskReportController.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/RiskReportPatientResult.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/RiskReportResult.java 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 new file mode 100644 index 0000000..884b52f --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RiskReportController.java @@ -0,0 +1,57 @@ +package com.lyms.platform.operate.web.controller; + +import com.lyms.platform.common.base.BaseController; +import com.lyms.platform.common.base.LoginContext; +import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.operate.web.facade.RiskReportFacade; +import com.lyms.platform.operate.web.request.RiskPatientsQueryRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; + + +/** + * Created by Administrator on 2016/6/22 0022. + */ +@Controller +public class RiskReportController extends BaseController { + + @Autowired + private RiskReportFacade riskReportFacade; + + /** + * 高危统计报表 + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/queryRiskReportCount") + @ResponseBody + public BaseResponse queryRiskReportCount(@Valid RiskPatientsQueryRequest patientsQueryRequest,HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return riskReportFacade.queryRiskReportCount(patientsQueryRequest,loginState.getId()); + + } + + +// /** +// * 高危孕妇统计报表 +// * @return +// */ +// @RequestMapping(method = RequestMethod.GET, value = "/queryRiskPatientReport") +// @ResponseBody +// public BaseResponse queryRiskPatientReport(@RequestParam(value = "dueDate", required = false) String dueDate, +// @RequestParam(value = "rLevel", required = false) String rLevel, +// @RequestParam(value = "checkDoctor", required = false) String checkDoctor, +// @RequestParam(value = "buildDate", required = false) String buildDate, +// @RequestParam(value = "riskId", required = false) String riskId) { +// +// return riskReportFacade.queryRiskPatientReport(dueDate, rLevel, checkDoctor, buildDate, riskId); +// +// } + + +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java index 24377fc..78257a3 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java @@ -165,7 +165,8 @@ public class AntExRecordFacade { } catch (Exception e) { ExceptionUtils.catchException(e, "patients.getRiskLevelId error."); } - cjStatisticsListResult.setrLevel(HighScoreResult.getLevelStr(HighScoreResult.filter(level))); + cjStatisticsListResult.setrLevel(HighScoreResult.filter(level)); +// cjStatisticsListResult.setrLevel(HighScoreResult.getLevelStr(HighScoreResult.filter(level))); } data.add(cjStatisticsListResult); } @@ -187,6 +188,6 @@ public class AntExRecordFacade { data.add(cjStatisticsResult); } } - return baseListResponse.setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(data); + return baseListResponse.setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(data).setPageInfo(patientsQuery1.getPageInfo()); } } \ No newline at end of file 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 new file mode 100644 index 0000000..242764c --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java @@ -0,0 +1,149 @@ +package com.lyms.platform.operate.web.facade; + +import com.lyms.platform.biz.service.*; +import com.lyms.platform.common.base.LoginContext; +import com.lyms.platform.common.constants.ErrorCodeConstants; +import com.lyms.platform.common.enums.FyTypeEnums; +import com.lyms.platform.common.enums.SexEnum; +import com.lyms.platform.common.enums.WyTypeEnums; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.result.BaseObjectResponse; +import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.common.utils.JsonUtil; +import com.lyms.platform.common.utils.StringUtils; +import com.lyms.platform.common.utils.SystemConfig; +import com.lyms.platform.operate.web.request.BabyCheckRequest; +import com.lyms.platform.operate.web.request.RiskPatientsQueryRequest; +import com.lyms.platform.operate.web.result.*; +import com.lyms.platform.permission.model.Organization; +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.*; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Component; + +import java.text.DecimalFormat; +import java.util.*; + +@Component +public class RiskReportFacade { + + + + @Autowired + private PatientsService patientsService; + + + @Autowired + private BasicConfigService basicConfigService; + + + @Autowired + private AutoMatchFacade autoMatchFacade; + + /** + * 查询高危统计,该统计的高危是已经有孕妇有此高危 + * @return + */ + public BaseObjectResponse queryRiskReportCount(RiskPatientsQueryRequest riskPatientsQueryRequest,Integer userId) { + + String hospitalId = "242"; +// hospitalId = autoMatchFacade.getHospitalId(userId); + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setYn(YnEnums.YES.getId()); + + List buildType = new ArrayList(); + buildType.add(0); + buildType.add(2); + patientsQuery.setBuildTypeList(buildType); + patientsQuery.setHospitalId(hospitalId); + + //1孕妇 +// patientsQuery.setType(1); + // 0未终止妊娠 1终止妊娠 + patientsQuery.setDueStatus(0); + + //预产期 + 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()); + + //总的孕妇条数 + int allPatientCount = patientsService.queryPatientCount(patientsQuery); + + List results = new ArrayList<>(); + + BasicConfigQuery basicConfigQuery = new BasicConfigQuery(); + basicConfigQuery.setYn(YnEnums.YES.getId()); + basicConfigQuery.setParentId(SystemConfig.HIGH_RISK_ID); + basicConfigQuery.setEnable(1); + + List riskLevelConfig = basicConfigService.queryBasicConfig(basicConfigQuery); + if (CollectionUtils.isNotEmpty(riskLevelConfig)) + { + for(BasicConfig levelConfig : riskLevelConfig) + { + basicConfigQuery.setParentId(levelConfig.getId()); + List riskConfig = basicConfigService.queryBasicConfig(basicConfigQuery); + + if (CollectionUtils.isNotEmpty(riskConfig)) { + for (BasicConfig config : riskConfig) { + patientsQuery.setrFactor(config.getId()); + //单个高危孕妇条数 + int riskPatientCount = patientsService.queryPatientCount(patientsQuery); + if (riskPatientCount > 0) + { + RiskReportResult risk = new RiskReportResult(); + risk.setHighRiskId(config.getId()); + risk.setHighRisk(config.getName()); + risk.setRiskCount(String.valueOf(riskPatientCount)); + + DecimalFormat df = new DecimalFormat("0.00"); + String percent = df.format((double)riskPatientCount/allPatientCount*100)+"%"; + risk.setPercent(percent); + risk.setHighLevel(levelConfig.getName()); + results.add(risk); + } + } + } + } + } + return new BaseObjectResponse() + .setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setData(results); + } +// +// public BaseResponse queryRiskPatientReport(Integer userId,) { +// LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); +// patientFacade.queryHighRisk(patientsQueryRequest, Boolean.TRUE, 1, loginState.getId(), "true",Boolean.FALSE); +// +// return null; +// } + +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/CjStatisticsListResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/CjStatisticsListResult.java index 4c6b3ec..e096903 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/CjStatisticsListResult.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/CjStatisticsListResult.java @@ -7,6 +7,7 @@ import com.lyms.platform.pojo.Patients; import org.codehaus.jackson.annotate.JsonIgnore; import java.util.Date; +import java.util.List; /** * Created by Administrator on 2016/11/29 0029. @@ -25,7 +26,7 @@ public class CjStatisticsListResult { private Integer score; //等级 - private String rLevel; + private List rLevel; //因素 private String rRisk; //产检医生 @@ -95,11 +96,11 @@ public class CjStatisticsListResult { this.score = score; } - public String getrLevel() { + public List getrLevel() { return rLevel; } - public void setrLevel(String rLevel) { + public void setrLevel(List rLevel) { this.rLevel = rLevel; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/RiskReportPatientResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/RiskReportPatientResult.java new file mode 100644 index 0000000..73e50cd --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/RiskReportPatientResult.java @@ -0,0 +1,95 @@ +package com.lyms.platform.operate.web.result; + + +import java.util.List; +import java.util.Map; + +/** + * Created by lqy on 2016/11/28. + */ +public class RiskReportPatientResult { + + //孕妇 + private String id; + //孕妇名字 + private String name; + + //孕周 + private String dueWeek; + //风险等级 + private List rLevel; + + //高危评分 + private Integer hScore; + + //预产期 + private String dueDate; + //产检医生 + private String checkDoctor; + + private String pid; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDueWeek() { + return dueWeek; + } + + public void setDueWeek(String dueWeek) { + this.dueWeek = dueWeek; + } + + public List getrLevel() { + return rLevel; + } + + public void setrLevel(List rLevel) { + this.rLevel = rLevel; + } + + public Integer gethScore() { + return hScore; + } + + public void sethScore(Integer hScore) { + this.hScore = hScore; + } + + public String getDueDate() { + return dueDate; + } + + public void setDueDate(String dueDate) { + this.dueDate = dueDate; + } + + public String getCheckDoctor() { + return checkDoctor; + } + + public void setCheckDoctor(String checkDoctor) { + this.checkDoctor = checkDoctor; + } + + public String getPid() { + return pid; + } + + public void setPid(String pid) { + this.pid = pid; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/RiskReportResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/RiskReportResult.java new file mode 100644 index 0000000..c5b9ac2 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/RiskReportResult.java @@ -0,0 +1,64 @@ +package com.lyms.platform.operate.web.result; + + +/** + * 高危报表结果 + * Created by lqy on 2016/11/28 + */ +public class RiskReportResult { + + //高危因素Id + private String highRiskId; + + //风险等级 + private String highLevel; + + //高危因素 + private String highRisk; + + //人数 + private String riskCount; + + //发病率 + private String percent; + + public String getHighRiskId() { + return highRiskId; + } + + public void setHighRiskId(String highRiskId) { + this.highRiskId = highRiskId; + } + + public String getHighLevel() { + return highLevel; + } + + public void setHighLevel(String highLevel) { + this.highLevel = highLevel; + } + + public String getHighRisk() { + return highRisk; + } + + public void setHighRisk(String highRisk) { + this.highRisk = highRisk; + } + + public String getRiskCount() { + return riskCount; + } + + public void setRiskCount(String riskCount) { + this.riskCount = riskCount; + } + + public String getPercent() { + return percent; + } + + public void setPercent(String percent) { + this.percent = percent; + } +} -- 1.8.3.1