Commit e0b27b963d673672b5a4dfe69dcb4e8e897e4952
1 parent
da5d29e297
Exists in
master
and in
1 other branch
体重管理相关代码
Showing 1 changed file with 77 additions and 9 deletions
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java
View file @
e0b27b9
... | ... | @@ -200,7 +200,7 @@ |
200 | 200 | map.put("bregmatic", BregmaticEnums2.getName(patientWeight.getBregmatic())); |
201 | 201 | map.put("bim", patientWeight.getBmi()); // 体质指数(BMI)=体重(kg)÷身高^2(m) |
202 | 202 | |
203 | - setReport(map, patientWeight.getWeights(), patientWeight.getBeforeWeight()); | |
203 | + setReport(map, patientWeight.getWeights(), patientWeight.getBeforeWeight(), patientWeight.getBmi()); | |
204 | 204 | |
205 | 205 | CollectionUtils.removeNullValue(map); |
206 | 206 | return RespBuilder.buildSuccess(map); |
... | ... | @@ -254,7 +254,7 @@ |
254 | 254 | setRecipe(week, map); // 设置食谱 |
255 | 255 | setGuide(week, map); // 设置指南 |
256 | 256 | } |
257 | - setReport(map, patientWeight.getWeights(), patientWeight.getBeforeWeight()); | |
257 | + setReport(map, patientWeight.getWeights(), patientWeight.getBeforeWeight(), patientWeight.getBmi()); | |
258 | 258 | CollectionUtils.removeNullValue(map); |
259 | 259 | return RespBuilder.buildSuccess(map); |
260 | 260 | } |
261 | 261 | |
262 | 262 | |
... | ... | @@ -562,11 +562,84 @@ |
562 | 562 | } |
563 | 563 | } |
564 | 564 | |
565 | - public void setReport(Map<String, Object> restMap, Map<Integer, String> weights, String beforeWeight) { | |
565 | + /** | |
566 | + BMI指数: | |
567 | + 低体重(<18.5) 0-13周 13-40周 | |
568 | + 最低 0-1.2 1.2-11.9 | |
569 | + 最高 0-3.8 3.8-18.1 | |
570 | + 标准 (18.5-24.9) 0-13周 13-40周 | |
571 | + 最低 0-1.4 1.4-11.9 | |
572 | + 最高 0-3.2 3.2-15.9 | |
573 | + | |
574 | + 超重(25.0-29.9) 0-13周 13-40周 | |
575 | + 最低 0-1.1 1.1-7.1 | |
576 | + 最高 0-3.1 3.2-11.6 | |
577 | + 肥胖 (>=30.0) 0-13周 13-40周 | |
578 | + 最低 0-0.8 0.9-4.9 | |
579 | + 最高 0-2.1 2.1-8.9 | |
580 | + */ | |
581 | + public void setReport(Map<String, Object> restMap, Map<Integer, String> weights, String beforeWeight, String bmi) { | |
582 | + Double bmiD = Double.parseDouble(bmi); | |
583 | + double low = 0D; | |
584 | + double low2 = 0D; | |
585 | + double high = 0D; | |
586 | + double high2 = 0D; | |
587 | + if(bmiD <= 18.5) { | |
588 | + low = 1.2; | |
589 | + low2 = 11.9; | |
590 | + high = 3.8; | |
591 | + high2 = 18.1; | |
592 | + } else if(bmiD > 18.5 && bmiD <= 24.9){ | |
593 | + low = 1.4; | |
594 | + low2 = 11.9; | |
595 | + high = 3.2; | |
596 | + high2 = 15.9; | |
597 | + } else if(bmiD > 24.9 && bmiD < 30){ | |
598 | + low = 1.1 ; | |
599 | + low2 = 7.1; | |
600 | + high = 3.1; | |
601 | + high2 = 11.6; | |
602 | + } else if(bmiD >= 30){ | |
603 | + low = 0.8 ; | |
604 | + low2 = 4.9; | |
605 | + high = 2.1; | |
606 | + high2 = 8.9; | |
607 | + } | |
608 | + | |
609 | + double avg = low / 13; | |
610 | + for (int i = 0; i <= 13; i++) { | |
611 | + lowMap.put(i, i * avg); | |
612 | + } | |
613 | + double avg2 = (low2 - low) / 27; | |
614 | + for (int i = 1; i <= 27; i++) { | |
615 | + lowMap.put(13 + i, low + i * avg2); | |
616 | + } | |
617 | + double highAvg = high / 13; | |
618 | + for (int i = 0; i <= 13; i++) { | |
619 | + highMap.put(i, i * highAvg); | |
620 | + } | |
621 | + double highAvg2 = (high2 - high) / 27; | |
622 | + for (int i = 1; i <= 27; i++) { | |
623 | + highMap.put(13 + i, low + i * highAvg2); | |
624 | + } | |
625 | + for (int i = 0; i <= 40; i++) { | |
626 | + normalMap.put(i, (highMap.get(i) + lowMap.get(i)) / 2); | |
627 | + } | |
628 | + for (int i = 0; i <= 40; i++) { | |
629 | + xAxis.add(i); | |
630 | + } | |
566 | 631 | Map<String, Object> reportModel = new HashMap<>(); |
632 | + Map<String, Object> series = new HashMap<>(); | |
633 | + series.put("lowData", CollectionUtils.getValList(lowMap)); | |
634 | + series.put("highData", CollectionUtils.getValList(highMap)); | |
635 | + series.put("normalData", CollectionUtils.getValList(normalMap)); | |
636 | + reportModel.put("series", series); | |
637 | + | |
638 | + for (int i = 0; i <= 40; i++) { | |
639 | + xAxis.add(i); | |
640 | + } | |
567 | 641 | reportModel.put("xAxis", xAxis); |
568 | 642 | |
569 | - Map<String, Object> series = new HashMap<>(); | |
570 | 643 | List<Object> list = new ArrayList<>(); |
571 | 644 | if(MapUtils.isNotEmpty(weights)) { |
572 | 645 | Iterator<Map.Entry<Integer, String>> iterator = weights.entrySet().iterator(); |
... | ... | @@ -576,11 +649,6 @@ |
576 | 649 | } |
577 | 650 | } |
578 | 651 | series.put("portData", list); |
579 | - | |
580 | - series.put("lowData", CollectionUtils.getValList(lowMap)); | |
581 | - series.put("highData", CollectionUtils.getValList(highMap)); | |
582 | - series.put("normalData", CollectionUtils.getValList(normalMap)); | |
583 | - reportModel.put("series", series); | |
584 | 652 | restMap.put("reportModel", reportModel); |
585 | 653 | } |
586 | 654 |