Commit f4a71702a27caf58b8f84f3d2bc5e1be9572ebc4
1 parent
c373f211fb
Exists in
master
and in
6 other branches
修改体重营养报告
Showing 9 changed files with 1064 additions and 14 deletions
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IComputeKul.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BDXGYComputeKulServiceImpl.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ComputeKulServiceManager.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/DefaultComputeKulServiceImpl.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/JXGYComputeKuLServiceImpl.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TnbComputeKulServiceImpl.java
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PatientWeightController.java
View file @
f4a7170
| ... | ... | @@ -88,8 +88,10 @@ |
| 88 | 88 | @ResponseBody |
| 89 | 89 | @RequestMapping(value = "report/{id}", method = RequestMethod.GET) |
| 90 | 90 | @TokenRequired |
| 91 | - public BaseResponse report(@PathVariable String id, HttpServletRequest request) { | |
| 92 | - return patientWeightService.report(id, getUserId(request)); | |
| 91 | + public BaseResponse report(@PathVariable String id, | |
| 92 | + HttpServletRequest request, | |
| 93 | + @RequestParam(value = "rid",required = false)String rid) { | |
| 94 | + return patientWeightService.report(id, getUserId(request),rid); | |
| 93 | 95 | } |
| 94 | 96 | |
| 95 | 97 | /** |
| ... | ... | @@ -206,6 +208,19 @@ |
| 206 | 208 | @RequestMapping(value = "/cookbook/info", method = RequestMethod.GET) |
| 207 | 209 | public BaseResponse patientCookbookInfo(String pid) { |
| 208 | 210 | return patientWeightService.patientRecipeInfo(pid, 4); |
| 211 | + } | |
| 212 | + | |
| 213 | + | |
| 214 | + /** | |
| 215 | + * | |
| 216 | + * 选择这个人的高危因素去打印饮食原则 | |
| 217 | + * | |
| 218 | + * @return | |
| 219 | + */ | |
| 220 | + @ResponseBody | |
| 221 | + @RequestMapping(value = "/find/risk", method = RequestMethod.GET) | |
| 222 | + public BaseResponse canChooseRisk(String patientId){ | |
| 223 | + return patientWeightService.findRiskDietaryPrinciples(patientId); | |
| 209 | 224 | } |
| 210 | 225 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IComputeKul.java
View file @
f4a7170
| 1 | +package com.lyms.platform.operate.web.service; | |
| 2 | + | |
| 3 | +import java.util.Map; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * 计算卡路里接口定义 | |
| 7 | + * <p> | |
| 8 | + * 详细描述 | |
| 9 | + * <p> | |
| 10 | + * 示例代码 | |
| 11 | + * <pre> | |
| 12 | + * </pre/> | |
| 13 | + * | |
| 14 | + * @author JIAZHI.JIANG | |
| 15 | + * @version BME V100R001 2018-08-28 9:59 | |
| 16 | + * @since BME V100R001C40B104 | |
| 17 | + */ | |
| 18 | +public interface IComputeKul { | |
| 19 | + | |
| 20 | + /** | |
| 21 | + * 是否支持高危 | |
| 22 | + * | |
| 23 | + * @param riskId 高危因素id | |
| 24 | + * @return | |
| 25 | + */ | |
| 26 | + boolean canSupported(String riskId); | |
| 27 | + | |
| 28 | + /** | |
| 29 | + * | |
| 30 | + * 根据不同的高危计算卡路里 | |
| 31 | + * | |
| 32 | + * @param beforeWeight 孕期体重 | |
| 33 | + * @param currentWeight 当前体重 | |
| 34 | + * @param week 孕周 | |
| 35 | + * @param bmi bmi | |
| 36 | + * @param bregmatic | |
| 37 | + * @return | |
| 38 | + */ | |
| 39 | + Map<String, String> getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic,String beforeHeight); | |
| 40 | +} |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java
View file @
f4a7170
| ... | ... | @@ -8,6 +8,8 @@ |
| 8 | 8 | */ |
| 9 | 9 | public interface PatientWeightService extends IBaseService { |
| 10 | 10 | |
| 11 | + BaseResponse findRiskDietaryPrinciples(String patientId); | |
| 12 | + | |
| 11 | 13 | BaseResponse lastCheckTime(String pid); |
| 12 | 14 | BaseResponse init(); |
| 13 | 15 | BaseResponse patientRecipeInfo(String pid,Integer type); |
| ... | ... | @@ -21,7 +23,7 @@ |
| 21 | 23 | |
| 22 | 24 | BaseResponse delete(String id); |
| 23 | 25 | |
| 24 | - BaseResponse report(String id,Integer userId); | |
| 26 | + BaseResponse report(String id,Integer userId,String rid); | |
| 25 | 27 | |
| 26 | 28 | BaseResponse wxReport(String pid); |
| 27 | 29 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BDXGYComputeKulServiceImpl.java
View file @
f4a7170
| 1 | +package com.lyms.platform.operate.web.service.impl; | |
| 2 | + | |
| 3 | +import com.lyms.platform.operate.web.service.IComputeKul; | |
| 4 | +import com.lyms.platform.operate.web.utils.ReportConfig; | |
| 5 | +import org.apache.commons.lang.StringUtils; | |
| 6 | +import org.slf4j.Logger; | |
| 7 | +import org.slf4j.LoggerFactory; | |
| 8 | +import org.springframework.stereotype.Service; | |
| 9 | + | |
| 10 | +import java.math.BigDecimal; | |
| 11 | +import java.util.ArrayList; | |
| 12 | +import java.util.HashMap; | |
| 13 | +import java.util.List; | |
| 14 | +import java.util.Map; | |
| 15 | + | |
| 16 | + | |
| 17 | +/** | |
| 18 | + * 病毒性肝炎卡路里计算公式 | |
| 19 | + * <p> | |
| 20 | + * 详细描述 | |
| 21 | + * <p> | |
| 22 | + * 示例代码 | |
| 23 | + * <pre> | |
| 24 | + * </pre/> | |
| 25 | + * | |
| 26 | + * @author JIAZHI.JIANG | |
| 27 | + * @version BME V100R001 2018-08-28 16:31 | |
| 28 | + * @since BME V100R001C40B104 | |
| 29 | + */ | |
| 30 | +@Service | |
| 31 | +public class BDXGYComputeKulServiceImpl implements IComputeKul { | |
| 32 | + | |
| 33 | + private List<String> supportList =new ArrayList<>(); | |
| 34 | + { | |
| 35 | + /*5a41f856422b03d4ad2bf801 原因不明的肝功能异常 | |
| 36 | + 5aab6d3f422b03d4ad2bf85c 肝硬化(仅需要药物治疗)*/ | |
| 37 | + supportList.add("5a41f856422b03d4ad2bf801"); | |
| 38 | + supportList.add("5aab6d3f422b03d4ad2bf85c"); | |
| 39 | + } | |
| 40 | + | |
| 41 | + // 妊娠期糖尿病卡路里计算公式支持的高危id | |
| 42 | + @Override | |
| 43 | + public boolean canSupported(String riskId) { | |
| 44 | + return supportList.contains(riskId); | |
| 45 | + } | |
| 46 | + | |
| 47 | + @Override | |
| 48 | + public Map<String, String> getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic,String beforeHeight) { | |
| 49 | + Map<String, String> map = new HashMap<>(); | |
| 50 | + | |
| 51 | + double kulStart = 0; | |
| 52 | + double kulEnd = 0; | |
| 53 | + | |
| 54 | + String status = ""; | |
| 55 | + | |
| 56 | + double add = Double.valueOf(String.format("%.2f", currentWeight - beforeWeight)); | |
| 57 | + | |
| 58 | + //孕早期 | |
| 59 | + if (week <= 12) { | |
| 60 | + if (add < 1 && (1 - add >= 0.5)) { | |
| 61 | + status = "低于"; | |
| 62 | + kulStart = currentWeight * 30 + 500; | |
| 63 | + } else if (add > 1.5 && (add - 1.5 >= 0.5)) { | |
| 64 | + status = "高于"; | |
| 65 | + kulStart = currentWeight * 30 - 500; | |
| 66 | + } else { | |
| 67 | + status = "处于"; | |
| 68 | + kulStart = currentWeight * 30; | |
| 69 | + } | |
| 70 | + kulEnd = kulStart; | |
| 71 | + } | |
| 72 | + //孕中期 //孕晚期 | |
| 73 | + else if (week > 12) { | |
| 74 | + //基础kcal值 | |
| 75 | + int basekul = (week > 12 && week <= 27) ? 340 : 450; | |
| 76 | + | |
| 77 | + | |
| 78 | + String bmiStr = ""; | |
| 79 | + | |
| 80 | + if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) { | |
| 81 | + if (bmi < 18.5) { | |
| 82 | + bmiStr = "BMI<18.5孕" + week + "周"; | |
| 83 | + } else if (bmi <= 24.9 && bmi >= 18.5) { | |
| 84 | + bmiStr = "BMI=18.5-24.9孕" + week + "周"; | |
| 85 | + } else if (bmi <= 29.9 && bmi >= 25) { | |
| 86 | + bmiStr = "BMI=25-29.9孕" + week + "周"; | |
| 87 | + } else if (bmi >= 30) { | |
| 88 | + bmiStr = "BMI≥30孕" + week + "周"; | |
| 89 | + } | |
| 90 | + } else { | |
| 91 | + if (bmi <= 24.9) { | |
| 92 | + bmiStr = "BMI≤24.9孕" + week + "周"; | |
| 93 | + } else if (bmi <= 29.9 && bmi >= 25) { | |
| 94 | + bmiStr = "BMI=25-29.9孕" + week + "周"; | |
| 95 | + } else if (bmi >= 30) { | |
| 96 | + bmiStr = "BMI≥30孕" + week + "周"; | |
| 97 | + } | |
| 98 | + } | |
| 99 | + | |
| 100 | + | |
| 101 | + if (StringUtils.isEmpty(bmiStr)) { | |
| 102 | + return map; | |
| 103 | + } | |
| 104 | + | |
| 105 | + String[] rangeWeight = null; | |
| 106 | + | |
| 107 | + if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) { | |
| 108 | + rangeWeight = ReportConfig.getWeightRange(bmiStr).split("-"); | |
| 109 | + } else { | |
| 110 | + rangeWeight = ReportConfig.getDWeightRange(bmiStr).split("-"); | |
| 111 | + } | |
| 112 | + | |
| 113 | + | |
| 114 | + if (rangeWeight == null || rangeWeight.length != 2) { | |
| 115 | + return map; | |
| 116 | + } | |
| 117 | + | |
| 118 | + double addWeightStart = Double.parseDouble(rangeWeight[0]); | |
| 119 | + double addWeightEnd = Double.parseDouble(rangeWeight[1]); | |
| 120 | + | |
| 121 | + /* BigDecimal b1 = new BigDecimal(Double.toString(addWeightStart)); | |
| 122 | + BigDecimal b2 = new BigDecimal(Double.toString(addWeightEnd)); | |
| 123 | + BigDecimal bw = new BigDecimal(Double.toString(beforeWeight));*/ | |
| 124 | + | |
| 125 | + BigDecimal b1 = new BigDecimal(Double.toString(currentWeight)); | |
| 126 | + double kstart = b1.multiply(new BigDecimal(30)).doubleValue() + basekul; | |
| 127 | + double kend = b1.multiply(new BigDecimal(30)).doubleValue() + basekul; | |
| 128 | + | |
| 129 | + | |
| 130 | + status = "处于"; | |
| 131 | + if (addWeightEnd < add && (Double.valueOf(String.format("%.2f", add - addWeightEnd))) >= 0.5) { | |
| 132 | + status = "高于"; | |
| 133 | + kstart -= 500; | |
| 134 | + kend -= 500; | |
| 135 | + } else if (addWeightStart > add && (Double.valueOf(String.format("%.2f", addWeightStart - add))) >= 0.5) { | |
| 136 | + status = "低于"; | |
| 137 | + kstart += 500; | |
| 138 | + kend += 500; | |
| 139 | + } | |
| 140 | + kulStart = kstart; | |
| 141 | + kulEnd = kend; | |
| 142 | + } | |
| 143 | + | |
| 144 | + map.put("kulStart", String.valueOf(kulStart)); | |
| 145 | + map.put("kulEnd", String.valueOf(kulEnd)); | |
| 146 | + map.put("status", status); | |
| 147 | + return map; | |
| 148 | + } | |
| 149 | +} |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ComputeKulServiceManager.java
View file @
f4a7170
| 1 | +package com.lyms.platform.operate.web.service.impl; | |
| 2 | + | |
| 3 | +import com.lyms.platform.common.utils.StringUtils; | |
| 4 | +import com.lyms.platform.operate.web.service.IComputeKul; | |
| 5 | +import org.slf4j.Logger; | |
| 6 | +import org.slf4j.LoggerFactory; | |
| 7 | +import org.springframework.beans.factory.InitializingBean; | |
| 8 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 9 | +import org.springframework.stereotype.Component; | |
| 10 | + | |
| 11 | +import java.util.HashMap; | |
| 12 | +import java.util.List; | |
| 13 | +import java.util.Map; | |
| 14 | + | |
| 15 | + | |
| 16 | +/** | |
| 17 | + * 添加类的一句话简单描述。 | |
| 18 | + * <p> | |
| 19 | + * 详细描述 | |
| 20 | + * <p> | |
| 21 | + * 示例代码 | |
| 22 | + * <pre> | |
| 23 | + * </pre/> | |
| 24 | + * | |
| 25 | + * @author JIAZHI.JIANG | |
| 26 | + * @version BME V100R001 2018-08-30 17:14 | |
| 27 | + * @since BME V100R001C40B104 | |
| 28 | + */ | |
| 29 | +@Component | |
| 30 | +public class ComputeKulServiceManager implements InitializingBean{ | |
| 31 | + | |
| 32 | + //日志调测器 | |
| 33 | + private static final Logger logger = LoggerFactory.getLogger(ComputeKulServiceManager.class); | |
| 34 | + | |
| 35 | + | |
| 36 | + private static Map<String,PatientGuide> patientGuideMap =new HashMap<>(); | |
| 37 | + static { | |
| 38 | + //妊娠期高血压的营养指南和饮食原则 | |
| 39 | + patientGuideMap.put("5aab6d3f422b03d4ad2bf854北方",ComputeKulServiceManager.patientGuide); | |
| 40 | + patientGuideMap.put("5aab6d3f422b03d4ad2bf856北方",ComputeKulServiceManager.patientGuide); | |
| 41 | + patientGuideMap.put("5aab6d3f422b03d4ad2bf854南方",ComputeKulServiceManager.patientGuide4GXY_NF); | |
| 42 | + patientGuideMap.put("5aab6d3f422b03d4ad2bf856南方",ComputeKulServiceManager.patientGuide4GXY_NF); | |
| 43 | + | |
| 44 | + //病毒性肝炎 | |
| 45 | + patientGuideMap.put("5a41f670422b03d4ad2bf7f0北方",ComputeKulServiceManager.patientGuide1); | |
| 46 | + patientGuideMap.put("b43a43e4-733f-4ec1-9b5e-f00b9bc6e651北方",ComputeKulServiceManager.patientGuide1); | |
| 47 | + patientGuideMap.put("5a41f670422b03d4ad2bf7f0南方",ComputeKulServiceManager.patientGuide4JXGY_NF); | |
| 48 | + patientGuideMap.put("b43a43e4-733f-4ec1-9b5e-f00b9bc6e651南方",ComputeKulServiceManager.patientGuide4JXGY_NF); | |
| 49 | + | |
| 50 | + //慢性肝炎 | |
| 51 | + | |
| 52 | + /*5a41f856422b03d4ad2bf801 原因不明的肝功能异常 | |
| 53 | + 5aab6d3f422b03d4ad2bf85c 肝硬化(仅需要药物治疗)*/ | |
| 54 | + patientGuideMap.put("5a41f856422b03d4ad2bf801北方",ComputeKulServiceManager.patientGuide2); | |
| 55 | + patientGuideMap.put("5aab6d3f422b03d4ad2bf85c北方",ComputeKulServiceManager.patientGuide2); | |
| 56 | + patientGuideMap.put("5a41f856422b03d4ad2bf801南方",ComputeKulServiceManager.patientGuide4MXGY_NF); | |
| 57 | + patientGuideMap.put("5aab6d3f422b03d4ad2bf85c南方",ComputeKulServiceManager.patientGuide4MXGY_NF); | |
| 58 | + | |
| 59 | + | |
| 60 | + /* | |
| 61 | + * 5a41f715422b03d4ad2bf7f7 妊娠合并贫血(Hb 60-110g/L) | |
| 62 | + 5aab6d3e422b03d4ad2bf847 轻度缺铁性贫血(100-109g/L) | |
| 63 | + 5aab6d3e422b03d4ad2bf848 中度缺铁性贫血(70-99g/L) | |
| 64 | + 82e4441b-7072-443e-a30f-39b0b4504d75 重度贫血(Hb40-60g/L) | |
| 65 | + 5a41fa0c422b03d4ad2bf814 重度贫血(Hb≤40g/L) | |
| 66 | + 80c41987-fd8a-4595-a773-088b60a6a33d 再生障碍性贫血 | |
| 67 | + * */ | |
| 68 | + //贫血 | |
| 69 | + patientGuideMap.put("5a41f715422b03d4ad2bf7f7北方",ComputeKulServiceManager.patientGuide3); | |
| 70 | + patientGuideMap.put("5aab6d3e422b03d4ad2bf847北方",ComputeKulServiceManager.patientGuide3); | |
| 71 | + patientGuideMap.put("5aab6d3e422b03d4ad2bf848北方",ComputeKulServiceManager.patientGuide3); | |
| 72 | + patientGuideMap.put("82e4441b-7072-443e-a30f-39b0b4504d75北方",ComputeKulServiceManager.patientGuide3); | |
| 73 | + patientGuideMap.put("5a41fa0c422b03d4ad2bf814北方",ComputeKulServiceManager.patientGuide3); | |
| 74 | + patientGuideMap.put("80c41987-fd8a-4595-a773-088b60a6a33d北方",ComputeKulServiceManager.patientGuide3); | |
| 75 | + patientGuideMap.put("5a41f715422b03d4ad2bf7f7南方",ComputeKulServiceManager.patientGuide4PX_NF); | |
| 76 | + patientGuideMap.put("5aab6d3e422b03d4ad2bf847南方",ComputeKulServiceManager.patientGuide4PX_NF); | |
| 77 | + patientGuideMap.put("5aab6d3e422b03d4ad2bf848南方",ComputeKulServiceManager.patientGuide4PX_NF); | |
| 78 | + patientGuideMap.put("82e4441b-7072-443e-a30f-39b0b4504d75南方",ComputeKulServiceManager.patientGuide4PX_NF); | |
| 79 | + patientGuideMap.put("5a41fa0c422b03d4ad2bf814南方",ComputeKulServiceManager.patientGuide4PX_NF); | |
| 80 | + patientGuideMap.put("80c41987-fd8a-4595-a773-088b60a6a33d南方",ComputeKulServiceManager.patientGuide4PX_NF); | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + /* | |
| 85 | + * 5aab6d3d422b03d4ad2bf83e 妊娠期糖尿病(无需药物治疗) | |
| 86 | + 5aab6d3e422b03d4ad2bf83f 糖尿病合并妊娠(无需药物治疗) | |
| 87 | + de7468e6-1bb5-4fab-ae84-78857868409a 需药物治疗的糖尿病 | |
| 88 | + * */ | |
| 89 | + patientGuideMap.put("5aab6d3d422b03d4ad2bf83e北方",ComputeKulServiceManager.patientGuide4TNB_BF); | |
| 90 | + patientGuideMap.put("5aab6d3e422b03d4ad2bf83f北方",ComputeKulServiceManager.patientGuide4TNB_BF); | |
| 91 | + patientGuideMap.put("de7468e6-1bb5-4fab-ae84-78857868409a北方",ComputeKulServiceManager.patientGuide4TNB_BF); | |
| 92 | + patientGuideMap.put("5aab6d3d422b03d4ad2bf83e南方",ComputeKulServiceManager.patientGuide4NTB_NF); | |
| 93 | + patientGuideMap.put("5aab6d3e422b03d4ad2bf83f南方",ComputeKulServiceManager.patientGuide4NTB_NF); | |
| 94 | + patientGuideMap.put("de7468e6-1bb5-4fab-ae84-78857868409a南方",ComputeKulServiceManager.patientGuide4NTB_NF); | |
| 95 | + } | |
| 96 | + | |
| 97 | + public static Map<String, PatientGuide> getPatientGuideMap() { | |
| 98 | + return patientGuideMap; | |
| 99 | + } | |
| 100 | + | |
| 101 | + private Map<String, IComputeKul> iComputeKulMap = new HashMap<>(); | |
| 102 | + @Autowired | |
| 103 | + private List<IComputeKul> data; | |
| 104 | + | |
| 105 | + public void setData(List<IComputeKul> data) { | |
| 106 | + this.data = data; | |
| 107 | + } | |
| 108 | + | |
| 109 | + /** | |
| 110 | + * 默认的卡路里计算规则 | |
| 111 | + */ | |
| 112 | + private IComputeKul defaultCompute=new DefaultComputeKulServiceImpl(); | |
| 113 | + | |
| 114 | + public IComputeKul getComputeKulByRisk(String risk) { | |
| 115 | + if(StringUtils.isNotEmpty(risk)){ | |
| 116 | + for(IComputeKul iComputeKul:data){ | |
| 117 | + if(iComputeKul.canSupported(risk)){ | |
| 118 | + return iComputeKul; | |
| 119 | + } | |
| 120 | + } | |
| 121 | + } | |
| 122 | + | |
| 123 | + return defaultCompute; | |
| 124 | + } | |
| 125 | + | |
| 126 | + public void setiComputeKulMap(Map<String, IComputeKul> iComputeKulMap) { | |
| 127 | + this.iComputeKulMap = iComputeKulMap; | |
| 128 | + } | |
| 129 | + | |
| 130 | + public void setDefaultCompute(IComputeKul defaultCompute) { | |
| 131 | + this.defaultCompute = defaultCompute; | |
| 132 | + } | |
| 133 | + | |
| 134 | + @Override | |
| 135 | + public void afterPropertiesSet() throws Exception { | |
| 136 | + logger.info("ComputeKulServiceManager after properties set register :" + iComputeKulMap); | |
| 137 | + } | |
| 138 | + public static class PatientGuide{ | |
| 139 | + public PatientGuide(String yzzn, String ysyz) { | |
| 140 | + this.yzzn = yzzn; | |
| 141 | + this.ysyz = ysyz; | |
| 142 | + } | |
| 143 | + | |
| 144 | + //营养指南 | |
| 145 | + private String yzzn; | |
| 146 | + //饮食原则 | |
| 147 | + private String ysyz; | |
| 148 | + | |
| 149 | + public String getYzzn() { | |
| 150 | + return yzzn; | |
| 151 | + } | |
| 152 | + | |
| 153 | + public void setYzzn(String yzzn) { | |
| 154 | + this.yzzn = yzzn; | |
| 155 | + } | |
| 156 | + | |
| 157 | + public String getYsyz() { | |
| 158 | + return ysyz; | |
| 159 | + } | |
| 160 | + | |
| 161 | + public void setYsyz(String ysyz) { | |
| 162 | + this.ysyz = ysyz; | |
| 163 | + } | |
| 164 | + } | |
| 165 | + //高血压的 | |
| 166 | + private static PatientGuide patientGuide= new PatientGuide("各种营养素的均衡摄入\n" + | |
| 167 | + "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食;避免过食,从而引起体重增长过快。\n" + | |
| 168 | + "每日摄入3次奶及奶制品\n" + | |
| 169 | + "每日保证摄入300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" + | |
| 170 | + "肉类、鱼虾类、蔬菜、水果均衡摄入\n" + | |
| 171 | + "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50左右)。\n" + | |
| 172 | + "增加用餐次数\n" + | |
| 173 | + "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" + | |
| 174 | + "保证饮食的清淡\n" + | |
| 175 | + "每日食盐的摄入不得超过5g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" + | |
| 176 | + "保证食物的清洁卫生\n" + | |
| 177 | + "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" + | |
| 178 | + "远离烟、酒、咖啡因,保证水分的充足\n" + | |
| 179 | + "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶等,保证每日2300ml水的摄入。\n" + | |
| 180 | + "规律的生活,适当的运动\n" + | |
| 181 | + "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早期——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","每公斤体重每日1-1.5g的优质蛋白质摄入;减少脂肪的摄入,用不饱和脂肪代替饱和脂肪,控制胆固醇的摄入(300mg以下),特别是ω-3脂肪酸对降低血压有帮助,同时还能预防高脂血症等。\n" + | |
| 182 | + "控制钠的摄入量,血压为140-159/90-99mmHg的情况下,每日钠的摄入量应控制在1.9g(食盐5g)以下,血压为160g/100mmHg的情况下,每日摄入食盐的量应控制在3.5-5g之间,减少钠含量高的食物摄入,多吃K/Na比例高的食物,例如香蕉、大豆、薯类等,尽量避免加工食品的摄入;钙有降压的作用,同时还能预防低钙血症,每日需保证钙摄入的足够,妊娠中期1000mg,妊娠晚期1200mg;多吃富含膳食纤维的食物,能够缓解便秘和降低血液中的胆固醇含量;如果出现水肿现象可多吃一些红豆、冬瓜等利水的食物,适当控制水分的摄入。\n" + | |
| 183 | + "DASH饮食法:\n" + | |
| 184 | + "1.多吃水果、蔬菜(500-700g),选择低脂肪的牛奶或奶制品,\n" + | |
| 185 | + "2.首选全谷类和根茎类主食\n" + | |
| 186 | + "3.保证每日15-20g坚果的摄入,多吃家禽、鱼虾类等白肉类,少吃红肉类,限制糖类、含糖的饮料的摄入\n" + | |
| 187 | + "4.减少饱和脂肪、胆固醇、反式脂肪的摄入\n" + | |
| 188 | + "5.多吃富含钾、钙、镁、食物纤维、优质蛋白质的食物"); | |
| 189 | + //病毒性肝炎 | |
| 190 | + private static PatientGuide patientGuide1= new PatientGuide("各种营养素的均衡摄入\n" + | |
| 191 | + "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食。\n" + | |
| 192 | + "每日摄入3次奶及奶制品\n" + | |
| 193 | + "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" + | |
| 194 | + "肉类、鱼虾类、蔬菜、水果均衡摄入\n" + | |
| 195 | + "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" + | |
| 196 | + "增加用餐次数\n" + | |
| 197 | + "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" + | |
| 198 | + "保证饮食的清淡\n" + | |
| 199 | + "每日食盐的摄入不得超过6g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等。\n" + | |
| 200 | + "保证食物的清洁卫生\n" + | |
| 201 | + "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" + | |
| 202 | + "远离烟、酒、咖啡因,保证水分的充足\n" + | |
| 203 | + "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶、碳酸饮料等,保证每日2300ml水的摄入。\n" + | |
| 204 | + "规律的生活,适当的运动\n" + | |
| 205 | + "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","高热量—高蛋白质—高碳水化合物—中等脂肪—高维生素—低盐(不超过6g)\n" + | |
| 206 | + "热量保证在35-45kcal/kg,蛋白质1.5-2.0g/kg,碳水化合物占总热量的65%,脂肪占总热量的15%。\n" + | |
| 207 | + "限制粗粮类,牛肉和猪肉脂肪较多、组织较硬的部位、培根、午餐肉、香肠、肉脯、脂肪含量较高的鱼类(青花鱼、鲅鱼等),纤维较粗的蔬菜和水果;尽量避免辛辣刺激、油炸等烹饪方法,以及糕点、奶油等油脂含量高的食物。"); | |
| 208 | + //慢性肝炎、肝硬化、肝功能不全的饮食原则 | |
| 209 | + private static PatientGuide patientGuide2= new PatientGuide("各种营养素的均衡摄入\n" + | |
| 210 | + "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食。\n" + | |
| 211 | + "每日摄入3次奶及奶制品\n" + | |
| 212 | + "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" + | |
| 213 | + "肉类、鱼虾类、蔬菜、水果均衡摄入\n" + | |
| 214 | + "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" + | |
| 215 | + "增加用餐次数\n" + | |
| 216 | + "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" + | |
| 217 | + "保证饮食的清淡\n" + | |
| 218 | + "每日食盐的摄入不得超过6g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" + | |
| 219 | + "保证食物的清洁卫生\n" + | |
| 220 | + "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" + | |
| 221 | + "远离烟、酒、咖啡因,保证水分的充足\n" + | |
| 222 | + "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶、碳酸饮料等,保证每日2300ml水的摄入。\n" + | |
| 223 | + "规律的生活,适当的运动\n" + | |
| 224 | + "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","高热量—高蛋白质—高碳水化合物—中等脂肪—高维生素—低纤维细纤维(水溶性纤维)—低盐(5g)\n" + | |
| 225 | + "热量保证在30-40kcal/kg,蛋白质1.5-2.0g/kg,碳水化合物占总热量的60%,脂肪占总热量的20%。\n" + | |
| 226 | + "限制粗粮类,牛肉和猪肉组织较硬的部位、培根、午餐肉、香肠、肉脯等含添加剂较多的加工食品,含纤维较粗、不可溶纤维的蔬菜和水果;尽量避免辛辣刺激、油炸等烹饪方法。"); | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + private static PatientGuide patientGuide3= new PatientGuide("各种营养素的均衡摄入\n" + | |
| 231 | + "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食;避免过食,从而引起体重增长过快。\n" + | |
| 232 | + "每日摄入3次奶及奶制品\n" + | |
| 233 | + "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" + | |
| 234 | + "肉类、鱼虾类、蔬菜、水果均衡摄入\n" + | |
| 235 | + "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" + | |
| 236 | + "增加用餐次数\n" + | |
| 237 | + "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" + | |
| 238 | + "保证饮食的清淡\n" + | |
| 239 | + "每日食盐的摄入不得超过6g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" + | |
| 240 | + "保证食物的清洁卫生\n" + | |
| 241 | + "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" + | |
| 242 | + "远离烟、酒、咖啡因,保证水分的充足\n" + | |
| 243 | + "孕期绝对禁止抽烟、饮酒;避免咖啡、茶等含咖啡因的饮料,保证每日2300ml水的摄入。\n" + | |
| 244 | + "规律的生活,适当的运动\n" + | |
| 245 | + "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","补铁的同时,要注意红血球合成所需的热量、蛋白质、无机质、维生素的充分摄取,以及同时补充维生素C能够促进铁的吸收。孕中期铁的需求量为每日24mg,孕晚期铁的需求量为每日29mg,如果食物不能满足身体对铁的所需,可在医生建议下补充铁剂。\n" + | |
| 246 | + "豆类、粗粮类比细粮铁的含量高;经常摄入牛肉、鸡肉、鱼类、蛋类、动物肝脏等铁,尤其是动物肝脏中铁的含量与吸收率都较高,可以每周吃2-3吃;紫菜、海带等海产品以及菠菜等深绿色的蔬菜也富含大量的铁元素,每天应保证300-500g的蔬菜摄入;乳制品中也含有丰富的铁,每日至少保证500g奶制品的摄入。\n" + | |
| 247 | + "维生素B12和叶酸的缺乏也可能会造成贫血,因此平时还应该多摄取一些动物性食物、绿色蔬菜、豆类等进行补充。\n" + | |
| 248 | + "草酸、植酸、鞣酸、咖啡因等都会破铁的吸收,因此要避免茶、咖啡等含咖啡因的饮料的摄入,以及食用草酸、植酸、鞣酸等蔬菜时,尽量焯水、做熟后再食用。"); | |
| 249 | + | |
| 250 | + //糖尿病北方 | |
| 251 | + 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" + | |
| 252 | + "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食;避免过食,从而引起体重增长过快。\n" + | |
| 253 | + "每日摄入3次奶及奶制品\n" + | |
| 254 | + "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等。\n" + | |
| 255 | + "肉类、鱼虾类、蔬菜、水果均衡摄入\n" + | |
| 256 | + "每日保证至少300g蔬菜的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" + | |
| 257 | + "保证饮食的清淡\n" + | |
| 258 | + "每日食盐的摄入不得超过5g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等。\n" + | |
| 259 | + "保证食物的清洁卫生\n" + | |
| 260 | + "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" + | |
| 261 | + "远离烟、酒、咖啡因,保证水分的充足\n" + | |
| 262 | + "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶、碳酸饮料等,保证每日2300ml水的摄入。\n" + | |
| 263 | + "规律的生活,适当的运动\n" + | |
| 264 | + "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。"); | |
| 265 | + | |
| 266 | + | |
| 267 | + //高血压南方 | |
| 268 | + private static PatientGuide patientGuide4GXY_NF= new PatientGuide("各种营养素的均衡摄入\n" + | |
| 269 | + "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食;避免过食,从而引起体重增长过快。\n" + | |
| 270 | + "每日摄入3次奶及奶制品\n" + | |
| 271 | + "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" + | |
| 272 | + "肉类、鱼虾类、蔬菜、水果均衡摄入\n" + | |
| 273 | + "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50左右)。\n" + | |
| 274 | + "增加用餐次数\n" + | |
| 275 | + "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" + | |
| 276 | + "保证饮食的清淡\n" + | |
| 277 | + "每日食盐的摄入不得超过5g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" + | |
| 278 | + "保证食物的清洁卫生\n" + | |
| 279 | + "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" + | |
| 280 | + "远离烟、酒、咖啡因,保证水分的充足\n" + | |
| 281 | + "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶等,保证每日2300ml水的摄入。\n" + | |
| 282 | + "规律的生活,适当的运动\n" + | |
| 283 | + "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。\n","每公斤体重每日1-1.5g的优质蛋白质摄入;减少脂肪的摄入,用不饱和脂肪代替饱和脂肪,控制胆固醇的摄入(300mg以下),特别是ω-3脂肪酸对降低血压有帮助,同时还能预防高脂血症等。\n" + | |
| 284 | + "控制钠的摄入量,血压为140-159/90-99mmHg的情况下,每日钠的摄入量应控制在1.9g(食盐5g)以下,血压为160g/100mmHg的情况下,每日摄入食盐的量应控制在3.5-5g之间,减少钠含量高的食物摄入,多吃K/Na比例高的食物,例如香蕉、大豆、薯类等,尽量避免加工食品的摄入;钙有降压的作用,同时还能预防低钙血症,每日需保证钙摄入的足够,妊娠中期1000mg,妊娠晚期1200mg;多吃富含膳食纤维的食物,能够缓解便秘和降低血液中的胆固醇含量;如果出现水肿现象可多吃一些红豆、冬瓜等利水的食物,适当控制水分的摄入。\n" + | |
| 285 | + "DASH饮食法:\n" + | |
| 286 | + "1.多吃水果、蔬菜(500-700g),选择低脂肪的牛奶或奶制品,\n" + | |
| 287 | + "2.首选全谷类和根茎类主食\n" + | |
| 288 | + "3.保证每日15-20g坚果的摄入,多吃家禽、鱼虾类等白肉类,少吃红肉类,限制糖类、含糖的饮料的摄入\n" + | |
| 289 | + "4.减少饱和脂肪、胆固醇、反式脂肪的摄入\n" + | |
| 290 | + "5.多吃富含钾、钙、镁、食物纤维、优质蛋白质的食物"); | |
| 291 | + | |
| 292 | + | |
| 293 | + //急性肝炎南方 | |
| 294 | + private static PatientGuide patientGuide4JXGY_NF= new PatientGuide("各种营养素的均衡摄入\n" + | |
| 295 | + "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食。\n" + | |
| 296 | + "每日摄入3次奶及奶制品\n" + | |
| 297 | + "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" + | |
| 298 | + "肉类、鱼虾类、蔬菜、水果均衡摄入\n" + | |
| 299 | + "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" + | |
| 300 | + "增加用餐次数\n" + | |
| 301 | + "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" + | |
| 302 | + "保证饮食的清淡\n" + | |
| 303 | + "每日食盐的摄入不得超过6g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" + | |
| 304 | + "保证食物的清洁卫生\n" + | |
| 305 | + "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" + | |
| 306 | + "远离烟、酒、咖啡因,保证水分的充足\n" + | |
| 307 | + "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶、碳酸饮料等,保证每日2300ml水的摄入。\n" + | |
| 308 | + "规律的生活,适当的运动\n" + | |
| 309 | + "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","高热量—高蛋白质—高碳水化合物—中等脂肪—高维生素—低盐(6g)\n" + | |
| 310 | + "热量保证在34-45kcal/kg,蛋白质1.5-2.0g/kg,碳水化合物占总热量的65%,脂肪占总热量的15%。\n" + | |
| 311 | + "限制粗粮类,牛肉和猪肉脂肪较多、组织较硬的部位、培根、午餐肉、香肠、肉脯、脂肪含量较高的鱼类(青花鱼、鲅鱼等),纤维较粗的蔬菜和水果;尽量避免辛辣刺激、油炸等烹饪方法,以及糕点、奶油等油脂含量高的食物。"); | |
| 312 | + | |
| 313 | + | |
| 314 | + //慢性肝炎南方 | |
| 315 | + private static PatientGuide patientGuide4MXGY_NF= new PatientGuide("各种营养素的均衡摄入\n" + | |
| 316 | + "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食。\n" + | |
| 317 | + "每日摄入3次奶及奶制品\n" + | |
| 318 | + "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" + | |
| 319 | + "肉类、鱼虾类、蔬菜、水果均衡摄入\n" + | |
| 320 | + "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" + | |
| 321 | + "增加用餐次数\n" + | |
| 322 | + "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" + | |
| 323 | + "保证饮食的清淡\n" + | |
| 324 | + "每日食盐的摄入不得超过6g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" + | |
| 325 | + "保证食物的清洁卫生\n" + | |
| 326 | + "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" + | |
| 327 | + "远离烟、酒、咖啡因,保证水分的充足\n" + | |
| 328 | + "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶、碳酸饮料等,保证每日2300ml水的摄入。\n" + | |
| 329 | + "规律的生活,适当的运动\n" + | |
| 330 | + "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","高热量—高蛋白质—高碳水化合物—中等脂肪—高维生素—低纤维细纤维(水溶性纤维)—低盐(5g)\n" + | |
| 331 | + "热量保证在30-40kcal/kg,蛋白质1.5-2.0g/kg,碳水化合物占总热量的60%,脂肪占总热量的20%。\n" + | |
| 332 | + "限制粗粮类,牛肉和猪肉组织较硬的部位、培根、午餐肉、香肠、肉脯等含添加剂较多的加工食品,含纤维较粗、不可溶纤维的蔬菜和水果;尽量避免辛辣刺激、油炸等烹饪方法。"); | |
| 333 | + | |
| 334 | + | |
| 335 | + //贫血南方 | |
| 336 | + private static PatientGuide patientGuide4PX_NF= new PatientGuide("各种营养素的均衡摄入\n" + | |
| 337 | + "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食;避免过食,从而引起体重增长过快。\n" + | |
| 338 | + "每日摄入3次奶及奶制品\n" + | |
| 339 | + "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。\n" + | |
| 340 | + "肉类、鱼虾类、蔬菜、水果均衡摄入\n" + | |
| 341 | + "每日保证至少300g蔬菜和200g水果的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" + | |
| 342 | + "增加用餐次数\n" + | |
| 343 | + "应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右,每餐8-9分饱即可。\n" + | |
| 344 | + "保证饮食的清淡\n" + | |
| 345 | + "每日食盐的摄入不得超过6g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等\n" + | |
| 346 | + "保证食物的清洁卫生\n" + | |
| 347 | + "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" + | |
| 348 | + "远离烟、酒、咖啡因,保证水分的充足\n" + | |
| 349 | + "孕期绝对禁止抽烟、饮酒;避免咖啡、茶等含咖啡因的饮料,保证每日2300ml水的摄入。\n" + | |
| 350 | + "规律的生活,适当的运动\n" + | |
| 351 | + "养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠;每天根据自己的情况保证20-40分钟的轻度运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。","补铁的同时,要注意红血球合成所需的热量、蛋白质、无机质、维生素的充分摄取,以及同时补充维生素C能够促进铁的吸收。孕中期铁的需求量为每日24mg,孕晚期铁的需求量为每日29mg,如果食物不能满足身体对铁的所需,可在医生建议下补充铁剂。\n" + | |
| 352 | + "豆类、粗粮类比细粮铁的含量高;经常摄入牛肉、鸡肉、鱼类、蛋类、动物肝脏等铁,尤其是动物肝脏中铁的含量与吸收率都较高,可以每周吃2-3吃;紫菜、海带等海产品以及菠菜等深绿色的蔬菜也富含大量的铁元素,每天应保证300-500g的蔬菜摄入;乳制品中也含有丰富的铁,每日至少保证500g奶制品的摄入。\n" + | |
| 353 | + "维生素B12和叶酸的缺乏也可能会造成贫血,因此平时还应该多摄取一些动物性食物、绿色蔬菜、豆类等进行补充。\n" + | |
| 354 | + "草酸、植酸、鞣酸、咖啡因等都会破铁的吸收,因此要避免茶、咖啡等含咖啡因的饮料的摄入,以及食用草酸、植酸、鞣酸等蔬菜时,尽量焯水、做熟后再食用。"); | |
| 355 | + | |
| 356 | + //糖尿病南方 | |
| 357 | + private static PatientGuide patientGuide4NTB_NF= new PatientGuide("各种营养素的均衡摄入\n" + | |
| 358 | + "每日保证糖类、脂肪、蛋白质、维生素、水、无机盐六大营养素的均衡摄入,可根据季节变化以及个人的喜好,选择时令新鲜的食材,每种营养素所对应的食物选择2种。保证规律的饮食,不得挑食、偏食;避免过食,从而引起体重增长过快。\n" + | |
| 359 | + "每日摄入3次奶及奶制品\n" + | |
| 360 | + "每日保证300-500g奶制品的摄入,例如牛奶、酸奶、奶酪等。\n" + | |
| 361 | + "肉类、鱼虾类、蔬菜、水果均衡摄入\n" + | |
| 362 | + "每日保证至少300g蔬菜的摄入,可根据自己的喜好选择2-3种时令水果和蔬菜;随着孕期的变化每日100-300g肉类和1-3个鸡蛋的摄入;每周2-3次豆类的摄入(每次20-30g)和2-3次鱼虾类的摄入(每次100-200g),以及1次动物内脏的摄入(每次50-100g)。\n" + | |
| 363 | + "保证饮食的清淡\n" + | |
| 364 | + "每日食盐的摄入不得超过5g,烹调时减少酱油、味精、糖等调料的添加;减少油脂的摄入,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料、冰淇淋等。\n" + | |
| 365 | + "保证食物的清洁卫生\n" + | |
| 366 | + "保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。\n" + | |
| 367 | + "远离烟、酒、咖啡因,保证水分的充足\n" + | |
| 368 | + "孕期绝对禁止抽烟、饮酒;减少咖啡因的摄入,每日不得超过300mg,少喝咖啡,不喝浓茶、碳酸饮料等,保证每日2300ml水的摄入。\n" + | |
| 369 | + "规律的生活,适当的运动\n" + | |
| 370 | + "养成规律的睡眠习惯,早睡——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%的加餐)"); | |
| 371 | +} |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/DefaultComputeKulServiceImpl.java
View file @
f4a7170
| 1 | +package com.lyms.platform.operate.web.service.impl; | |
| 2 | + | |
| 3 | +import com.lyms.platform.operate.web.service.IComputeKul; | |
| 4 | +import com.lyms.platform.operate.web.utils.ReportConfig; | |
| 5 | +import org.apache.commons.lang.StringUtils; | |
| 6 | +import org.springframework.stereotype.Service; | |
| 7 | + | |
| 8 | +import java.math.BigDecimal; | |
| 9 | +import java.util.HashMap; | |
| 10 | +import java.util.Map; | |
| 11 | + | |
| 12 | + | |
| 13 | +/** | |
| 14 | + * 默认的卡路里计算规则 | |
| 15 | + * <p> | |
| 16 | + * 详细描述 | |
| 17 | + * <p> | |
| 18 | + * 示例代码 | |
| 19 | + * <pre> | |
| 20 | + * </pre/> | |
| 21 | + * | |
| 22 | + * @author JIAZHI.JIANG | |
| 23 | + * @version BME V100R001 2018-08-28 10:24 | |
| 24 | + * @since BME V100R001C40B104 | |
| 25 | + */ | |
| 26 | +public class DefaultComputeKulServiceImpl implements IComputeKul { | |
| 27 | + | |
| 28 | + | |
| 29 | + @Override | |
| 30 | + public boolean canSupported(String riskId) { | |
| 31 | + return false; | |
| 32 | + } | |
| 33 | + | |
| 34 | + @Override | |
| 35 | + public Map<String, String> getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic,String beforeHeight) { | |
| 36 | + Map<String, String> map = new HashMap<>(); | |
| 37 | + | |
| 38 | + double kulStart = 0; | |
| 39 | + double kulEnd = 0; | |
| 40 | + | |
| 41 | + String status = ""; | |
| 42 | + | |
| 43 | + double add = Double.valueOf(String.format("%.2f", currentWeight - beforeWeight)); | |
| 44 | + | |
| 45 | + //孕早期 | |
| 46 | + if (week <= 12) { | |
| 47 | + if (add < 1 && (1 - add >= 0.5)) { | |
| 48 | + status = "低于"; | |
| 49 | + kulStart = currentWeight * 25 + 500; | |
| 50 | + } else if (add > 1.5 && (add - 1.5 >= 0.5)) { | |
| 51 | + status = "高于"; | |
| 52 | + kulStart = currentWeight * 25 - 500; | |
| 53 | + } else { | |
| 54 | + status = "处于"; | |
| 55 | + kulStart = currentWeight * 25; | |
| 56 | + } | |
| 57 | + kulEnd = kulStart; | |
| 58 | + } | |
| 59 | + //孕中期 //孕晚期 | |
| 60 | + else if (week > 12) { | |
| 61 | + //基础kcal值 | |
| 62 | + int basekul = (week > 12 && week <= 27) ? 340 : 450; | |
| 63 | + | |
| 64 | + | |
| 65 | + String bmiStr = ""; | |
| 66 | + | |
| 67 | + if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) { | |
| 68 | + if (bmi < 18.5) { | |
| 69 | + bmiStr = "BMI<18.5孕" + week + "周"; | |
| 70 | + } else if (bmi <= 24.9 && bmi >= 18.5) { | |
| 71 | + bmiStr = "BMI=18.5-24.9孕" + week + "周"; | |
| 72 | + } else if (bmi <= 29.9 && bmi >= 25) { | |
| 73 | + bmiStr = "BMI=25-29.9孕" + week + "周"; | |
| 74 | + } else if (bmi >= 30) { | |
| 75 | + bmiStr = "BMI≥30孕" + week + "周"; | |
| 76 | + } | |
| 77 | + } else { | |
| 78 | + if (bmi <= 24.9) { | |
| 79 | + bmiStr = "BMI≤24.9孕" + week + "周"; | |
| 80 | + } else if (bmi <= 29.9 && bmi >= 25) { | |
| 81 | + bmiStr = "BMI=25-29.9孕" + week + "周"; | |
| 82 | + } else if (bmi >= 30) { | |
| 83 | + bmiStr = "BMI≥30孕" + week + "周"; | |
| 84 | + } | |
| 85 | + } | |
| 86 | + | |
| 87 | + | |
| 88 | + if (StringUtils.isEmpty(bmiStr)) { | |
| 89 | + return map; | |
| 90 | + } | |
| 91 | + | |
| 92 | + String[] rangeWeight = null; | |
| 93 | + | |
| 94 | + if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) { | |
| 95 | + rangeWeight = ReportConfig.getWeightRange(bmiStr).split("-"); | |
| 96 | + } else { | |
| 97 | + rangeWeight = ReportConfig.getDWeightRange(bmiStr).split("-"); | |
| 98 | + } | |
| 99 | + | |
| 100 | + | |
| 101 | + if (rangeWeight == null || rangeWeight.length != 2) { | |
| 102 | + return map; | |
| 103 | + } | |
| 104 | + | |
| 105 | + double addWeightStart = Double.parseDouble(rangeWeight[0]); | |
| 106 | + double addWeightEnd = Double.parseDouble(rangeWeight[1]); | |
| 107 | + | |
| 108 | + BigDecimal b1 = new BigDecimal(Double.toString(addWeightStart)); | |
| 109 | + BigDecimal b2 = new BigDecimal(Double.toString(addWeightEnd)); | |
| 110 | + BigDecimal bw = new BigDecimal(Double.toString(beforeWeight)); | |
| 111 | + double kstart = (bw.add(b1)).multiply(new BigDecimal(25)).doubleValue() + basekul; | |
| 112 | + double kend = (bw.add(b2)).multiply(new BigDecimal(25)).doubleValue() + basekul; | |
| 113 | + | |
| 114 | + status = "处于"; | |
| 115 | + if (addWeightEnd < add && (Double.valueOf(String.format("%.2f", add - addWeightEnd))) >= 0.5) { | |
| 116 | + status = "高于"; | |
| 117 | + kstart -= 500; | |
| 118 | + kend -= 500; | |
| 119 | + } else if (addWeightStart > add && (Double.valueOf(String.format("%.2f", addWeightStart - add))) >= 0.5) { | |
| 120 | + status = "低于"; | |
| 121 | + kstart += 500; | |
| 122 | + kend += 500; | |
| 123 | + } | |
| 124 | + kulStart = kstart; | |
| 125 | + kulEnd = kend; | |
| 126 | + } | |
| 127 | + | |
| 128 | + map.put("kulStart", String.valueOf(kulStart)); | |
| 129 | + map.put("kulEnd", String.valueOf(kulEnd)); | |
| 130 | + map.put("status", status); | |
| 131 | + return map; | |
| 132 | + } | |
| 133 | +} |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/JXGYComputeKuLServiceImpl.java
View file @
f4a7170
| 1 | +package com.lyms.platform.operate.web.service.impl; | |
| 2 | + | |
| 3 | +import com.lyms.platform.operate.web.service.IComputeKul; | |
| 4 | +import com.lyms.platform.operate.web.utils.ReportConfig; | |
| 5 | +import org.apache.commons.lang.StringUtils; | |
| 6 | +import org.slf4j.Logger; | |
| 7 | +import org.slf4j.LoggerFactory; | |
| 8 | +import org.springframework.stereotype.Service; | |
| 9 | + | |
| 10 | +import java.math.BigDecimal; | |
| 11 | +import java.util.ArrayList; | |
| 12 | +import java.util.HashMap; | |
| 13 | +import java.util.List; | |
| 14 | +import java.util.Map; | |
| 15 | + | |
| 16 | + | |
| 17 | +/** | |
| 18 | + * 急性肝炎热量计算公式 | |
| 19 | + * <p> | |
| 20 | + * 急性肝炎(病毒性肝炎) | |
| 21 | + 孕早期:当前体重×35kcal; | |
| 22 | + 中期:当前体重×35kcal+340kcal; | |
| 23 | + 晚期:当前体重×35kcal+450kcal | |
| 24 | + * <p> | |
| 25 | + * 示例代码 | |
| 26 | + * <pre> | |
| 27 | + * </pre/> | |
| 28 | + * | |
| 29 | + * @author JIAZHI.JIANG | |
| 30 | + * @version BME V100R001 2018-08-28 14:50 | |
| 31 | + * @since BME V100R001C40B104 | |
| 32 | + */ | |
| 33 | +@Service | |
| 34 | +public class JXGYComputeKuLServiceImpl implements IComputeKul { | |
| 35 | + | |
| 36 | + private List<String> supportList =new ArrayList<>(); | |
| 37 | + { | |
| 38 | + /* b43a43e4-733f-4ec1-9b5e-f00b9bc6e651 消化系统疾病:单纯HbsAg阳性 | |
| 39 | + 5a41f670422b03d4ad2bf7f0 病毒性肝炎*/ | |
| 40 | + supportList.add("b43a43e4-733f-4ec1-9b5e-f00b9bc6e651"); | |
| 41 | + supportList.add("5a41f670422b03d4ad2bf7f0"); | |
| 42 | + } | |
| 43 | + | |
| 44 | + // 妊娠期糖尿病卡路里计算公式支持的高危id | |
| 45 | + @Override | |
| 46 | + public boolean canSupported(String riskId) { | |
| 47 | + return supportList.contains(riskId); | |
| 48 | + } | |
| 49 | + | |
| 50 | + @Override | |
| 51 | + public Map<String, String> getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic,String beforeHeight) { | |
| 52 | + Map<String, String> map = new HashMap<>(); | |
| 53 | + | |
| 54 | + double kulStart = 0; | |
| 55 | + double kulEnd = 0; | |
| 56 | + | |
| 57 | + String status = ""; | |
| 58 | + | |
| 59 | + double add = Double.valueOf(String.format("%.2f", currentWeight - beforeWeight)); | |
| 60 | + | |
| 61 | + //孕早期 | |
| 62 | + if (week <= 12) { | |
| 63 | + if (add < 1 && (1 - add >= 0.5)) { | |
| 64 | + status = "低于"; | |
| 65 | + kulStart = currentWeight * 35 ; | |
| 66 | + } else if (add > 1.5 && (add - 1.5 >= 0.5)) { | |
| 67 | + status = "高于"; | |
| 68 | + kulStart = currentWeight * 35; | |
| 69 | + } else { | |
| 70 | + status = "处于"; | |
| 71 | + kulStart = currentWeight * 35; | |
| 72 | + } | |
| 73 | + kulEnd = kulStart; | |
| 74 | + } | |
| 75 | + //孕中期 //孕晚期 | |
| 76 | + else if (week > 12) { | |
| 77 | + //基础kcal值 | |
| 78 | + int basekul = (week > 12 && week <= 27) ? 340 : 450; | |
| 79 | + | |
| 80 | + | |
| 81 | + String bmiStr = ""; | |
| 82 | + | |
| 83 | + if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) { | |
| 84 | + if (bmi < 18.5) { | |
| 85 | + bmiStr = "BMI<18.5孕" + week + "周"; | |
| 86 | + } else if (bmi <= 24.9 && bmi >= 18.5) { | |
| 87 | + bmiStr = "BMI=18.5-24.9孕" + week + "周"; | |
| 88 | + } else if (bmi <= 29.9 && bmi >= 25) { | |
| 89 | + bmiStr = "BMI=25-29.9孕" + week + "周"; | |
| 90 | + } else if (bmi >= 30) { | |
| 91 | + bmiStr = "BMI≥30孕" + week + "周"; | |
| 92 | + } | |
| 93 | + } else { | |
| 94 | + if (bmi <= 24.9) { | |
| 95 | + bmiStr = "BMI≤24.9孕" + week + "周"; | |
| 96 | + } else if (bmi <= 29.9 && bmi >= 25) { | |
| 97 | + bmiStr = "BMI=25-29.9孕" + week + "周"; | |
| 98 | + } else if (bmi >= 30) { | |
| 99 | + bmiStr = "BMI≥30孕" + week + "周"; | |
| 100 | + } | |
| 101 | + } | |
| 102 | + | |
| 103 | + | |
| 104 | + if (StringUtils.isEmpty(bmiStr)) { | |
| 105 | + return map; | |
| 106 | + } | |
| 107 | + | |
| 108 | + String[] rangeWeight = null; | |
| 109 | + | |
| 110 | + if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) { | |
| 111 | + rangeWeight = ReportConfig.getWeightRange(bmiStr).split("-"); | |
| 112 | + } else { | |
| 113 | + rangeWeight = ReportConfig.getDWeightRange(bmiStr).split("-"); | |
| 114 | + } | |
| 115 | + | |
| 116 | + | |
| 117 | + if (rangeWeight == null || rangeWeight.length != 2) { | |
| 118 | + return map; | |
| 119 | + } | |
| 120 | + | |
| 121 | + double addWeightStart = Double.parseDouble(rangeWeight[0]); | |
| 122 | + double addWeightEnd = Double.parseDouble(rangeWeight[1]); | |
| 123 | + | |
| 124 | + BigDecimal b1 = new BigDecimal(Double.toString(currentWeight)); | |
| 125 | + double kstart = b1.multiply(new BigDecimal(35)).doubleValue() + basekul; | |
| 126 | + double kend = b1.multiply(new BigDecimal(35)).doubleValue() + basekul; | |
| 127 | + | |
| 128 | + status = "处于"; | |
| 129 | + if (addWeightEnd < add && (Double.valueOf(String.format("%.2f", add - addWeightEnd))) >= 0.5) { | |
| 130 | + status = "高于"; | |
| 131 | + kstart -= 500; | |
| 132 | + kend -= 500; | |
| 133 | + } else if (addWeightStart > add && (Double.valueOf(String.format("%.2f", addWeightStart - add))) >= 0.5) { | |
| 134 | + status = "低于"; | |
| 135 | + kstart += 500; | |
| 136 | + kend += 500; | |
| 137 | + } | |
| 138 | + kulStart = kstart; | |
| 139 | + kulEnd = kend; | |
| 140 | + } | |
| 141 | + | |
| 142 | + map.put("kulStart", String.valueOf(kulStart)); | |
| 143 | + map.put("kulEnd", String.valueOf(kulEnd)); | |
| 144 | + map.put("status", status); | |
| 145 | + return map; | |
| 146 | + } | |
| 147 | +} |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java
View file @
f4a7170
| ... | ... | @@ -72,6 +72,8 @@ |
| 72 | 72 | |
| 73 | 73 | @Autowired |
| 74 | 74 | private DoctorUserMapService doctorUserMapService; |
| 75 | + @Autowired | |
| 76 | + private ComputeKulServiceManager computeKulServiceManager; | |
| 75 | 77 | |
| 76 | 78 | |
| 77 | 79 | /** |
| ... | ... | @@ -451,8 +453,8 @@ |
| 451 | 453 | |
| 452 | 454 | if (1 == type) { |
| 453 | 455 | setGuide(week, map); // 设置指南 |
| 454 | - }else { | |
| 455 | - WeightConfigModel configModel = getWeightConfigBykcal(kmap, ReportConfig.getNSArea(basicConfig.getName())); | |
| 456 | + } else { | |
| 457 | + WeightConfigModel configModel = getWeightConfigBykcal(kmap, ReportConfig.getNSArea(basicConfig.getName()), null); | |
| 456 | 458 | if (configModel != null) { |
| 457 | 459 | if (2 == type) { |
| 458 | 460 | setRecipe(map, configModel, week, kmap); // 设置食谱 |
| ... | ... | @@ -488,7 +490,7 @@ |
| 488 | 490 | String yunqi = "孕" + String.valueOf(week) + "期"; |
| 489 | 491 | map.put("yunqi", yunqi); |
| 490 | 492 | List<String> factor = patients.getRiskFactorId(); |
| 491 | - String risk=""; | |
| 493 | + String risk = ""; | |
| 492 | 494 | if (CollectionUtils.isNotEmpty(factor)) { |
| 493 | 495 | StringBuilder sb = new StringBuilder(56); |
| 494 | 496 | for (String srt : factor) { |
| 495 | 497 | |
| ... | ... | @@ -500,9 +502,9 @@ |
| 500 | 502 | } |
| 501 | 503 | } |
| 502 | 504 | if (sb.toString().endsWith(",")) { |
| 503 | - risk=sb.substring(0, sb.length() - 1); | |
| 505 | + risk = sb.substring(0, sb.length() - 1); | |
| 504 | 506 | } else { |
| 505 | - risk=sb.toString(); | |
| 507 | + risk = sb.toString(); | |
| 506 | 508 | } |
| 507 | 509 | } |
| 508 | 510 | map.put("risk", risk); |
| ... | ... | @@ -521,7 +523,7 @@ |
| 521 | 523 | } |
| 522 | 524 | |
| 523 | 525 | @Override |
| 524 | - public BaseResponse report(String id, Integer userId) { | |
| 526 | + public BaseResponse report(String id, Integer userId, String rid) { | |
| 525 | 527 | String hospitalId = autoMatchFacade.getHospitalId(userId); |
| 526 | 528 | Organization org = organizationService.getOrganization(Integer.parseInt(hospitalId)); |
| 527 | 529 | |
| 528 | 530 | |
| 529 | 531 | |
| 530 | 532 | |
| ... | ... | @@ -557,19 +559,25 @@ |
| 557 | 559 | //setInfo(week, map); // 设置孕期相关营养信息 |
| 558 | 560 | if (week > 5 && week < 41) { |
| 559 | 561 | double bmi = Double.parseDouble(patientWeight.getBmi()); |
| 560 | - Map<String, String> kmap = getComputeKul(Double.parseDouble(patientWeight.getBeforeWeight()), | |
| 561 | - Double.parseDouble(patientWeight.getNowWeight()), week, bmi, patientWeight.getBregmatic()); | |
| 562 | + //根据高危获取不同的卡路里计算公式 | |
| 563 | + Map<String, String> kmap = computeKulServiceManager.getComputeKulByRisk(rid).getComputeKul(Double.parseDouble(patientWeight.getBeforeWeight()), | |
| 564 | + Double.parseDouble(patientWeight.getNowWeight()), week, bmi, patientWeight.getBregmatic(), patientWeight.getBeforeHeight()); | |
| 562 | 565 | if (map == null || map.size() == 0) { |
| 563 | 566 | return null; |
| 564 | 567 | } |
| 565 | 568 | |
| 566 | 569 | setGuide(week, map); // 设置指南 |
| 570 | + String nsArea=ReportConfig.getNSArea(basicConfig.getName()); | |
| 567 | 571 | |
| 568 | - WeightConfigModel configModel = getWeightConfigBykcal(kmap, ReportConfig.getNSArea(basicConfig.getName())); | |
| 572 | + WeightConfigModel configModel = getWeightConfigBykcal(kmap, nsArea, rid); | |
| 569 | 573 | if (configModel != null) { |
| 570 | 574 | setRecipe(map, configModel, week, kmap); // 设置食谱 |
| 571 | 575 | setSuggest(map, configModel, week); // 设置建议 |
| 572 | 576 | setCookbook(map, configModel); // 设置菜谱 |
| 577 | + //设置饮食原则 | |
| 578 | + setYSYZ(map,ComputeKulServiceManager.getPatientGuideMap().get(rid+nsArea)); | |
| 579 | + //设置饮食原则 | |
| 580 | + setYYZN(map,ComputeKulServiceManager.getPatientGuideMap().get(rid+nsArea)); | |
| 573 | 581 | } |
| 574 | 582 | } |
| 575 | 583 | } |
| ... | ... | @@ -882,6 +890,23 @@ |
| 882 | 890 | map.put("suggest", suggests); |
| 883 | 891 | } |
| 884 | 892 | |
| 893 | + | |
| 894 | + private void setYSYZ(Map<String, Object> map, ComputeKulServiceManager.PatientGuide patientGuide) { | |
| 895 | + if(null==patientGuide){ | |
| 896 | + return; | |
| 897 | + } | |
| 898 | + map.put("ysyz", patientGuide.getYsyz()); | |
| 899 | + map.put("cookbookTitle", "饮食原则"); | |
| 900 | + } | |
| 901 | + | |
| 902 | + private void setYYZN(Map<String, Object> map, ComputeKulServiceManager.PatientGuide patientGuide) { | |
| 903 | + if(null==patientGuide){ | |
| 904 | + return; | |
| 905 | + } | |
| 906 | + map.put("yyzn", patientGuide.getYzzn()); | |
| 907 | + map.put("cookbookTitle", "营养指南"); | |
| 908 | + } | |
| 909 | + | |
| 885 | 910 | private void setCookbook(Map<String, Object> map, WeightConfigModel configModel) { |
| 886 | 911 | List<WeightConfigModel.Cookbook> cookbooks = configModel.getCookbooks(); |
| 887 | 912 | map.put("cookbooks", cookbooks); |
| ... | ... | @@ -1193,7 +1218,7 @@ |
| 1193 | 1218 | } |
| 1194 | 1219 | |
| 1195 | 1220 | |
| 1196 | - private WeightConfigModel getWeightConfigBykcal(Map<String, String> map, String northSouth) { | |
| 1221 | + private WeightConfigModel getWeightConfigBykcal(Map<String, String> map, String northSouth, String risk) { | |
| 1197 | 1222 | if (map.get("kulStart") == null) { |
| 1198 | 1223 | return null; |
| 1199 | 1224 | } |
| ... | ... | @@ -1209,7 +1234,16 @@ |
| 1209 | 1234 | } else if (k1 > 3300) { |
| 1210 | 1235 | k1 = 3300; |
| 1211 | 1236 | } |
| 1212 | - WeightConfigModel weightConfigModel = mongoTemplate.findOne(Query.query(Criteria.where("northSouth").is(northSouth).and("kcal").is(k1)), | |
| 1237 | + Criteria criteria = Criteria.where("northSouth").is(northSouth).and("kcal").is(k1); | |
| 1238 | + | |
| 1239 | + //如果传了高危因素id就按高危去查 | |
| 1240 | + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(risk)) { | |
| 1241 | + criteria = criteria.and("riskId").in(risk).and("type").is("1"); | |
| 1242 | + }else { | |
| 1243 | + criteria = criteria.and("type").is("0"); | |
| 1244 | + } | |
| 1245 | + Query query = Query.query(criteria); | |
| 1246 | + WeightConfigModel weightConfigModel = mongoTemplate.findOne(query, | |
| 1213 | 1247 | WeightConfigModel.class); |
| 1214 | 1248 | return weightConfigModel; |
| 1215 | 1249 | } |
| ... | ... | @@ -1329,6 +1363,36 @@ |
| 1329 | 1363 | map.put("kulEnd", String.valueOf(kulEnd)); |
| 1330 | 1364 | map.put("status", status); |
| 1331 | 1365 | return map; |
| 1366 | + } | |
| 1367 | + | |
| 1368 | + /** | |
| 1369 | + * 获取高危的饮食原则 | |
| 1370 | + * | |
| 1371 | + * @return | |
| 1372 | + */ | |
| 1373 | + public BaseResponse findRiskDietaryPrinciples(String patientId) { | |
| 1374 | + Patients patients = patientsService.findOnePatientById(patientId); | |
| 1375 | + List dataResp = new ArrayList(); | |
| 1376 | + if (null != patients) { | |
| 1377 | + List<String> list = patients.getRiskFactorId(); | |
| 1378 | + if (CollectionUtils.isNotEmpty(list)) { | |
| 1379 | + List<WeightConfigModel> data = mongoTemplate.find(Query.query(Criteria.where("riskId").in(list)), | |
| 1380 | + WeightConfigModel.class); | |
| 1381 | + if (CollectionUtils.isNotEmpty(data)) { | |
| 1382 | + for (WeightConfigModel config : data) { | |
| 1383 | + for (String str : config.getRiskId()) { | |
| 1384 | + if (list.contains(str)) { | |
| 1385 | + Map map = new HashMap(); | |
| 1386 | + map.put("name", basicConfigService.getOneBasicConfigById(str).getName()); | |
| 1387 | + map.put("id", config.getRiskId()); | |
| 1388 | + dataResp.add(map); | |
| 1389 | + } | |
| 1390 | + } | |
| 1391 | + } | |
| 1392 | + } | |
| 1393 | + } | |
| 1394 | + } | |
| 1395 | + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setData(dataResp); | |
| 1332 | 1396 | } |
| 1333 | 1397 | |
| 1334 | 1398 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TnbComputeKulServiceImpl.java
View file @
f4a7170
| 1 | +package com.lyms.platform.operate.web.service.impl; | |
| 2 | + | |
| 3 | +import com.lyms.platform.operate.web.service.IComputeKul; | |
| 4 | +import com.lyms.platform.operate.web.utils.ReportConfig; | |
| 5 | +import org.apache.commons.lang.StringUtils; | |
| 6 | +import org.slf4j.Logger; | |
| 7 | +import org.slf4j.LoggerFactory; | |
| 8 | +import org.springframework.stereotype.Service; | |
| 9 | + | |
| 10 | +import java.math.BigDecimal; | |
| 11 | +import java.util.ArrayList; | |
| 12 | +import java.util.HashMap; | |
| 13 | +import java.util.List; | |
| 14 | +import java.util.Map; | |
| 15 | + | |
| 16 | + | |
| 17 | +/** | |
| 18 | + * 妊娠期糖尿病卡路里计算公式 | |
| 19 | + * <p> | |
| 20 | + * 详细描述 | |
| 21 | + * <p> | |
| 22 | + * 示例代码 | |
| 23 | + * <pre> | |
| 24 | + * </pre/> | |
| 25 | + * | |
| 26 | + * @author JIAZHI.JIANG | |
| 27 | + * @version BME V100R001 2018-08-28 16:48 | |
| 28 | + * @since BME V100R001C40B104 | |
| 29 | + */ | |
| 30 | +@Service | |
| 31 | +class TnbComputeKulServiceImpl implements IComputeKul { | |
| 32 | + | |
| 33 | + private List<String> supportList =new ArrayList<>(); | |
| 34 | + { | |
| 35 | + /* 5aab6d3d422b03d4ad2bf83e 妊娠期糖尿病(无需药物治疗) | |
| 36 | + 5aab6d3e422b03d4ad2bf83f 糖尿病合并妊娠(无需药物治疗) | |
| 37 | + de7468e6-1bb5-4fab-ae84-78857868409a 需药物治疗的糖尿病*/ | |
| 38 | + supportList.add("5aab6d3d422b03d4ad2bf83e"); | |
| 39 | + supportList.add("5aab6d3e422b03d4ad2bf83f"); | |
| 40 | + supportList.add("de7468e6-1bb5-4fab-ae84-78857868409a"); | |
| 41 | + | |
| 42 | + } | |
| 43 | + | |
| 44 | +// 妊娠期糖尿病卡路里计算公式支持的高危id | |
| 45 | + @Override | |
| 46 | + public boolean canSupported(String riskId) { | |
| 47 | + return supportList.contains(riskId); | |
| 48 | + } | |
| 49 | + | |
| 50 | + @Override | |
| 51 | + public Map<String, String> getComputeKul(double beforeWeight, double currentWeight, int week, double bmi, String bregmatic, String beforeHeight) { | |
| 52 | + Map<String, String> map = new HashMap<>(); | |
| 53 | + | |
| 54 | + double kulStart = 0; | |
| 55 | + double kulEnd = 0; | |
| 56 | + | |
| 57 | + String status = ""; | |
| 58 | + | |
| 59 | + double add = Double.valueOf(String.format("%.2f", currentWeight - beforeWeight)); | |
| 60 | + double height = Double.valueOf(String.format("%.2f", beforeHeight)); | |
| 61 | + | |
| 62 | + //孕早期 | |
| 63 | + if (week <= 12) { | |
| 64 | + if (add < 1 && (1 - add >= 0.5)) { | |
| 65 | + status = "低于"; | |
| 66 | + kulStart = new BigDecimal(Double.toString(height)).multiply(new BigDecimal(Double.toString(height))).doubleValue()*21 + 500; | |
| 67 | + } else if (add > 1.5 && (add - 1.5 >= 0.5)) { | |
| 68 | + status = "高于"; | |
| 69 | + kulStart =new BigDecimal(Double.toString(height)).multiply(new BigDecimal(Double.toString(height))).doubleValue()*21- 500; | |
| 70 | + } else { | |
| 71 | + status = "处于"; | |
| 72 | + kulStart =new BigDecimal(Double.toString(height)).multiply(new BigDecimal(Double.toString(height))).doubleValue()*21; | |
| 73 | + } | |
| 74 | + kulEnd = kulStart; | |
| 75 | + } | |
| 76 | + //孕中期 //孕晚期 | |
| 77 | + else if (week > 12) { | |
| 78 | + //基础kcal值 | |
| 79 | + int basekul = (week > 12 && week <= 27) ? 340 : 450; | |
| 80 | + | |
| 81 | + String bmiStr = "BMI=18.5-24.9孕" + week + "周"; | |
| 82 | + | |
| 83 | + | |
| 84 | + if (StringUtils.isEmpty(bmiStr)) { | |
| 85 | + return map; | |
| 86 | + } | |
| 87 | + | |
| 88 | + String[] rangeWeight = null; | |
| 89 | + | |
| 90 | + if (StringUtils.isEmpty(bregmatic) || "1".equals(bregmatic)) { | |
| 91 | + rangeWeight = ReportConfig.getWeightRange(bmiStr).split("-"); | |
| 92 | + } else { | |
| 93 | + rangeWeight = ReportConfig.getDWeightRange(bmiStr).split("-"); | |
| 94 | + } | |
| 95 | + | |
| 96 | + | |
| 97 | + if (rangeWeight == null || rangeWeight.length != 2) { | |
| 98 | + return map; | |
| 99 | + } | |
| 100 | + | |
| 101 | + double addWeightStart = Double.parseDouble(rangeWeight[0]); | |
| 102 | + double addWeightEnd = Double.parseDouble(rangeWeight[1]); | |
| 103 | + | |
| 104 | + BigDecimal b1 = new BigDecimal(Double.toString(addWeightStart)); | |
| 105 | + BigDecimal b2 = new BigDecimal(Double.toString(addWeightEnd)); | |
| 106 | + BigDecimal bw = new BigDecimal(Double.toString(beforeWeight)); | |
| 107 | + double kstart = (bw.add(b1)).multiply(new BigDecimal(25)).doubleValue() + basekul; | |
| 108 | + double kend = (bw.add(b2)).multiply(new BigDecimal(25)).doubleValue() + basekul; | |
| 109 | + | |
| 110 | + status = "处于"; | |
| 111 | + if (addWeightEnd < add && (Double.valueOf(String.format("%.2f", add - addWeightEnd))) >= 0.5) { | |
| 112 | + status = "高于"; | |
| 113 | + kstart -= 500; | |
| 114 | + kend -= 500; | |
| 115 | + } else if (addWeightStart > add && (Double.valueOf(String.format("%.2f", addWeightStart - add))) >= 0.5) { | |
| 116 | + status = "低于"; | |
| 117 | + kstart += 500; | |
| 118 | + kend += 500; | |
| 119 | + } | |
| 120 | + kulStart = kstart; | |
| 121 | + kulEnd = kend; | |
| 122 | + } | |
| 123 | + | |
| 124 | + map.put("kulStart", String.valueOf(kulStart)); | |
| 125 | + map.put("kulEnd", String.valueOf(kulEnd)); | |
| 126 | + map.put("status", status); | |
| 127 | + return map; | |
| 128 | + } | |
| 129 | +} |