diff --git a/platform-dal/src/main/java/com/lyms/platform/query/BabyHighRiskBabyModelQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/BabyHighRiskBabyModelQuery.java index 428da76..b469aa9 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/BabyHighRiskBabyModelQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/BabyHighRiskBabyModelQuery.java @@ -9,6 +9,7 @@ import com.lyms.platform.common.utils.StringUtils; import org.apache.commons.collections.CollectionUtils; import org.springframework.data.mongodb.core.query.Criteria; +import java.util.Arrays; import java.util.Date; import java.util.List; @@ -23,7 +24,10 @@ public class BabyHighRiskBabyModelQuery extends BaseQuery implements IConvertToN private Integer yn; //儿童建档ID private String buildId; + //建档IDs + private String[] buildIds; private String hospitalId; + //月龄 private Integer monthStart; private Integer monthEnd; @@ -101,6 +105,14 @@ public class BabyHighRiskBabyModelQuery extends BaseQuery implements IConvertToN this.type = type; } + public String[] getBuildIds() { + return buildIds; + } + + public void setBuildIds(String[] buildIds) { + this.buildIds = buildIds; + } + public String getcCOutcome() { return cCOutcome; } @@ -287,6 +299,10 @@ public class BabyHighRiskBabyModelQuery extends BaseQuery implements IConvertToN condition = condition.and("buildId", buildId, MongoOper.IS); } + if(null!=buildIds && buildIds.length > 0){ + Criteria c = Criteria.where("buildId").in(Arrays.asList(buildIds)); + condition.andCondition( new MongoCondition(c)); + } if (StringUtils.isNotEmpty(hospitalId)) { condition = condition.and("hospitalId", hospitalId, MongoOper.IS); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyHighRiskBabyController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyHighRiskBabyController.java index 597191e..efaee7a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyHighRiskBabyController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyHighRiskBabyController.java @@ -27,7 +27,20 @@ public class BabyHighRiskBabyController extends BaseController { @Autowired private BabyHighRiskBabyFacade babyHighRiskBabyFacade; - + /** + * 高危儿专科检查曲线图 + * + * @param babyId + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/getBabyCurve") + @ResponseBody + @TokenRequired + public BaseResponse getBabyCurve(@RequestParam(required = true) String babyId, HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return babyHighRiskBabyFacade.getBabyCurve(babyId, loginState.getId()); + } /** * 高危儿专科 添加或者修改 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyHighRiskBabyFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyHighRiskBabyFacade.java index 816f7ce..c52cceb 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyHighRiskBabyFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyHighRiskBabyFacade.java @@ -2,6 +2,7 @@ package com.lyms.platform.operate.web.facade; import com.lyms.platform.biz.service.BabyBookbuildingService; import com.lyms.platform.biz.service.BabyHighRiskBabyService; +import com.lyms.platform.biz.service.BabyService; import com.lyms.platform.biz.service.BasicConfigService; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.enums.OptActionEnums; @@ -30,6 +31,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.*; +import java.util.regex.Pattern; /** * 高危儿专科 逻辑处理 @@ -44,12 +46,12 @@ public class BabyHighRiskBabyFacade extends BaseServiceImpl { private BabyHighRiskBabyService babyHighRiskBabyService; @Autowired private BabyDepartmentReferralFacade babyDepartmentReferralFacade; - @Autowired private BabyBookbuildingService babyBookbuildingService; @Autowired + private BabyService babyService; + @Autowired private AutoMatchFacade autoMatchFacade; - @Autowired private OperateLogFacade operateLogFacade; @Autowired @@ -169,6 +171,117 @@ public class BabyHighRiskBabyFacade extends BaseServiceImpl { return model; } + + public BaseResponse getBabyCurve(String babyId, Integer id) { + + Map map = new HashMap <>(); + + List weightTitles = new LinkedList <>(); + List weightValues = new LinkedList <>(); + + List headTitles = new LinkedList <>(); + List headValues = new LinkedList <>(); + + List heightTitles = new LinkedList <>(); + List heightValues = new LinkedList <>(); + + List > tables = new LinkedList <>(); + + BabyModel babyModel = babyService.getOneBabyById(babyId); + + BabyModelQuery babyQuery = new BabyModelQuery(); + babyQuery.setYn(YnEnums.YES.getId()); + + //查询建档记录 得到pid 通过pid查询所有的儿童建档记录 + babyQuery.setPid(babyModel.getPid()); + //查询建档记录 + List models = babyBookbuildingService.queryBabyBuildByCond(babyQuery); + String[] buildIds = new String[models.size()]; + for (int i = 0; i < models.size(); i++) { + buildIds[i] = models.get(i).getId(); + } + + BabyHighRiskBabyModelQuery babyHighRiskBabyModelQuery = new BabyHighRiskBabyModelQuery(); + babyHighRiskBabyModelQuery.setYn(YnEnums.YES.getId()); + babyHighRiskBabyModelQuery.setBuildIds(buildIds); + babyHighRiskBabyModelQuery.setSort("checkDate"); + //查询高危儿专科的检查记录 + List checkModels = babyHighRiskBabyService.queryOne(babyHighRiskBabyModelQuery); + if (CollectionUtils.isNotEmpty(checkModels)) { + for (BabyHighRiskBabyModel checkModel : checkModels) { + if (checkModel != null) { + if (org.apache.commons.lang.StringUtils.isNotEmpty(checkModel.getHeight()) + || org.apache.commons.lang.StringUtils.isNotEmpty(checkModel.getWeight()) + || org.apache.commons.lang.StringUtils.isNotEmpty(checkModel.getHead()) + ) { + int month = DateUtil.getBabyAgeMonth(babyModel.getBirth(), checkModel.getCheckDate()); + Map heightMap = new HashMap <>(); + heightMap.put("time", month); + if (org.apache.commons.lang.StringUtils.isNotEmpty(checkModel.getHeight())) { + if (org.apache.commons.lang.StringUtils.isNumeric(checkModel.getHeight()) || Pattern.compile("^[-\\+]?[.\\d]*$").matcher(checkModel.getHeight()).matches()) { + if (heightTitles.contains(month)) { + int index = heightTitles.indexOf(month); + heightValues.set(index, checkModel.getHeight()); + } else { + heightTitles.add(month); + heightValues.add(checkModel.getHeight()); + } + } + heightMap.put("height", checkModel.getHeight()); + } else { + heightMap.put("height", "--"); + } + + if (org.apache.commons.lang.StringUtils.isNotEmpty(checkModel.getWeight())) { + if (org.apache.commons.lang.StringUtils.isNumeric(checkModel.getWeight()) || Pattern.compile("^[-\\+]?[.\\d]*$").matcher(checkModel.getWeight()).matches()) { + + if (weightTitles.contains(month)) {//如果存在月的数据则更新对应索引的值 + int index = weightTitles.indexOf(month); + weightValues.set(index, checkModel.getWeight()); + } else { + weightTitles.add(month); + weightValues.add(checkModel.getWeight()); + } + } + heightMap.put("weight", checkModel.getWeight()); + } else { + heightMap.put("weight", "--"); + } + if (org.apache.commons.lang.StringUtils.isNotEmpty(checkModel.getHead())) { + if (org.apache.commons.lang.StringUtils.isNumeric(checkModel.getHead()) || Pattern.compile("^[-\\+]?[.\\d]*$").matcher(checkModel.getHead()).matches()) { + + if (headTitles.contains(month)) {//如果存在月的数据则更新对应索引的值 + int index = headTitles.indexOf(month); + headValues.set(index, checkModel.getHead()); + } else { + headTitles.add(month); + headValues.add(checkModel.getHead()); + } + } + heightMap.put("head", checkModel.getHead()); + } else { + heightMap.put("head", "--"); + } + tables.add(heightMap); + } + } + } + } + map.put("weightTitles", weightTitles); + map.put("weightValues", weightValues); + + map.put("headTitles", headTitles); + map.put("headValues", headValues); + + map.put("heightTitles", heightTitles); + map.put("heightValues", heightValues); + + map.put("tables", tables); + if (babyModel != null) { + map.put("sex", babyModel.getSex()); + } + return new BaseObjectResponse().setData(map).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); + } /** * 新增 高危儿专科 */