Commit ac586f9a6af99aadfdb49a59867e70a2ff88528c

Authored by wtt
1 parent d4e6ffcd39

体成分分析报告第二版

Showing 1 changed file with 31 additions and 161 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/VolumeComponentAnalysisFacade.java View file @ ac586f9
... ... @@ -247,92 +247,40 @@
247 247  
248 248 //人体成分分析信息
249 249 Map<String, Object> componentInfo = new HashMap<>();
250   -// componentInfo.put("water", Double.valueOf(volumeComponentAnalysisModel.getIcw() + Double.valueOf(volumeComponentAnalysisModel.getEcw())));
251   - componentInfo.put("water",volumeComponentAnalysisModel.getWater());//身体总水分
252   - Map<String, String> sfMap = rangeMap(DateUtil.getWeek2(patients.getLastMenses(), new Date()),
253   - Double.valueOf(volumeComponentAnalysisModel.getWeight()),
254   - "sf");
255   - componentInfo.put("waterMax",sfMap.get("max"));//身体总 水分正常范围的高值
256   - componentInfo.put("waterMin",sfMap.get("min"));//身体总 水分正常范围的低值
257   - componentInfo.put("icw", volumeComponentAnalysisModel.getIcw());//细胞内液
258   - Map<String, String> xbnyMap = rangeMap(DateUtil.getWeek2(patients.getLastMenses(), new Date()),
259   - Double.valueOf(volumeComponentAnalysisModel.getWeight()),
260   - "xbny");
261   - componentInfo.put("icwMax", xbnyMap.get("max"));//细胞内液高值
262   - componentInfo.put("icwMin", xbnyMap.get("min"));//细胞内液低值
263   - componentInfo.put("ecw", volumeComponentAnalysisModel.getEcw());//细胞外液
264   - Map<String, String> xbwyMap = rangeMap(DateUtil.getWeek2(patients.getLastMenses(), new Date()),
265   - Double.valueOf(volumeComponentAnalysisModel.getWeight()),
266   - "xbwy");
267   - componentInfo.put("ecwMax", xbwyMap.get("max"));//细胞外液高值
268   - componentInfo.put("ecwMin", xbwyMap.get("min"));//细胞外液低值
  250 + componentInfo.put("protein", volumeComponentAnalysisModel.getProtein());//蛋白质
  251 + componentInfo.put("proteinMax", volumeComponentAnalysisModel.getProteinMax());//蛋白质正常范围的高值
  252 + componentInfo.put("proteinMin", volumeComponentAnalysisModel.getProteinMin());//蛋白质正常范围的低值
269 253 componentInfo.put("muscle", volumeComponentAnalysisModel.getMuscle());//肌肉
270   - Map<String, String> jrMap = rangeMap(DateUtil.getWeek2(patients.getLastMenses(), new Date()),
271   - Double.valueOf(volumeComponentAnalysisModel.getWeight()),
272   - "jr");
273   - componentInfo.put("muscleMax", jrMap.get("max"));//肌肉正常范围的高值
274   - componentInfo.put("muscleMin", jrMap.get("min"));//肌肉正常范围的低值
275 254 componentInfo.put("lbm", volumeComponentAnalysisModel.getLbm());//瘦体重(去脂体重)
276 255 componentInfo.put("weight", volumeComponentAnalysisModel.getWeight());//体重
277   - componentInfo.put("protein", volumeComponentAnalysisModel.getProtein());//蛋白质
278   - Map<String, String> dbzMap = rangeMap(DateUtil.getWeek2(patients.getLastMenses(), new Date()),
279   - Double.valueOf(volumeComponentAnalysisModel.getWeight()),
280   - "dbz");
281   - componentInfo.put("proteinMax", dbzMap.get("max"));//蛋白质正常范围的高值
282   - componentInfo.put("proteinMin", dbzMap.get("min"));//蛋白质正常范围的低值
283 256 componentInfo.put("bone", volumeComponentAnalysisModel.getBone());//骨质
284   - componentInfo.put("boneMax", "2.5");//骨质正常范围的高值
285   - componentInfo.put("boneMin", "3.5");//骨质正常范围的低值
  257 + componentInfo.put("boneMax", volumeComponentAnalysisModel.getBoneMax());//骨质正常范围的高值
  258 + componentInfo.put("boneMin", volumeComponentAnalysisModel.getBoneMin());//骨质正常范围的低值
