Commit 276b876f183e193fead74b786d266b63770a553e

Authored by shiyang
1 parent a704e2c519

承德市妇幼上线两癌需求-乳腺癌追访列表

Showing 6 changed files with 353 additions and 7 deletions

platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBreastAfterVisitDao.java View file @ 276b876
1 1 package com.lyms.platform.biz.dal;
2 2  
  3 +import com.lyms.platform.common.dao.operator.MongoQuery;
3 4 import com.lyms.platform.pojo.BreastAfterVisitModel;
  5 +import com.lyms.platform.pojo.CancerScreeningModel;
4 6  
5 7 import java.util.List;
6 8  
... ... @@ -20,5 +22,19 @@
20 22  
21 23  
22 24 void updateOneBreastAfterVisit(BreastAfterVisitModel breastAfterVisitModel);
  25 + /**
  26 + *
  27 + * 查询列表
  28 + * @param query
  29 + * @return
  30 + */
  31 + List<BreastAfterVisitModel> query(MongoQuery query);
  32 + /**
  33 + * 查询数据
  34 + *
  35 + * @param query
  36 + * @return
  37 + */
  38 + int count(MongoQuery query);
23 39 }
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BreastAfterVisitDaoImpl.java View file @ 276b876
... ... @@ -40,6 +40,26 @@
40 40 update(new MongoQuery(new MongoCondition("parentId", breastAfterVisitModel.getParentId(), MongoOper.IS)).convertToMongoQuery(), breastAfterVisitModel);
41 41 }
42 42  
  43 + /**
  44 + * 查询列表
  45 + *
  46 + * @param query
  47 + * @return
  48 + */
  49 + @Override
  50 + public List<BreastAfterVisitModel> query(MongoQuery query) {
  51 + return find(query.convertToMongoQuery());
  52 + }
  53 + /**
  54 + * 查询数据
  55 + *
  56 + * @param query
  57 + * @return
  58 + */
  59 + @Override
  60 + public int count(MongoQuery query) {
  61 + return (int) count(query.convertToMongoQuery());
  62 + }
43 63  
44 64 }
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BreastAfterVisitService.java View file @ 276b876
... ... @@ -8,6 +8,7 @@
8 8 import com.lyms.platform.common.enums.YnEnums;
9 9 import com.lyms.platform.pojo.BreastAfterVisitModel;
10 10 import com.lyms.platform.pojo.CancerScreeningModel;
  11 +import com.lyms.platform.query.BreastAfterVisitQuery;
11 12 import com.lyms.platform.query.CancerScreeningQuery;
12 13 import org.apache.commons.lang.StringUtils;
13 14 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -52,6 +53,19 @@
52 53 breastAfterVisitModel.setModified(new Date());
53 54 iBreastAfterVisitDao.updateOneBreastAfterVisit(breastAfterVisitModel);
54 55 }
55   -
  56 + /**
  57 + * 分页查询列表
  58 + * @param breastAfterVisitQuery
  59 + * @return
  60 + */
  61 + public List<BreastAfterVisitModel> queryBreastAfterVisitList(BreastAfterVisitQuery breastAfterVisitQuery) {
  62 + MongoQuery query = breastAfterVisitQuery.convertToQuery();
  63 + System.out.println(query.convertToMongoQuery().getQueryObject().toString());
  64 + if (StringUtils.isNotEmpty(breastAfterVisitQuery.getNeed())) {
  65 + breastAfterVisitQuery.mysqlBuild(iBreastAfterVisitDao.count(breastAfterVisitQuery.convertToQuery()));
  66 + query.start(breastAfterVisitQuery.getOffset()).end(breastAfterVisitQuery.getLimit());
  67 + }
  68 + return iBreastAfterVisitDao.query(query.addOrder(Sort.Direction.DESC, "checkDate"));
  69 + }
