Commit 1d21235bdf730b8425838d8169d24ffd835f4efd
1 parent
5ff3888cf7
Exists in
master
and in
6 other branches
update
Showing 1 changed file with 97 additions and 2 deletions
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java
View file @
1d21235
| ... | ... | @@ -1115,7 +1115,7 @@ |
| 1115 | 1115 | |
| 1116 | 1116 | double bmi = Double.parseDouble(patientWeight.getBmi()); |
| 1117 | 1117 | //根据高危获取不同的卡路里计算公式 |
| 1118 | - Map<String, String> kmap = computeKulServiceManager.getComputeKulByRisk(rid).getComputeKul(Double.parseDouble(patientWeight.getBeforeWeight()), | |
| 1118 | + Map<String, String> kmap = getComputeKul(Double.parseDouble(patientWeight.getBeforeWeight()), | |
| 1119 | 1119 | Double.parseDouble(patientWeight.getNowWeight()), week, bmi, patientWeight.getBregmatic(), patientWeight.getBeforeHeight(), version); |
| 1120 | 1120 | |
| 1121 | 1121 | |
| ... | ... | @@ -1139,7 +1139,7 @@ |
| 1139 | 1139 | Map<String, Object> dinner2 = new LinkedHashMap<>(); // 晚加餐 |
| 1140 | 1140 | |
| 1141 | 1141 | String nsArea = ReportConfig.getNSArea(basicConfig.getName()); |
| 1142 | - WeightConfigModel configModel = patientWeightService.getWeightConfigBykcal(kmap, nsArea, rid); | |
| 1142 | + WeightConfigModel configModel = getWeightConfigBykcal(kmap, nsArea, rid); | |
| 1143 | 1143 | |
| 1144 | 1144 | if (configModel != null) { |
| 1145 | 1145 | setData(breakfast, "早餐", configModel.getBreakfast()); |
| ... | ... | @@ -1168,6 +1168,101 @@ |
| 1168 | 1168 | resp.setErrorcode(ResponseCode.SUCCESS.getCode()); |
| 1169 | 1169 | resp.setErrormsg("成功"); |
| 1170 | 1170 | return resp; |
| 1171 | + } | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + public WeightConfigModel getWeightConfigBykcal(Map<String, String> map, String northSouth, String risk) { | |
| 1175 | + if (map.get("kulStart") == null) { | |
| 1176 | + return null; | |
| 1177 | + } | |
| 1178 | + double kulStart = Double.valueOf(map.get("kulStart")); | |
| 1179 | + int k1 = ((int) kulStart / 100) * 100; | |
| 1180 | + double k2 = kulStart - k1; | |
| 1181 | + if (k2 > 50) { | |
| 1182 | + k1 += 100; | |
| 1183 | + } | |
| 1184 | + | |
| 1185 | + if (k1 < 1500) { | |
| 1186 | + k1 = 1500; | |
| 1187 | + } else if (k1 > 2800) { | |
| 1188 | + k1 = 2800; | |
| 1189 | + } | |
| 1190 | + Criteria criteria = null; | |
| 1191 | + if ("3".equals((String) map.get("type"))) { | |
| 1192 | + criteria = Criteria.where("kcal").is(k1).and("dietaryType").is(0); | |
| 1193 | + } else { | |
| 1194 | + criteria = Criteria.where("northSouth").is(northSouth).and("kcal").is(k1); | |
| 1195 | + } | |
| 1196 | + //如果传了高危因素id就按高危去查 | |
| 1197 | + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(risk)) { | |
| 1198 | + criteria = criteria.and("riskId").in(risk).and("type").is("1"); | |
| 1199 | + } else { | |
| 1200 | + criteria = criteria.and("type").is("0"); | |
| 1201 | + } | |
| 1202 | + Query query = Query.query(criteria); | |
| 1203 | + WeightConfigModel weightConfigModel = mongoTemplate.findOne(query, | |
| 1204 | + WeightConfigModel.class); | |
| 1205 | + return weightConfigModel; | |
| 1206 | + } | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + public Map<String, String> getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic, String beforeHeight,String version) { | |
| 1210 | + Map<String, String> map = new HashMap<>(); | |
| 1211 | + double kulStart = 0; | |
| 1212 | + double height = Double.valueOf(String.format("%.2f", Double.parseDouble(beforeHeight) / 100)); | |
| 1213 | + //孕早期 | |
| 1214 | + if (week <= 12) { | |
| 1215 | + kulStart = (new BigDecimal(Double.toString(height)).multiply(new BigDecimal(Double.toString(height))).doubleValue() * 21 + 1.5) * 30; | |
| 1216 | + } | |
| 1217 | + //孕中期 //孕晚期 | |
| 1218 | + else if (week > 12) { | |
| 1219 | + //基础kcal值 | |
| 1220 | + int basekul = (week > 12 && week <= 27) ? 340 : 450; | |
| 1221 | + | |
| 1222 | + String bmiStr = ""; | |
| 1223 | + | |
| 1224 | + if (org.apache.commons.lang.StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) { | |
| 1225 | + if (bmi < 18.5) { | |
| 1226 | + bmiStr = "BMI<18.5孕" + week + "周"; | |
| 1227 | + } else if (bmi <= 24.9 && bmi >= 18.5) { | |
| 1228 | + bmiStr = "BMI=18.5-24.9孕" + week + "周"; | |
| 1229 | + } else if (bmi <= 29.9 && bmi >= 25) { | |
| 1230 | + bmiStr = "BMI=25-29.9孕" + week + "周"; | |
| 1231 | + } else if (bmi >= 30) { | |
| 1232 | + bmiStr = "BMI≥30孕" + week + "周"; | |
| 1233 | + } | |
| 1234 | + } else { | |
| 1235 | + if (bmi <= 24.9) { | |
| 1236 | + bmiStr = "BMI≤24.9孕" + week + "周"; | |
| 1237 | + } else if (bmi <= 29.9 && bmi >= 25) { | |
| 1238 | + bmiStr = "BMI=25-29.9孕" + week + "周"; | |
| 1239 | + } else if (bmi >= 30) { | |
| 1240 | + bmiStr = "BMI≥30孕" + week + "周"; | |
| 1241 | + } | |
| 1242 | + } | |
| 1243 | + | |
| 1244 | + if (org.apache.commons.lang.StringUtils.isEmpty(bmiStr)) { | |
| 1245 | + return map; | |
| 1246 | + } | |
| 1247 | + | |
| 1248 | + String[] rangeWeight = null; | |
| 1249 | + if (org.apache.commons.lang.StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) { | |
| 1250 | + rangeWeight = ReportConfig.getWeightRange(bmiStr).split("-"); | |
| 1251 | + } else { | |
| 1252 | + rangeWeight = ReportConfig.getDWeightRange(bmiStr).split("-"); | |
| 1253 | + } | |
| 1254 | + | |
| 1255 | + if (rangeWeight == null || rangeWeight.length != 2) { | |
| 1256 | + return map; | |
| 1257 | + } | |
| 1258 | + | |
| 1259 | + double addWeightEnd = Double.parseDouble(rangeWeight[1]); | |
| 1260 | + | |
| 1261 | + kulStart = (new BigDecimal(Double.toString(height)).multiply(new BigDecimal(Double.toString(height))).doubleValue() * 21 + addWeightEnd ) * 30+basekul; | |
| 1262 | + } | |
| 1263 | + | |
| 1264 | + map.put("kulStart", String.valueOf(kulStart)); | |
| 1265 | + return map; | |
| 1171 | 1266 | } |
| 1172 | 1267 | |
| 1173 | 1268 |