286 259 componentInfo.put("fat", volumeComponentAnalysisModel.getFat());//脂肪
287   - Map<String, String> zfMap = rangeMap(DateUtil.getWeek2(patients.getLastMenses(), new Date()),
288   - Double.valueOf(volumeComponentAnalysisModel.getWeight()),
289   - "zf");
290   - componentInfo.put("fatMax", zfMap.get("max"));//脂肪正常范围的高值
291   - componentInfo.put("fatMin", zfMap.get("min"));//脂肪正常范围的低值
  260 + componentInfo.put("fatMax", volumeComponentAnalysisModel.getFatMax());//脂肪正常范围的高值
  261 + componentInfo.put("fatMin", volumeComponentAnalysisModel.getFatMin());//脂肪正常范围的低值
292 262 data.add(componentInfo);
293 263  
294   - //体型判定(体型判定2赋值)
295   - Map<String, Object> somatotype = new HashMap<>();
296 264  
297 265 //基本评估
298 266 Map<String, Object> basicInfo = new HashMap<>();
299 267 basicInfo.put("basicWeight", volumeComponentAnalysisModel.getWeight());//体重
300   - Map<String, String> tzMap = rangeMaptz( DateUtil.getWeek2(patients.getLastMenses(), new Date()),
301   - Double.valueOf(volumeComponentAnalysisModel.getBeforeWeight()), bmi, volumeComponentAnalysisModel.getBregmatic());
302   - basicInfo.put("basicWeightMax", tzMap.get("max"));//体重正常范围的高值
303   - basicInfo.put("basicWeightMin", tzMap.get("min"));//体重正常范围的低值
  268 + basicInfo.put("basicWeightMax", volumeComponentAnalysisModel.getWeightMax());//体重正常范围的高值
  269 + basicInfo.put("basicWeightMin", volumeComponentAnalysisModel.getWeightMin());//体重正常范围的低值
304 270 basicInfo.put("basicMuscle", volumeComponentAnalysisModel.getMuscle());//肌肉
305   - basicInfo.put("basicMuscleMax", jrMap.get("max"));//肌肉正常范围的高值
306   - basicInfo.put("basicMuscleMin", jrMap.get("min"));//肌肉正常范围的低值
  271 + basicInfo.put("basicMuscleMax", volumeComponentAnalysisModel.getMuscleMax());//肌肉正常范围的高值
  272 + basicInfo.put("basicMuscleMin", volumeComponentAnalysisModel.getMuscleMin());//肌肉正常范围的低值
307 273 basicInfo.put("basicPbf", volumeComponentAnalysisModel.getPbf());//体脂百分比
308   - basicInfo.put("basicPbfMax", zfMap.get("max"));//体脂率正常范围的高值
309   - basicInfo.put("basicPbfMin", zfMap.get("min"));//体脂率正常范围的低值
  274 + basicInfo.put("basicPbfMax", volumeComponentAnalysisModel.getPbfMax());//体脂率正常范围的高值
  275 + basicInfo.put("basicPbfMin", volumeComponentAnalysisModel.getPbfMin());//体脂率正常范围的低值
310 276 basicInfo.put("basicBone", volumeComponentAnalysisModel.getBone());//骨质
311   - basicInfo.put("basicBoneMax", "3.5");//骨质正常范围的高值
312   - basicInfo.put("basicBoneMin", "2.5");//骨质正常范围的低值
313   - basicInfo.put("basicWater",volumeComponentAnalysisModel.getWater());//身体总水分
314   -
315   - basicInfo.put("basicWaterMax",sfMap.get("max"));//身体总 水分正常范围的高值
316   - basicInfo.put("basicWaterMin",sfMap.get("min"));//身体总 水分正常范围的低值
  277 + basicInfo.put("basicBoneMax", volumeComponentAnalysisModel.getBoneMax());//骨质正常范围的高值
  278 + basicInfo.put("basicBoneMin", volumeComponentAnalysisModel.getBoneMin());//骨质正常范围的低值
