Commit a3e7c7fc6dcac167277bbaf63908ceb73deb33e5

Authored by liquanyu
1 parent 4163205c1a

血糖报告

Showing 6 changed files with 175 additions and 7 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodSugarController.java View file @ a3e7c7f
... ... @@ -2,6 +2,7 @@
2 2  
3 3 import com.lyms.platform.common.annotation.TokenRequired;
4 4 import com.lyms.platform.common.base.BaseController;
  5 +import com.lyms.platform.common.base.LoginContext;
5 6 import com.lyms.platform.common.result.BaseResponse;
6 7 import com.lyms.platform.operate.web.service.IBloodSugarService;
7 8 import com.lyms.platform.pojo.BloodSugar;
... ... @@ -78,7 +79,7 @@
78 79 @ResponseBody
79 80 @RequestMapping(value = "/wx/{id}", method = RequestMethod.GET)
80 81 public BaseResponse setWeightInfo(@PathVariable String id, String beforeWeight, String currentWeight) {
81   - return bloodSugarService.addWeightInfo(id,beforeWeight,currentWeight);
  82 + return bloodSugarService.addWeightInfo(id, beforeWeight, currentWeight);
82 83 }
83 84  
84 85  
... ... @@ -109,6 +110,21 @@
109 110 @RequestMapping(value = "/app/{parentId}", method = RequestMethod.GET)
110 111 public BaseResponse getAppInfo(@PathVariable String parentId) {
111 112 return bloodSugarService.getAppInfo(parentId);
  113 + }
  114 +
  115 +
  116 + /**
  117 + * 院内系统血糖报告
  118 + * @param patientId
  119 + * @return
  120 + */
  121 + @ResponseBody
  122 + @RequestMapping(value = "/getBloodSugarReport/{patientId}", method = RequestMethod.GET)
  123 + @TokenRequired
  124 + public BaseResponse getSysBloodSugarReport(@PathVariable String patientId
  125 + ,HttpServletRequest httpServletRequest) {
  126 + LoginContext loginState = (LoginContext) httpServletRequest.getAttribute("loginContext");
  127 + return bloodSugarService.getSysBloodSugarReport(patientId,loginState.getId());
112 128 }
113 129  
114 130 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodSugarService.java View file @ a3e7c7f
... ... @@ -29,5 +29,7 @@
29 29 BaseResponse getBloodSugarReportList(String parentId);
30 30  
31 31 BaseResponse addWeightInfo(String id, String beforeWeight, String currentWeight);
  32 +
  33 + BaseResponse getSysBloodSugarReport(String patientId,Integer userId);
32 34 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java View file @ a3e7c7f
... ... @@ -2,7 +2,10 @@
2 2  
3 3 import com.lyms.platform.common.result.BaseResponse;
4 4 import com.lyms.platform.pojo.PatientWeight;
  5 +import com.lyms.platform.pojo.WeightConfigModel;
5 6  
  7 +import java.util.Map;
  8 +
6 9 /**
7 10 * Created by lt on 2017/9/6 0006
8 11 */
... ... @@ -34,5 +37,8 @@
34 37 String getBmi(String weight, String height);
35 38 BaseResponse patientBaseInfo(String pid);
36 39 BaseResponse update(Integer userId, String id, String beforeWeight, String beforeHeight, String date, String nowWeight, String bregmatic, String bregmaticOther, boolean sync);
  40 +
  41 + WeightConfigModel getWeightConfigByWeek(int week);
  42 + WeightConfigModel getWeightConfigBykcal(Map<String, String> map, String northSouth, String risk);
37 43 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java View file @ a3e7c7f
... ... @@ -15,6 +15,7 @@
15 15 import com.lyms.platform.operate.web.facade.AutoMatchFacade;
16 16 import com.lyms.platform.operate.web.facade.OrganizationGroupsFacade;
17 17 import com.lyms.platform.operate.web.service.IBloodSugarService;
  18 +import com.lyms.platform.operate.web.service.PatientWeightService;
