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 89fdcbb..dba23d8 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 @@ -4221,7 +4221,7 @@ public class BasicConfigServiceTest { for (int i = 1; i < rows; i++) { System.out.println("rows=" + i); QhdWeightConfigModel qhd = new QhdWeightConfigModel(); - + qhd.setIsHighRisk("0"); Cell[] cells = s.getRow(i); if (cells.length > 0) { //遍历每行中的每列 @@ -4263,7 +4263,7 @@ public class BasicConfigServiceTest { for (int i = 1; i < rows1; i++) { System.out.println("rows=" + i); QhdWeightConfigModel qhd = new QhdWeightConfigModel(); - + qhd.setIsHighRisk("0"); Cell[] cells = s1.getRow(i); if (cells.length > 0) { //遍历每行中的每列 @@ -4321,6 +4321,351 @@ public class BasicConfigServiceTest { } + /** + * 秦皇岛孕妇高危版体重报告 + */ + public static void saveQhdGaoWeiWeight(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 = 1; i < rows; i++) { + System.out.println("rows=" + i); + QhdWeightConfigModel qhd = new QhdWeightConfigModel(); + qhd.setIsHighRisk("1");//高危 + qhd.setHighRiskIlness("0");//高血压 + Cell[] cells = s.getRow(i); + if (cells.length > 0) { + //遍历每行中的每列 + for (int j = 0; j < cells.length; j++) { + String str = cells[j].getContents().trim(); + if (StringUtils.isEmpty(str)) { + continue; + } + switch (j) { + case 0: + qhd.setKcal(Integer.parseInt(str)); + continue; + case 1: + List list1 = Arrays.asList(str.split("\n")); + qhd.setEarlySuggests(list1); + continue; + case 2: + List list2 = Arrays.asList(str.split("\n")); + qhd.setMiddleSuggests(list2); + continue; + + case 3: + List list3 = Arrays.asList(str.split("\n")); + qhd.setLaterSuggests(list3); + continue; + + case 4: + List list4 = Arrays.asList(str.split("\n")); + qhd.setDietRules(list4); + continue; + } + } + + } + mongoTemplate.save(qhd); + } + } + + + Sheet s2 = wb.getSheet(2); + System.out.println(s2.getName() + " : "); + int rows2 = s2.getRows(); + if (rows2 > 0) { + //遍历每行 + for (int i = 1; i < rows2; i++) { + System.out.println("rows=" + i); + QhdWeightConfigModel qhd = new QhdWeightConfigModel(); + qhd.setIsHighRisk("1");//高危 + qhd.setHighRiskIlness("0");//高血压 + Cell[] cells = s2.getRow(i); + if (cells.length > 0) { + //遍历每行中的每列 + for (int j = 0; j < cells.length; j++) { + String str = cells[j].getContents().trim(); + if (StringUtils.isEmpty(str)) { + continue; + } + switch (j) { + case 0: + qhd.setKcal(Integer.parseInt(str)); + continue; + case 1: + List list1 = Arrays.asList(str.split("\n")); + qhd.setBreakfast(list1); + continue; + case 2: + List list2 = Arrays.asList(str.split("\n")); + qhd.setBreakfastAdd(list2); + continue; + case 3: + List list3 = Arrays.asList(str.split("\n")); + qhd.setLunch(list3); + continue; + case 4: + List list4 = Arrays.asList(str.split("\n")); + qhd.setLunchAdd(list4); + continue; + case 5: + List list5 = Arrays.asList(str.split("\n")); + qhd.setDinner(list5); + continue; + case 6: + List list6 = Arrays.asList(str.split("\n")); + qhd.setDinnerAdd(list6); + continue; + case 7: + qhd.setPregnancy(Integer.parseInt(str)); + continue; + } + + } + + } + mongoTemplate.save(qhd); + } + } + + + Sheet s3 = wb.getSheet(3); + System.out.println(s3.getName() + " : "); + int rows3 = s3.getRows(); + if (rows3 > 0) { + //遍历每行 + for (int i = 1; i < rows3; i++) { + System.out.println("rows3=" + i); + QhdWeightConfigModel qhd = new QhdWeightConfigModel(); + qhd.setIsHighRisk("1");//高危 + qhd.setHighRiskIlness("1");// + Cell[] cells = s3.getRow(i); + if (cells.length > 0) { + //遍历每行中的每列 + for (int j = 0; j < cells.length; j++) { + String str = cells[j].getContents().trim(); + if (StringUtils.isEmpty(str)) { + continue; + } + switch (j) { + case 0: + qhd.setKcal(Integer.parseInt(str)); + continue; + case 1: + List list1 = Arrays.asList(str.split("\n")); + qhd.setEarlySuggests(list1); + continue; + case 2: + List list2 = Arrays.asList(str.split("\n")); + qhd.setMiddleSuggests(list2); + continue; + + case 3: + List list3 = Arrays.asList(str.split("\n")); + qhd.setLaterSuggests(list3); + continue; + + case 4: + List list4 = Arrays.asList(str.split("\n")); + qhd.setDietRules(list4); + continue; + } + } + + } + mongoTemplate.save(qhd); + } + } + + + Sheet s5 = wb.getSheet(5); + System.out.println(s5.getName() + " : "); + int rows5 = s5.getRows(); + if (rows5 > 0) { + //遍历每行 + for (int i = 1; i < rows5; i++) { + System.out.println("rows=" + i); + QhdWeightConfigModel qhd = new QhdWeightConfigModel(); + qhd.setIsHighRisk("1");//高危 + qhd.setHighRiskIlness("1");//高血压 + Cell[] cells = s5.getRow(i); + if (cells.length > 0) { + //遍历每行中的每列 + for (int j = 0; j < cells.length; j++) { + String str = cells[j].getContents().trim(); + if (StringUtils.isEmpty(str)) { + continue; + } + switch (j) { + case 0: + qhd.setKcal(Integer.parseInt(str)); + continue; + case 1: + List list1 = Arrays.asList(str.split("\n")); + qhd.setBreakfast(list1); + continue; + case 2: + List list2 = Arrays.asList(str.split("\n")); + qhd.setBreakfastAdd(list2); + continue; + case 3: + List list3 = Arrays.asList(str.split("\n")); + qhd.setLunch(list3); + continue; + case 4: + List list4 = Arrays.asList(str.split("\n")); + qhd.setLunchAdd(list4); + continue; + case 5: + List list5 = Arrays.asList(str.split("\n")); + qhd.setDinner(list5); + continue; + case 6: + List list6 = Arrays.asList(str.split("\n")); + qhd.setDinnerAdd(list6); + continue; + case 7: + qhd.setPregnancy(Integer.parseInt(str)); + continue; + } + + } + + } + mongoTemplate.save(qhd); + } + } + + + Sheet s6 = wb.getSheet(6); + System.out.println(s6.getName() + " : "); + int rows6 = s6.getRows(); + if (rows6 > 0) { + //遍历每行 + for (int i = 1; i < rows6; i++) { + System.out.println("rows=" + i); + QhdWeightConfigModel qhd = new QhdWeightConfigModel(); + qhd.setIsHighRisk("1");//贫血 + qhd.setHighRiskIlness("2");//高血压 + Cell[] cells = s6.getRow(i); + if (cells.length > 0) { + //遍历每行中的每列 + for (int j = 0; j < cells.length; j++) { + String str = cells[j].getContents().trim(); + if (StringUtils.isEmpty(str)) { + continue; + } + switch (j) { + case 0: + qhd.setKcal(Integer.parseInt(str)); + continue; + case 1: + List list1 = Arrays.asList(str.split("\n")); + qhd.setEarlySuggests(list1); + continue; + case 2: + List list2 = Arrays.asList(str.split("\n")); + qhd.setMiddleSuggests(list2); + continue; + + case 3: + List list3 = Arrays.asList(str.split("\n")); + qhd.setLaterSuggests(list3); + continue; + + case 4: + List list4 = Arrays.asList(str.split("\n")); + qhd.setDietRules(list4); + continue; + + } + } + + } + mongoTemplate.save(qhd); + } + } + + + Sheet s8 = wb.getSheet(8); + System.out.println(s8.getName() + " : "); + int rows8 = s8.getRows(); + if (rows8 > 0) { + //遍历每行 + for (int i = 1; i < rows8; i++) { + System.out.println("rows=" + i); + QhdWeightConfigModel qhd = new QhdWeightConfigModel(); + qhd.setIsHighRisk("1");//高危 + qhd.setHighRiskIlness("2");//糖尿病 + Cell[] cells = s8.getRow(i); + if (cells.length > 0) { + //遍历每行中的每列 + for (int j = 0; j < cells.length; j++) { + String str = cells[j].getContents().trim(); + if (StringUtils.isEmpty(str)) { + continue; + } + switch (j) { + case 0: + qhd.setKcal(Integer.parseInt(str)); + continue; + case 1: + List list1 = Arrays.asList(str.split("\n")); + qhd.setBreakfast(list1); + continue; + case 2: + List list2 = Arrays.asList(str.split("\n")); + qhd.setBreakfastAdd(list2); + continue; + case 3: + List list3 = Arrays.asList(str.split("\n")); + qhd.setLunch(list3); + continue; + case 4: + List list4 = Arrays.asList(str.split("\n")); + qhd.setLunchAdd(list4); + continue; + case 5: + List list5 = Arrays.asList(str.split("\n")); + qhd.setDinner(list5); + continue; + case 6: + List list6 = Arrays.asList(str.split("\n")); + qhd.setDinnerAdd(list6); + continue; + case 7: + qhd.setPregnancy(Integer.parseInt(str)); + continue; + } + + } + + } + mongoTemplate.save(qhd); + } + } + + + } catch (IOException e) { + e.printStackTrace(); + } catch (BiffException e) { + e.printStackTrace(); + } + + } public static void Test(String fileName) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext_biz_patient1.xml"); @@ -4874,14 +5219,16 @@ public class BasicConfigServiceTest { //babyReport("G:\\儿童膳食报告.xls"); // saveQhdbabyDiaginose("F:\\承德工位\\秦皇岛儿童诊断 - 副本.xls"); - saveQhdWeight("F:\\text.xls"); + //saveQhdWeight("F:\\text.xls"); // //saveQhdbabyDiaginose("F:\\承德工位\\秦皇岛儿童诊断 - 副本.xls"); //saveEvaluationCriterionModel("D:\\user\\workspace\\产品中心\\区域平台\\需求资料\\儿童量表码表.xls"); //saveEvaluationCriterionModel2("D:\\user\\workspace\\产品中心\\区域平台\\需求资料\\儿童智能等级.xls"); - saveEvaluationCriterionModel3("D:\\user\\workspace\\产品中心\\区域平台\\需求资料\\儿童神经心理发育情况.xls"); + // saveEvaluationCriterionModel3("D:\\user\\workspace\\产品中心\\区域平台\\需求资料\\儿童神经心理发育情况.xls"); + //saveQhdWeight("F:\\text.xls"); + saveQhdGaoWeiWeight("F:\\秦皇岛高危版体重报告.xls"); } } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/QhdWeightConfigModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/QhdWeightConfigModel.java index 75c256d..4ac05a1 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/QhdWeightConfigModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/QhdWeightConfigModel.java @@ -18,6 +18,12 @@ public class QhdWeightConfigModel { private List middleSuggests;//中期建议 private List laterSuggests;//晚期建议 + private List dietRules;//高危饮食规则 + //是否高危 0正常版 1高危版 + private String isHighRisk; + + //0.高血压 1 贫血 2 糖尿病 + private String highRiskIlness; /*** * 0 早期 * 1 中期 @@ -28,6 +34,30 @@ public class QhdWeightConfigModel { private Integer kcal; //整值卡路里 + public String getHighRiskIlness() { + return highRiskIlness; + } + + public void setHighRiskIlness(String highRiskIlness) { + this.highRiskIlness = highRiskIlness; + } + + public List getDietRules() { + return dietRules; + } + + public void setDietRules(List dietRules) { + this.dietRules = dietRules; + } + + public String getIsHighRisk() { + return isHighRisk; + } + + public void setIsHighRisk(String isHighRisk) { + this.isHighRisk = isHighRisk; + } + public List getBreakfast() { return breakfast; } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java index 643b5ea..eb9baa0 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java @@ -364,7 +364,6 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ if (StringUtils.isNotEmpty(parentId)) { condition = condition.and("parentId", parentId, MongoOper.IS); } - if (null != parentIds) { condition = condition.and("parentId", parentIds, MongoOper.IN); } 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 51a22be..5ad6ea3 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 @@ -270,4 +270,23 @@ public class PatientWeightController extends BaseController { return patientWeightService.getWeightsReport(pid, getUserId(request), rid, version); } + + /** + * 体重营养管理报表 + * + * @param pid + * @return + */ + @ResponseBody + @RequestMapping(value = "/qhdReport/{pid}", method = RequestMethod.GET) + @TokenRequired + public BaseResponse qhdReport(@PathVariable String pid, + HttpServletRequest request, + @RequestParam(value = "rid", required = false) String rid, String version) { + if (pid.isEmpty() || "null".equals(pid)) { + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.USER_PASSWORD_ERROR).setErrormsg("pid值不能为空!"); + } + return patientWeightService.qhdHighRiskReport(pid, getUserId(request), rid, version); + } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java index bc50407..4274a22 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java @@ -847,7 +847,7 @@ public class TrackDownFacade { // 婚检追访时间 temp.put("trackDownTime", CollectionUtils.isEmpty(trackDown) ? "--" : DateUtil.getyyyy_MM_dd(trackDown.get(0).getTrackDownDate())); // 预约时间 - temp.put("yyTime", CollectionUtils.isEmpty(trackDown) ? "--" : DateUtil.getyyyy_MM_dd(downRecord.getAppointmentDate())); + temp.put("yyTime", downRecord.getAppointmentDate() == null ? "--" : DateUtil.getyyyy_MM_dd(downRecord.getAppointmentDate())); //Long checkNum = mongoTemplate.count(Query.query(Criteria.where("certificateNum").is(archiveModel.getCertificateNum()).and("hospitalId").is(archiveModel.getHospitalId()).and("yn").is(1)), PremaritalCheckup.class); 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 d2b85ca..989837e 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 @@ -60,6 +60,8 @@ public interface PatientWeightService extends IBaseService { BaseResponse getWeightsReport(String pid, Integer userId, String rid, String version); + BaseResponse qhdHighRiskReport(String pid, Integer userId, String rid, String version); + public void setReport(Map restMap, Map weights, String beforeWeight, String bmi, Map dayWeights, String bregmatic); 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 a205ed3..1c66efa 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 @@ -106,6 +106,7 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient return RespBuilder.buildSuccess("bregmaticEnums2", bregmaticEnums2, "type", type); } + @Override public BaseResponse addOrUpdate(Integer userId, PatientWeight patientWeight, String doctorId) { String hospitalId = autoMatchFacade.getHospitalId(userId); @@ -688,7 +689,7 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient } else { pregnancys = 2; } - QhdWeightConfigModel qhdWeightConfig = mongoTemplate.findOne(Query.query(Criteria.where("kcal").is(k1).and("pregnancy").is(pregnancys)), QhdWeightConfigModel.class); + QhdWeightConfigModel qhdWeightConfig = mongoTemplate.findOne(Query.query(Criteria.where("kcal").is(k1).and("pregnancy").is(pregnancys).and("isHighRisk").is("0")), QhdWeightConfigModel.class); if (qhdWeightConfig != null) { setRecipe(map, qhdWeightConfig, week, kmap);//秦皇岛设置食谱 @@ -1133,6 +1134,7 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient map.put("cookbooks", cookbooks); map.put("cookbookTitle", "推荐菜谱"); } + private void setCookbookQhd(Map map, WeightConfigModel configModel) { List cookbooks = configModel.getCookbooks(); map.put("cookbooks", cookbooks); @@ -2276,6 +2278,143 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(this.getFirstOrNull(datas)); } + /** + * 秦皇岛高危报告 + */ + @Override + public BaseResponse qhdHighRiskReport(String pid, Integer userId, String rid, String version) { + Map> series = new HashMap<>(); + Map> datas = new TreeMap<>(); + PatientWeight patientWeight = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(pid)), PatientWeight.class); + //1.获取该孕妇是否有推荐的高危项 + Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(patientWeight.getPatientId())), Patients.class); + //1.1获取到这孕妇所有的高危因素id + //1.2获取身高 + /* String height = patientWeight.getBeforeHeight(); + //获取体重 + String weight = patientWeight.getBeforeWeight();*/ + Double heights = Double.valueOf(patientWeight.getBeforeHeight()).doubleValue() / 100; + int week = DateUtil.getWeek2(patients.getLastMenses(), new Date()); + //获取胎数 + String bregmatic = patientWeight.getBregmatic(); + //获取bmi值 + Double bmiD = Double.valueOf(this.getBmi(patientWeight.getBeforeWeight(), patientWeight.getBeforeHeight())).doubleValue(); + String bmiStr = ""; + //空和1表示单胎 + if (!org.apache.commons.lang.StringUtils.isNotEmpty(bregmatic) || "1".equals(bregmatic)) { + if (bmiD < 18.5) { + bmiStr = "BMI<18.5"; + } else if (bmiD >= 18.5 && bmiD <= 24.99) { + bmiStr = "BMI=18.5-24.9"; + } else if (bmiD > 24.9 && bmiD < 30) { + bmiStr = "BMI=25-29.9"; + } else if (bmiD >= 30) { + bmiStr = "BMI≥30"; + } + } else { + if (bmiD <= 24.9) { + bmiStr = "BMI≤24.9"; + } else if (bmiD >= 25 && bmiD <= 29.99) { + bmiStr = "BMI=25-29.9"; + } else if (bmiD >= 30) { + bmiStr = "BMI≥30"; + } + } + //计算出区间范围 + double low = 0.0; + double high = 0.0; + this.getSerie(series, bmiStr, bregmatic); + Map lowMap = series.get("lowData"); + for (Map.Entry entry : lowMap.entrySet()) { + if (entry.getKey() == week) { + } + } + Map highMap = series.get("highData"); + for (Map.Entry entry : highMap.entrySet()) { + if (entry.getKey() == week) { + high = entry.getValue(); + } + } + + //20190602 上线前新加bug + //计算出属于那种类型 偏重 还事负重 还是正常 当前体重-孕前体重 + Double residualWeight = Double.valueOf(patientWeight.getNowWeight()).doubleValue() - Double.valueOf(patientWeight.getBeforeWeight()).doubleValue(); + //贫血/高血压计算规则 + Integer gxyKcal = this.getRounding((int) this.getKcal(bregmatic, residualWeight, low, high, week, bmiD, patients, patientWeight, heights, 1.12)); + //糖尿病计算规则 + Integer diabetesKcal = getDiabetesRounding((int) this.getDiabetes(heights, week)); + + System.out.println("diabetesKcal " + diabetesKcal); + + //获取改孕妇的高危项 + String risk = patients.getRiskLevelId(); + 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) { + weights.put(DateUtil.getWeek2(patients.getLastMenses(), DateUtil.parseYMD(entry.getKey())), entry.getValue()); + } + } + Map data0 = new HashMap<>(); + Map data2 = new HashMap<>(); + Map data3 = new HashMap<>(); + List reiskFactor = patients.getRiskFactorId(); + for (String reis : reiskFactor) { + //糖尿病 + if (this.initReport("0").contains(reis)) { + List diabetes = mongoTemplate.find(Query.query(Criteria.where("kcal").is(diabetesKcal).and("isHighRisk").is("1").and("highRiskIlness").is("0")), QhdWeightConfigModel.class); + datas.put("1", this.getQhdInfo(weights, data3, diabetes, patientWeight, patients, bmiD, week)); + } else if (this.initReport("1").contains(reis)) { + //高血压 + List feritin = mongoTemplate.find(Query.query(Criteria.where("kcal").is(gxyKcal).and("isHighRisk").is("1").and("highRiskIlness").is("1")), QhdWeightConfigModel.class); + datas.put("2", this.getQhdInfo(weights, data2, feritin, patientWeight, patients, bmiD, week)); + } else if (this.initReport("2").contains(reis)) { + //贫血 + List anemia = mongoTemplate.find(Query.query(Criteria.where("kcal").is(gxyKcal).and("isHighRisk").is("1").and("highRiskIlness").is("2")), QhdWeightConfigModel.class); + datas.put("3", this.getQhdInfo(weights, data0, anemia, patientWeight, patients, bmiD, week)); + } + } + } + if (datas.size() == 0) { + BaseResponse baseResponse = this.report(pid, userId, rid, "1"); + return baseResponse; + } + /*//同时出现高血压和肝硬化或肝功能不全则按照肝硬化或肝功能不全 + if (datas.containsKey("3") && datas.containsKey("8")) { + datas.put("2", datas.get("8")); + }*/ + + List> dayWeights2 = patientWeight.getDayWeights2(); + String doctorId = ""; + if (CollectionUtils.isNotEmpty(dayWeights2)) { + for (Map map : dayWeights2) { + Object data = map.get("data"); + if (data != null) { + String dbData = data.toString(); + String currentDate = DateUtil.getyyyy_MM_dd(new Date()); + if (dbData.equals(currentDate)) { + Object doctorIdObj = map.get("doctorId"); + if (doctorId != null) { + doctorId = (String) doctorIdObj; + } + } + } + } + } + healthChargeFacade.addHealthCharge(patientWeight.getHospitalId(), 1, patientWeight.getPatientId(), 2, 1, userId, doctorId, false); + + PatientWeight patientWeight1 = new PatientWeight(); + patientWeight1.setPrintingTime(new Date()); + patientWeightService2.update(Query.query(Criteria.where("_id").is(pid)), patientWeight1); + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(this.getFirstOrNull(datas)); + } + + //获取第一个map中数据值 private static Object getFirstOrNull(Map> map) { Object obj = null; @@ -2410,6 +2549,101 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient return data; } + + /** + * 秦皇岛定制 + **/ + public Map getQhdInfo(Map weights, Map data, List weightReportModel, PatientWeight patientWeight, Patients patients, double bmi, int week) { + setReport(data, weights, patientWeight.getBeforeWeight(), patientWeight.getBmi(), patientWeight.getDayWeights(), patientWeight.getBregmatic()); + Map userMap = new HashMap(); + userMap.put("userName", patients.getUsername()); + userMap.put("age", patients.getAge() + "岁"); + userMap.put("height", patientWeight.getBeforeHeight() + "cm"); + userMap.put("bmi", bmi); + 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("state", this.getState(patientWeight.getNowWeight(), patientWeight.getBeforeWeight(), patientWeight.getBregmatic(), week, bmi)); + + //userMap.put("riskFactor", set); + data.put("userInfo", userMap); + /* Map map2 = new HashMap(); + map2.put("guideTitle", weightReportModel.getGuideTitle()); + map2.put("guideInfo", weightReportModel.getGuideInfo()); + data.put("nutritionGuide", map2);*/ + Map map1 = new HashMap(); + Map map3 = new HashMap(); + Map map4 = new HashMap(); + for (QhdWeightConfigModel qhd : weightReportModel) { + if (null != qhd.getDietRules()) { + // map3.put("dietTitle", weightReportModel.getDietTitle()); + map3.put("dietInfo", qhd.getDietRules()); + } + if (null != qhd.getPregnancy()) { + + if (week < 12 && qhd.getPregnancy() == 0) { + map1.put("kacl", qhd.getKcal()); + map1.put("breakfast", qhd.getBreakfast()); + map1.put("breakfastAdd", qhd.getBreakfastAdd()); + map1.put("lunch", qhd.getLunch()); + map1.put("lunchAdd", qhd.getLunchAdd()); + map1.put("dinner", qhd.getDinner()); + map1.put("dinnerAdd", qhd.getDinnerAdd()); + //孕中期 + } else if (week <= 28 && week >= 12 && qhd.getPregnancy() == 1) { + map1.put("kacl", qhd.getKcal()); + map1.put("breakfast", qhd.getBreakfast()); + map1.put("breakfastAdd", qhd.getBreakfastAdd()); + map1.put("lunch", qhd.getLunch()); + map1.put("lunchAdd", qhd.getLunchAdd()); + map1.put("dinner", qhd.getDinner()); + map1.put("dinnerAdd", qhd.getDinnerAdd()); + //孕晚期 + } else if (week <= 40 && week >= 29 && qhd.getPregnancy() == 2) { + map1.put("kacl", qhd.getKcal()); + map1.put("breakfast", qhd.getBreakfast()); + map1.put("breakfastAdd", qhd.getBreakfastAdd()); + map1.put("lunch", qhd.getLunch()); + map1.put("lunchAdd", qhd.getLunchAdd()); + map1.put("dinner", qhd.getDinner()); + map1.put("dinnerAdd", qhd.getDinnerAdd()); + } + + } + if (week >= 0 && week <= 12 && CollectionUtils.isNotEmpty(qhd.getEarlySuggests())) { + map1.put("proposalInfo", qhd.getEarlySuggests()); + } else if (week >= 13 && week <= 28 && CollectionUtils.isNotEmpty(qhd.getMiddleSuggests())) { + map1.put("proposalInfo", qhd.getMiddleSuggests()); + } else if (week >= 29 && week <= 40 && CollectionUtils.isNotEmpty(qhd.getLaterSuggests())) { + map1.put("proposalInfo", qhd.getLaterSuggests()); + } + } + + data.put("recipes", map1); + data.put("dietaryRules", map3); + + /* if (null != weightReportModel.getWeeks() && weightReportModel.getWeeks() == week) { + Map map = new HashMap(); + map.put("weeks", weightReportModel.getWeeks()); + map.put("becareful", weightReportModel.getBecareful()); + data.put("attentionWeek", map); + }*/ + 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); + } + return data; + } + + //获取俩个list相同数据 public List getSame(List list1, List list2) { List sameList = new ArrayList(); @@ -3087,4 +3321,40 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient return status; } + /** + * 0.糖尿病 + * 1.高血压 + * 2.贫血 + **/ + private List initReport(String type) { + //糖尿病 + List diabetesList = new ArrayList<>(); + diabetesList.add("5aab6d3d422b03d4ad2bf83e");//妊娠期糖尿病(无需药物治疗) + diabetesList.add("5aab6d3e422b03d4ad2bf83f");//糖尿病合并妊娠(无需药物治疗) + diabetesList.add("de7468e6-1bb5-4fab-ae84-78857868409a");//需药物治疗的糖尿病 + + //贫血 + List anemiaList = new ArrayList<>(); + anemiaList.add("5a41f715422b03d4ad2bf7f7");//妊娠合并贫血(Hb 60-110g/L) + anemiaList.add("5aab6d3e422b03d4ad2bf847");//轻度缺铁性贫血(100-109g/L) + anemiaList.add("5aab6d3e422b03d4ad2bf848");//中度缺铁性贫血(70-99g/L) + anemiaList.add("5a41fa0c422b03d4ad2bf814");//重度贫血(Hb≤40g/L) + anemiaList.add("82e4441b-7072-443e-a30f-39b0b4504d75");//重度贫血(Hb40-60g/L) + anemiaList.add("80c41987-fd8a-4595-a773-088b60a6a33d");//再生障碍性贫血 + + //高血压 + List hypertensionList = new ArrayList<>(); + hypertensionList.add("5aab6d3f422b03d4ad2bf854");//妊娠期高血压 + hypertensionList.add("5aab6d3f422b03d4ad2bf856");//慢性高血压合并妊娠 + if ("0".equals(type)) { + return diabetesList; + } else if ("1".equals(type)) { + return hypertensionList; + } else if ("2".equals(type)) { + return anemiaList; + } else { + return null; + } + } + }