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 bee35d8..2b7d2c7 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 @@ -14,14 +14,14 @@ import com.lyms.platform.biz.service.*; import com.lyms.platform.common.dao.operator.MongoCondition; import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.dao.operator.MongoQuery; -import com.lyms.platform.common.enums.GroupEnums; -import com.lyms.platform.common.enums.ServiceStatusEnums; -import com.lyms.platform.common.enums.ServiceTypeEnums; -import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.enums.*; import com.lyms.platform.common.pojo.SyncDataModel; +import com.lyms.platform.common.result.BaseModel; import com.lyms.platform.common.utils.*; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; +import com.mongodb.BasicDBObject; +import com.mongodb.QueryBuilder; import com.qiniu.util.Json; import jxl.Cell; import jxl.Sheet; @@ -38,6 +38,7 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.BasicQuery; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; @@ -1293,7 +1294,58 @@ public class BasicConfigServiceTest { } } + /** + *分类和type的映射关系 + **/ + private static Map map = new HashMap<>(); + private static Map map1 = new HashMap<>(); + private static Map map2 = new HashMap<>(); + static { + map.put("血压值正常无波动","00"); + map.put("血压波动异常血压值正常","01"); + map.put("血压值异常血压值异常但基本平稳","10"); + map.put("血压值异常波动异常","11"); + + + map1.put("1","合理运动"); + map1.put("2","运动指导"); + map1.put("3","心理指导"); + map1.put("4","自我监测"); + map1.put("5","用药指导"); + + + map2.put("1", PloodPressureGuideCategoryTypeEnum.HELIYUNDONG.getId()); + map2.put("2",PloodPressureGuideCategoryTypeEnum.YUNDONGZHIDAO.getId()); + map2.put("3",PloodPressureGuideCategoryTypeEnum.XINLIZHIDAO.getId()); + map2.put("4",PloodPressureGuideCategoryTypeEnum.ZIWOJIANCE.getId()); + map2.put("5",PloodPressureGuideCategoryTypeEnum.YONGYAOZHIDAO.getId()); + } + + private static class KeyWord extends BaseModel{ + private String key; + private String content; + + public KeyWord(String key, String content) { + this.key = key; + this.content = content; + } + + public String getKey() { + return key; + } + public void setKey(String key) { + this.key = key; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + } //早产儿体重百分位数值表(男、女) @@ -1303,71 +1355,70 @@ public class BasicConfigServiceTest { Workbook wb = null; try { wb = Workbook.getWorkbook(file); - ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext_biz_patient1.xml"); + ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext_biz_patient1.xml"); MongoTemplate mongoTemplate = (MongoTemplate) applicationContext.getBean("mongoTemplate"); mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray()); + if(wb.getSheets().length>0){ + for (int j1 = 0 ; j1 < wb.getSheets().length ; j1 ++) + { + Sheet s1 = wb.getSheet(j1); + String type =map.get(s1.getName()); + System.out.println("sheet name -->>> type :"+map.get(s1.getName())); + int rows1 = s1.getRows(); + if(rows1 > 0){ + //遍历每行 + for(int i = 1 ;i < rows1 ; i++){ + Cell[] cells = s1.getRow(i); + if(cells.length > 0){ + //遍历每行中的每列 + for (int j = 1 ; j < cells.length ; j ++) + { + PloodPressureGuideModel bpModel=new PloodPressureGuideModel(); + bpModel.setYn(YnEnums.YES.getId()); + bpModel.setType(type); + String week = cells[0].getContents().trim(); + String content = cells[j].getContents().trim(); + if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(content)) + { + continue; + } + if(i>0){ - Sheet s1 = wb.getSheet(0); - int rows1 = s1.getRows(); - if(rows1 > 0){ - //遍历每行 - for(int i = 0 ;i < rows1 ; i++){ - System.out.println("rows="+i); - AwModel awModel = new AwModel(); - awModel.setType(4); - Cell[] cells = s1.getRow(i); - if(cells.length > 0){ - //遍历每行中的每列 - for (int j = 0 ; j < cells.length ; j ++) - { - String str = cells[j].getContents().trim(); - if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(str)) - { - continue; - } - switch (j) - { - case 0: - awModel.setWeek(Integer.valueOf(str)); - continue; - case 1: - awModel.setRthreeDs(Double.valueOf(str)/1000); - continue; - case 2: - awModel.setRtwoDs(Double.valueOf(str)/1000); - continue; - case 3: - awModel.setRoneDs(Double.valueOf(str)/1000); - continue; - case 4: - awModel.setMiddleDs(Double.valueOf(str)/1000); - continue; - case 5: - awModel.setPoneDs(Double.valueOf(str)/1000); - continue; - case 6: - awModel.setPtwoDs(Double.valueOf(str)/1000); - continue; - case 7: - awModel.setPthreeDs(Double.valueOf(str)/1000); - continue; - case 8: - awModel.setSex(Integer.valueOf(str)); - continue; + KeyWord keyWord = new KeyWord(week+"_"+j+"_"+type,content); +// System.out.println("keyWord :" +keyWord); + + convertToBean(keyWord,mongoTemplate); + } + } } } } - mongoTemplate.save(awModel); } } + } catch (IOException e) { e.printStackTrace(); } catch (BiffException e) { e.printStackTrace(); } + } + private static void convertToBean(KeyWord keyWord,MongoTemplate mongoTemplate){ + if(StringUtils.isNotEmpty(keyWord.getKey())){ + String[] k =keyWord.getKey().split("_"); + PloodPressureGuideModel pressureGuideModel =new PloodPressureGuideModel(); + pressureGuideModel.setYn(YnEnums.YES.getId()); + pressureGuideModel.setType(k[2]); + pressureGuideModel.setCategory(map1.get(k[1])); + pressureGuideModel.setOrder(1); + pressureGuideModel.setCategoryType(map2.get(k[1])); + pressureGuideModel.setWeek(Integer.valueOf(k[0])); + pressureGuideModel.setContent(keyWord.getContent()); + System.out.println(pressureGuideModel); +// mongoTemplate.save(pressureGuideModel); + } } @@ -1377,7 +1428,20 @@ public class BasicConfigServiceTest { // weightFood("F:\\体重与营养管理\\体重与营养管理第三版(北方)改标红“、冰淇淋”-晓萌.xls"); // bloodSugar("F:\\血糖报告\\血糖报告\\血糖报告基础数据格式(2).xls"); - zcet("F:\\儿童发育\\早产儿体重百分位数值表(男女).xls"); + zcet("D:\\doc\\高血压报告20180813模板.xls"); + + + /* ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext_biz_patient1.xml"); + MongoTemplate mongoTemplate + = (MongoTemplate) applicationContext.getBean("mongoTemplate"); + mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray()); + + QueryBuilder queryBuilder = new QueryBuilder(); + BasicDBObject fieldsObject=new BasicDBObject(); + fieldsObject.put("_id", 1); + fieldsObject.put("category", 1); + BasicQuery query=new BasicQuery(queryBuilder.get(),fieldsObject); + System.out.println(mongoTemplate.find(query, Guidelines.class).get(0));*/ } public static void addBaby(ApplicationContext applicationContext) { diff --git a/platform-common/src/main/java/com/lyms/platform/common/enums/PloodPressureGuideCategoryTypeEnum.java b/platform-common/src/main/java/com/lyms/platform/common/enums/PloodPressureGuideCategoryTypeEnum.java new file mode 100644 index 0000000..e26297e --- /dev/null +++ b/platform-common/src/main/java/com/lyms/platform/common/enums/PloodPressureGuideCategoryTypeEnum.java @@ -0,0 +1,39 @@ +package com.lyms.platform.common.enums; + +/** + * 血压指导类型 + *

+ * 详细描述 + *

+ * 示例代码 + *

+ * 
+ * + * @author JIAZHI.JIANG + * @version BME V100R001 2018/8/21 0021 + * @since BME V100R001C40B104 + */ +public enum PloodPressureGuideCategoryTypeEnum { + + + // 合理运动 + HELIYUNDONG(1), + // 运动指导 + YUNDONGZHIDAO(2), + // 心理指导 + XINLIZHIDAO(3), + // 自我监测 + ZIWOJIANCE(4), + //用药指导 + YONGYAOZHIDAO(5); + + private PloodPressureGuideCategoryTypeEnum(Integer id) { + this.id = id; + } + + public Integer getId() { + return id; + } + + private Integer id; +} diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BpReportModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BpReportModel.java new file mode 100644 index 0000000..74f6131 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BpReportModel.java @@ -0,0 +1,130 @@ +package com.lyms.platform.pojo; + + +import com.lyms.platform.common.result.BaseModel; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Date; + +/** + * 血压报告模型 + *

+ * 详细描述 + *

+ * 示例代码 + *

+ * 
+ * + * @author JIAZHI.JIANG + * @version BME V100R001 2018-08-23 10:26 + * @since BME V100R001C40B104 + */ +@Document(collection = "lyms_bp_report") +public class BpReportModel extends BaseModel{ + + private String pid; + private Date created; + private String id; + private String title; + private Integer week; + //类型 血压值正常,血压波动正常 + private String type; + //测评评估 + private String assess; + //测评次数 + private Integer count; + //大于90mmHg次数 或者 大于140次数 血压值异常次数 + private String bpValExp; + //血压波动次数 + private String bpWaveCount; + //指导 + private String guide; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getPid() { + return pid; + } + + public void setPid(String pid) { + this.pid = pid; + } + + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Integer getWeek() { + return week; + } + + public void setWeek(Integer week) { + this.week = week; + } + + public String getAssess() { + return assess; + } + + public void setAssess(String assess) { + this.assess = assess; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + public String getBpValExp() { + return bpValExp; + } + + public void setBpValExp(String bpValExp) { + this.bpValExp = bpValExp; + } + + public String getBpWaveCount() { + return bpWaveCount; + } + + public void setBpWaveCount(String bpWaveCount) { + this.bpWaveCount = bpWaveCount; + } + + public String getGuide() { + return guide; + } + + public void setGuide(String guide) { + this.guide = guide; + } +} diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/PloodPressureGuideModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/PloodPressureGuideModel.java new file mode 100644 index 0000000..575ae9b --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/PloodPressureGuideModel.java @@ -0,0 +1,105 @@ +package com.lyms.platform.pojo; + +import com.lyms.platform.common.result.BaseModel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.mongodb.core.mapping.Document; + + +/** + * 血压指导 + *

+ * 详细描述 + *

+ * 示例代码 + *

+ * 
+ * + * @link com.lyms.platform.common.enums.PloodPressureGuideCategoryTypeEnum + * @author JIAZHI.JIANG + * @version BME V100R001 2018-08-21 16:32 + * @since BME V100R001C40B104 + */ +@Document(collection = "lyms_bpguide") +public class PloodPressureGuideModel extends BaseModel { + + + /* 血压值正常/异常 0/1 + 血压波动正常/异常 0/1 + + + 血压值正常无波动 00 + 血压波动异常,血压值正常 10 + 血压值异常(血压值异常但基本平稳) 01 + 血压值异常,波动异常 11*/ + private String type; + //孕周 + private Integer week; + //分类 + private String category; + //内容 + private String content; + //是否有效 + private Integer yn; + //PloodPressureGuideCategoryTypeEnum + private Integer categoryType; + + //排序字段 + private Integer order; + + public Integer getOrder() { + return order; + } + + public void setOrder(Integer order) { + this.order = order; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Integer getWeek() { + return week; + } + + public void setWeek(Integer week) { + this.week = week; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public Integer getYn() { + return yn; + } + + public void setYn(Integer yn) { + this.yn = yn; + } + + public Integer getCategoryType() { + return categoryType; + } + + public void setCategoryType(Integer categoryType) { + this.categoryType = categoryType; + } +} \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java index 8a5dcc9..cb3da90 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java @@ -8,10 +8,7 @@ import com.lyms.platform.operate.web.service.IBloodPressureService; import com.lyms.platform.pojo.BloodPressure; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.Date; @@ -59,4 +56,34 @@ public class BloodPressureController extends BaseController { return RespBuilder.buildSuccess(bloodPressureService.getAppInfo(parentId)); } + + /** + * 获取某个人的血压列表报告 + * + * @param pid + * @return + */ + @ResponseBody + @RequestMapping(value = "/app/list/{pid}", method = RequestMethod.GET) + public BaseResponse getReportList(@PathVariable String pid) { + return null; + } + + /** + * 获取某个人的血压列表报告 + * + * @param type + 血压值正常无波动 00 + 血压波动异常,血压值正常 10 + 血压值异常(血压值异常但基本平稳) 01 + 血压值异常,波动异常 11 + * @param week 孕周 + * @return + */ + @ResponseBody + @RequestMapping(value = "/app/report", method = RequestMethod.GET) + public BaseResponse getReportDetail(@RequestParam("type") String type, + @RequestParam("week") String week) { + return null; + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java index b3c8f38..9ecf2c5 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java @@ -2356,7 +2356,12 @@ public class TestController extends BaseController { return null; } - + @RequestMapping(value="/bp/report") + @ResponseBody + public String bpReportTrigger(){ + bloodPressureService.generateBpReport(); + return "ss"; + } @Autowired private PatientServiceService patientServiceService; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java index 25e90ad..9918682 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java @@ -22,4 +22,6 @@ public interface IBloodPressureService extends IBaseService { BaseResponse wxAdd(BloodPressure bloodPressure, boolean flag); BaseResponse initPatientWeight(); + + void generateBpReport(); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java index 2a13648..223dccb 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.lyms.platform.biz.service.BloodPressureService; import com.lyms.platform.biz.service.CommonService; import com.lyms.platform.biz.service.PatientWeightService2; +import com.lyms.platform.biz.service.PatientsService; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.result.PageResult; @@ -18,8 +19,11 @@ import com.lyms.platform.operate.web.service.IBloodPressureService; import com.lyms.platform.operate.web.utils.CollectionUtils; import com.lyms.platform.operate.web.utils.MongoUtil; import com.lyms.platform.pojo.BloodPressure; +import com.lyms.platform.pojo.BpReportModel; import com.lyms.platform.pojo.PatientWeight; import com.lyms.platform.pojo.Patients; +import com.lyms.platform.query.PatientsQuery; +import org.apache.commons.lang.math.NumberUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; @@ -29,7 +33,7 @@ import org.springframework.stereotype.Service; import java.util.*; -@Service +@Service("bloodPressureService") public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodPressureService { @Autowired @@ -54,7 +58,105 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP private PatientWeightService2 patientWeightService2; @Autowired private OrganizationGroupsFacade groupsFacade; + @Autowired + private PatientsService patientService; + + private static Map typeGuideMap =new HashMap<>(); + static { + typeGuideMap.put("00","在这周你的血压值和血压波动均在正常范围之内,但是也需要注意饮食和运动。高油高盐饮食以及体重过重都会增加患妊娠期高血压的风险。此外保持心理平衡也是减少患妊高症的关键因素之一。"); + typeGuideMap.put("11","在这周你的血压值在正常范围之内,但血压波动情况异常,在饮食、运动等方面都需要注意。由于血压的不稳定,在心理上你也承受着一定的压力,在这份报告中将根据你的血压值和血压波动情况建议你下一周的饮食和运动方式以及心理疏导。"); + typeGuideMap.put("10","在这周你的血压值在异常范围但血压的波动情况良好没有较大的起伏。因此在饮食、运动等方面都需要注意。由于血压值的异常,在心理上你也承受着一定的压力,在这份报告中将根据你的血压值和血压波动情况建议你下一周的饮食和运动方式以及心理疏导。"); + typeGuideMap.put("01","在这周你的血压值正常,但是血压波动幅度较大。在降压的同时也要保持血压波动的平稳。血压波动异常可由多种原因导致,你需要合理饮食、适当运动、保持心理平衡等以保持血压的平稳。"); + } + + /** + * 生成血压报告 + */ + public void generateBpReport() { + PatientsQuery patientsQuery1 = new PatientsQuery(); + patientsQuery1.setYn(YnEnums.YES.getId()); + patientsQuery1.setType(1); + for (int i = 6; i <= 41; i++) { +// System.out.println(DateUtil.getYmd(DateUtil.addDay(new Date(), -(i+1)))); + + Date start = DateUtil.addDay(DateUtil.formatDate(new Date()), -(i * 7 + 1)); + patientsQuery1.setLastMensesEnd(new Date(start.getTime() + 86399990L)); + patientsQuery1.setLastMensesStart(start); + + List patientses = patientService.queryPatient(patientsQuery1); + if (CollectionUtils.isNotEmpty(patientses)) { + for (Patients patients : patientses) { + //单个处理 + doExecuteBpReport(patients, i); + } + } + } + } + + private void doExecuteBpReport(Patients patients, Integer week) { + + BloodPressure bp = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(patients.getPid())), BloodPressure.class); + if (null == bp) { + return; + } + //大于90 或者大于 140都算一次异常血压值 + int szyInt = 90, ssyInt = 140; + if (null != bp.getInfos() && !bp.getInfos().isEmpty()) { + BpReportModel report = new BpReportModel(); + report.setPid(patients.getPid()); + report.setTitle("孕" + week + "周血压报告"); + report.setWeek(week); + report.setAssess(bp.getInfos().size() >= 5 ? "良好" : "不达标"); + report.setCount(bp.getInfos().size()); + report.setCreated(new Date()); + Set>> set = bp.getInfos().entrySet(); + List keys = new ArrayList<>(bp.getInfos().keySet()); + int count = 0, bpcount = 0, + index = 0; + String countType="0",bpCountType="0"; + if (!set.isEmpty()) { + for (Map.Entry> entry : set) { + Map entryMap = entry.getValue(); + if (null != entryMap && !entryMap.isEmpty()) { + //计算血压异常次数 + String szy = entryMap.get("szy").toString();//小的 + String ssy = entryMap.get("ssy").toString();//大的 + if (NumberUtils.toInt(szy, 0) > szyInt || NumberUtils.toInt(ssy, 0) > ssyInt) { + ++count; + } + + if (++index > keys.size() - 1) { + //计算血压波动异常次数 + String mapKey = keys.get(index); + + Map map = bp.getInfos().get(mapKey); + + String szy1 = map.get("szy").toString();//小的 + String ssy1 = map.get("ssy").toString();//大的 + //血压波动异常次数 + if (Math.abs(NumberUtils.toInt(szy1, 0) - NumberUtils.toInt(szy, 0)) > 20 || Math.abs(NumberUtils.toInt(ssy1, 0) - NumberUtils.toInt(ssy, 0)) > 30) { + ++bpcount; + } + } + } + if(bpcount>3){ + bpCountType="1"; + } + + if(count>3){ + countType="1"; + } + } + } + report.setType(countType+bpCountType); + report.setGuide(typeGuideMap.get(report.getType())); + report.setBpWaveCount(String.valueOf(bpcount)); + report.setBpValExp(String.valueOf(count)); + + mongoTemplate.save(report); + } + } public BaseResponse addOrUpdate(Integer userId, BloodPressure bloodPressure) { String hospitalId = autoMatchFacade.getHospitalId(userId); @@ -68,10 +170,10 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP // BloodPressure bp = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(bloodPressure.getParentId()).and("yn").ne(0)), BloodPressure.class); Patients p = mongoTemplate.findById(bloodPressure.getParentId(), Patients.class); BloodPressure bp = null; - if(p != null) { + if (p != null) { bp = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(p.getPid())), BloodPressure.class); } - if(bp == null) { + if (bp == null) { String parentId = mongoUtil.doHidePatient(bloodPressure.getParentId(), hospitalId); bloodPressure.setPid(mongoUtil.getPid(parentId)); bloodPressure.setParentId(parentId); @@ -102,30 +204,30 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP List hospitalIds = groupsFacade.findGroupHospital(userId, false); Criteria criteria = Criteria.where("yn").is(1).and("hospitalId").in(hospitalIds); Criteria pCriteria = Criteria.where("yn").is(1).and("hospitalId").in(hospitalIds); - if(StringUtils.isNotEmpty(key)) { + if (StringUtils.isNotEmpty(key)) { flag = true; pCriteria.orOperator(Criteria.where("phone").regex(key), Criteria.where("username").regex(key), Criteria.where("cardNo").is(key)); } - if(StringUtils.isNotEmpty(vcCardNo)) { + if (StringUtils.isNotEmpty(vcCardNo)) { flag = true; pCriteria.and("vcCardNo").is(vcCardNo); } - if(weekStart != null && weekEnd != null) { + if (weekStart != null && weekEnd != null) { Date start = DateUtil.getWeekStart(weekEnd); Date end = DateUtil.getWeekEnd(weekStart); pCriteria.and("lastMenses").gt(start).lte(end); flag = true; } - if(age != null) { + if (age != null) { Date start = DateUtil.getBeforeAge(age); Date end = DateUtil.getBeforeAge(age + 1); pCriteria.and("birth").gt(end).lte(start); flag = true; } - if(flag) { + if (flag) { List patients = mongoTemplate.find(Query.query(pCriteria), Patients.class); List ids = new ArrayList<>(); - if(CollectionUtils.isNotEmpty(patients)) { + if (CollectionUtils.isNotEmpty(patients)) { for (Patients patient : patients) { // ids.add(patient.getId()); ids.add(patient.getPid()); @@ -142,7 +244,7 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP Map temp = new HashMap<>(); Patients p = mongoTemplate.findById(bloodPressure.getParentId(), Patients.class); temp.put("id", bloodPressure.getId()); - if(p != null) { + if (p != null) { temp.put("username", p.getUsername()); temp.put("time", DateUtil.getyyyy_MM_dd(bloodPressure.getModified())); temp.put("age", DateUtil.getAge(p.getBirth())); @@ -150,11 +252,10 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP temp.put("riskLevel", commonService.findRiskLevel(p.getRiskLevelId())); //高危等级(颜色) String rFactor = commonService.resloveFactor(p.getRiskFactorId()); - if (p.getoRiskFactor() != null && !"null".equals(p.getoRiskFactor())) - { - if(StringUtils.isNotEmpty(rFactor)){ - rFactor+=","+p.getoRiskFactor(); - }else{ + if (p.getoRiskFactor() != null && !"null".equals(p.getoRiskFactor())) { + if (StringUtils.isNotEmpty(rFactor)) { + rFactor += "," + p.getoRiskFactor(); + } else { rFactor = p.getoRiskFactor(); } } @@ -178,14 +279,14 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP public BaseResponse info(String id, Date startDate) { BloodPressure bloodPressure = mongoTemplate.findById(id, BloodPressure.class); List> xyInfos = new ArrayList<>(); - List szyMin = Arrays.asList( 60, 60, 60, 60, 60, 60, 60); + List szyMin = Arrays.asList(60, 60, 60, 60, 60, 60, 60); List ssyMax = Arrays.asList(140, 140, 140, 140, 140, 140, 140); List ssy = new ArrayList<>(); List szy = new ArrayList<>(); List pulse = new ArrayList<>(); List xAxis = new ArrayList<>(); - if(bloodPressure != null) { - List betweenDay = DateUtil.getBetweenDay(startDate,7); + if (bloodPressure != null) { + List betweenDay = DateUtil.getBetweenDay(startDate, 7); CollectionUtils.reverse(betweenDay); Map> infos = bloodPressure.getInfos(); for (String date : betweenDay) { @@ -209,8 +310,8 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP public List> getAppInfo(String parentId) { List bloodPressure = mongoTemplate.find(Query.query(Criteria.where("pid").is(parentId)), BloodPressure.class); List> restList = new ArrayList<>(); - if(CollectionUtils.isNotEmpty(bloodPressure)) { - for(BloodPressure b:bloodPressure){ + if (CollectionUtils.isNotEmpty(bloodPressure)) { + for (BloodPressure b : bloodPressure) { Map> infos = b.getInfos(); Object[] keys = infos.keySet().toArray(); CollectionUtils.reverseArray(keys); @@ -251,11 +352,11 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP Patients p = mongoTemplate.findById(bloodPressure.getParentId(), Patients.class); BloodPressure bp = null; - if(p != null) { + if (p != null) { bp = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(p.getPid())), BloodPressure.class); } bloodPressure.setModified(new Date()); - if(bp == null) { + if (bp == null) { String parentId = mongoUtil.doHidePatient(bloodPressure.getParentId(), hospitalId); bloodPressure.setParentId(parentId); bloodPressure.setYn(YnEnums.YES.getId()); @@ -266,7 +367,7 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP infos.put(DateUtil.getyyyy_MM_dd(new Date()), temp); bloodPressure.setInfos(infos); bloodPressure.setPid(mongoUtil.getPid(parentId)); - if(!flag) { + if (!flag) { bloodPressureService.add(bloodPressure); } else { mongoTemplate.save(bloodPressure); @@ -291,13 +392,15 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP return RespBuilder.buildSuccess(); } - /** 产品改了 说以收缩压为主 */ + /** + * 产品改了 说以收缩压为主 + */ private String getPulseStatus(String ssy, String szy) { String status = ""; - if(StringUtils.isNotEmpty(ssy)) { - if(Double.parseDouble(ssy) < 90) { + if (StringUtils.isNotEmpty(ssy)) { + if (Double.parseDouble(ssy) < 90) { status = "低血压"; - } else if(Double.parseDouble(ssy) > 140) { + } else if (Double.parseDouble(ssy) > 140) { status = "高血压"; } else { status = "正常"; diff --git a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml index 6753e14..0eeb41d 100644 --- a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml +++ b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml @@ -282,6 +282,22 @@ + + + + + + + + + + + + + + + + @@ -298,6 +314,8 @@ + +