Commit ff1e434954ec253db942d73134951ef724da2b97

Authored by wangbo
1 parent 4488d6fd6e

体重报告限制一周功能

Showing 9 changed files with 179 additions and 25 deletions

platform-dal/src/main/java/com/lyms/platform/pojo/PatientWeight.java View file @ ff1e434
... ... @@ -10,7 +10,7 @@
10 10 /**
11 11 * 孕产妇体重管理
12 12 */
13   -@Document(collection="lyms_patient_weight")
  13 +@Document(collection = "lyms_patient_weight")
14 14 public class PatientWeight extends BaseModel {
15 15  
16 16 @Transient
... ... @@ -129,6 +129,18 @@
129 129  
130 130 //0 未推送 1已经推送
131 131 private Integer sevenSend;
  132 +
  133 + //打印时间
  134 + private Date printingTime;
  135 +
  136 +
  137 + public Date getPrintingTime() {
  138 + return printingTime;
  139 + }
  140 +
  141 + public void setPrintingTime(Date printingTime) {
  142 + this.printingTime = printingTime;
  143 + }
132 144  
133 145 public Integer getExceptionSend() {
134 146 return exceptionSend;
platform-dal/src/main/java/com/lyms/platform/pojo/TemporaryWeightModel.java View file @ ff1e434
... ... @@ -33,6 +33,16 @@
33 33  
34 34 private String temporaryUserId;
35 35  
  36 + private Date printingTime;
  37 +
  38 + public Date getPrintingTime() {
  39 + return printingTime;
  40 + }
  41 +
  42 + public void setPrintingTime(Date printingTime) {
  43 + this.printingTime = printingTime;
  44 + }
  45 +
36 46 // 存储 key=年月日 value=时间+医院+体重
37 47 private List<Map<String, Object>> dayWeights2 = new ArrayList<>();
38 48  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java View file @ ff1e434
... ... @@ -84,8 +84,8 @@
84 84 @ResponseBody
85 85 @TokenRequired
86 86 @RequestMapping(value = "/all", method = RequestMethod.GET)
87   - public BaseResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer type, @RequestParam Integer page, @RequestParam Integer limit, HttpServletRequest request) {
88   - return trackDownService.all(buildStart, buildEnd, checkStart, checkEnd, fmStart, fmEnd, key, page, limit, getUserId(request), type);
  87 + public BaseResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer type, @RequestParam Integer page, @RequestParam Integer limit, HttpServletRequest request, Integer check) {
  88 + return trackDownService.all(buildStart, buildEnd, checkStart, checkEnd, fmStart, fmEnd, key, page, limit, getUserId(request), type, check);
89 89 }
90 90  
91 91 @ResponseBody
... ... @@ -111,6 +111,7 @@
111 111  
112 112 /**
113 113 * 手动执行自动任务
  114 + *
114 115 * @return
115 116 */
116 117 @ResponseBody
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyNutritionFacade.java View file @ ff1e434
... ... @@ -1308,6 +1308,12 @@
1308 1308 Organization org = organizationService.getOrganization(Integer.parseInt(hospitalId));
1309 1309 map.put("hospitalName", org.getName());
1310 1310 map.put("reportMonthAge", StringUtils.emptyDeal(DateUtil.getBabyMonthAge(baby.getBirth(), model.getNutritiTime())));
  1311 + //体重评价
  1312 + String weightEvaluate = babyCheckFacade.getGrowthValue(DateUtil.getyyyy_MM_dd(baby.getBirth()), model.getWeight(), baby.getSex(), null, null, DateUtil.getyyyy_MM_dd(baby.getCreated()));
  1313 + map.put("weightEvaluate", weightEvaluate);
  1314 + //身高评价
  1315 + String heightEvaluate = babyCheckFacade.getGrowthValue1(DateUtil.getyyyy_MM_dd(baby.getBirth()), model.getHeight(), baby.getSex(), 1, null, DateUtil.getyyyy_MM_dd(baby.getCreated()));
  1316 + map.put("heightEvaluate", heightEvaluate);
1311 1317  
1312 1318 int month = DateUtil.getMonth(baby.getBirth(), model.getNutritiTime());
1313 1319 if (month > 36) {
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/TrackDownQueryRequest.java View file @ ff1e434
... ... @@ -14,7 +14,7 @@
14 14 * @version BME V100R001 2018-01-17 17:05
15 15 * @since BME V100R001C40B104
16 16 */
17   -public class TrackDownQueryRequest extends BasePageQueryRequest{
  17 +public class TrackDownQueryRequest extends BasePageQueryRequest {
18 18 private String provinceId;
19 19 private String cityId;
20 20 private String areaId;
... ... @@ -45,6 +45,70 @@
45 45 private Date startDueDate;
46 46 //开始预产期
47 47 private Date endDueDate;
  48 +
  49 + /**
  50 + * 新加查询条件
  51 + */
  52 + //追访日期
  53 + private Date startChaseVisit;
  54 + private Date endChaseVisit;
  55 +
  56 + //逾期天数
  57 + private Integer startBeOverdue;
  58 + private Integer endBeOverdue;
  59 + //流程状态
  60 + private Integer processState;
  61 + //追访方式
  62 + private Integer ChaseVisitMode;
  63 +
  64 +
  65 + public Date getStartChaseVisit() {
  66 + return startChaseVisit;
  67 + }
  68 +
  69 + public void setStartChaseVisit(Date startChaseVisit) {
  70 + this.startChaseVisit = startChaseVisit;
  71 + }
  72 +
  73 + public Date getEndChaseVisit() {
  74 + return endChaseVisit;
  75 + }
  76 +
  77 + public void setEndChaseVisit(Date endChaseVisit) {
  78 + this.endChaseVisit = endChaseVisit;
  79 + }
  80 +
  81 + public Integer getStartBeOverdue() {
  82 + return startBeOverdue;
  83 + }
  84 +
  85 + public void setStartBeOverdue(Integer startBeOverdue) {
  86 + this.startBeOverdue = startBeOverdue;
  87 + }
  88 +
  89 + public Integer getEndBeOverdue() {
  90 + return endBeOverdue;
  91 + }
  92 +
  93 + public void setEndBeOverdue(Integer endBeOverdue) {
  94 + this.endBeOverdue = endBeOverdue;
  95 + }
  96 +
  97 + public Integer getProcessState() {
  98 + return processState;
  99 + }
  100 +
  101 + public void setProcessState(Integer processState) {
  102 + this.processState = processState;
  103 + }
  104 +
  105 + public Integer getChaseVisitMode() {
  106 + return ChaseVisitMode;
  107 + }
  108 +
  109 + public void setChaseVisitMode(Integer chaseVisitMode) {
  110 + ChaseVisitMode = chaseVisitMode;
  111 + }
48 112  
49 113 public String getCheckDoctor() {
50 114 return checkDoctor;
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/ITrackDownService.java View file @ ff1e434
... ... @@ -8,17 +8,17 @@
8 8 import javax.servlet.http.HttpServletResponse;
9 9 import java.util.Date;
10 10  
11   -public interface ITrackDownService extends IBaseService {
  11 +public interface ITrackDownService extends IBaseService {
12 12 //新增或更新追访状态
13   - boolean addOrupdateTrackDownRecord(Integer userId,TrackDownRecord trackDownRecord);
  13 + boolean addOrupdateTrackDownRecord(Integer userId, TrackDownRecord trackDownRecord);
14 14  
15 15 BaseResponse add(Integer userId, TrackDown trackDown);
16 16  
17 17 BaseObjectResponse list(String provinceId, String cityId, String areaId, String streetId, String key, Integer trackType, Integer page, Integer limit, Integer userId);
18 18  
19   - BaseObjectResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer page, Integer limit, Integer userId,Integer type);
  19 + BaseObjectResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer page, Integer limit, Integer userId, Integer type, Integer check);
20 20  
21   - BaseObjectResponse info(String patientId, Integer trackType,Integer buildType);
  21 + BaseObjectResponse info(String patientId, Integer trackType, Integer buildType);
22 22  
23 23 BaseObjectResponse init();
24 24  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java View file @ ff1e434
... ... @@ -362,6 +362,16 @@
362 362 } else {
363 363 map.put("isShow", false);
364 364 }
  365 + if (null != patientWeight.getPrintingTime()) {
  366 + int hasPrint = DateUtil.getDays(patientWeight.getPrintingTime(), new Date());
  367 + if (hasPrint > 7) {
  368 + map.put("hasPrintInWeek", false);
  369 + } else {
  370 + map.put("hasPrintInWeek", true);
  371 + }
  372 + } else {
  373 + map.put("hasPrintInWeek", false);
  374 + }
365 375  
366 376 setReport(map, weights, patientWeight.getBeforeWeight(), patientWeight.getBmi(), patientWeight.getDayWeights(), patientWeight.getBregmatic());
367 377  
... ... @@ -653,7 +663,7 @@
653 663 setYYZN(map, ComputeKulServiceManager.getPatientGuideMap().get(rid + nsArea));
654 664  
655 665 }
656   - map.put("state",kmap.get("status"));
  666 + map.put("state", kmap.get("status"));
657 667  
658 668 }
659 669 }
... ... @@ -673,6 +683,10 @@
673 683 String doctorId = getDoctorId(dayWeights2);
674 684  
675 685 healthChargeFacade.addHealthCharge(hospitalId, 1, patientWeight.getPatientId(), 1, 1, userId, doctorId, false);
  686 + PatientWeight patientWeight1 = new PatientWeight();
  687 + patientWeight1.setPrintingTime(new Date());
  688 + patientWeightService2.update(Query.query(Criteria.where("_id").is(id)), patientWeight1);
  689 +
676 690 return RespBuilder.buildSuccess(map);
677 691 }
678 692 return RespBuilder.buildSuccess();
... ... @@ -2161,6 +2175,10 @@
2161 2175 }
2162 2176 }
2163 2177 healthChargeFacade.addHealthCharge(patientWeight.getHospitalId(), 1, patientWeight.getPatientId(), 2, 1, userId, doctorId, false);
  2178 +
  2179 + PatientWeight patientWeight1 = new PatientWeight();
  2180 + patientWeight1.setPrintingTime(new Date());
  2181 + patientWeightService2.update(Query.query(Criteria.where("_id").is(pid)), patientWeight1);