18 19 import com.lyms.platform.operate.web.utils.CollectionUtils;
19 20 import com.lyms.platform.operate.web.utils.MathUtil;
20 21 import com.lyms.platform.operate.web.utils.MongoUtil;
21 22  
22 23  
... ... @@ -66,9 +67,17 @@
66 67 private CommonService commonService;
67 68  
68 69 @Autowired
  70 + private PatientsService patientsService;
  71 +
  72 + @Autowired
69 73 private AntenatalExaminationService antenatalExaminationService;
70 74  
  75 + @Autowired
  76 + private ComputeKulServiceManager computeKulServiceManager;
71 77  
  78 + @Autowired
  79 + private PatientWeightService patientWeightService;
  80 +
72 81 public BaseResponse add(Integer userId, BloodSugar bloodSugar) {
73 82 // BloodSugar one = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(bloodSugar.getParentId()).and("created").gt(DateUtil.getYMDTime()).and("bloodSugarType").is(bloodSugar.getBloodSugarType())), BloodSugar.class);
74 83 BloodSugar one = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(mongoUtil.getPid(bloodSugar.getParentId())).and("created").gt(DateUtil.getYMDTime()).and("bloodSugarType").is(bloodSugar.getBloodSugarType())), BloodSugar.class);
... ... @@ -459,7 +468,7 @@
459 468 hrisks.add("5aab6d3e422b03d4ad2bf83f");
460 469 hrisks.add("de7468e6-1bb5-4fab-ae84-78857868409a");
461 470 antExRecordQuery.setrFactorList(hrisks);
462   - List<AntExRecordModel> antExRecordModelList = recordService.queryAntExRecords(antExRecordQuery, Sort.Direction.ASC,"created");
  471 + List<AntExRecordModel> antExRecordModelList = recordService.queryAntExRecords(antExRecordQuery, Sort.Direction.ASC, "created");
463 472 if (org.apache.commons.collections.CollectionUtils.isNotEmpty(antExRecordModelList))
464 473 {
465 474 for (AntExRecordModel model : antExRecordModelList)
... ... @@ -870,7 +879,7 @@
870 879 kulEnd = kend;
871 880 }
872 881  
873   - map.put("kulStart",String.valueOf(kulStart));
  882 + map.put("kulStart", String.valueOf(kulStart));