317 279 basicInfo.put("basicSmm", volumeComponentAnalysisModel.getSmm());//骨骼肌
318 280 basicInfo.put("basicSmmMax", volumeComponentAnalysisModel.getSmmMax());//骨骼肌正常范围的高值
319 281 basicInfo.put("basicSmmMin", volumeComponentAnalysisModel.getSmmMin());//骨骼肌正常范围的低值
320   - basicInfo.put("basicBmi", volumeComponentAnalysisModel.getBmi());//体质指数
321   - basicInfo.put("basicBmiMax", volumeComponentAnalysisModel.getBmiMax());//体质指数正常范围的高值
322   - basicInfo.put("basicBmiMin", volumeComponentAnalysisModel.getBmiMin());//体质指数正常范围的低值
323   -// basicInfo.put("basicWhr", volumeComponentAnalysisModel.getWhr());//腰臀比(2位小数) 泉渝说郝总说不用做
324   -// basicInfo.put("basicWhrMax", volumeComponentAnalysisModel.getWhrMax());//腰臀比正常范围的高值
325   -// basicInfo.put("basicWhrMin", volumeComponentAnalysisModel.getWhrMin());//腰臀比正常范围的低值
326 282 data.add(basicInfo);
327 283  
328   - //体重管理
329   - Map<String, Object> weightManagement = new HashMap<>();
330   - weightManagement.put("standardWeight",volumeComponentAnalysisModel.getStandardWeight());//标准体重
331   - weightManagement.put("weightControl",volumeComponentAnalysisModel.getWeightControl());//体重控制
332   - weightManagement.put("fatControl",volumeComponentAnalysisModel.getFatControl());//脂肪控制量
333   - weightManagement.put("muscleControl",volumeComponentAnalysisModel.getMuscleControl());//肌肉控制量
334   - data.add(weightManagement);
335   -
336 284 //内脏脂肪分析
337 285 Map<String, Object> viscusInfo = new HashMap<>();
338 286 viscusInfo.put("viscusTrFat", volumeComponentAnalysisModel.getTrFat());//躯干脂肪量 总量
339 287  
... ... @@ -347,55 +295,23 @@
347 295 viscusInfo.put("viscusTrFatNumber", v);//内脏脂肪指数
348 296 data.add(viscusInfo);
349 297  
350   - //水肿分析
351   - Map<String, Object> edemaAnalysis = new HashMap<>();
352   - if(!StringUtils.isEmpty(volumeComponentAnalysisModel.getWater()) && !StringUtils.isEmpty(volumeComponentAnalysisModel.getWeight()) ){
353   - String water = volumeComponentAnalysisModel.getWater();//水分
354   - String weight = volumeComponentAnalysisModel.getWeight();//体重
355   - double waterd = Double.parseDouble(water);
356   - double weightd = Double.parseDouble(weight);
357   - double moistureRate = weightd / waterd;
358   - moistureRate = new BigDecimal(moistureRate).setScale(2, RoundingMode.DOWN).doubleValue();
359   - edemaAnalysis.put("moistureRate", moistureRate);//身体水分率
360   - }
361   - edemaAnalysis.put("edema", volumeComponentAnalysisModel.getEdema());//水肿系数
362   - edemaAnalysis.put("edemaMax", volumeComponentAnalysisModel.getEdemaMax());//水肿系数正常范围的高值
363   - edemaAnalysis.put("edemaMin", volumeComponentAnalysisModel.getEdemaMin());//水肿系数正常范围的低值
364   - if(!StringUtils.isEmpty(volumeComponentAnalysisModel.getEdema())
365   - && !StringUtils.isEmpty(volumeComponentAnalysisModel.getEdemaMax())
366   - && !StringUtils.isEmpty(volumeComponentAnalysisModel.getEdemaMin()) ){
367   - String edema = volumeComponentAnalysisModel.getEdema();
368   - double edemad = Double.parseDouble(edema);
369   - String edemaMax = volumeComponentAnalysisModel.getEdemaMax();
370   - double edemaMaxd = Double.parseDouble(edemaMax);
371   - String edemaMin = volumeComponentAnalysisModel.getEdemaMin();
372   - double edemaMind = Double.parseDouble(edemaMin);
373   - if(edemad < edemaMind){
374   - edemaAnalysis.put("gzf", 1);//1干燥 正常浮肿
375   - }else if(edemad < edemaMaxd){
376   - edemaAnalysis.put("gzf", 2);//2浮肿 干燥正常
377   - }else if((edemad > edemaMind) && edemad < edemaMaxd){
378   - edemaAnalysis.put("gzf", 0);//0正常 浮肿干燥
379   - }else {
380   - edemaAnalysis.put("gzf", null);
381   - }
382   - }
383   - edemaAnalysis.put("icw", volumeComponentAnalysisModel.getIcw());//细胞内液
384   - edemaAnalysis.put("ecw", volumeComponentAnalysisModel.getEcw());//细胞外液
385   - data.add(edemaAnalysis);
  298 + //营养评估
  299 + Map<String, Object> nutritionalAssessment = new HashMap<>();
  300 + nutritionalAssessment.put("nutritionalBmr", volumeComponentAnalysisModel.getBmr());//基础代谢
  301 + nutritionalAssessment.put("protein", range(DateUtil.getWeek2(patients.getLastMenses(), new Date()),
  302 + Double.valueOf(volumeComponentAnalysisModel.getWeight()),
  303 + Double.valueOf(volumeComponentAnalysisModel.getProtein()),
  304 + "dbz"));
  305 + nutritionalAssessment.put("fat", range(DateUtil.getWeek(patients.getLastMenses(), new Date()),
  306 + Double.valueOf(volumeComponentAnalysisModel.getWeight()),
  307 + Double.valueOf(volumeComponentAnalysisModel.getFat()),
  308 + "zf"));
  309 + nutritionalAssessment.put("wjy", range(DateUtil.getWeek(patients.getLastMenses(), new Date()),
  310 + Double.valueOf(volumeComponentAnalysisModel.getWeight()),
  311 + Double.valueOf(volumeComponentAnalysisModel.getBone()),
  312 + "wjy"));
  313 + data.add(nutritionalAssessment);
