diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java
index a608062..825e734 100644
--- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java
+++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java
@@ -88,8 +88,10 @@ public class PatientWeightController extends BaseController {
@ResponseBody
@RequestMapping(value = "report/{id}", method = RequestMethod.GET)
@TokenRequired
- public BaseResponse report(@PathVariable String id, HttpServletRequest request) {
- return patientWeightService.report(id, getUserId(request));
+ public BaseResponse report(@PathVariable String id,
+ HttpServletRequest request,
+ @RequestParam(value = "rid",required = false)String rid) {
+ return patientWeightService.report(id, getUserId(request),rid);
}
/**
@@ -207,4 +209,17 @@ public class PatientWeightController extends BaseController {
public BaseResponse patientCookbookInfo(String pid) {
return patientWeightService.patientRecipeInfo(pid, 4);
}
+
+
+ /**
+ *
+ * 选择这个人的高危因素去打印饮食原则
+ *
+ * @return
+ */
+ @ResponseBody
+ @RequestMapping(value = "/find/risk", method = RequestMethod.GET)
+ public BaseResponse canChooseRisk(String patientId){
+ return patientWeightService.findRiskDietaryPrinciples(patientId);
+ }
}
diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IComputeKul.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IComputeKul.java
new file mode 100644
index 0000000..7e29297
--- /dev/null
+++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IComputeKul.java
@@ -0,0 +1,40 @@
+package com.lyms.platform.operate.web.service;
+
+import java.util.Map;
+
+/**
+ * 计算卡路里接口定义
+ *
+ * 详细描述
+ *
+ * 示例代码
+ *
+ *
+ *
+ * @author JIAZHI.JIANG
+ * @version BME V100R001 2018-08-28 9:59
+ * @since BME V100R001C40B104
+ */
+public interface IComputeKul {
+
+ /**
+ * 是否支持高危
+ *
+ * @param riskId 高危因素id
+ * @return
+ */
+ boolean canSupported(String riskId);
+
+ /**
+ *
+ * 根据不同的高危计算卡路里
+ *
+ * @param beforeWeight 孕期体重
+ * @param currentWeight 当前体重
+ * @param week 孕周
+ * @param bmi bmi
+ * @param bregmatic
+ * @return
+ */
+ Map getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic,String beforeHeight);
+}
diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java
index 225caba..49c5886 100644
--- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java
+++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java
@@ -8,6 +8,8 @@ import com.lyms.platform.pojo.PatientWeight;
*/
public interface PatientWeightService extends IBaseService {
+ BaseResponse findRiskDietaryPrinciples(String patientId);
+
BaseResponse lastCheckTime(String pid);
BaseResponse init();
BaseResponse patientRecipeInfo(String pid,Integer type);
@@ -21,7 +23,7 @@ public interface PatientWeightService extends IBaseService {
BaseResponse delete(String id);
- BaseResponse report(String id,Integer userId);
+ BaseResponse report(String id,Integer userId,String rid);
BaseResponse wxReport(String pid);
diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BDXGYComputeKulServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BDXGYComputeKulServiceImpl.java
new file mode 100644
index 0000000..6d185d9
--- /dev/null
+++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BDXGYComputeKulServiceImpl.java
@@ -0,0 +1,149 @@
+package com.lyms.platform.operate.web.service.impl;
+
+import com.lyms.platform.operate.web.service.IComputeKul;
+import com.lyms.platform.operate.web.utils.ReportConfig;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 病毒性肝炎卡路里计算公式
+ *
+ * 详细描述
+ *
+ * 示例代码
+ *
+ *
+ *
+ * @author JIAZHI.JIANG
+ * @version BME V100R001 2018-08-28 16:31
+ * @since BME V100R001C40B104
+ */
+@Service
+public class BDXGYComputeKulServiceImpl implements IComputeKul {
+
+ private List supportList =new ArrayList<>();
+ {
+ /*5a41f856422b03d4ad2bf801 原因不明的肝功能异常
+ 5aab6d3f422b03d4ad2bf85c 肝硬化(仅需要药物治疗)*/
+ supportList.add("5a41f856422b03d4ad2bf801");
+ supportList.add("5aab6d3f422b03d4ad2bf85c");
+ }
+
+ // 妊娠期糖尿病卡路里计算公式支持的高危id
+ @Override
+ public boolean canSupported(String riskId) {
+ return supportList.contains(riskId);
+ }
+
+ @Override
+ public Map getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic,String beforeHeight) {
+ Map map = new HashMap<>();
+
+ double kulStart = 0;
+ double kulEnd = 0;
+
+ String status = "";
+
+ double add = Double.valueOf(String.format("%.2f", currentWeight - beforeWeight));
+
+ //孕早期
+ if (week <= 12) {
+ if (add < 1 && (1 - add >= 0.5)) {
+ status = "低于";
+ kulStart = currentWeight * 30 + 500;
+ } else if (add > 1.5 && (add - 1.5 >= 0.5)) {
+ status = "高于";
+ kulStart = currentWeight * 30 - 500;
+ } else {
+ status = "处于";
+ kulStart = currentWeight * 30;
+ }
+ kulEnd = kulStart;
+ }
+ //孕中期 //孕晚期
+ else if (week > 12) {
+ //基础kcal值
+ int basekul = (week > 12 && week <= 27) ? 340 : 450;
+
+
+ String bmiStr = "";
+
+ if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) {
+ if (bmi < 18.5) {
+ bmiStr = "BMI<18.5孕" + week + "周";
+ } else if (bmi <= 24.9 && bmi >= 18.5) {
+ bmiStr = "BMI=18.5-24.9孕" + week + "周";
+ } else if (bmi <= 29.9 && bmi >= 25) {
+ bmiStr = "BMI=25-29.9孕" + week + "周";
+ } else if (bmi >= 30) {
+ bmiStr = "BMI≥30孕" + week + "周";
+ }
+ } else {
+ if (bmi <= 24.9) {
+ bmiStr = "BMI≤24.9孕" + week + "周";
+ } else if (bmi <= 29.9 && bmi >= 25) {
+ bmiStr = "BMI=25-29.9孕" + week + "周";
+ } else if (bmi >= 30) {
+ bmiStr = "BMI≥30孕" + week + "周";
+ }
+ }
+
+
+ if (StringUtils.isEmpty(bmiStr)) {
+ return map;
+ }
+
+ String[] rangeWeight = null;
+
+ if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) {
+ rangeWeight = ReportConfig.getWeightRange(bmiStr).split("-");
+ } else {
+ rangeWeight = ReportConfig.getDWeightRange(bmiStr).split("-");
+ }
+
+
+ if (rangeWeight == null || rangeWeight.length != 2) {
+ return map;
+ }
+
+ double addWeightStart = Double.parseDouble(rangeWeight[0]);
+ double addWeightEnd = Double.parseDouble(rangeWeight[1]);
+
+ /* BigDecimal b1 = new BigDecimal(Double.toString(addWeightStart));
+ BigDecimal b2 = new BigDecimal(Double.toString(addWeightEnd));
+ BigDecimal bw = new BigDecimal(Double.toString(beforeWeight));*/
+
+ BigDecimal b1 = new BigDecimal(Double.toString(currentWeight));
+ double kstart = b1.multiply(new BigDecimal(30)).doubleValue() + basekul;
+ double kend = b1.multiply(new BigDecimal(30)).doubleValue() + basekul;
+
+
+ status = "处于";
+ if (addWeightEnd < add && (Double.valueOf(String.format("%.2f", add - addWeightEnd))) >= 0.5) {
+ status = "高于";
+ kstart -= 500;
+ kend -= 500;
+ } else if (addWeightStart > add && (Double.valueOf(String.format("%.2f", addWeightStart - add))) >= 0.5) {
+ status = "低于";
+ kstart += 500;
+ kend += 500;
+ }
+ kulStart = kstart;
+ kulEnd = kend;
+ }
+
+ map.put("kulStart", String.valueOf(kulStart));
+ map.put("kulEnd", String.valueOf(kulEnd));
+ map.put("status", status);
+ return map;
+ }
+}
diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ComputeKulServiceManager.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ComputeKulServiceManager.java
new file mode 100644
index 0000000..b156c84
--- /dev/null
+++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ComputeKulServiceManager.java
@@ -0,0 +1,371 @@
+package com.lyms.platform.operate.web.service.impl;
+
+import com.lyms.platform.common.utils.StringUtils;
+import com.lyms.platform.operate.web.service.IComputeKul;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 添加类的一句话简单描述。
+ *
+ * 详细描述
+ *
+ * 示例代码
+ *
+ *
+ *
+ * @author JIAZHI.JIANG
+ * @version BME V100R001 2018-08-30 17:14
+ * @since BME V100R001C40B104
+ */
+@Component
+public class ComputeKulServiceManager implements InitializingBean{
+
+ //日志调测器
+ private static final Logger logger = LoggerFactory.getLogger(ComputeKulServiceManager.class);
+
+
+ private static Map patientGuideMap =new HashMap<>();
+ static {
+ //妊娠期高血压的营养指南和饮食原则
+ patientGuideMap.put("5aab6d3f422b03d4ad2bf854北方",ComputeKulServiceManager.patientGuide);
+ patientGuideMap.put("5aab6d3f422b03d4ad2bf856北方",ComputeKulServiceManager.patientGuide);
+ patientGuideMap.put("5aab6d3f422b03d4ad2bf854南方",ComputeKulServiceManager.patientGuide4GXY_NF);
+ patientGuideMap.put("5aab6d3f422b03d4ad2bf856南方",ComputeKulServiceManager.patientGuide4GXY_NF);
+
+ //病毒性肝炎
+ patientGuideMap.put("5a41f670422b03d4ad2bf7f0北方",ComputeKulServiceManager.patientGuide1);
+ patientGuideMap.put("b43a43e4-733f-4ec1-9b5e-f00b9bc6e651北方",ComputeKulServiceManager.patientGuide1);
+ patientGuideMap.put("5a41f670422b03d4ad2bf7f0南方",ComputeKulServiceManager.patientGuide4JXGY_NF);
+ patientGuideMap.put("b43a43e4-733f-4ec1-9b5e-f00b9bc6e651南方",ComputeKulServiceManager.patientGuide4JXGY_NF);
+
+ //慢性肝炎
+
+ /*5a41f856422b03d4ad2bf801 原因不明的肝功能异常
+ 5aab6d3f422b03d4ad2bf85c 肝硬化(仅需要药物治疗)*/
+ patientGuideMap.put("5a41f856422b03d4ad2bf801北方",ComputeKulServiceManager.patientGuide2);
+ patientGuideMap.put("5aab6d3f422b03d4ad2bf85c北方",ComputeKulServiceManager.patientGuide2);
+ patientGuideMap.put("5a41f856422b03d4ad2bf801南方",ComputeKulServiceManager.patientGuide4MXGY_NF);
+ patientGuideMap.put("5aab6d3f422b03d4ad2bf85c南方",ComputeKulServiceManager.patientGuide4MXGY_NF);
+
+
+ /*
+ * 5a41f715422b03d4ad2bf7f7 妊娠合并贫血(Hb 60-110g/L)
+ 5aab6d3e422b03d4ad2bf847 轻度缺铁性贫血(100-109g/L)
+ 5aab6d3e422b03d4ad2bf848 中度缺铁性贫血(70-99g/L)
+ 82e4441b-7072-443e-a30f-39b0b4504d75 重度贫血(Hb40-60g/L)
+ 5a41fa0c422b03d4ad2bf814 重度贫血(Hb≤40g/L)
+ 80c41987-fd8a-4595-a773-088b60a6a33d 再生障碍性贫血
+ * */
+ //贫血
+ patientGuideMap.put("5a41f715422b03d4ad2bf7f7北方",ComputeKulServiceManager.patientGuide3);
+ patientGuideMap.put("5aab6d3e422b03d4ad2bf847北方",ComputeKulServiceManager.patientGuide3);
+ patientGuideMap.put("5aab6d3e422b03d4ad2bf848北方",ComputeKulServiceManager.patientGuide3);
+ patientGuideMap.put("82e4441b-7072-443e-a30f-39b0b4504d75北方",ComputeKulServiceManager.patientGuide3);
+ patientGuideMap.put("5a41fa0c422b03d4ad2bf814北方",ComputeKulServiceManager.patientGuide3);
+ patientGuideMap.put("80c41987-fd8a-4595-a773-088b60a6a33d北方",ComputeKulServiceManager.patientGuide3);
+ patientGuideMap.put("5a41f715422b03d4ad2bf7f7南方",ComputeKulServiceManager.patientGuide4PX_NF);
+ patientGuideMap.put("5aab6d3e422b03d4ad2bf847南方",ComputeKulServiceManager.patientGuide4PX_NF);
+ patientGuideMap.put("5aab6d3e422b03d4ad2bf848南方",ComputeKulServiceManager.patientGuide4PX_NF);
+ patientGuideMap.put("82e4441b-7072-443e-a30f-39b0b4504d75南方",ComputeKulServiceManager.patientGuide4PX_NF);
+ patientGuideMap.put("5a41fa0c422b03d4ad2bf814南方",ComputeKulServiceManager.patientGuide4PX_NF);
+ patientGuideMap.put("80c41987-fd8a-4595-a773-088b60a6a33d南方",ComputeKulServiceManager.patientGuide4PX_NF);
+
+
+
+ /*
+ * 5aab6d3d422b03d4ad2bf83e 妊娠期糖尿病(无需药物治疗)
+ 5aab6d3e422b03d4ad2bf83f 糖尿病合并妊娠(无需药物治疗)
+ de7468e6-1bb5-4fab-ae84-78857868409a 需药物治疗的糖尿病
+ * */
+ patientGuideMap.put("5aab6d3d422b03d4ad2bf83e北方",ComputeKulServiceManager.patientGuide4TNB_BF);
+ patientGuideMap.put("5aab6d3e422b03d4ad2bf83f北方",ComputeKulServiceManager.patientGuide4TNB_BF);
+ patientGuideMap.put("de7468e6-1bb5-4fab-ae84-78857868409a北方",ComputeKulServiceManager.patientGuide4TNB_BF);
+ patientGuideMap.put("5aab6d3d422b03d4ad2bf83e南方",ComputeKulServiceManager.patientGuide4NTB_NF);
+ patientGuideMap.put("5aab6d3e422b03d4ad2bf83f南方",ComputeKulServiceManager.patientGuide4NTB_NF);
+ patientGuideMap.put("de7468e6-1bb5-4fab-ae84-78857868409a南方",ComputeKulServiceManager.patientGuide4NTB_NF);
+ }
+
+ public static Map getPatientGuideMap() {
+ return patientGuideMap;
+ }
+
+ private Map iComputeKulMap = new HashMap<>();
+ @Autowired
+ private List data;
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ /**
+ * 默认的卡路里计算规则
+ */
+ private IComputeKul defaultCompute=new DefaultComputeKulServiceImpl();
+
+ public IComputeKul getComputeKulByRisk(String risk) {
+ if(StringUtils.isNotEmpty(risk)){
+ for(IComputeKul iComputeKul:data){
+ if(iComputeKul.canSupported(risk)){
+ return iComputeKul;
+ }
+ }
+ }
+
+ return defaultCompute;
+ }
+
+ public void setiComputeKulMap(Map iComputeKulMap) {
+ this.iComputeKulMap = iComputeKulMap;
+ }
+
+ public void setDefaultCompute(IComputeKul defaultCompute) {
+ this.defaultCompute = defaultCompute;
+ }
+
+ @Override
+ public void afterPropertiesSet() throws Exception {
+ logger.info("ComputeKulServiceManager after properties set register :" + iComputeKulMap);
+ }
+ public static class PatientGuide{
+ public PatientGuide(String yzzn, String ysyz) {
+ this.yzzn = yzzn;
+ this.ysyz = ysyz;
+ }
+
+ //营养指南
+ private String yzzn;
+ //饮食原则
+ private String ysyz;
+
+ public String getYzzn() {
+ return yzzn;
+ }
+
+ public void setYzzn(String yzzn) {
+ this.yzzn = yzzn;
+ }
+
+ public String getYsyz() {
+ return ysyz;
+ }
+
+ public void setYsyz(String ysyz) {
+ this.ysyz = ysyz;
+ }
+ }
+ //高血压的
+ private static PatientGuide patientGuide= new PatientGuide("各种营养素的均衡摄入\n" +
+ "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食;避免过食,从而引起体重增长过快。\n" +
+ "每日摄入3次奶及奶制品\n" +
+ "每日保证摄入300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" +
+ "肉类、鱼虾类、蔬菜、水果均衡摄入\n" +
+ "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50左右)。\n" +
+ "增加用餐次数\n" +
+ "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" +
+ "保证饮食的清淡\n" +
+ "每日食盐的摄入不得超过5g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" +
+ "保证食物的清洁卫生\n" +
+ "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" +
+ "远离烟、酒、咖啡因,保证水分的充足\n" +
+ "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶等,保证每日2300ml水的摄入。\n" +
+ "规律的生活,适当的运动\n" +
+ "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早期——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","每公斤体重每日1-1.5g的优质蛋白质摄入;减少脂肪的摄入,用不饱和脂肪代替饱和脂肪,控制胆固醇的摄入(300mg以下),特别是ω-3脂肪酸对降低血压有帮助,同时还能预防高脂血症等。\n" +
+ "控制钠的摄入量,血压为140-159/90-99mmHg的情况下,每日钠的摄入量应控制在1.9g(食盐5g)以下,血压为160g/100mmHg的情况下,每日摄入食盐的量应控制在3.5-5g之间,减少钠含量高的食物摄入,多吃K/Na比例高的食物,例如香蕉、大豆、薯类等,尽量避免加工食品的摄入;钙有降压的作用,同时还能预防低钙血症,每日需保证钙摄入的足够,妊娠中期1000mg,妊娠晚期1200mg;多吃富含膳食纤维的食物,能够缓解便秘和降低血液中的胆固醇含量;如果出现水肿现象可多吃一些红豆、冬瓜等利水的食物,适当控制水分的摄入。\n" +
+ "DASH饮食法:\n" +
+ "1.多吃水果、蔬菜(500-700g),选择低脂肪的牛奶或奶制品,\n" +
+ "2.首选全谷类和根茎类主食\n" +
+ "3.保证每日15-20g坚果的摄入,多吃家禽、鱼虾类等白肉类,少吃红肉类,限制糖类、含糖的饮料的摄入\n" +
+ "4.减少饱和脂肪、胆固醇、反式脂肪的摄入\n" +
+ "5.多吃富含钾、钙、镁、食物纤维、优质蛋白质的食物");
+ //病毒性肝炎
+ private static PatientGuide patientGuide1= new PatientGuide("各种营养素的均衡摄入\n" +
+ "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食。\n" +
+ "每日摄入3次奶及奶制品\n" +
+ "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" +
+ "肉类、鱼虾类、蔬菜、水果均衡摄入\n" +
+ "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" +
+ "增加用餐次数\n" +
+ "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" +
+ "保证饮食的清淡\n" +
+ "每日食盐的摄入不得超过6g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等。\n" +
+ "保证食物的清洁卫生\n" +
+ "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" +
+ "远离烟、酒、咖啡因,保证水分的充足\n" +
+ "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶、碳酸饮料等,保证每日2300ml水的摄入。\n" +
+ "规律的生活,适当的运动\n" +
+ "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","高热量—高蛋白质—高碳水化合物—中等脂肪—高维生素—低盐(不超过6g)\n" +
+ "热量保证在35-45kcal/kg,蛋白质1.5-2.0g/kg,碳水化合物占总热量的65%,脂肪占总热量的15%。\n" +
+ "限制粗粮类,牛肉和猪肉脂肪较多、组织较硬的部位、培根、午餐肉、香肠、肉脯、脂肪含量较高的鱼类(青花鱼、鲅鱼等),纤维较粗的蔬菜和水果;尽量避免辛辣刺激、油炸等烹饪方法,以及糕点、奶油等油脂含量高的食物。");
+ //慢性肝炎、肝硬化、肝功能不全的饮食原则
+ private static PatientGuide patientGuide2= new PatientGuide("各种营养素的均衡摄入\n" +
+ "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食。\n" +
+ "每日摄入3次奶及奶制品\n" +
+ "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" +
+ "肉类、鱼虾类、蔬菜、水果均衡摄入\n" +
+ "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" +
+ "增加用餐次数\n" +
+ "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" +
+ "保证饮食的清淡\n" +
+ "每日食盐的摄入不得超过6g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" +
+ "保证食物的清洁卫生\n" +
+ "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" +
+ "远离烟、酒、咖啡因,保证水分的充足\n" +
+ "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶、碳酸饮料等,保证每日2300ml水的摄入。\n" +
+ "规律的生活,适当的运动\n" +
+ "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","高热量—高蛋白质—高碳水化合物—中等脂肪—高维生素—低纤维细纤维(水溶性纤维)—低盐(5g)\n" +
+ "热量保证在30-40kcal/kg,蛋白质1.5-2.0g/kg,碳水化合物占总热量的60%,脂肪占总热量的20%。\n" +
+ "限制粗粮类,牛肉和猪肉组织较硬的部位、培根、午餐肉、香肠、肉脯等含添加剂较多的加工食品,含纤维较粗、不可溶纤维的蔬菜和水果;尽量避免辛辣刺激、油炸等烹饪方法。");
+
+
+
+ private static PatientGuide patientGuide3= new PatientGuide("各种营养素的均衡摄入\n" +
+ "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食;避免过食,从而引起体重增长过快。\n" +
+ "每日摄入3次奶及奶制品\n" +
+ "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" +
+ "肉类、鱼虾类、蔬菜、水果均衡摄入\n" +
+ "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" +
+ "增加用餐次数\n" +
+ "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" +
+ "保证饮食的清淡\n" +
+ "每日食盐的摄入不得超过6g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" +
+ "保证食物的清洁卫生\n" +
+ "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" +
+ "远离烟、酒、咖啡因,保证水分的充足\n" +
+ "孕期绝对禁止抽烟、饮酒;避免咖啡、茶等含咖啡因的饮料,保证每日2300ml水的摄入。\n" +
+ "规律的生活,适当的运动\n" +
+ "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","补铁的同时,要注意红血球合成所需的热量、蛋白质、无机质、维生素的充分摄取,以及同时补充维生素C能够促进铁的吸收。孕中期铁的需求量为每日24mg,孕晚期铁的需求量为每日29mg,如果食物不能满足身体对铁的所需,可在医生建议下补充铁剂。\n" +
+ "豆类、粗粮类比细粮铁的含量高;经常摄入牛肉、鸡肉、鱼类、蛋类、动物肝脏等铁,尤其是动物肝脏中铁的含量与吸收率都较高,可以每周吃2-3吃;紫菜、海带等海产品以及菠菜等深绿色的蔬菜也富含大量的铁元素,每天应保证300-500g的蔬菜摄入;乳制品中也含有丰富的铁,每日至少保证500g奶制品的摄入。\n" +
+ "维生素B12和叶酸的缺乏也可能会造成贫血,因此平时还应该多摄取一些动物性食物、绿色蔬菜、豆类等进行补充。\n" +
+ "草酸、植酸、鞣酸、咖啡因等都会破铁的吸收,因此要避免茶、咖啡等含咖啡因的饮料的摄入,以及食用草酸、植酸、鞣酸等蔬菜时,尽量焯水、做熟后再食用。");
+
+ //糖尿病北方
+ private static PatientGuide patientGuide4TNB_BF= new PatientGuide("每日摄取的热量按照自身标准体重来制定;糖类、蛋白质、脂肪的比例为55-60%、15-20%、20-25%;至少保证100g糖类的摄入预防酮症酸中毒,尽量避免单糖类的摄入;多吃GI指数55以下的食物,如粗粮、豆类、牛奶、蔬菜等;蛋白质摄取量大约为1-1.5g/kg,约占总热量的15-20%(至少1/3以上为动物性蛋白);多不饱和脂肪:单不饱和脂肪:饱和脂肪为1:1:1,每日n-3的摄入量应保证3g预防高脂血症,胆固醇的摄入量每日不得超过300mg;增加膳食纤维的摄入量,可抑制血糖的上升速度,每日的摄取量为20-35g;规律饮食,少吃多餐,一天5-6餐,每餐八-九分饱;尽量选择蒸、煮、汆烫等烹饪方法,避免煎、炸、烤等方式,烹饪时避免食物过于熟烂,不要空腹喝粥。(需药物治疗患者每日可增加总热量10%的加餐)","各种营养素的均衡摄入\n" +
+ "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食;避免过食,从而引起体重增长过快。\n" +
+ "每日摄入3次奶及奶制品\n" +
+ "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等。\n" +
+ "肉类、鱼虾类、蔬菜、水果均衡摄入\n" +
+ "每日保证至少300g蔬菜的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" +
+ "保证饮食的清淡\n" +
+ "每日食盐的摄入不得超过5g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等。\n" +
+ "保证食物的清洁卫生\n" +
+ "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" +
+ "远离烟、酒、咖啡因,保证水分的充足\n" +
+ "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶、碳酸饮料等,保证每日2300ml水的摄入。\n" +
+ "规律的生活,适当的运动\n" +
+ "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。");
+
+
+ //高血压南方
+ private static PatientGuide patientGuide4GXY_NF= new PatientGuide("各种营养素的均衡摄入\n" +
+ "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食;避免过食,从而引起体重增长过快。\n" +
+ "每日摄入3次奶及奶制品\n" +
+ "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" +
+ "肉类、鱼虾类、蔬菜、水果均衡摄入\n" +
+ "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50左右)。\n" +
+ "增加用餐次数\n" +
+ "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" +
+ "保证饮食的清淡\n" +
+ "每日食盐的摄入不得超过5g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" +
+ "保证食物的清洁卫生\n" +
+ "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" +
+ "远离烟、酒、咖啡因,保证水分的充足\n" +
+ "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶等,保证每日2300ml水的摄入。\n" +
+ "规律的生活,适当的运动\n" +
+ "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。\n","每公斤体重每日1-1.5g的优质蛋白质摄入;减少脂肪的摄入,用不饱和脂肪代替饱和脂肪,控制胆固醇的摄入(300mg以下),特别是ω-3脂肪酸对降低血压有帮助,同时还能预防高脂血症等。\n" +
+ "控制钠的摄入量,血压为140-159/90-99mmHg的情况下,每日钠的摄入量应控制在1.9g(食盐5g)以下,血压为160g/100mmHg的情况下,每日摄入食盐的量应控制在3.5-5g之间,减少钠含量高的食物摄入,多吃K/Na比例高的食物,例如香蕉、大豆、薯类等,尽量避免加工食品的摄入;钙有降压的作用,同时还能预防低钙血症,每日需保证钙摄入的足够,妊娠中期1000mg,妊娠晚期1200mg;多吃富含膳食纤维的食物,能够缓解便秘和降低血液中的胆固醇含量;如果出现水肿现象可多吃一些红豆、冬瓜等利水的食物,适当控制水分的摄入。\n" +
+ "DASH饮食法:\n" +
+ "1.多吃水果、蔬菜(500-700g),选择低脂肪的牛奶或奶制品,\n" +
+ "2.首选全谷类和根茎类主食\n" +
+ "3.保证每日15-20g坚果的摄入,多吃家禽、鱼虾类等白肉类,少吃红肉类,限制糖类、含糖的饮料的摄入\n" +
+ "4.减少饱和脂肪、胆固醇、反式脂肪的摄入\n" +
+ "5.多吃富含钾、钙、镁、食物纤维、优质蛋白质的食物");
+
+
+ //急性肝炎南方
+ private static PatientGuide patientGuide4JXGY_NF= new PatientGuide("各种营养素的均衡摄入\n" +
+ "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食。\n" +
+ "每日摄入3次奶及奶制品\n" +
+ "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" +
+ "肉类、鱼虾类、蔬菜、水果均衡摄入\n" +
+ "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" +
+ "增加用餐次数\n" +
+ "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" +
+ "保证饮食的清淡\n" +
+ "每日食盐的摄入不得超过6g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" +
+ "保证食物的清洁卫生\n" +
+ "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" +
+ "远离烟、酒、咖啡因,保证水分的充足\n" +
+ "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶、碳酸饮料等,保证每日2300ml水的摄入。\n" +
+ "规律的生活,适当的运动\n" +
+ "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","高热量—高蛋白质—高碳水化合物—中等脂肪—高维生素—低盐(6g)\n" +
+ "热量保证在34-45kcal/kg,蛋白质1.5-2.0g/kg,碳水化合物占总热量的65%,脂肪占总热量的15%。\n" +
+ "限制粗粮类,牛肉和猪肉脂肪较多、组织较硬的部位、培根、午餐肉、香肠、肉脯、脂肪含量较高的鱼类(青花鱼、鲅鱼等),纤维较粗的蔬菜和水果;尽量避免辛辣刺激、油炸等烹饪方法,以及糕点、奶油等油脂含量高的食物。");
+
+
+ //慢性肝炎南方
+ private static PatientGuide patientGuide4MXGY_NF= new PatientGuide("各种营养素的均衡摄入\n" +
+ "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食。\n" +
+ "每日摄入3次奶及奶制品\n" +
+ "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" +
+ "肉类、鱼虾类、蔬菜、水果均衡摄入\n" +
+ "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" +
+ "增加用餐次数\n" +
+ "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" +
+ "保证饮食的清淡\n" +
+ "每日食盐的摄入不得超过6g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" +
+ "保证食物的清洁卫生\n" +
+ "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" +
+ "远离烟、酒、咖啡因,保证水分的充足\n" +
+ "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶、碳酸饮料等,保证每日2300ml水的摄入。\n" +
+ "规律的生活,适当的运动\n" +
+ "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","高热量—高蛋白质—高碳水化合物—中等脂肪—高维生素—低纤维细纤维(水溶性纤维)—低盐(5g)\n" +
+ "热量保证在30-40kcal/kg,蛋白质1.5-2.0g/kg,碳水化合物占总热量的60%,脂肪占总热量的20%。\n" +
+ "限制粗粮类,牛肉和猪肉组织较硬的部位、培根、午餐肉、香肠、肉脯等含添加剂较多的加工食品,含纤维较粗、不可溶纤维的蔬菜和水果;尽量避免辛辣刺激、油炸等烹饪方法。");
+
+
+ //贫血南方
+ private static PatientGuide patientGuide4PX_NF= new PatientGuide("各种营养素的均衡摄入\n" +
+ "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食;避免过食,从而引起体重增长过快。\n" +
+ "每日摄入3次奶及奶制品\n" +
+ "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" +
+ "肉类、鱼虾类、蔬菜、水果均衡摄入\n" +
+ "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" +
+ "增加用餐次数\n" +
+ "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" +
+ "保证饮食的清淡\n" +
+ "每日食盐的摄入不得超过6g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" +
+ "保证食物的清洁卫生\n" +
+ "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" +
+ "远离烟、酒、咖啡因,保证水分的充足\n" +
+ "孕期绝对禁止抽烟、饮酒;避免咖啡、茶等含咖啡因的饮料,保证每日2300ml水的摄入。\n" +
+ "规律的生活,适当的运动\n" +
+ "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","补铁的同时,要注意红血球合成所需的热量、蛋白质、无机质、维生素的充分摄取,以及同时补充维生素C能够促进铁的吸收。孕中期铁的需求量为每日24mg,孕晚期铁的需求量为每日29mg,如果食物不能满足身体对铁的所需,可在医生建议下补充铁剂。\n" +
+ "豆类、粗粮类比细粮铁的含量高;经常摄入牛肉、鸡肉、鱼类、蛋类、动物肝脏等铁,尤其是动物肝脏中铁的含量与吸收率都较高,可以每周吃2-3吃;紫菜、海带等海产品以及菠菜等深绿色的蔬菜也富含大量的铁元素,每天应保证300-500g的蔬菜摄入;乳制品中也含有丰富的铁,每日至少保证500g奶制品的摄入。\n" +
+ "维生素B12和叶酸的缺乏也可能会造成贫血,因此平时还应该多摄取一些动物性食物、绿色蔬菜、豆类等进行补充。\n" +
+ "草酸、植酸、鞣酸、咖啡因等都会破铁的吸收,因此要避免茶、咖啡等含咖啡因的饮料的摄入,以及食用草酸、植酸、鞣酸等蔬菜时,尽量焯水、做熟后再食用。");
+
+ //糖尿病南方
+ private static PatientGuide patientGuide4NTB_NF= new PatientGuide("各种营养素的均衡摄入\n" +
+ "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食;避免过食,从而引起体重增长过快。\n" +
+ "每日摄入3次奶及奶制品\n" +
+ "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等。\n" +
+ "肉类、鱼虾类、蔬菜、水果均衡摄入\n" +
+ "每日保证至少300g蔬菜的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" +
+ "保证饮食的清淡\n" +
+ "每日食盐的摄入不得超过5g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等。\n" +
+ "保证食物的清洁卫生\n" +
+ "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" +
+ "远离烟、酒、咖啡因,保证水分的充足\n" +
+ "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶、碳酸饮料等,保证每日2300ml水的摄入。\n" +
+ "规律的生活,适当的运动\n" +
+ "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","每日摄取的热量按照自身标准体重来制定;糖类、蛋白质、脂肪的比例为55-60%、15-20%、20-25%;至少保证100g糖类的摄入预防酮症酸中毒,尽量避免单糖类的摄入;多吃GI指数55以下的食物,如粗粮、豆类、牛奶、蔬菜等;蛋白质摄取量大约为1-1.5g/kg,约占总热量的15-20%(至少1/3以上为动物性蛋白);多不饱和脂肪:单不饱和脂肪:饱和脂肪为1:1:1,每日n-3的摄入量应保证3g预防高脂血症,胆固醇的摄入量每日不得超过300mg;增加膳食纤维的摄入量,可抑制血糖的上升速度,每日的摄取量为20-35g;规律饮食,少吃多餐,一天5-6餐,每餐八-九分饱;尽量选择蒸、煮、汆烫等烹饪方法,避免煎、炸、烤等方式,烹饪时避免食物过于熟烂,不要空腹喝粥。(需药物治疗患者每日可增加总热量10%的加餐)");
+}
diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/DefaultComputeKulServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/DefaultComputeKulServiceImpl.java
new file mode 100644
index 0000000..d8cceb57
--- /dev/null
+++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/DefaultComputeKulServiceImpl.java
@@ -0,0 +1,133 @@
+package com.lyms.platform.operate.web.service.impl;
+
+import com.lyms.platform.operate.web.service.IComputeKul;
+import com.lyms.platform.operate.web.utils.ReportConfig;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * 默认的卡路里计算规则
+ *
+ * 详细描述
+ *
+ * 示例代码
+ *
+ *
+ *
+ * @author JIAZHI.JIANG
+ * @version BME V100R001 2018-08-28 10:24
+ * @since BME V100R001C40B104
+ */
+public class DefaultComputeKulServiceImpl implements IComputeKul {
+
+
+ @Override
+ public boolean canSupported(String riskId) {
+ return false;
+ }
+
+ @Override
+ public Map getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic,String beforeHeight) {
+ Map map = new HashMap<>();
+
+ double kulStart = 0;
+ double kulEnd = 0;
+
+ String status = "";
+
+ double add = Double.valueOf(String.format("%.2f", currentWeight - beforeWeight));
+
+ //孕早期
+ if (week <= 12) {
+ if (add < 1 && (1 - add >= 0.5)) {
+ status = "低于";
+ kulStart = currentWeight * 25 + 500;
+ } else if (add > 1.5 && (add - 1.5 >= 0.5)) {
+ status = "高于";
+ kulStart = currentWeight * 25 - 500;
+ } else {
+ status = "处于";
+ kulStart = currentWeight * 25;
+ }
+ kulEnd = kulStart;
+ }
+ //孕中期 //孕晚期
+ else if (week > 12) {
+ //基础kcal值
+ int basekul = (week > 12 && week <= 27) ? 340 : 450;
+
+
+ String bmiStr = "";
+
+ if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) {
+ if (bmi < 18.5) {
+ bmiStr = "BMI<18.5孕" + week + "周";
+ } else if (bmi <= 24.9 && bmi >= 18.5) {
+ bmiStr = "BMI=18.5-24.9孕" + week + "周";
+ } else if (bmi <= 29.9 && bmi >= 25) {
+ bmiStr = "BMI=25-29.9孕" + week + "周";
+ } else if (bmi >= 30) {
+ bmiStr = "BMI≥30孕" + week + "周";
+ }
+ } else {
+ if (bmi <= 24.9) {
+ bmiStr = "BMI≤24.9孕" + week + "周";
+ } else if (bmi <= 29.9 && bmi >= 25) {
+ bmiStr = "BMI=25-29.9孕" + week + "周";
+ } else if (bmi >= 30) {
+ bmiStr = "BMI≥30孕" + week + "周";
+ }
+ }
+
+
+ if (StringUtils.isEmpty(bmiStr)) {
+ return map;
+ }
+
+ String[] rangeWeight = null;
+
+ if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) {
+ rangeWeight = ReportConfig.getWeightRange(bmiStr).split("-");
+ } else {
+ rangeWeight = ReportConfig.getDWeightRange(bmiStr).split("-");
+ }
+
+
+ if (rangeWeight == null || rangeWeight.length != 2) {
+ return map;
+ }
+
+ double addWeightStart = Double.parseDouble(rangeWeight[0]);
+ double addWeightEnd = Double.parseDouble(rangeWeight[1]);
+
+ BigDecimal b1 = new BigDecimal(Double.toString(addWeightStart));
+ BigDecimal b2 = new BigDecimal(Double.toString(addWeightEnd));
+ BigDecimal bw = new BigDecimal(Double.toString(beforeWeight));
+ double kstart = (bw.add(b1)).multiply(new BigDecimal(25)).doubleValue() + basekul;
+ double kend = (bw.add(b2)).multiply(new BigDecimal(25)).doubleValue() + basekul;
+
+ status = "处于";
+ if (addWeightEnd < add && (Double.valueOf(String.format("%.2f", add - addWeightEnd))) >= 0.5) {
+ status = "高于";
+ kstart -= 500;
+ kend -= 500;
+ } else if (addWeightStart > add && (Double.valueOf(String.format("%.2f", addWeightStart - add))) >= 0.5) {
+ status = "低于";
+ kstart += 500;
+ kend += 500;
+ }
+ kulStart = kstart;
+ kulEnd = kend;
+ }
+
+ map.put("kulStart", String.valueOf(kulStart));
+ map.put("kulEnd", String.valueOf(kulEnd));
+ map.put("status", status);
+ return map;
+ }
+}
diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/JXGYComputeKuLServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/JXGYComputeKuLServiceImpl.java
new file mode 100644
index 0000000..849dbb2
--- /dev/null
+++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/JXGYComputeKuLServiceImpl.java
@@ -0,0 +1,147 @@
+package com.lyms.platform.operate.web.service.impl;
+
+import com.lyms.platform.operate.web.service.IComputeKul;
+import com.lyms.platform.operate.web.utils.ReportConfig;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 急性肝炎热量计算公式
+ *
+ * 急性肝炎(病毒性肝炎)
+ 孕早期:当前体重×35kcal;
+ 中期:当前体重×35kcal+340kcal;
+ 晚期:当前体重×35kcal+450kcal
+ *
+ * 示例代码
+ *
+ *
+ *
+ * @author JIAZHI.JIANG
+ * @version BME V100R001 2018-08-28 14:50
+ * @since BME V100R001C40B104
+ */
+@Service
+public class JXGYComputeKuLServiceImpl implements IComputeKul {
+
+ private List supportList =new ArrayList<>();
+ {
+ /* b43a43e4-733f-4ec1-9b5e-f00b9bc6e651 消化系统疾病:单纯HbsAg阳性
+ 5a41f670422b03d4ad2bf7f0 病毒性肝炎*/
+ supportList.add("b43a43e4-733f-4ec1-9b5e-f00b9bc6e651");
+ supportList.add("5a41f670422b03d4ad2bf7f0");
+ }
+
+ // 妊娠期糖尿病卡路里计算公式支持的高危id
+ @Override
+ public boolean canSupported(String riskId) {
+ return supportList.contains(riskId);
+ }
+
+ @Override
+ public Map getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic,String beforeHeight) {
+ Map map = new HashMap<>();
+
+ double kulStart = 0;
+ double kulEnd = 0;
+
+ String status = "";
+
+ double add = Double.valueOf(String.format("%.2f", currentWeight - beforeWeight));
+
+ //孕早期
+ if (week <= 12) {
+ if (add < 1 && (1 - add >= 0.5)) {
+ status = "低于";
+ kulStart = currentWeight * 35 ;
+ } else if (add > 1.5 && (add - 1.5 >= 0.5)) {
+ status = "高于";
+ kulStart = currentWeight * 35;
+ } else {
+ status = "处于";
+ kulStart = currentWeight * 35;
+ }
+ kulEnd = kulStart;
+ }
+ //孕中期 //孕晚期
+ else if (week > 12) {
+ //基础kcal值
+ int basekul = (week > 12 && week <= 27) ? 340 : 450;
+
+
+ String bmiStr = "";
+
+ if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) {
+ if (bmi < 18.5) {
+ bmiStr = "BMI<18.5孕" + week + "周";
+ } else if (bmi <= 24.9 && bmi >= 18.5) {
+ bmiStr = "BMI=18.5-24.9孕" + week + "周";
+ } else if (bmi <= 29.9 && bmi >= 25) {
+ bmiStr = "BMI=25-29.9孕" + week + "周";
+ } else if (bmi >= 30) {
+ bmiStr = "BMI≥30孕" + week + "周";
+ }
+ } else {
+ if (bmi <= 24.9) {
+ bmiStr = "BMI≤24.9孕" + week + "周";
+ } else if (bmi <= 29.9 && bmi >= 25) {
+ bmiStr = "BMI=25-29.9孕" + week + "周";
+ } else if (bmi >= 30) {
+ bmiStr = "BMI≥30孕" + week + "周";
+ }
+ }
+
+
+ if (StringUtils.isEmpty(bmiStr)) {
+ return map;
+ }
+
+ String[] rangeWeight = null;
+
+ if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) {
+ rangeWeight = ReportConfig.getWeightRange(bmiStr).split("-");
+ } else {
+ rangeWeight = ReportConfig.getDWeightRange(bmiStr).split("-");
+ }
+
+
+ if (rangeWeight == null || rangeWeight.length != 2) {
+ return map;
+ }
+
+ double addWeightStart = Double.parseDouble(rangeWeight[0]);
+ double addWeightEnd = Double.parseDouble(rangeWeight[1]);
+
+ BigDecimal b1 = new BigDecimal(Double.toString(currentWeight));
+ double kstart = b1.multiply(new BigDecimal(35)).doubleValue() + basekul;
+ double kend = b1.multiply(new BigDecimal(35)).doubleValue() + basekul;
+
+ status = "处于";
+ if (addWeightEnd < add && (Double.valueOf(String.format("%.2f", add - addWeightEnd))) >= 0.5) {
+ status = "高于";
+ kstart -= 500;
+ kend -= 500;
+ } else if (addWeightStart > add && (Double.valueOf(String.format("%.2f", addWeightStart - add))) >= 0.5) {
+ status = "低于";
+ kstart += 500;
+ kend += 500;
+ }
+ kulStart = kstart;
+ kulEnd = kend;
+ }
+
+ map.put("kulStart", String.valueOf(kulStart));
+ map.put("kulEnd", String.valueOf(kulEnd));
+ map.put("status", status);
+ return map;
+ }
+}
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 62c01fc..f170de4 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
@@ -72,6 +72,8 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient
@Autowired
private DoctorUserMapService doctorUserMapService;
+ @Autowired
+ private ComputeKulServiceManager computeKulServiceManager;
/**
@@ -451,8 +453,8 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient
if (1 == type) {
setGuide(week, map); // 设置指南
- }else {
- WeightConfigModel configModel = getWeightConfigBykcal(kmap, ReportConfig.getNSArea(basicConfig.getName()));
+ } else {
+ WeightConfigModel configModel = getWeightConfigBykcal(kmap, ReportConfig.getNSArea(basicConfig.getName()), null);
if (configModel != null) {
if (2 == type) {
setRecipe(map, configModel, week, kmap); // 设置食谱
@@ -488,7 +490,7 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient
String yunqi = "孕" + String.valueOf(week) + "期";
map.put("yunqi", yunqi);
List factor = patients.getRiskFactorId();
- String risk="";
+ String risk = "";
if (CollectionUtils.isNotEmpty(factor)) {
StringBuilder sb = new StringBuilder(56);
for (String srt : factor) {
@@ -500,9 +502,9 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient
}
}
if (sb.toString().endsWith(",")) {
- risk=sb.substring(0, sb.length() - 1);
+ risk = sb.substring(0, sb.length() - 1);
} else {
- risk=sb.toString();
+ risk = sb.toString();
}
}
map.put("risk", risk);
@@ -521,7 +523,7 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient
}
@Override
- public BaseResponse report(String id, Integer userId) {
+ public BaseResponse report(String id, Integer userId, String rid) {
String hospitalId = autoMatchFacade.getHospitalId(userId);
Organization org = organizationService.getOrganization(Integer.parseInt(hospitalId));
@@ -557,19 +559,25 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient
//setInfo(week, map); // 设置孕期相关营养信息
if (week > 5 && week < 41) {
double bmi = Double.parseDouble(patientWeight.getBmi());
- Map kmap = getComputeKul(Double.parseDouble(patientWeight.getBeforeWeight()),
- Double.parseDouble(patientWeight.getNowWeight()), week, bmi, patientWeight.getBregmatic());
+ //根据高危获取不同的卡路里计算公式
+ Map kmap = computeKulServiceManager.getComputeKulByRisk(rid).getComputeKul(Double.parseDouble(patientWeight.getBeforeWeight()),
+ Double.parseDouble(patientWeight.getNowWeight()), week, bmi, patientWeight.getBregmatic(), patientWeight.getBeforeHeight());
if (map == null || map.size() == 0) {
return null;
}
setGuide(week, map); // 设置指南
+ String nsArea=ReportConfig.getNSArea(basicConfig.getName());
- WeightConfigModel configModel = getWeightConfigBykcal(kmap, ReportConfig.getNSArea(basicConfig.getName()));
+ WeightConfigModel configModel = getWeightConfigBykcal(kmap, nsArea, rid);
if (configModel != null) {
setRecipe(map, configModel, week, kmap); // 设置食谱
setSuggest(map, configModel, week); // 设置建议
setCookbook(map, configModel); // 设置菜谱
+ //设置饮食原则
+ setYSYZ(map,ComputeKulServiceManager.getPatientGuideMap().get(rid+nsArea));
+ //设置饮食原则
+ setYYZN(map,ComputeKulServiceManager.getPatientGuideMap().get(rid+nsArea));
}
}
}
@@ -882,6 +890,23 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient
map.put("suggest", suggests);
}
+
+ private void setYSYZ(Map map, ComputeKulServiceManager.PatientGuide patientGuide) {
+ if(null==patientGuide){
+ return;
+ }
+ map.put("ysyz", patientGuide.getYsyz());
+ map.put("cookbookTitle", "饮食原则");
+ }
+
+ private void setYYZN(Map map, ComputeKulServiceManager.PatientGuide patientGuide) {
+ if(null==patientGuide){
+ return;
+ }
+ map.put("yyzn", patientGuide.getYzzn());
+ map.put("cookbookTitle", "营养指南");
+ }
+
private void setCookbook(Map map, WeightConfigModel configModel) {
List cookbooks = configModel.getCookbooks();
map.put("cookbooks", cookbooks);
@@ -1193,7 +1218,7 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient
}
- private WeightConfigModel getWeightConfigBykcal(Map map, String northSouth) {
+ private WeightConfigModel getWeightConfigBykcal(Map map, String northSouth, String risk) {
if (map.get("kulStart") == null) {
return null;
}
@@ -1209,7 +1234,16 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient
} else if (k1 > 3300) {
k1 = 3300;
}
- WeightConfigModel weightConfigModel = mongoTemplate.findOne(Query.query(Criteria.where("northSouth").is(northSouth).and("kcal").is(k1)),
+ Criteria criteria = Criteria.where("northSouth").is(northSouth).and("kcal").is(k1);
+
+ //如果传了高危因素id就按高危去查
+ if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(risk)) {
+ criteria = criteria.and("riskId").in(risk).and("type").is("1");
+ }else {
+ criteria = criteria.and("type").is("0");
+ }
+ Query query = Query.query(criteria);
+ WeightConfigModel weightConfigModel = mongoTemplate.findOne(query,
WeightConfigModel.class);
return weightConfigModel;
}
@@ -1331,6 +1365,36 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient
return map;
}
+ /**
+ * 获取高危的饮食原则
+ *
+ * @return
+ */
+ public BaseResponse findRiskDietaryPrinciples(String patientId) {
+ Patients patients = patientsService.findOnePatientById(patientId);
+ List dataResp = new ArrayList();
+ if (null != patients) {
+ List list = patients.getRiskFactorId();
+ if (CollectionUtils.isNotEmpty(list)) {
+ List data = mongoTemplate.find(Query.query(Criteria.where("riskId").in(list)),
+ WeightConfigModel.class);
+ if (CollectionUtils.isNotEmpty(data)) {
+ for (WeightConfigModel config : data) {
+ for (String str : config.getRiskId()) {
+ if (list.contains(str)) {
+ Map map = new HashMap();
+ map.put("name", basicConfigService.getOneBasicConfigById(str).getName());
+ map.put("id", config.getRiskId());
+ dataResp.add(map);
+ }
+ }
+ }
+ }
+ }
+ }
+ return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setData(dataResp);
+ }
+
public static void main(String[] args) {
PatientWeightServiceImpl patientWeightService = new PatientWeightServiceImpl();
diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TnbComputeKulServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TnbComputeKulServiceImpl.java
new file mode 100644
index 0000000..a8fcb67
--- /dev/null
+++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TnbComputeKulServiceImpl.java
@@ -0,0 +1,129 @@
+package com.lyms.platform.operate.web.service.impl;
+
+import com.lyms.platform.operate.web.service.IComputeKul;
+import com.lyms.platform.operate.web.utils.ReportConfig;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 妊娠期糖尿病卡路里计算公式
+ *
+ * 详细描述
+ *
+ * 示例代码
+ *
+ *
+ *
+ * @author JIAZHI.JIANG
+ * @version BME V100R001 2018-08-28 16:48
+ * @since BME V100R001C40B104
+ */
+@Service
+class TnbComputeKulServiceImpl implements IComputeKul {
+
+ private List supportList =new ArrayList<>();
+ {
+ /* 5aab6d3d422b03d4ad2bf83e 妊娠期糖尿病(无需药物治疗)
+ 5aab6d3e422b03d4ad2bf83f 糖尿病合并妊娠(无需药物治疗)
+ de7468e6-1bb5-4fab-ae84-78857868409a 需药物治疗的糖尿病*/
+ supportList.add("5aab6d3d422b03d4ad2bf83e");
+ supportList.add("5aab6d3e422b03d4ad2bf83f");
+ supportList.add("de7468e6-1bb5-4fab-ae84-78857868409a");
+
+ }
+
+// 妊娠期糖尿病卡路里计算公式支持的高危id
+ @Override
+ public boolean canSupported(String riskId) {
+ return supportList.contains(riskId);
+ }
+
+ @Override
+ public Map getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic, String beforeHeight) {
+ Map map = new HashMap<>();
+
+ double kulStart = 0;
+ double kulEnd = 0;
+
+ String status = "";
+
+ double add = Double.valueOf(String.format("%.2f", currentWeight - beforeWeight));
+ double height = Double.valueOf(String.format("%.2f", beforeHeight));
+
+ //孕早期
+ if (week <= 12) {
+ if (add < 1 && (1 - add >= 0.5)) {
+ status = "低于";
+ kulStart = new BigDecimal(Double.toString(height)).multiply(new BigDecimal(Double.toString(height))).doubleValue()*21 + 500;
+ } else if (add > 1.5 && (add - 1.5 >= 0.5)) {
+ status = "高于";
+ kulStart =new BigDecimal(Double.toString(height)).multiply(new BigDecimal(Double.toString(height))).doubleValue()*21- 500;
+ } else {
+ status = "处于";
+ kulStart =new BigDecimal(Double.toString(height)).multiply(new BigDecimal(Double.toString(height))).doubleValue()*21;
+ }
+ kulEnd = kulStart;
+ }
+ //孕中期 //孕晚期
+ else if (week > 12) {
+ //基础kcal值
+ int basekul = (week > 12 && week <= 27) ? 340 : 450;
+
+ String bmiStr = "BMI=18.5-24.9孕" + week + "周";
+
+
+ if (StringUtils.isEmpty(bmiStr)) {
+ return map;
+ }
+
+ String[] rangeWeight = null;
+
+ if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) {
+ rangeWeight = ReportConfig.getWeightRange(bmiStr).split("-");
+ } else {
+ rangeWeight = ReportConfig.getDWeightRange(bmiStr).split("-");
+ }
+
+
+ if (rangeWeight == null || rangeWeight.length != 2) {
+ return map;
+ }
+
+ double addWeightStart = Double.parseDouble(rangeWeight[0]);
+ double addWeightEnd = Double.parseDouble(rangeWeight[1]);
+
+ BigDecimal b1 = new BigDecimal(Double.toString(addWeightStart));
+ BigDecimal b2 = new BigDecimal(Double.toString(addWeightEnd));
+ BigDecimal bw = new BigDecimal(Double.toString(beforeWeight));
+ double kstart = (bw.add(b1)).multiply(new BigDecimal(25)).doubleValue() + basekul;
+ double kend = (bw.add(b2)).multiply(new BigDecimal(25)).doubleValue() + basekul;
+
+ status = "处于";
+ if (addWeightEnd < add && (Double.valueOf(String.format("%.2f", add - addWeightEnd))) >= 0.5) {
+ status = "高于";
+ kstart -= 500;
+ kend -= 500;
+ } else if (addWeightStart > add && (Double.valueOf(String.format("%.2f", addWeightStart - add))) >= 0.5) {
+ status = "低于";
+ kstart += 500;
+ kend += 500;
+ }
+ kulStart = kstart;
+ kulEnd = kend;
+ }
+
+ map.put("kulStart", String.valueOf(kulStart));
+ map.put("kulEnd", String.valueOf(kulEnd));
+ map.put("status", status);
+ return map;
+ }
+}