From 66dccf9e76f0c64a8c87127f3c1f08dd27234504 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Tue, 2 Mar 2021 10:47:10 +0800 Subject: [PATCH] update --- .../lyms/platform/biz/BasicConfigServiceTest.java | 119 +++++++++++++++++- .../lyms/platform/common/utils/StringUtils.java | 7 ++ .../platform/pojo/PatientDdbWeightReportModel.java | 128 +++++++++++++++++++ .../web/service/impl/PatientWeightServiceImpl.java | 137 ++++++++++++++++++++- .../operate/web/worker/QuanChanPatientWorker.java | 9 +- 5 files changed, 394 insertions(+), 6 deletions(-) create mode 100644 platform-dal/src/main/java/com/lyms/platform/pojo/PatientDdbWeightReportModel.java diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java index 842a691..acf60bf 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java @@ -6825,6 +6825,121 @@ public class BasicConfigServiceTest { } } + + public static void saveDdb(String fileName) { + ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext_biz_patient1.xml"); + MongoTemplate mongoTemplate + = (MongoTemplate) applicationContext.getBean("mongoTemplate"); + mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray()); + File file = new File(fileName); + Workbook wb = null; + try { + wb = Workbook.getWorkbook(file); + Sheet s = wb.getSheet(0); + System.out.println(s.getName() + " : "); + int rows = s.getRows(); + if (rows > 0) { + //遍历每行 + for (int i = 2; i < rows; i++) { + System.out.println("rows=" + i); + PatientDdbWeightReportModel model = new PatientDdbWeightReportModel(); + Cell[] cells = s.getRow(i); + if (cells.length > 0) { + for (int j = 0; j < cells.length; j++) { + String str = cells[j].getContents() == null ? null : cells[j].getContents().trim(); + switch (j) { + case 0: + model.setKcal(StringUtils.isNotEmpty(str) ? Integer.parseInt(str.replace("kcal", "")) : null); + continue; + case 1: + model.setType(str.replace("\n","").equals("早期") ? 1 : (str.replace("\n","").equals("中期") ? 2 : 3)); + continue; + case 2: + List list1 = Arrays.asList(str.split("\n")); + model.setBreakfast(list1); + continue; + case 3: + List list2 = Arrays.asList(str.split("\n")); + model.setBreakfastAdd(list2); + continue; + case 4: + List list3 = Arrays.asList(str.split("\n")); + model.setLunch(list3); + continue; + case 5: + List list4 = Arrays.asList(str.split("\n")); + model.setLunchAdd(list4); + continue; + case 6: + List list5 = Arrays.asList(str.split("\n")); + model.setDinner(list5); + continue; + case 7: + List list6 = Arrays.asList(str.split("\n")); + model.setDinnerAdd(list6); + continue; + case 8: + List list7 = Arrays.asList(str.split("\n")); + List listTemp = new ArrayList<>(); + for (String key : list7) + { + if (!key.equals("*参考《中国妇幼人群膳食指南2016》")) + { + listTemp.add(key); + } + } + model.setDietStructures(listTemp); + continue; + } + } + } + mongoTemplate.save(model); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + public static void saveDdb1(String fileName) { + ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext_biz_patient1.xml"); + MongoTemplate mongoTemplate + = (MongoTemplate) applicationContext.getBean("mongoTemplate"); + mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray()); + File file = new File(fileName); + Workbook wb = null; + try { + wb = Workbook.getWorkbook(file); + Sheet s = wb.getSheet(1); + System.out.println(s.getName() + " : "); + int rows = s.getRows(); + if (rows > 0) { + //遍历每行 + for (int i = 1; i < rows; i++) { + System.out.println("rows=" + i); + PatientDdbWeightReportModel model = new PatientDdbWeightReportModel(); + Cell[] cells = s.getRow(i); + if (cells.length > 0) { + for (int j = 0; j < cells.length; j++) { + String str = cells[j].getContents() == null ? null : cells[j].getContents().trim(); + switch (j) { + case 0: + model.setWeek(StringUtils.isNotEmpty(str) ? Integer.parseInt(str) : null); + continue; + case 1: + List list1 = Arrays.asList(str.split("\n")); + model.setWeekCarefuls(list1); + continue; + } + } + } + mongoTemplate.save(model); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + public static void main(String[] args) { // getData(); //weightWeek("F:\\体重与营养管理\\体重与营养管理第三版(北方)改标红“、冰淇淋”-晓萌.xls"); @@ -6874,8 +6989,10 @@ public class BasicConfigServiceTest { //saveMicroelements("E:\\dev\\微量元素指导报告模板.xls"); //saveBabyMicroelements("F:\\技术文档\\儿童微量元素\\儿童微量元素指导报告模板.xls"); //saveBabyBone("F:\\技术文档\\骨密度\\儿童骨密度报告模板内容表.xls"); - saveQhdDist("F:\\儿童营养报告\\秦皇岛市妇幼新版选择儿童膳食报告\\(泉渝)秦皇岛市妇幼儿童膳食报告20210129.xls"); +// saveQhdDist("F:\\儿童营养报告\\秦皇岛市妇幼新版选择儿童膳食报告\\(泉渝)秦皇岛市妇幼儿童膳食报告20210129.xls"); // saveQhdDist1("F:\\儿童营养报告\\秦皇岛市妇幼新版选择儿童膳食报告\\秦皇岛市妇幼儿童膳食报告0-11.xls"); + saveDdb("F:\\体重与营养管理\\低蛋白.xls"); + saveDdb1("F:\\体重与营养管理\\低蛋白.xls"); } diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java b/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java index 608d699..978f6bd 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java @@ -413,6 +413,13 @@ public final class StringUtils { } return null; } + public static String listToString(List list, char separator) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < list.size(); i++) { + sb.append(list.get(i)).append(separator); + } + return list.isEmpty() ? "" : sb.toString().substring(0, sb.toString().length() - 1); + } public static String numCodeStr(Long numCode) { diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/PatientDdbWeightReportModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/PatientDdbWeightReportModel.java new file mode 100644 index 0000000..f51c247 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/PatientDdbWeightReportModel.java @@ -0,0 +1,128 @@ +package com.lyms.platform.pojo; + +import com.lyms.platform.common.result.BaseModel; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.List; + +@Document(collection = "lyms_patient_ddb_report") +public class PatientDdbWeightReportModel extends BaseModel { + private String id; + + //热量值 + private Integer kcal; + + //1 孕早期 2 孕中期 3孕晚期 + private Integer type; + + //孕周 + private Integer week; + + //膳食结构 + private List dietStructures; + //本周注意 + private List weekCarefuls; + + private List breakfast;//早餐 + private List breakfastAdd;//上午加餐 + private List lunch;//午餐 + private List lunchAdd;//下午加餐 + private List dinner;//晚餐 + private List dinnerAdd;//晚加餐 + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Integer getKcal() { + return kcal; + } + + public void setKcal(Integer kcal) { + this.kcal = kcal; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public Integer getWeek() { + return week; + } + + public void setWeek(Integer week) { + this.week = week; + } + + public List getDietStructures() { + return dietStructures; + } + + public void setDietStructures(List dietStructures) { + this.dietStructures = dietStructures; + } + + public List getWeekCarefuls() { + return weekCarefuls; + } + + public void setWeekCarefuls(List weekCarefuls) { + this.weekCarefuls = weekCarefuls; + } + + public List getBreakfast() { + return breakfast; + } + + public void setBreakfast(List breakfast) { + this.breakfast = breakfast; + } + + public List getBreakfastAdd() { + return breakfastAdd; + } + + public void setBreakfastAdd(List breakfastAdd) { + this.breakfastAdd = breakfastAdd; + } + + public List getLunch() { + return lunch; + } + + public void setLunch(List lunch) { + this.lunch = lunch; + } + + public List getLunchAdd() { + return lunchAdd; + } + + public void setLunchAdd(List lunchAdd) { + this.lunchAdd = lunchAdd; + } + + public List getDinner() { + return dinner; + } + + public void setDinner(List dinner) { + this.dinner = dinner; + } + + public List getDinnerAdd() { + return dinnerAdd; + } + + public void setDinnerAdd(List dinnerAdd) { + this.dinnerAdd = dinnerAdd; + } +} 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 6a38f05..02d9f57 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 @@ -2762,13 +2762,15 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient Integer gjKcal = this.getRounding((int) this.getKcal(bregmatic, residualWeight, low, high, week, bmiD, patients, patientWeight, heights, 1.0)); String gjKcalStr = gjKcal + "kcal"; //获取改孕妇的高危项 + List reiskFactor = patients.getRiskFactorId(); String risk = patients.getRiskLevelId(); + Map weights = new LinkedHashMap<>(); if (risk.contains("eb146c03-b19f-4e28-b85f-fda574b2283b")) { return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.DEPT_NOT_EXISTS).setErrormsg("警告").setData("该风险已超过管控范围,请到医生处进行咨询"); } else { //获取视图 Map dayWeights = patientWeight.getDayWeights(); - Map weights = new LinkedHashMap<>(); + if (MapUtils.isNotEmpty(dayWeights)) { Set> entries = dayWeights.entrySet(); for (Map.Entry entry : entries) { @@ -2782,7 +2784,7 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient Map data4 = new HashMap<>(); Map data5 = new HashMap<>(); Map data6 = new HashMap<>(); - List reiskFactor = patients.getRiskFactorId(); + List weightReport = mongoTemplate.findAll(WeightReportModel.class); if (reiskFactor.isEmpty() && weightReport.isEmpty()) { return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("对象值为空!").setData(""); @@ -2827,8 +2829,135 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient } } if (datas.size() == 0) { - BaseResponse baseResponse = this.report(pid, userId, rid, version, doctorId, beforeWeight, height, bregmatic, bregmaticOther); - return baseResponse; + if (CollectionUtils.isNotEmpty(reiskFactor) && reiskFactor.contains("603c54a85bfc648e856f20aa")) + { + + Map data = new HashMap(); + setReport(data,weights, patientWeight.getBeforeWeight(), patientWeight.getBmi(), patientWeight.getDayWeights(), patientWeight.getBregmatic()); + + Map kmap = computeKulServiceManager.getComputeKulByRisk(rid).getComputeKul(Double.parseDouble(patientWeight.getBeforeWeight()), + Double.parseDouble(patientWeight.getNowWeight()), week, bmiD, patientWeight.getBregmatic(), patientWeight.getBeforeHeight(), version); + + double kulStart = Double.valueOf(kmap.get("kulStart")); + int k1 = ((int) kulStart / 100) * 100; + if (k1 < 1000) { + k1 = 1000; + } else if (k1 > 3300) { + k1 = 3300; + } + int type = 0; + //孕早期 + if (week < 12) { + type = 1; + //孕中期 + } else if (week <= 28) { + type = 2; + //孕晚期 + } else { + type = 3; + } + + Map userMap = new HashMap(); + userMap.put("userName", patients.getUsername()); + userMap.put("age", patients.getAge() + "岁"); + userMap.put("height", patientWeight.getBeforeHeight() + "cm"); + userMap.put("bmi", bmiD); + userMap.put("ddb", true); + userMap.put("week", "孕" + week + "周"); + userMap.put("vcCardNo", patients.getVcCardNo()); + userMap.put("phone", patients.getPhone()); + userMap.put("dueDate", DateUtil.getyyyy_MM_dd(patients.getDueDate())); + userMap.put("NowWeight", patientWeight.getNowWeight() + "kg"); + userMap.put("BeforeWeight", patientWeight.getBeforeWeight() + "kg"); + //userMap.put("riskFactor", set); + userMap.put("state", this.getState(patientWeight.getNowWeight(), patientWeight.getBeforeWeight(), patientWeight.getBregmatic(), week, bmiD)); + data.put("userInfo", userMap); + + PatientDdbWeightReportModel patientDdbWeightReportModel = + mongoTemplate.findOne(Query.query(Criteria.where("kcal").is(k1).and("type").is(type)), PatientDdbWeightReportModel.class); + + + + Map map2 = new HashMap(); + List yyzl = Arrays.asList( + "各种营养素均衡摄入", + "补充充足的叶酸,依据医嘱补充叶酸制剂,选择叶酸含量丰富的食物如动物的内脏、蛋、鱼、梨、蚕豆、甜菜、菠菜、芹菜、坚果等。各种营养素的均衡摄入,每日保证碳水化合物、脂肪、蛋白质、维生素、水、无机盐、膳食纤维七大营养素的均衡摄入,每日保证至少足量的蔬菜和水果的摄入,建议蔬菜种类摄入齐全,根茎叶茄花果类的蔬菜推荐都选择,酸性的水果含维生素C和维生素B族类较多,也可选择时令新鲜的食材。", + "贫血严重请咨询医生补充铁剂", + "贫血严重的情况下请在医生的指导下补充铁制剂。", + "维持正常体重", + "每周测量体重,维持孕期适宜增重。保证规律的饮食,不得挑食、偏食;避免过食,从而引起体重增长过快。咨询医生,关注个体化体重增长范围。", + "保证动物性蛋白质的摄入", + "每日保证推荐的奶制品的摄入量,例如牛奶、酸奶、奶酪等;经常摄入排骨、鱼虾类等以达到钙质的补充。肉类、鱼虾类、蔬菜、水果均衡摄入。", + "随着孕期的变化需要注意肉类和鸡蛋的摄入增加。", + "准备母乳喂养", + "孕期准备母乳喂养,不饮酒不吸烟远离二手烟。", + "保持健康的饮食习惯", + "增加用餐次数,应采取少食多餐的原则,每日进餐次数由孕前的3次增加至5-6次,每日可在3次正餐中间加2-3次的加餐,每餐时间间隔约2小时左右。", + "保证饮食的清淡,每日食盐的摄入不得超过6g;适当摄入油脂,保证饮食的清淡,少吃或不吃油炸食物、辛辣食物、糕点、饮料等含糖量过高的食物。", + "保证食物的清洁卫生,保证食物的卫生,新鲜,不吃隔夜、变质的食物,不吃没有熟透的肉类和海鲜,尽量减少外出用餐。", + "洁净饮水,少喝含糖饮料,保证每日2300ml水的摄入。", + "保证规律的生活习惯", + "规律的生活,适当的运动,养成规律的睡眠习惯,早睡——11点以前入睡,避免熬夜,早起——7:30-8:00间起床吃早餐,以免晚上失眠。", + "保持健康的运动习惯", + "每天根据自己的情况保证20-40分钟的适当的运动,孕早期以散步为宜,中期以游泳、瑜伽为宜,孕晚期以散步、助产运动为宜。" + ); + map2.put("guideTitle","孕期营养指南"); + map2.put("guideInfo", yyzl); + data.put("nutritionGuide", map2); + Map map3 = new HashMap(); + map3.put("dietTitle", "低蛋白的饮食原则"); + + List yz = Arrays.asList("1、保证每公斤体重每日1.5-2.0g的蛋白质摄入。增加食用含蛋白质丰富的肉类包括红肉类:猪肉、牛肉、羊肉;白肉类:鸡肉、鱼肉、虾肉、贝肉;补充充足的奶制品如:纯牛奶、酸奶、奶酪、奶粉等;补充充足的蛋类,蛋类的生物学效价最高,人体吸收和利用率也最高,保证蛋类的摄入充足有助于提高机体蛋白质吸收利用的效率。", + "2、保证能量摄入充足,能量摄入充足是保证蛋白质在体内有效利用的前提,能量摄入不充足容易导致摄入的蛋白质优先燃烧供能,从而造成浪费。日常饮食主要的能量来源为主食,因此每日要保证主食摄入量。", + "3、补充充足的富含B族维生素的食物如肝脏、蛋、牛奶、糙米、全麦制品、芝麻、香菇、花生、绿豆等,有助于维持机体正常的能量代谢。" , + "4、补充充足的维生素C和锌有助于机体蛋白组织的合成。保证蔬菜水果的摄入,丰富的维生素和矿物质有助于促进血液蛋白质的合成。" , + "5、血蛋白过低或机体蛋白质缺乏严重的情况下,通过肠内或者饮食的方式进行高蛋白饮食补充时需要循序渐进,以避免胃肠道不耐受,从而有助于降低再喂养综合征的发生。" , + "6、蛋白质缺乏严重的情况下,必要时请在临床医生或者临床营养师的建议下选择高蛋白型肠内营养制剂或者通过静脉通路进行蛋白质的补充。"); + + map3.put("dietInfo", yz); + data.put("dietaryRules", map3); + + if (null != patientDdbWeightReportModel) { + + Map map1 = new HashMap(); + map1.put("kacl", patientDdbWeightReportModel.getKcal()+"kcal"); + map1.put("breakfast", com.lyms.platform.common.utils.StringUtils.listToString(patientDdbWeightReportModel.getBreakfast(),',')); + map1.put("breakfastAdd", com.lyms.platform.common.utils.StringUtils.listToString(patientDdbWeightReportModel.getBreakfastAdd(),',')); + map1.put("lunch", com.lyms.platform.common.utils.StringUtils.listToString(patientDdbWeightReportModel.getLunch(),',')); + map1.put("lunchAdd", com.lyms.platform.common.utils.StringUtils.listToString(patientDdbWeightReportModel.getLunchAdd(),',')); + map1.put("dinner", com.lyms.platform.common.utils.StringUtils.listToString(patientDdbWeightReportModel.getDinner(),',')); + map1.put("dinnerAdd", com.lyms.platform.common.utils.StringUtils.listToString(patientDdbWeightReportModel.getDinnerAdd(),',')); + map1.put("proposalInfo", patientDdbWeightReportModel.getDietStructures()); + PatientDdbWeightReportModel patientDdbWeightReportModel1 = + mongoTemplate.findOne(Query.query(Criteria.where("week").is(week)), PatientDdbWeightReportModel.class); + if (patientDdbWeightReportModel1 != null) + { + Map map = new HashMap(); + map.put("weeks", week); + map.put("becareful", patientDdbWeightReportModel1.getWeekCarefuls()); + data.put("attentionWeek", map); + } + data.put("recipes", map1); + + List healthy = new ArrayList(); + healthy.add("d42eec03-aa86-45b8-a4e0-78a0ff365fb6");//健康id// + healthy.add("a427da89-594a-46c2-b9f7-1b0d355ce54c");//28>BMI>25 + healthy.add("5a40c6c5422b03d4ad2bf7bd");//BMI<18.5 + if (patients.getRiskFactorId().size() - this.getSame(healthy, patients.getRiskFactorId()).size() >= 2) { + Map map = new HashMap(); + map.put("tipsInfo", "您当前情况存在两种及以上高危风险因素,需请您的主管医生结合临床实际情况对报告进行解读,并根据医生解读建议,指导日常营养膳食"); + data.put("tips", map); + } + + datas.put("1",data); + } + } + else + { + BaseResponse baseResponse = this.report(pid, userId, rid, version, doctorId, beforeWeight, height, bregmatic, bregmaticOther); + return baseResponse; + } + } //同时出现高血压和肝硬化或肝功能不全则按照肝硬化或肝功能不全 if (datas.containsKey("3") && datas.containsKey("8")) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/QuanChanPatientWorker.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/QuanChanPatientWorker.java index b702a33..6c83044 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/QuanChanPatientWorker.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/QuanChanPatientWorker.java @@ -122,6 +122,12 @@ public class QuanChanPatientWorker implements Callable > { //唐山滦县判断复诊是否是本院 if (CollectionUtils.isNotEmpty(ant)) { for (int k = 0; k < ant.size(); k++) { + + if (ant.get(k) == null || ant.get(k).getHospitalId() == null) + { + continue; + } + if (k >= 4) { break; } @@ -220,7 +226,7 @@ public class QuanChanPatientWorker implements Callable > { MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); matDeliverQuery.setPid(patients.getPid()); matDeliverQuery.setCreatedStart(patients.getLastMenses()); - matDeliverQuery.setYn(YnEnums.YES.getId()); +// matDeliverQuery.setYn(YnEnums.YES.getId()); stopWatch.start("query matdeliver"); List maternalDeliverModels = matDeliverService.query(matDeliverQuery); if (CollectionUtils.isNotEmpty(maternalDeliverModels)) { @@ -353,6 +359,7 @@ public class QuanChanPatientWorker implements Callable > { logger.debug(stopWatch.toString()); } } catch (Exception e) { + e.printStackTrace(); ExceptionUtils.catchException(e, "convertToQuanCPatient get result error."); } -- 1.8.3.1