Commit e0b27b963d673672b5a4dfe69dcb4e8e897e4952
1 parent
da5d29e297
Exists in
master
and in
6 other branches
体重管理相关代码
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 |