874 883 map.put("kulEnd", String.valueOf(kulEnd));
875 884 return map;
876 885 }
... ... @@ -924,5 +933,137 @@
924 933 resp.setErrormsg(ResponseCode.SUCCESS.getMsg());
925 934 return resp;
926 935 }
  936 +
  937 + @Override
  938 + public BaseResponse getSysBloodSugarReport(String patientId, Integer userId) {
  939 +
  940 + BaseObjectResponse resp = new BaseObjectResponse();
  941 +
  942 + Patients patients = patientsService.findOnePatientById(patientId);
  943 +
  944 + List<String> risks = patients.getRiskFactorId(); //妊娠期糖尿病(无需药物治疗) //糖尿病合并妊娠(无需药物治疗)
  945 + if (!(CollectionUtils.isNotEmpty(risks) && (risks.contains("5aab6d3d422b03d4ad2bf83e") || risks.contains("5aab6d3e422b03d4ad2bf83f")
  946 + //需药物治疗的糖尿病
  947 + || risks.contains("de7468e6-1bb5-4fab-ae84-78857868409a"))))
  948 + {
  949 + resp.setErrorcode(ResponseCode.DATA_ERROR.getCode());
  950 + resp.setErrormsg("孕妇没有糖尿病不能出报告");
  951 + return resp;
  952 + }
  953 +
  954 +
  955 + PatientWeight patientWeight = mongoTemplate.findOne(Query.query(Criteria.where("patientId").is(patientId)), PatientWeight.class);
  956 + Map<String, String> dayWeights = patientWeight.getDayWeights();
  957 +
  958 + //当天没有体重测量
  959 + if (!(dayWeights != null && dayWeights.size() > 0 && StringUtils.isNotEmpty(dayWeights.get(DateUtil.getyyyy_MM_dd(new Date())))))
  960 + {
  961 + resp.setErrorcode(ResponseCode.DATA_ERROR.getCode());
  962 + resp.setErrormsg("当天没有测量体重,不能出报告");
  963 + return resp;
  964 + }
  965 +
  966 + String rid = "";
  967 +
  968 + int week = DateUtil.getWeek(patients.getLastMenses(), new Date());
  969 +
  970 + if (week < 6)
  971 + {
  972 + resp.setErrorcode(ResponseCode.DATA_ERROR.getCode());
  973 + resp.setErrormsg("小于6孕周,不能出报告");
  974 + return resp;
  975 + }
  976 + Map data = new HashMap();
  977 +
  978 + //妊娠期糖尿病(无需药物治疗) //糖尿病合并妊娠(无需药物治疗)
  979 + if (risks.contains("5aab6d3d422b03d4ad2bf83e") && (risks.contains("5aab6d3e422b03d4ad2bf83f")
  980 + //需药物治疗的糖尿病
  981 + || risks.contains("de7468e6-1bb5-4fab-ae84-78857868409a")))
  982 + {
  983 + rid = week < 24 ? "5aab6d3e422b03d4ad2bf83f": "5aab6d3d422b03d4ad2bf83e";
  984 + } //糖尿病合并妊娠(无需药物治疗) //需药物治疗的糖尿病
  985 + else if (risks.contains("5aab6d3e422b03d4ad2bf83f") || risks.contains("de7468e6-1bb5-4fab-ae84-78857868409a"))
  986 + {
  987 + rid = "5aab6d3e422b03d4ad2bf83f";
  988 + }
  989 + else
  990 + {
  991 + rid = "5aab6d3d422b03d4ad2bf83e";
  992 + }
  993 +
  994 + //1:妊娠期糖尿病(无需药物治疗) 2:糖尿病合并妊娠(无需药物治疗)(需药物治疗的糖尿病)
  995 + data.put("riskType","5aab6d3d422b03d4ad2bf83e".equals(rid) ? "1" : "2");
  996 +
  997 +
  998 +
  999 + double bmi = Double.parseDouble(patientWeight.getBmi());
  1000 + //根据高危获取不同的卡路里计算公式
  1001 + Map<String, String> kmap = computeKulServiceManager.getComputeKulByRisk(rid).getComputeKul(Double.parseDouble(patientWeight.getBeforeWeight()),
  1002 + Double.parseDouble(patientWeight.getNowWeight()), week, bmi, patientWeight.getBregmatic(), patientWeight.getBeforeHeight());
  1003 +
  1004 +
  1005 + String weekYyzl = "";
  1006 + WeightConfigModel weightConfigModel = patientWeightService.getWeightConfigByWeek(week);
  1007 + if (weightConfigModel != null)
  1008 + {
  1009 + weekYyzl = weightConfigModel.getWeekContent();
  1010 + }
  1011 + data.put("weekYyzl", weekYyzl);
  1012 +
  1013 + String hospitalId = autoMatchFacade.getHospitalId(userId);
  1014 + Organization org = organizationService.getOrganization(Integer.parseInt(hospitalId));
  1015 + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(org.getProvinceId());
  1016 +
  1017 +
  1018 +
  1019 + Map<String, Object> breakfast = new LinkedHashMap<>(); // 早餐
  1020 + Map<String, Object> breakfast2 = new LinkedHashMap<>(); // 上午加餐
  1021 + Map<String, Object> lunch = new LinkedHashMap<>(); // 午餐
  1022 + Map<String, Object> lunch2 = new LinkedHashMap<>(); // 下午加餐
  1023 + Map<String, Object> dinner = new LinkedHashMap<>(); // 晚餐
  1024 + Map<String, Object> dinner2 = new LinkedHashMap<>(); // 晚加餐
  1025 +
  1026 + String nsArea = ReportConfig.getNSArea(basicConfig.getName());
  1027 + WeightConfigModel configModel = patientWeightService.getWeightConfigBykcal(kmap, nsArea, rid);
  1028 +
  1029 + if (configModel != null)
  1030 + {
  1031 + setData(breakfast, "早餐", configModel.getBreakfast());
  1032 + setData(breakfast2, "上午加餐", configModel.getBreakfastAdd());
  1033 + setData(lunch, "午餐", configModel.getLunch());
  1034 + setData(lunch2, "下午加餐", configModel.getLunchAdd());
  1035 + setData(dinner, "晚餐", configModel.getDinner());
  1036 + setData(dinner2, "晚加餐", configModel.getDinnerAdd());
  1037 + }
  1038 +
  1039 + data.put("food", Arrays.asList(breakfast, breakfast2, lunch, lunch2, dinner, dinner2));
  1040 +
  1041 + String weekRange = "";
  1042 + if (week < 12)
  1043 + {
  1044 + weekRange = "1";
  1045 + }
  1046 + else if (week > 12 && week < 28)
  1047 + {
  1048 + weekRange = "2";
  1049 + }
  1050 + else
  1051 + {
  1052 + weekRange = "3";
  1053 + }
  1054 + data.put("weekRange",weekRange);
  1055 +
  1056 + resp.setData(data);
  1057 + resp.setErrorcode(ResponseCode.SUCCESS.getCode());
  1058 + resp.setErrormsg("成功");
  1059 + return resp;
  1060 + }
  1061 +
  1062 +
  1063 + private void setData(Map<String, Object> map, String key, String value) {
  1064 + map.put("id", key);
  1065 + map.put("name", value);
  1066 + }
  1067 +