2164 2182 return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(this.getFirstOrNull(datas));
2165 2183 }
2166 2184  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TemporaryWeightServiceImpl.java View file @ ff1e434
... ... @@ -369,6 +369,18 @@
369 369 } else {
370 370 map.put("isShow", false);
371 371 }
  372 + //限制一周能打印
  373 + if (null != template.getPrintingTime()) {
  374 + int hasPrint = DateUtil.getDays(template.getPrintingTime(), new Date());
  375 + if (hasPrint > 7) {
  376 + map.put("hasPrintInWeek", false);
  377 + } else {
  378 + map.put("hasPrintInWeek", true);
  379 + }
  380 + } else {
  381 + map.put("hasPrintInWeek", false);
  382 + }
  383 +
372 384 patientWeightService.setReport(map, weights, temporaryUser.getBeforeWeight(), template.getBmi(), template.getDayWeights(), temporaryUser.getBregmatic());
373 385  
374 386 //高危报告权限判断
375 387  
... ... @@ -490,8 +502,12 @@
490 502 CollectionUtils.removeNullValue(map);
491 503 List<Map<String, Object>> dayWeights2 = temporaryWeight.getDayWeights2();
492 504 String doctorId = patientWeightService.getDoctorId(dayWeights2);
493   -
494 505 healthChargeFacade.addHealthCharge(hospitalId, 1, temporaryWeight.getTemporaryUserId(), 1, 2, userId, doctorId, false);
  506 +
  507 + TemporaryWeightModel patientWeight1 = new TemporaryWeightModel();
  508 + patientWeight1.setPrintingTime(new Date());
  509 + temporaryWeightDao.updateTemporaryWeight(Query.query(Criteria.where("_id").is(id)), patientWeight1);
  510 +
