From e0b27b963d673672b5a4dfe69dcb4e8e897e4952 Mon Sep 17 00:00:00 2001 From: "litao@lymsh.com" Date: Fri, 15 Sep 2017 11:46:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=93=E9=87=8D=E7=AE=A1=E7=90=86=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/service/impl/PatientWeightServiceImpl.java | 86 +++++++++++++++++++--- 1 file changed, 77 insertions(+), 9 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java index 9126355..1e33144 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java @@ -200,7 +200,7 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient map.put("bregmatic", BregmaticEnums2.getName(patientWeight.getBregmatic())); map.put("bim", patientWeight.getBmi()); // 体质指数(BMI)=体重(kg)÷身高^2(m) - setReport(map, patientWeight.getWeights(), patientWeight.getBeforeWeight()); + setReport(map, patientWeight.getWeights(), patientWeight.getBeforeWeight(), patientWeight.getBmi()); CollectionUtils.removeNullValue(map); return RespBuilder.buildSuccess(map); @@ -254,7 +254,7 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient setRecipe(week, map); // 设置食谱 setGuide(week, map); // 设置指南 } - setReport(map, patientWeight.getWeights(), patientWeight.getBeforeWeight()); + setReport(map, patientWeight.getWeights(), patientWeight.getBeforeWeight(), patientWeight.getBmi()); CollectionUtils.removeNullValue(map); return RespBuilder.buildSuccess(map); } @@ -562,11 +562,84 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient } } - public void setReport(Map restMap, Map weights, String beforeWeight) { + /** + BMI指数: + 低体重(<18.5) 0-13周 13-40周 + 最低 0-1.2 1.2-11.9 + 最高 0-3.8 3.8-18.1 + 标准 (18.5-24.9) 0-13周 13-40周 + 最低 0-1.4 1.4-11.9 + 最高 0-3.2 3.2-15.9 + + 超重(25.0-29.9) 0-13周 13-40周 + 最低 0-1.1 1.1-7.1 + 最高 0-3.1 3.2-11.6 + 肥胖 (>=30.0) 0-13周 13-40周 + 最低 0-0.8 0.9-4.9 + 最高 0-2.1 2.1-8.9 + */ + public void setReport(Map restMap, Map weights, String beforeWeight, String bmi) { + Double bmiD = Double.parseDouble(bmi); + double low = 0D; + double low2 = 0D; + double high = 0D; + double high2 = 0D; + if(bmiD <= 18.5) { + low = 1.2; + low2 = 11.9; + high = 3.8; + high2 = 18.1; + } else if(bmiD > 18.5 && bmiD <= 24.9){ + low = 1.4; + low2 = 11.9; + high = 3.2; + high2 = 15.9; + } else if(bmiD > 24.9 && bmiD < 30){ + low = 1.1 ; + low2 = 7.1; + high = 3.1; + high2 = 11.6; + } else if(bmiD >= 30){ + low = 0.8 ; + low2 = 4.9; + high = 2.1; + high2 = 8.9; + } + + double avg = low / 13; + for (int i = 0; i <= 13; i++) { + lowMap.put(i, i * avg); + } + double avg2 = (low2 - low) / 27; + for (int i = 1; i <= 27; i++) { + lowMap.put(13 + i, low + i * avg2); + } + double highAvg = high / 13; + for (int i = 0; i <= 13; i++) { + highMap.put(i, i * highAvg); + } + double highAvg2 = (high2 - high) / 27; + for (int i = 1; i <= 27; i++) { + highMap.put(13 + i, low + i * highAvg2); + } + for (int i = 0; i <= 40; i++) { + normalMap.put(i, (highMap.get(i) + lowMap.get(i)) / 2); + } + for (int i = 0; i <= 40; i++) { + xAxis.add(i); + } Map reportModel = new HashMap<>(); + Map series = new HashMap<>(); + series.put("lowData", CollectionUtils.getValList(lowMap)); + series.put("highData", CollectionUtils.getValList(highMap)); + series.put("normalData", CollectionUtils.getValList(normalMap)); + reportModel.put("series", series); + + for (int i = 0; i <= 40; i++) { + xAxis.add(i); + } reportModel.put("xAxis", xAxis); - Map series = new HashMap<>(); List list = new ArrayList<>(); if(MapUtils.isNotEmpty(weights)) { Iterator> iterator = weights.entrySet().iterator(); @@ -576,11 +649,6 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient } } series.put("portData", list); - - series.put("lowData", CollectionUtils.getValList(lowMap)); - series.put("highData", CollectionUtils.getValList(highMap)); - series.put("normalData", CollectionUtils.getValList(normalMap)); - reportModel.put("series", series); restMap.put("reportModel", reportModel); } -- 1.8.3.1