927 1068 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java View file @ a3e7c7f
... ... @@ -1218,7 +1218,8 @@
1218 1218 }
1219 1219  
1220 1220  
1221   - private WeightConfigModel getWeightConfigBykcal(Map<String, String> map, String northSouth, String risk) {
  1221 + @Override
  1222 + public WeightConfigModel getWeightConfigBykcal(Map<String, String> map, String northSouth, String risk) {
1222 1223 if (map.get("kulStart") == null) {
1223 1224 return null;
1224 1225 }
... ... @@ -1249,7 +1250,8 @@
1249 1250 }
1250 1251  
1251 1252  
1252   - private WeightConfigModel getWeightConfigByWeek(int week) {
  1253 + @Override
  1254 + public WeightConfigModel getWeightConfigByWeek(int week) {
1253 1255 WeightConfigModel weightConfigModel = mongoTemplate.findOne(Query.query(Criteria.where("week").is(String.valueOf(week))),
1254 1256 WeightConfigModel.class);
1255 1257 return weightConfigModel;
... ... @@ -1263,7 +1265,8 @@
1263 1265 * @param beforeWeight 当前体重
1264 1266 * @return
1265 1267 */
1266   - private Map<String, String> getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic) {
  1268 +
  1269 + public Map<String, String> getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic) {
1267 1270 Map<String, String> map = new HashMap<>();
1268 1271  
1269 1272 double kulStart = 0;
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TnbComputeKulServiceImpl.java View file @ a3e7c7f
... ... @@ -57,7 +57,7 @@
57 57 String status = "";
58 58  
59 59 double add = Double.valueOf(String.format("%.2f", currentWeight - beforeWeight));
60   - double height = Double.valueOf(String.format("%.2f", beforeHeight));
  60 + double height = Double.valueOf(String.format("%.2f", Double.parseDouble(beforeHeight)/100));
61 61  
62 62 //孕早期
63 63 if (week <= 12) {