Commit e0b27b963d673672b5a4dfe69dcb4e8e897e4952

Authored by litao@lymsh.com
1 parent da5d29e297
Exists in master and in 1 other branch dev

体重管理相关代码

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