386 314  
387   - //肥胖分析
388   - Map<String, Object> obesityAnalysis = new HashMap<>();
389   - if(bmi <18.5 ){
390   - obesityAnalysis.put("obesity", 1);//体重较轻1
391   - }else if(bmi > 18.5 && bmi < 24.9){
392   - obesityAnalysis.put("obesity", 2);//正常2
393   - }else if(bmi > 25 && bmi < 29.9){
394   - obesityAnalysis.put("obesity", 3);//超重3
395   - }else if(bmi >= 30){
396   - obesityAnalysis.put("obesity", 4);//肥胖4
397   - }
398   -
399 315 //节段分析
400 316 Map<String, Object> limbsInfo = new HashMap<>();
401 317 limbsInfo.put("limbsTrWater", volumeComponentAnalysisModel.getTrWater());//躯干水分
... ... @@ -409,23 +325,6 @@
409 325 limbsInfo.put("limbsLlFat", volumeComponentAnalysisModel.getLlFat());//左下肢脂肪
410 326 limbsInfo.put("limbsRlFat", volumeComponentAnalysisModel.getRlFat());//右下肢脂肪
411 327 data.add(limbsInfo);
412   -
413   - //营养评估
414   - Map<String, Object> nutritionalAssessment = new HashMap<>();
415   - nutritionalAssessment.put("nutritionalBmr", volumeComponentAnalysisModel.getBmr());//基础代谢
416   - nutritionalAssessment.put("protein", range(DateUtil.getWeek2(patients.getLastMenses(), new Date()),//孕周
417   - Double.valueOf(volumeComponentAnalysisModel.getWeight()),//体重
418   - Double.valueOf(volumeComponentAnalysisModel.getProtein()),//蛋白质
419   - "dbz"));
420   - nutritionalAssessment.put("fat", range(DateUtil.getWeek(patients.getLastMenses(), new Date()),
421   - Double.valueOf(volumeComponentAnalysisModel.getWeight()),
422   - Double.valueOf(volumeComponentAnalysisModel.getFat()),
423   - "zf"));
424   - nutritionalAssessment.put("wjy", range(DateUtil.getWeek(patients.getLastMenses(), new Date()),
425   - Double.valueOf(volumeComponentAnalysisModel.getWeight()),
426   - Double.valueOf(volumeComponentAnalysisModel.getBone()),
427   - "wjy"));
428   - data.add(nutritionalAssessment);
429 328 //第一页结束
430 329  
431 330 //第二、三页开始
... ... @@ -434,9 +333,6 @@
434 333 Double.valueOf(volumeComponentAnalysisModel.getWeight()),
435 334 Double.valueOf(volumeComponentAnalysisModel.getProtein()),
436 335 "zf");
437   - obesityAnalysis.put("tzPerCent", tz);//体脂百分比
438   - data.add(obesityAnalysis);
439   -
440 336 //肌肉的计算规则
441 337 String jr = range(DateUtil.getWeek(patients.getLastMenses(), new Date()),
442 338 Double.valueOf(volumeComponentAnalysisModel.getWeight()),
... ... @@ -487,28 +383,6 @@
487 383 } else if ("不足".equals(wjy)) {
488 384 evaluationType[1] = "6";
489 385 }
490   - //体型判定2 star
491   - if ("过量".equals(tz) && "低肌肉".equals(jr) && (bmi>18.5 && bmi<24.9)) {
492   - somatotype.put("somatotype","1");//隐形肥胖型
493   - } else if ("过量".equals(tz) && "正常".equals(jr) && (bmi>18.5 && bmi<24.9)) {
494   - somatotype.put("somatotype","2");//脂肪过多型
495   - }else if (bmi>=30) {
496   - somatotype.put("somatotype","3");//肥胖型
497   - }else if ("正常".equals(tz) && "低肌肉".equals(jr) && (bmi>18.5 && bmi<24.9)) {
498   - somatotype.put("somatotype","4");//肌肉不足型
499   - }else if ("正常".equals(tz) && "正常".equals(jr) && (bmi>18.5 && bmi<24.9)) {
500   - somatotype.put("somatotype","5");//健康匀称型
501   - }else if ("正常".equals(tz) && "肌肉过量".equals(jr) && (bmi>25 && bmi<29.9)) {
502   - somatotype.put("somatotype","6");//超重肌肉型
503   - }else if (bmi < 18.5) {
504   - somatotype.put("somatotype","7");//消瘦型
505   - }else if ("不足".equals(tz) && "正常".equals(jr) && (bmi>18.5 && bmi<24.9)) {
506   - somatotype.put("somatotype","8");//低脂肪型
507   - }else if ("不足".equals(tz) && "肌肉过量".equals(jr) && (bmi>18.5 && bmi<24.9)) {
508   - somatotype.put("somatotype","9");//运动员型
509   - }
510   - data.add(somatotype);
511   - //体型判定2 end
512 386  
513 387 Integer week = DateUtil.getWeek(patients.getLastMenses());
514 388 //计算孕期
... ... @@ -534,8 +408,6 @@
534 408 recipesInfo.put("dinner", bodyMassAnalysisModel.getDinner());//晚餐
535 409 recipesInfo.put("dinnerAdd", bodyMassAnalysisModel.getDinnerAdd());//晚加餐
536 410 data.add(recipesInfo);
537   -
538   -
539 411 }
540 412 BodyMassAnalysisModel bodyMassAnalysisModel2 = mongoTemplate.findOne(
541 413 Query.query(Criteria.where("type").is(type).and("kcal").is(k1).and("pregnancy").is(null)),
... ... @@ -578,8 +450,6 @@
578 450 }
579 451 data.add(recipeRulesInfo);
580 452 }
581   -
582   -
583 453 //第二、三页结束
584 454  
585 455 return data;