495 511 return RespBuilder.buildSuccess(map);
496 512 }
497 513 return RespBuilder.buildSuccess();
... ... @@ -838,6 +854,9 @@
838 854 String doctorId = patientWeightService.getDoctorId(dayWeights2);
839 855  
840 856 healthChargeFacade.addHealthCharge(hospitalId, 1, temporary.getTemporaryUserId(), 2, 2, userId, doctorId, false);
  857 + TemporaryWeightModel patientWeight1 = new TemporaryWeightModel();
  858 + patientWeight1.setPrintingTime(new Date());
  859 + temporaryWeightDao.updateTemporaryWeight(Query.query(Criteria.where("_id").is(id)), patientWeight1);
841 860 return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(this.getFirstOrNull(datas));
842 861 }
843 862  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java View file @ ff1e434
... ... @@ -67,7 +67,7 @@
67 67 * @return
68 68 */
69 69 @Override
70   - public BaseObjectResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer page, Integer limit, Integer userId, Integer type) {
  70 + public BaseObjectResponse all(Date buildStart, Date buildEnd, Date checkStart, Date checkEnd, Date fmStart, Date fmEnd, String key, Integer page, Integer limit, Integer userId, Integer type, Integer check) {
71 71 String hospitalId = autoMatchFacade.getHospitalId(userId);
72 72 List<Map<String, Object>> restList = new ArrayList<>();
73 73 Integer archiveModelCount = 0;
74 74  
75 75  
... ... @@ -89,15 +89,39 @@
89 89 // StopWatch stopWatch = new StopWatch("妇女建档主数据");
90 90 //优化前
91 91 // stopWatch.start("妇女建档优化前");
92   - restList = getResidentMainData(modelList);
  92 + if (null != check) {
  93 + List<Map<String, Object>> checkList = getResidentMainData(modelList);
  94 + //婚检过
  95 + if (check == 1) {
  96 + for (Map<String, Object> checkMap : checkList) {
  97 + if ((int) checkMap.get("check") == 1) {
  98 + restList.add(checkMap);
  99 + }
  100 + }
  101 +
  102 + } else if (check == 2) {
  103 + for (Map<String, Object> checkMap : checkList) {
  104 + if ((int) checkMap.get("check") == 2) {
  105 + restList.add(checkMap);
  106 + }
  107 + }
  108 + }
  109 +
  110 + } else {
  111 + restList = getResidentMainData(modelList);
  112 + }
  113 +
  114 +
93 115 // stopWatch.stop();
94 116 //优化后
95 117 // stopWatch.start("妇女建档优化后");
96 118 // restList = dispResidentMainData(modelList,hospitalId);
97 119 // stopWatch.stop();
98   - // archiveModelCount = query.getCount();
  120 + archiveModelCount = query.getCount();
99 121 //
100 122 // System.out.println(stopWatch.toString());
  123 +
  124 +
101 125 } else {//孕妇建档主数据
102 126 PatientsQuery patientsQuery = new PatientsQuery();
103 127 patientsQuery.setBookbuildingDateStart(checkStart);
... ... @@ -121,7 +145,7 @@
121 145 // System.out.println(stopWatch.toString());
122 146 //优化后
123 147 stopWatch.start("孕妇建档优化后");
124   - restList = dispPatient(patientsList,hospitalId);
  148 + restList = dispPatient(patientsList, hospitalId);
125 149 stopWatch.stop();
126 150 System.out.println(stopWatch.toString());
127 151  
128 152  
... ... @@ -191,10 +215,10 @@
191 215 trackDownRecord = records.get(0);
192 216 }
193 217 }
194   - if(checkNum>0){
  218 + if (checkNum > 0) {
195 219 temp.put("check", 1); // 婚检 1=勾勾 2=叉叉
196   - }else{
197   - if (trackDownRecord!=null && trackDownRecord.getTrackType() > TrackDownDateEnums.A.getId()) {
  220 + } else {
  221 + if (trackDownRecord != null && trackDownRecord.getTrackType() > TrackDownDateEnums.A.getId()) {
198 222 temp.put("check", checkNum > 0 ? 1 : 2); // 婚检 1=勾勾 2=叉叉
199 223 }
200 224 }
201 225  
... ... @@ -315,10 +339,10 @@
315 339 }
316 340 }
317 341  
318   - if(checkNum>0){
  342 + if (checkNum > 0) {
319 343 temp.put("check", 1); // 婚检 1=勾勾 2=叉叉
320   - }else{
321   - if (trackDownRecord!=null && trackDownRecord.getTrackType() > TrackDownDateEnums.A.getId()) {
  344 + } else {
  345 + if (trackDownRecord != null && trackDownRecord.getTrackType() > TrackDownDateEnums.A.getId()) {
322 346 temp.put("check", checkNum > 0 ? 1 : 2); // 婚检 1=勾勾 2=叉叉
323 347 }
324 348 }
... ... @@ -366,7 +390,7 @@
366 390 /** 生产方式 */
367 391 temp.put("fmType", "自动分娩");
368 392 temp.put("fm", 2); // 分娩 1=勾勾 2=叉叉
369   - }else if(patient.getType() == 3){//可能本院分娩或外院分娩
  393 + } else if (patient.getType() == 3) {//可能本院分娩或外院分娩
370 394 temp.put("fm", 2); // 默认外院分娩
371 395 }
372 396 }
373 397  
... ... @@ -385,13 +409,13 @@
385 409 if (patient.getType() == 3) {//已经分娩,就是X
386 410 temp.put("cqsc", 2);//产前筛查){
387 411 } else {//未分娩
388   - if(patient.getLastMenses()!=null){
  412 + if (patient.getLastMenses() != null) {
389 413 int week = DateUtil.getWeek2(patient.getLastMenses(), new Date());
390 414 if (week > 20) {//不能做产前筛查追访,产前检查追访
391 415 temp.put("cqsc", 2);//未做产筛
392 416 }
393   - }else{
394   - System.out.println("没有末次月经的建档:"+patient.getId());
  417 + } else {
  418 + System.out.println("没有末次月经的建档:" + patient.getId());
395 419 }
396 420 }
397 421  
... ... @@ -690,7 +714,7 @@
690 714 TrackDownRecord trackDownRecord1 = trackDownRecordService.getTrackDown(trackDownRecord.getId());
691 715 if (trackDownRecord1 != null) {
692 716 //流程只能往下流转,不能往上回退,,因为9,10,11,12,是后面加入的产筛转出流程所以不做判断
693   - if (trackDownRecord.getTrackType() != null && trackDownRecord1.getTrackType()!=8 && trackDownRecord1.getTrackType()!=9 && trackDownRecord1.getTrackType()!=10&&trackDownRecord1.getTrackType()!=11 && trackDownRecord.getTrackType() < trackDownRecord1.getTrackType().intValue()) {
  717 + if (trackDownRecord.getTrackType() != null && trackDownRecord1.getTrackType() != 8 && trackDownRecord1.getTrackType() != 9 && trackDownRecord1.getTrackType() != 10 && trackDownRecord1.getTrackType() != 11 && trackDownRecord.getTrackType() < trackDownRecord1.getTrackType().intValue()) {
694 718 //用以前追访的类型和来源id
695 719 trackDownRecord.setTrackType(trackDownRecord1.getTrackType());
696 720 trackDownRecord.setSource(trackDownRecord1.getSource());