56 70 }
platform-dal/src/main/java/com/lyms/platform/query/BreastAfterVisitQuery.java View file @ 276b876
... ... @@ -62,10 +62,11 @@
62 62 private Date afterVisitTimeStart;
63 63 private Date afterVisitTimeEnd;
64 64 //预约下次追访日期
65   - private Date nextAfterVisitTimeStart;
66   - private Date nextAfterVisitTimeEnd;
  65 + private Date nextAfterVisitTime;
  66 + //逾期天数
  67 + private Date overdueStart;
  68 + private Date overdueEnd;
67 69  
68   -
69 70 //随访状态(0:待随访,1:已随访)
70 71 private Integer type;
71 72  
72 73  
... ... @@ -75,7 +76,166 @@
75 76 private Integer yn;
76 77  
77 78  
  79 + public String getId() {
  80 + return id;
  81 + }
78 82  
  83 + public void setId(String id) {
  84 + this.id = id;
  85 + }
  86 +
  87 + public String getParentId() {
  88 + return parentId;
  89 + }
  90 +
  91 + public void setParentId(String parentId) {
  92 + this.parentId = parentId;
  93 + }
  94 +
  95 + public String getHospitalId() {
  96 + return hospitalId;
  97 + }
  98 +
  99 + public void setHospitalId(String hospitalId) {
  100 + this.hospitalId = hospitalId;
  101 + }
  102 +
  103 + public String getQueryNo() {
  104 + return queryNo;
  105 + }
  106 +
  107 + public void setQueryNo(String queryNo) {
  108 + this.queryNo = queryNo;
  109 + }
  110 +
  111 + public String getProvinceId() {
  112 + return provinceId;
  113 + }
  114 +
  115 + public void setProvinceId(String provinceId) {
  116 + this.provinceId = provinceId;
  117 + }
  118 +
  119 + public String getCityId() {
  120 + return cityId;
  121 + }
  122 +
  123 + public void setCityId(String cityId) {
  124 + this.cityId = cityId;
  125 + }
  126 +
  127 + public String getAreaId() {
  128 + return areaId;
  129 + }
  130 +
  131 + public void setAreaId(String areaId) {
  132 + this.areaId = areaId;
  133 + }
  134 +
  135 + public String getStreetId() {
  136 + return streetId;
  137 + }
  138 +
  139 + public void setStreetId(String streetId) {
  140 + this.streetId = streetId;
  141 + }
  142 +
  143 + public String getCode() {
  144 + return code;
  145 + }
  146 +
  147 + public void setCode(String code) {
  148 + this.code = code;
  149 + }
  150 +
  151 + public String getNewRxCssj() {
  152 + return newRxCssj;
  153 + }
  154 +
  155 + public void setNewRxCssj(String newRxCssj) {
  156 + this.newRxCssj = newRxCssj;
  157 + }
  158 +
  159 + public String getRxXJc() {
  160 + return rxXJc;
  161 + }
  162 +
  163 + public void setRxXJc(String rxXJc) {
  164 + this.rxXJc = rxXJc;
  165 + }
  166 +
  167 + public Date getCheckDateStart() {
  168 + return checkDateStart;
  169 + }
  170 +
  171 + public void setCheckDateStart(Date checkDateStart) {
  172 + this.checkDateStart = checkDateStart;
  173 + }
  174 +
  175 + public Date getCheckDateEnd() {
  176 + return checkDateEnd;
  177 + }
  178 +
  179 + public void setCheckDateEnd(Date checkDateEnd) {
  180 + this.checkDateEnd = checkDateEnd;
  181 + }
  182 +
  183 + public Date getAfterVisitTimeStart() {
  184 + return afterVisitTimeStart;
  185 + }
  186 +
  187 + public void setAfterVisitTimeStart(Date afterVisitTimeStart) {
  188 + this.afterVisitTimeStart = afterVisitTimeStart;
  189 + }
  190 +
  191 + public Date getAfterVisitTimeEnd() {
  192 + return afterVisitTimeEnd;
  193 + }
  194 +
  195 + public void setAfterVisitTimeEnd(Date afterVisitTimeEnd) {
  196 + this.afterVisitTimeEnd = afterVisitTimeEnd;
  197 + }
  198 +
  199 + public Date getNextAfterVisitTime() {
  200 + return nextAfterVisitTime;
  201 + }
  202 +
  203 + public void setNextAfterVisitTime(Date nextAfterVisitTime) {
  204 + this.nextAfterVisitTime = nextAfterVisitTime;
  205 + }
  206 +
  207 + public Integer getType() {
  208 + return type;
  209 + }
  210 +
  211 + public void setType(Integer type) {
  212 + this.type = type;
  213 + }
  214 +
  215 + public Integer getYn() {
  216 + return yn;
  217 + }
  218 +
  219 + public void setYn(Integer yn) {
  220 + this.yn = yn;
  221 + }
  222 +
  223 + public Date getOverdueStart() {
  224 + return overdueStart;
  225 + }
  226 +
  227 + public void setOverdueStart(Date overdueStart) {
  228 + this.overdueStart = overdueStart;
  229 + }
  230 +
  231 + public Date getOverdueEnd() {
  232 + return overdueEnd;
  233 + }
  234 +
  235 + public void setOverdueEnd(Date overdueEnd) {
  236 + this.overdueEnd = overdueEnd;
  237 + }
  238 +
