From 76ebedf37746896d6b6aa6885d8bd9629e56acfe Mon Sep 17 00:00:00 2001 From: wangbo <184677810@qq.com> Date: Wed, 24 Apr 2019 16:04:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A6=8A=E9=AB=98=E7=97=87=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/pojo/PihParameterModel.java | 39 +++++++++ .../java/com/lyms/platform/query/PihQuery.java | 46 ++++++++++ .../operate/web/controller/pihController.java | 29 +++++-- .../platform/operate/web/service/PihService.java | 3 + .../operate/web/service/impl/PihServiceImpl.java | 98 +++++++++++++++++++++- 5 files changed, 203 insertions(+), 12 deletions(-) create mode 100644 platform-dal/src/main/java/com/lyms/platform/query/PihQuery.java diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/PihParameterModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/PihParameterModel.java index f20a7ad..c8de555 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/PihParameterModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/PihParameterModel.java @@ -3,6 +3,8 @@ package com.lyms.platform.pojo; import org.springframework.data.mongodb.core.mapping.Document; +import java.util.Date; + @Document(collection = "lyms_pin_parameter") public class PihParameterModel { @@ -34,6 +36,43 @@ public class PihParameterModel { private String pid;//病人id private String hospitalId;//医院id private String IDCard;//病人身份证号 + private Date created;//创建时间 + + private Date modified; //修改时间 + + private String yn; + + public String getIDCard() { + return IDCard; + } + + public void setIDCard(String IDCard) { + this.IDCard = IDCard; + } + + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + + public Date getModified() { + return modified; + } + + public void setModified(Date modified) { + this.modified = modified; + } + + public String getYn() { + return yn; + } + + public void setYn(String yn) { + this.yn = yn; + } public String getPid() { return pid; diff --git a/platform-dal/src/main/java/com/lyms/platform/query/PihQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/PihQuery.java new file mode 100644 index 0000000..a2a0885 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/query/PihQuery.java @@ -0,0 +1,46 @@ +package com.lyms.platform.query; + +import com.lyms.platform.common.base.IConvertToNativeQuery; +import com.lyms.platform.common.dao.BaseQuery; +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 java.util.Date; + +public class PihQuery extends BaseQuery implements IConvertToNativeQuery { + private String id; + + private String username;//姓名 + + private String age; + + private String week; + + private String riskLevelId;//高危因素等级 + + private String riskFactorId;//高危因素 + + private String blood;//血压 + + private String type; + + private Date created;//创建时间 + + private Date modified; //修改时间 + + private String hospitalId;//医院id + + @Override + public MongoQuery convertToQuery() { + MongoCondition condition = MongoCondition.newInstance(); + if (null != hospitalId) { + condition = condition.and("hospitalId", hospitalId, MongoOper.IS); + } + if (null != type) { + condition = condition.and("type", type, MongoOper.IS); + } + return condition.toMongoQuery(); + } + +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/pihController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/pihController.java index 6f6d7c0..e34ec60 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/pihController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/pihController.java @@ -1,17 +1,21 @@ package com.lyms.platform.operate.web.controller; +import com.lyms.platform.common.annotation.TokenRequired; import com.lyms.platform.common.base.BaseController; +import com.lyms.platform.common.base.LoginContext; import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.result.RespBuilder; +import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.service.PihService; import com.lyms.platform.pojo.PihParameterModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.util.Assert; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; -import javax.validation.Valid; +import javax.servlet.http.HttpServletRequest; @Controller @@ -24,23 +28,30 @@ public class pihController extends BaseController { @ResponseBody @RequestMapping(value = "/add", method = RequestMethod.POST) - public void addPih(@Valid @RequestBody PihParameterModel parameterModel) { + public void addPih(PihParameterModel parameterModel) { pihService.addPih(parameterModel); } @RequestMapping(value = "/query", method = RequestMethod.GET) @ResponseBody - public BaseResponse queryAllPih() { - - - return null; + @TokenRequired + public BaseResponse queryAllPih(String key, Integer age, Integer weekEnd, Integer weekStart, String type, String no, Integer page, Integer limit, HttpServletRequest request) { + return pihService.queyAll(key, weekStart, weekEnd, age, type, no, page, limit, getUserId(request)); } @ResponseBody - @RequestMapping(value = "/queyrInfo", method = RequestMethod.GET) + @RequestMapping(value = "/queryInfo", method = RequestMethod.GET) public BaseResponse query(String cardNo) { - return pihService.queryInfo(cardNo); + if (StringUtils.isNotEmpty(cardNo)) { + return pihService.queryInfo(cardNo); + } + return RespBuilder.buildSuccess("请输入查询条件!"); } + protected Integer getUserId(HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + Assert.notNull(loginState, "未登录"); + return loginState.getId(); + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PihService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PihService.java index 392b884..9c3ba94 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PihService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PihService.java @@ -7,4 +7,7 @@ public interface PihService { public void addPih(PihParameterModel parameterModel); public BaseResponse queryInfo(String cardNo); + + public BaseResponse queyAll(String key, Integer weekStart, Integer weekEnd, Integer age, String type, String no, Integer page, Integer limit, Integer userId); + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PihServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PihServiceImpl.java index 314cef2..bd7f29c 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PihServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PihServiceImpl.java @@ -1,18 +1,25 @@ package com.lyms.platform.operate.web.service.impl; +import com.alibaba.druid.proxy.jdbc.JdbcParameter; +import com.lyms.platform.biz.service.CommonService; import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.result.PageResult; import com.lyms.platform.common.result.RespBuilder; +import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.common.utils.StringUtils; +import com.lyms.platform.operate.web.facade.OrganizationGroupsFacade; import com.lyms.platform.operate.web.service.PihService; +import com.lyms.platform.operate.web.utils.MongoUtil; import com.lyms.platform.pojo.Patients; import com.lyms.platform.pojo.PihParameterModel; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; -import java.util.HashMap; -import java.util.Map; +import java.util.*; @Service public class PihServiceImpl extends BaseServiceImpl implements PihService { @@ -20,10 +27,20 @@ public class PihServiceImpl extends BaseServiceImpl implements PihService { @Autowired private MongoTemplate mongoTemplate; + @Autowired + private OrganizationGroupsFacade groupsFacade; + + @Autowired + private CommonService commonService; + + @Autowired + private MongoUtil mongoUtil; + @Override public void addPih(PihParameterModel parameterModel) { + parameterModel.setYn("1"); + parameterModel.setCreated(new Date()); mongoTemplate.save(parameterModel); - } @Override @@ -42,4 +59,79 @@ public class PihServiceImpl extends BaseServiceImpl implements PihService { return RespBuilder.buildSuccess("没有此人信息"); } + @Override + public BaseResponse queyAll(String key, Integer weekStart, Integer weekEnd, Integer age, String type, String vcCardNo, Integer page, Integer limit, Integer userId) { + boolean flag = false; + List hospital = groupsFacade.findGroupHospital(userId, false); + Criteria criteria = Criteria.where("yn").is("1").and("hospitalId").in(hospital); + Criteria pCriteria = Criteria.where("yn").is(1).and("hospitalId").in(hospital); + if (org.apache.commons.lang.StringUtils.isNotBlank(key)) { + pCriteria.orOperator(Criteria.where("phone").regex(key), Criteria.where("username").regex(key), Criteria.where("vcCardNo").regex(key)); + flag = true; + } + 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) { + Date start = DateUtil.getBeforeAge(age); + Date end = DateUtil.getBeforeAge(age + 1); + pCriteria.and("birth").gt(end).lte(start); + flag = true; + } + if (StringUtils.isNotEmpty(type)) { + criteria.and("parameterResult").is(type); + } + if (flag) { + List pihParameter = mongoTemplate.find(Query.query(pCriteria), Patients.class); + List ids = new ArrayList<>(); + if (com.lyms.platform.operate.web.utils.CollectionUtils.isNotEmpty(pihParameter)) { + for (Patients pih : pihParameter) { + ids.add(pih.getId()); + } + } + criteria.and("pid").in(ids); + } + PageResult pageResult = findMongoPage(PihParameterModel.class, new Query(criteria).with(new Sort(Sort.Direction.DESC, "modified")), page, limit); + List pihParameterModelList = (List) pageResult.getGrid(); + List> restList = new ArrayList<>(); + for (PihParameterModel pihParameterModel : pihParameterModelList) { + Map map = new HashMap(); + Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(pihParameterModel.getPid())), Patients.class); + if (null != patients) { + map.put("id", pihParameterModel.getId()); + map.put("username", patients.getUsername()); + map.put("age", patients.getAge()); + map.put("week", DateUtil.getWeekDesc(patients.getLastMenses(), new Date())); + map.put("riskLevel", commonService.findRiskLevel(patients.getRiskLevelId())); + String rFactor = commonService.resloveFactor(patients.getRiskFactorId()); + if (patients.getoRiskFactor() != null && !"null".equals(patients.getoRiskFactor())) { + if (StringUtils.isNotEmpty(rFactor)) { + rFactor += "," + patients.getoRiskFactor(); + } else { + rFactor = patients.getoRiskFactor(); + } + } + map.put("riskFactor", rFactor); // 高危因素 + } + map.put("blood", pihParameterModel.getSsyBT() + "/" + pihParameterModel.getSzyBT() + "mmHg"); + if (StringUtils.isNotEmpty(pihParameterModel.getParameterResult())) + + if (pihParameterModel.getParameterResult().equals("1")) { + map.put("type", "阴性"); + } else if (pihParameterModel.getParameterResult().equals("2")) { + map.put("type", "阳性"); + } else if (pihParameterModel.getParameterResult().equals("3")) { + map.put("type", "可疑"); + } + map.put("time", DateUtil.getyyyy_MM_dd(pihParameterModel.getCreated())); + + restList.add(map); + } + pageResult.setGrid(restList); + return RespBuilder.buildSuccess(pageResult); + } + } -- 1.8.3.1