diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodSugarController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodSugarController.java index 5078091..b74ac99 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodSugarController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodSugarController.java @@ -2,6 +2,7 @@ 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.result.BaseResponse; import com.lyms.platform.operate.web.service.IBloodSugarService; import com.lyms.platform.pojo.BloodSugar; @@ -78,7 +79,7 @@ public class BloodSugarController extends BaseController { @ResponseBody @RequestMapping(value = "/wx/{id}", method = RequestMethod.GET) public BaseResponse setWeightInfo(@PathVariable String id, String beforeWeight, String currentWeight) { - return bloodSugarService.addWeightInfo(id,beforeWeight,currentWeight); + return bloodSugarService.addWeightInfo(id, beforeWeight, currentWeight); } @@ -111,4 +112,19 @@ public class BloodSugarController extends BaseController { return bloodSugarService.getAppInfo(parentId); } + + /** + * 院内系统血糖报告 + * @param patientId + * @return + */ + @ResponseBody + @RequestMapping(value = "/getBloodSugarReport/{patientId}", method = RequestMethod.GET) + @TokenRequired + public BaseResponse getSysBloodSugarReport(@PathVariable String patientId + ,HttpServletRequest httpServletRequest) { + LoginContext loginState = (LoginContext) httpServletRequest.getAttribute("loginContext"); + return bloodSugarService.getSysBloodSugarReport(patientId,loginState.getId()); + } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodSugarService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodSugarService.java index ec5ee43..24aaaa9 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodSugarService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodSugarService.java @@ -29,4 +29,6 @@ public interface IBloodSugarService extends IBaseService { BaseResponse getBloodSugarReportList(String parentId); BaseResponse addWeightInfo(String id, String beforeWeight, String currentWeight); + + BaseResponse getSysBloodSugarReport(String patientId,Integer userId); } 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 49c5886..36edc0e 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 @@ -2,6 +2,9 @@ package com.lyms.platform.operate.web.service; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.pojo.PatientWeight; +import com.lyms.platform.pojo.WeightConfigModel; + +import java.util.Map; /** * Created by lt on 2017/9/6 0006 @@ -34,4 +37,7 @@ public interface PatientWeightService extends IBaseService { String getBmi(String weight, String height); BaseResponse patientBaseInfo(String pid); BaseResponse update(Integer userId, String id, String beforeWeight, String beforeHeight, String date, String nowWeight, String bregmatic, String bregmaticOther, boolean sync); + + WeightConfigModel getWeightConfigByWeek(int week); + WeightConfigModel getWeightConfigBykcal(Map map, String northSouth, String risk); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java index 8cfc99e..ec51994 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java @@ -15,6 +15,7 @@ import com.lyms.platform.operate.web.facade.AntExRecordFacade; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.facade.OrganizationGroupsFacade; import com.lyms.platform.operate.web.service.IBloodSugarService; +import com.lyms.platform.operate.web.service.PatientWeightService; import com.lyms.platform.operate.web.utils.CollectionUtils; import com.lyms.platform.operate.web.utils.MathUtil; import com.lyms.platform.operate.web.utils.MongoUtil; @@ -66,8 +67,16 @@ public class BloodSugarServiceImpl extends BaseServiceImpl implements IBloodSuga private CommonService commonService; @Autowired + private PatientsService patientsService; + + @Autowired private AntenatalExaminationService antenatalExaminationService; + @Autowired + private ComputeKulServiceManager computeKulServiceManager; + + @Autowired + private PatientWeightService patientWeightService; public BaseResponse add(Integer userId, BloodSugar bloodSugar) { // BloodSugar one = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(bloodSugar.getParentId()).and("created").gt(DateUtil.getYMDTime()).and("bloodSugarType").is(bloodSugar.getBloodSugarType())), BloodSugar.class); @@ -459,7 +468,7 @@ public class BloodSugarServiceImpl extends BaseServiceImpl implements IBloodSuga hrisks.add("5aab6d3e422b03d4ad2bf83f"); hrisks.add("de7468e6-1bb5-4fab-ae84-78857868409a"); antExRecordQuery.setrFactorList(hrisks); - List antExRecordModelList = recordService.queryAntExRecords(antExRecordQuery, Sort.Direction.ASC,"created"); + List antExRecordModelList = recordService.queryAntExRecords(antExRecordQuery, Sort.Direction.ASC, "created"); if (org.apache.commons.collections.CollectionUtils.isNotEmpty(antExRecordModelList)) { for (AntExRecordModel model : antExRecordModelList) @@ -870,7 +879,7 @@ public class BloodSugarServiceImpl extends BaseServiceImpl implements IBloodSuga kulEnd = kend; } - map.put("kulStart",String.valueOf(kulStart)); + map.put("kulStart", String.valueOf(kulStart)); map.put("kulEnd", String.valueOf(kulEnd)); return map; } @@ -924,4 +933,136 @@ public class BloodSugarServiceImpl extends BaseServiceImpl implements IBloodSuga resp.setErrormsg(ResponseCode.SUCCESS.getMsg()); return resp; } + + @Override + public BaseResponse getSysBloodSugarReport(String patientId, Integer userId) { + + BaseObjectResponse resp = new BaseObjectResponse(); + + Patients patients = patientsService.findOnePatientById(patientId); + + List risks = patients.getRiskFactorId(); //妊娠期糖尿病(无需药物治疗) //糖尿病合并妊娠(无需药物治疗) + if (!(CollectionUtils.isNotEmpty(risks) && (risks.contains("5aab6d3d422b03d4ad2bf83e") || risks.contains("5aab6d3e422b03d4ad2bf83f") + //需药物治疗的糖尿病 + || risks.contains("de7468e6-1bb5-4fab-ae84-78857868409a")))) + { + resp.setErrorcode(ResponseCode.DATA_ERROR.getCode()); + resp.setErrormsg("孕妇没有糖尿病不能出报告"); + return resp; + } + + + PatientWeight patientWeight = mongoTemplate.findOne(Query.query(Criteria.where("patientId").is(patientId)), PatientWeight.class); + Map dayWeights = patientWeight.getDayWeights(); + + //当天没有体重测量 + if (!(dayWeights != null && dayWeights.size() > 0 && StringUtils.isNotEmpty(dayWeights.get(DateUtil.getyyyy_MM_dd(new Date()))))) + { + resp.setErrorcode(ResponseCode.DATA_ERROR.getCode()); + resp.setErrormsg("当天没有测量体重,不能出报告"); + return resp; + } + + String rid = ""; + + int week = DateUtil.getWeek(patients.getLastMenses(), new Date()); + + if (week < 6) + { + resp.setErrorcode(ResponseCode.DATA_ERROR.getCode()); + resp.setErrormsg("小于6孕周,不能出报告"); + return resp; + } + Map data = new HashMap(); + + //妊娠期糖尿病(无需药物治疗) //糖尿病合并妊娠(无需药物治疗) + if (risks.contains("5aab6d3d422b03d4ad2bf83e") && (risks.contains("5aab6d3e422b03d4ad2bf83f") + //需药物治疗的糖尿病 + || risks.contains("de7468e6-1bb5-4fab-ae84-78857868409a"))) + { + rid = week < 24 ? "5aab6d3e422b03d4ad2bf83f": "5aab6d3d422b03d4ad2bf83e"; + } //糖尿病合并妊娠(无需药物治疗) //需药物治疗的糖尿病 + else if (risks.contains("5aab6d3e422b03d4ad2bf83f") || risks.contains("de7468e6-1bb5-4fab-ae84-78857868409a")) + { + rid = "5aab6d3e422b03d4ad2bf83f"; + } + else + { + rid = "5aab6d3d422b03d4ad2bf83e"; + } + + //1:妊娠期糖尿病(无需药物治疗) 2:糖尿病合并妊娠(无需药物治疗)(需药物治疗的糖尿病) + data.put("riskType","5aab6d3d422b03d4ad2bf83e".equals(rid) ? "1" : "2"); + + + + double bmi = Double.parseDouble(patientWeight.getBmi()); + //根据高危获取不同的卡路里计算公式 + Map kmap = computeKulServiceManager.getComputeKulByRisk(rid).getComputeKul(Double.parseDouble(patientWeight.getBeforeWeight()), + Double.parseDouble(patientWeight.getNowWeight()), week, bmi, patientWeight.getBregmatic(), patientWeight.getBeforeHeight()); + + + String weekYyzl = ""; + WeightConfigModel weightConfigModel = patientWeightService.getWeightConfigByWeek(week); + if (weightConfigModel != null) + { + weekYyzl = weightConfigModel.getWeekContent(); + } + data.put("weekYyzl", weekYyzl); + + String hospitalId = autoMatchFacade.getHospitalId(userId); + Organization org = organizationService.getOrganization(Integer.parseInt(hospitalId)); + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(org.getProvinceId()); + + + + Map breakfast = new LinkedHashMap<>(); // 早餐 + Map breakfast2 = new LinkedHashMap<>(); // 上午加餐 + Map lunch = new LinkedHashMap<>(); // 午餐 + Map lunch2 = new LinkedHashMap<>(); // 下午加餐 + Map dinner = new LinkedHashMap<>(); // 晚餐 + Map dinner2 = new LinkedHashMap<>(); // 晚加餐 + + String nsArea = ReportConfig.getNSArea(basicConfig.getName()); + WeightConfigModel configModel = patientWeightService.getWeightConfigBykcal(kmap, nsArea, rid); + + if (configModel != null) + { + setData(breakfast, "早餐", configModel.getBreakfast()); + setData(breakfast2, "上午加餐", configModel.getBreakfastAdd()); + setData(lunch, "午餐", configModel.getLunch()); + setData(lunch2, "下午加餐", configModel.getLunchAdd()); + setData(dinner, "晚餐", configModel.getDinner()); + setData(dinner2, "晚加餐", configModel.getDinnerAdd()); + } + + data.put("food", Arrays.asList(breakfast, breakfast2, lunch, lunch2, dinner, dinner2)); + + String weekRange = ""; + if (week < 12) + { + weekRange = "1"; + } + else if (week > 12 && week < 28) + { + weekRange = "2"; + } + else + { + weekRange = "3"; + } + data.put("weekRange",weekRange); + + resp.setData(data); + resp.setErrorcode(ResponseCode.SUCCESS.getCode()); + resp.setErrormsg("成功"); + return resp; + } + + + private void setData(Map map, String key, String value) { + map.put("id", key); + map.put("name", value); + } + } 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 2553a04..bad7f14 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 @@ -1218,7 +1218,8 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient } - private WeightConfigModel getWeightConfigBykcal(Map map, String northSouth, String risk) { + @Override + public WeightConfigModel getWeightConfigBykcal(Map map, String northSouth, String risk) { if (map.get("kulStart") == null) { return null; } @@ -1249,7 +1250,8 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient } - private WeightConfigModel getWeightConfigByWeek(int week) { + @Override + public WeightConfigModel getWeightConfigByWeek(int week) { WeightConfigModel weightConfigModel = mongoTemplate.findOne(Query.query(Criteria.where("week").is(String.valueOf(week))), WeightConfigModel.class); return weightConfigModel; @@ -1263,7 +1265,8 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient * @param beforeWeight 当前体重 * @return */ - private Map getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic) { + + public Map getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic) { Map map = new HashMap<>(); double kulStart = 0; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TnbComputeKulServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TnbComputeKulServiceImpl.java index 86c8447..8aada4c 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TnbComputeKulServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TnbComputeKulServiceImpl.java @@ -57,7 +57,7 @@ class TnbComputeKulServiceImpl implements IComputeKul { String status = ""; double add = Double.valueOf(String.format("%.2f", currentWeight - beforeWeight)); - double height = Double.valueOf(String.format("%.2f", beforeHeight)); + double height = Double.valueOf(String.format("%.2f", Double.parseDouble(beforeHeight)/100)); //孕早期 if (week <= 12) {