79 239 /**
80 240 * @return
81 241 */
82 242  
83 243  
... ... @@ -155,11 +315,34 @@
155 315 c = Criteria.where("afterVisitTime").gte(afterVisitTimeStart).lte(afterVisitTimeEnd);
156 316 }
157 317 }
158   - if (null != nextAfterVisitTimeStart && nextAfterVisitTimeEnd != null) {
  318 + if (null != overdueStart) {
  319 + if (c != null) {
  320 + c = c.and("nextAfterVisitTime").gte(overdueStart);
  321 + } else {
  322 + c = Criteria.where("nextAfterVisitTime").gte(overdueStart);
  323 + }
  324 + }
  325 + if (null != nextAfterVisitTime) {
159 326 if (null != c) {
160   - c = c.and("nextAfterVisitTime").gte(nextAfterVisitTimeStart).lte(nextAfterVisitTimeEnd);
  327 + if(null!=overdueEnd){
  328 + if (c.getCriteriaObject().containsField("nextAfterVisitTime")){
  329 + c = c.lte(overdueEnd);
  330 + }else {
  331 + c = c.and("nextAfterVisitTime").lte(overdueEnd);
  332 + }
  333 + }else {
  334 + if (c.getCriteriaObject().containsField("nextAfterVisitTime")){
  335 + c = c.lte(nextAfterVisitTime);
  336 + }else {
  337 + c = c.and("nextAfterVisitTime").lte(nextAfterVisitTime);
  338 + }
  339 + }
161 340 } else {
162   - c = Criteria.where("nextAfterVisitTime").gte(nextAfterVisitTimeStart).lte(nextAfterVisitTimeEnd);
  341 + if(null!=overdueEnd){
  342 + c = Criteria.where("nextAfterVisitTime").lte(overdueEnd);
  343 + }else {
  344 + c = Criteria.where("nextAfterVisitTime").lte(nextAfterVisitTime);
  345 + }
163 346 }
164 347 }
165 348  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CancerScreeningController.java View file @ 276b876
... ... @@ -6,6 +6,7 @@
6 6 import com.lyms.platform.common.result.BaseResponse;
7 7 import com.lyms.platform.common.utils.StringUtils;
8 8 import com.lyms.platform.operate.web.facade.CancerScreeningFacade;
  9 +import com.lyms.platform.operate.web.request.BreastAfterVisitRequest;
9 10 import com.lyms.platform.operate.web.request.CancerScreeningRequest;
10 11 import com.lyms.platform.pojo.CancerScreeningModel;
11 12 import com.lyms.platform.pojo.ResidentsArchiveModel;
... ... @@ -135,6 +136,20 @@
135 136 public BaseResponse doSyncCancerScreen(
136 137 HttpServletRequest request) {
137 138 return cancerScreenService.doSyncCancerScreen();
  139 + }
  140 +
  141 + /**
  142 + * 乳腺癌追访筛查列表
  143 + * @param breastAfterVisitRequest
  144 + * @param request
  145 + * @return
  146 + */
  147 + @ResponseBody
  148 + @RequestMapping(method = RequestMethod.GET, value = "/breastAfterVisitList")
  149 + @TokenRequired
  150 + public BaseResponse breastAfterVisitList(BreastAfterVisitRequest breastAfterVisitRequest, HttpServletRequest request) {
  151 + LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  152 + return cancerScreenService.breastAfterVisitList(breastAfterVisitRequest, loginState.getId());
138 153 }
139 154 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CancerScreeningFacade.java View file @ 276b876
... ... @@ -11,6 +11,7 @@
11 11 import com.lyms.platform.common.result.BaseResponse;
12 12 import com.lyms.platform.common.result.RespBuilder;
13 13 import com.lyms.platform.common.utils.*;
  14 +import com.lyms.platform.operate.web.request.BreastAfterVisitRequest;
14 15 import com.lyms.platform.operate.web.request.CancerScreeningRequest;
15 16 import com.lyms.platform.operate.web.result.CancerScreeningResult;
16 17 import com.lyms.platform.operate.web.utils.CommonsHelper;
... ... @@ -25,6 +26,7 @@
25 26 import com.lyms.platform.pojo.BreastAfterVisitModel;
26 27 import com.lyms.platform.pojo.CancerScreeningModel;
27 28 import com.lyms.platform.pojo.ResidentsArchiveModel;
  29 +import com.lyms.platform.query.BreastAfterVisitQuery;
28 30 import com.lyms.platform.query.CancerScreeningQuery;
29 31 import com.lyms.platform.query.ResidentsArchiveQuery;
30 32 import org.apache.commons.collections.CollectionUtils;
... ... @@ -636,6 +638,7 @@
636 638 breastAfterVisitModel.setCode(cancerScreeningModel.getCode());
637 639 breastAfterVisitModel.setCheckDate(cancerScreeningModel.getCreated());
638 640 breastAfterVisitModel.setType(0);
  641 + breastAfterVisitModel.setYn(1);
639 642 breastAfterVisitService.addOneBreastAfterVisit(breastAfterVisitModel);
640 643 }else {
641 644 breastAfterVisitModel.setNewRxCssj(cancerScreeningModel.getNewRxCssj());
... ... @@ -652,6 +655,101 @@
652 655 e.printStackTrace();
653 656 }
654 657 }
  658 + /**
  659 + * 乳腺癌追访列表
  660 + *
  661 + * @param queryRequest
  662 + * @param id
  663 + * @return
  664 + */
  665 + public BaseResponse breastAfterVisitList(BreastAfterVisitRequest queryRequest, Integer id) {
  666 +
  667 + //根据用户id获取医院ID
  668 + String hospitalId = autoMatchFacade.getHospitalId(id);
  669 + //查询条件
  670 + BreastAfterVisitQuery query = new BreastAfterVisitQuery();
  671 + query.setLimit(queryRequest.getLimit());
  672 + query.setPage(queryRequest.getPage());
  673 + query.setNeed("need");
  674 + query.setYn(YnEnums.YES.getId());
  675 + query.setQueryNo(queryRequest.getQueryNo());
  676 + if (hospitalId != null) {
  677 + query.setHospitalId(hospitalId);
  678 + }
  679 + //检查日期筛选
  680 + if (StringUtils.isNotEmpty(queryRequest.getCheckDate())) {
  681 + String[] arrs = queryRequest.getCheckDate().split(" - ");
  682 + query.setCheckDateStart(DateUtil.parseYMD(arrs[0]));
  683 + query.setCheckDateEnd(new Date(DateUtil.parseYMD(arrs[1]).getTime() + 24 * 60 * 60 * 1000 - 1));
  684 + }
  685 + //下次追访时间保存时已经加过时间逻辑,这里直接小于等于当前时间(默认规则)
  686 + query.setNextAfterVisitTime(new Date());
  687 + //逾期天数
  688 + if (null != queryRequest.getOverdueStart()) {
  689 + Calendar instance = Calendar.getInstance();
  690 + instance.setTime(new Date());
  691 + instance.add(Calendar.DATE, -queryRequest.getOverdueStart());
  692 + instance.set(Calendar.HOUR_OF_DAY, 23);
  693 + instance.set(Calendar.MINUTE, 59);
  694 + instance.set(Calendar.SECOND, 59);
  695 + instance.set(Calendar.MILLISECOND, 999);
  696 + Date end = instance.getTime();
  697 + query.setOverdueEnd(end);
  698 + }
  699 + if (null != queryRequest.getOverdueEnd()) {
  700 + Calendar instance = Calendar.getInstance();
  701 + instance.setTime(new Date());
  702 + instance.add(Calendar.DATE, -queryRequest.getOverdueEnd());
  703 + instance.set(Calendar.HOUR_OF_DAY, 00);
  704 + instance.set(Calendar.MINUTE, 00);
  705 + instance.set(Calendar.SECOND, 00);
  706 + instance.set(Calendar.MILLISECOND, 000);
  707 + Date start = instance.getTime();
  708 + query.setOverdueStart(start);
  709 + }
  710 + //地区
  711 + query.setCityId(queryRequest.getCityId());
  712 + query.setAreaId(queryRequest.getAreaId());
  713 + query.setStreetId(queryRequest.getStreetId());
  714 + //超声所见
  715 + query.setNewRxCssj(queryRequest.getNewRxCssj());
  716 + //隆化乳腺X钼靶检查
  717 + query.setRxXJc(queryRequest.getRxXJc());
  718 + //追访状态
  719 + query.setType(queryRequest.getType());
  720 + List list = new ArrayList();
  721 + List <BreastAfterVisitModel> modelList = breastAfterVisitService.queryBreastAfterVisitList(query);
  722 + if (CollectionUtils.isNotEmpty(modelList)) {
  723 + for (BreastAfterVisitModel model : modelList) {
  724 + Map <String, Object> map = new HashMap <>();
  725 + map.put("id", model.getId());
  726 + map.put("parentId", model.getParentId());
  727 + map.put("name", model.getUsername());
  728 + map.put("sex", "女");
  729 + map.put("cardNum", model.getCertificateNum());
  730 + map.put("phone", model.getPhone());
  731 + map.put("age", DateUtil.getAge(model.getBirthday()));
  732 + map.put("liveAddress", CommonsHelper.getResidence(model.getProvinceId(), model.getCityId(), model.getAreaId(), model.getStreetId(), model.getAddress(), basicConfigService));
  733 + //逾期时间
  734 + int yqsj=0;
  735 + if(null!=model.getNextAfterVisitTime()){
  736 + if(DateUtil.getDays(model.getNextAfterVisitTime(),new Date())>0){
  737 + yqsj=DateUtil.getDays(model.getNextAfterVisitTime(),new Date());
  738 + }
  739 + }
  740 + map.put("yqsj",yqsj);
  741 + map.put("nextAfterVisitTime", DateUtil.getyyyy_MM_dd(model.getNextAfterVisitTime()));//下次预约时间
  742 + map.put("checkDate", DateUtil.getyyyy_MM_dd(model.getCheckDate()));//检査日期
  743 + map.put("newRxCssj",LhUltrasoundContent.getName(StringUtils.isNotEmpty(model.getNewRxCssj())?model.getNewRxCssj():null));//超声所见
  744 + map.put("rxXJc",LhBreastXRayContent.getName(StringUtils.isNotEmpty(model.getRxXJc())?model.getRxXJc():null));//隆化乳腺X钼靶检查
  745 + list.add(map);
  746 + }
  747 + }
  748 + return new BaseListResponse().setData(list).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setPageInfo(query.getPageInfo());
  749 + }
  750 +
  751 +
  752 +
655 753  
656 754 public static final String AREA_URL = PropertiesUtils.getPropertyValue("area_url");
657 755