Commit 1679f6b7068624290fb1c8f8d8371d952671640a

Authored by yangfei
1 parent 93c68d95bb

自动追访数据生成

Showing 5 changed files with 86 additions and 99 deletions

platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/TrackDownRecordService.java View file @ 1679f6b
... ... @@ -66,7 +66,6 @@
66 66  
67 67 public List<TrackDownRecord> queryTrackDown(TrackDownRecordQuery query) {
68 68 MongoQuery query1 = query.convertToQuery();
69   -
70 69 if (StringUtils.isNotEmpty(query.getNeed())) {
71 70 query.mysqlBuild(iTrackDownRecordDao.queryTrackDownCount(query1));
72 71 query1.start(query.getOffset()).end(query.getLimit());
platform-dal/src/main/java/com/lyms/platform/pojo/MaternalDeliverModel.java View file @ 1679f6b
1 1 package com.lyms.platform.pojo;
2 2  
3 3 import com.lyms.platform.beans.SerialIdEnum;
4   -import com.lyms.platform.common.enums.TrackDownDateEnums;
5 4 import com.lyms.platform.common.result.BaseModel;
6 5 import org.apache.commons.lang.math.NumberUtils;
7 6 import org.springframework.data.mongodb.core.mapping.Document;
... ... @@ -809,30 +808,5 @@
809 808 this.extPlacentas = extPlacentas;
810 809 }
811 810  
812   - public TrackDownRecord build(Patients patients) {
813   - if (null == patients) {
814   - return null;
815   - }
816   - TrackDownRecord downRecord = new TrackDownRecord();
817   - downRecord.setParentId(getParentId());
818   - downRecord.setPid(getPid());
819   - downRecord.setLastMenses(patients.getLastMenses());
820   - downRecord.setUsername(patients.getUsername());
821   - downRecord.setCityRegisterId(patients.getCityRegisterId());
822   - downRecord.setBirth(patients.getBirth());
823   - downRecord.setAreaRegisterId(patients.getAreaRegisterId());
824   - downRecord.setCardNo(patients.getCardNo());
825   - downRecord.setAddressRegister(patients.getAddressRegister());
826   - downRecord.setPhone(patients.getPhone());
827   - downRecord.setStreetRegisterId(patients.getStreetRegisterId());
828   - downRecord.setAreaRegisterId(patients.getAreaRegisterId());
829   -
830   - //默认值
831   - downRecord.setSource(getId());
832   - downRecord.setHospitalId(getHospitalId());
833   - downRecord.setStatus(1);
834   - downRecord.setTrackType(TrackDownDateEnums.F.getId());
835   - return downRecord;
836   - }
837 811 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java View file @ 1679f6b
... ... @@ -284,7 +284,7 @@
284 284  
285 285 //添加产后追访信息
286 286 if (CollectionUtils.isNotEmpty(patients)) {
287   - addTrackDownInfo(userId,maternalDeliverModel,patients.get(0));
  287 + addTrackDownInfo(userId,patients.get(0));
288 288 }
289 289  
290 290 operateLogFacade.addAddOptLog(userId, Integer.parseInt(hospitalId), maternalDeliverModel, OptActionEnums.ADD.getId(), "添加分娩");
291 291  
292 292  
293 293  
294 294  
... ... @@ -394,24 +394,39 @@
394 394 /**
395 395 * 分娩添加或更新追访信息
396 396 * @param userId
397   - * @param patient
398   - * @param patient
399 397 */
400   - public void addTrackDownInfo(Integer userId, MaternalDeliverModel deliverModel, Patients patient) {
  398 + public void addTrackDownInfo(Integer userId, Patients patients) {
401 399 //添加产后追访信息
402   - TrackDownRecord trackDownRecord = deliverModel.build(patient);
403   - trackDownRecord.setHospitalId(deliverModel.getHospitalId());
404   - trackDownRecord.setSource(deliverModel.getId());
  400 + int day = DateUtil.daysBetween(patients.getFmDate(), new Date());
  401 + if (day <= 60) {//产后60天内,可做产后访视或产后复查环节
  402 + if (null != patients) {
  403 + TrackDownRecord trackDownRecord = patients.build();
  404 + if(patients.getDueStatus() == 1){//终止妊娠
  405 + trackDownRecord.setTrackType(TrackDownDateEnums.F.getId());
  406 + //当前孕妇是孕28周后,进入产后复查追访,否则结束流程
  407 + int dueWeek = DateUtil.getWeek2(patients.getLastMenses(), patients.getFmDate());
405 408  
406   - //根据patient查询是否存在追访信息
407   - TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery();
408   - downRecordQuery.setParentId(patient.getId());
409   - List<TrackDownRecord> records = trackDownRecordService.queryTrackDown(downRecordQuery);
410   - if (CollectionUtils.isNotEmpty(records)) {//存在则进行修改,只修改基本信息,不修改显示状态和追访类型
411   - TrackDownRecord trackDownRecord1 = records.get(0);
412   - trackDownRecord.setId(trackDownRecord1.getId());
  409 + if(dueWeek>=28){//进入产后复查
  410 + trackDownRecord.setTrackType(TrackDownDateEnums.J.getId());
  411 + }else{//结束流程
  412 + trackDownRecord.setStatus(0);
  413 + }
  414 + }
  415 + //查询是否存在追访记录,如果有则修改,没有则新增
  416 + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery();
  417 + downRecordQuery.setParentId(patients.getId());
  418 + List<TrackDownRecord> records = trackDownRecordService.queryTrackDown(downRecordQuery);
  419 + logger.info("CHTrackDownDataLoader addTrackDown by id :" + patients.getId());
  420 + if (CollectionUtils.isNotEmpty(records)) {
  421 + TrackDownRecord track = records.get(0);
  422 + trackDownRecord.setId(track.getId());
  423 + }
  424 + if (day > 42) {//不需要做产后访视追访记录,只做产后复查追访
  425 + trackDownRecord.setTrackType(TrackDownDateEnums.J.getId());
  426 + }
  427 + trackDownService.addOrupdateTrackDownRecord(patients.getOperator(), trackDownRecord);
  428 + }
413 429 }
414   - trackDownService.addOrupdateTrackDownRecord(userId, trackDownRecord);
415 430 }
416 431  
417 432 /**
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownJobFacade.java View file @ 1679f6b
... ... @@ -52,7 +52,6 @@
52 52 private ThreadPoolTaskExecutor commonThreadPool;
53 53  
54 54  
55   -
56 55 @Autowired
57 56 private PatientsService patientsService;
58 57 /**
59 58  
60 59  
61 60  
... ... @@ -112,15 +111,15 @@
112 111 @PostConstruct
113 112 private void init() {
114 113 //婚前检查数据加载
115   - // downJobHandlers.add(new HJTrackDownDataLoader());
  114 + downJobHandlers.add(new HJTrackDownDataLoader());
116 115 //怀孕建档数据加载
117   - // downJobHandlers.add(new HYTrackDownDataLoader());
  116 + downJobHandlers.add(new HYTrackDownDataLoader());
118 117 //产检数据加载
119   - // downJobHandlers.add(new CJTrackDownDataLoader());
  118 + downJobHandlers.add(new CJTrackDownDataLoader());
120 119 //分娩数据加载,有自动任务处理
121 120 // downJobHandlers.add(new FMTrackDownDataLoader());
122 121 //产后访视和产后复查的数据加载 产后访视和产后复查的规则一样
123   - // downJobHandlers.add(new CHTrackDownDataLoader());
  122 + downJobHandlers.add(new CHTrackDownDataLoader());
124 123 }
125 124  
126 125  
... ... @@ -158,7 +157,7 @@
158 157  
159 158 //查询妇女建档
160 159 data = patientsService.queryPatient(patientsQuery1);
161   - System.out.println("开始处理产检追访数据!一共"+patientsQuery1.getCount()+",当前第:"+page+"页");
  160 + System.out.println("开始处理产检追访数据!一共" + patientsQuery1.getCount() + ",当前第:" + page + "页");
162 161 if (CollectionUtils.isNotEmpty(data)) {
163 162 for (Patients model : data) {
164 163 handOneByOne(model);
... ... @@ -172,9 +171,6 @@
172 171 //孕妇档案生成产检追访
173 172 @Override
174 173 public void handOneByOne(Patients model) {
175   - if(model.getId().equals("5a6adaca0cf25c05e1262d83")){
176   - System.out.println(model.toString());
177   - }
178 174 logger.info("CJTrackDownDataLoader addTrackDown by id :" + model.getId());
179 175 //添加产检追访信息
180 176 TrackDownRecord trackDownRecord = model.build();
... ... @@ -198,8 +194,8 @@
198 194 trackDownRecord.setId(trackDownRecord1.getId());
199 195 }
200 196 }
201   - int week = DateUtil.getWeek2(model.getLastMenses(),new Date());
202   - if(week>20){//不能做产前筛查追访,显示产前检查追访
  197 + int week = DateUtil.getWeek2(model.getLastMenses(), new Date());
  198 + if (week > 20) {//不能做产前筛查追访,显示产前检查追访
203 199 trackDownRecord.setTrackType(TrackDownDateEnums.I.getId());
204 200 }
205 201 trackDownService.addOrupdateTrackDownRecord(model.getOperator(), trackDownRecord);
... ... @@ -283,7 +279,7 @@
283 279 downRecord.setId(trackDownRecord1.getId());
284 280 }
285 281 }
286   - if (downRecord.getSex().equals(SystemConfig.MAN_ID)) {//男结束流程
  282 + if (downRecord.getSex().equals(SystemConfig.MAN_ID)) {//男结束流程
287 283 //新增婚检追访信息
288 284 downRecord.setStatus(0);
289 285 }
290 286  
291 287  
292 288  
293 289  
294 290  
295 291  
296 292  
297 293  
298 294  
299 295  
300 296  
301 297  
302 298  
... ... @@ -399,72 +395,78 @@
399 395 }
400 396  
401 397  
402   -
403 398 /**
404 399 * 产后访视/产后复查追访数据加载
405 400 * 1.有分娩记录的产妇
406 401 */
407   - class CHTrackDownDataLoader implements TrackDownDataLoader<MaternalDeliverModel> {
  402 + class CHTrackDownDataLoader implements TrackDownDataLoader<Patients> {
408 403  
409 404 @Override
410 405 public void execute() {
411 406 int page = 0;
412 407  
413   - List<MaternalDeliverModel> data = null;
  408 + List<Patients> data = null;
414 409 do {
415   -
416 410 logger.info("CHTrackDownDataLoader execute ");
  411 + //查询出满足预产期前两周的孕妇
  412 + Date endDate = DateUtil.addDay(DateUtil.formatDate(new Date()), -60);
  413 + PatientsQuery patientsQuery = new PatientsQuery();
  414 + patientsQuery.setFmDateStart(endDate);
  415 + patientsQuery.setFmDateEnd(new Date());
  416 + patientsQuery.setPage(page);
  417 + patientsQuery.setLimit(limit);
  418 + patientsQuery.setYn(YnEnums.YES.getId());
  419 + patientsQuery.setNeed("1");
  420 + patientsQuery.setType(3);
417 421  
418   - MatDeliverQuery matDeliverQuery = new MatDeliverQuery();
419   - matDeliverQuery.setYn(YnEnums.YES.getId());
420   -
421   - matDeliverQuery.setSort("createDate asc");
422   - matDeliverQuery.setNeed("1");
423   - matDeliverQuery.setPage(page);
424   - matDeliverQuery.setLimit(limit);
425   -
426   - data = matDeliverService.query(matDeliverQuery);
427   -
  422 + data = patientsService.queryPatient(patientsQuery);
  423 + System.out.println("开始产后访视/产后复查追访数据!一共" + patientsQuery.getCount() + ",当前第:" + page + "页");
428 424 //查询妇女建档
429 425 if (CollectionUtils.isNotEmpty(data)) {
430   - for (MaternalDeliverModel model : data) {
  426 + for (Patients model : data) {
431 427 handOneByOne(model);
  428 + // if (model.getId().equals("5a98f71fc07d3a2c0da220f8")) {
  429 + // }
432 430 }
433 431 }
434 432 page++;
435 433 } while (CollectionUtils.isNotEmpty(data) && data.size() == limit);
  434 + System.out.println("产后访视/产后复查追访数据结束!");
436 435 }
437 436  
438 437 @Override
439   - public void handOneByOne(MaternalDeliverModel model) {
440   - Date currDate = new Date();
441   - //分娩日期不为空
442   - if (StringUtils.isNotEmpty(model.getDueDate())) {
443   - //分娩距当前时间天数
444   - int day = DateUtil.daysBetween(DateUtil.parseYMD(model.getDueDate()), currDate);
445   - if (day <= 60) {//产后60天内,可做产后访视或产后复查环节
446   - Patients patients = patientsService.findOnePatientById(model.getParentId());
447   - if (null != patients) {
448   - TrackDownRecord trackDownRecord = model.build(patients);
  438 + public void handOneByOne(Patients patients) {
449 439  
450   - //查询是否存在追访记录,如果有则修改,没有则新增
451   - TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery();
452   - downRecordQuery.setParentId(model.getId());
453   - List<TrackDownRecord> records = downRecordService.queryTrackDown(downRecordQuery);
454   - if (CollectionUtils.isNotEmpty(records)) {
455   - logger.info("CHTrackDownDataLoader addTrackDown by id :" + model.getId());
456   - TrackDownRecord track = records.get(0);
457   - trackDownRecord.setId(track.getId());
458   - }
459   -
460   - if(day>42){//不需要做产后访视追访记录,只做产后复查追访
  440 + //分娩日期不为空
  441 + //分娩距当前时间天数
  442 + int day = DateUtil.daysBetween(patients.getFmDate(), new Date());
  443 + if (day <= 60) {//产后60天内,可做产后访视或产后复查环节
  444 + if (null != patients) {
  445 + TrackDownRecord trackDownRecord = patients.build();
  446 + trackDownRecord.setTrackType(TrackDownDateEnums.F.getId());
  447 + if (patients.getDueStatus() == 1) {//终止妊娠
  448 + //当前孕妇是孕28周后,进入产后复查追访,否则结束流程
  449 + int dueWeek = DateUtil.getWeek2(patients.getLastMenses(), patients.getFmDate());
  450 + if (dueWeek >= 28) {//进入产后复查
461 451 trackDownRecord.setTrackType(TrackDownDateEnums.J.getId());
  452 + } else {//结束流程
  453 + trackDownRecord.setStatus(0);
462 454 }
463 455  
464   - if (null != trackDownRecord) {
465   - trackDownService.addOrupdateTrackDownRecord(model.getOperator(), trackDownRecord);
466   - }
467 456 }
  457 + //查询是否存在追访记录,如果有则修改,没有则新增
  458 + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery();
  459 + downRecordQuery.setParentId(patients.getId());
  460 + List<TrackDownRecord> records = downRecordService.queryTrackDown(downRecordQuery);
  461 + logger.info("CHTrackDownDataLoader addTrackDown by id :" + patients.getId());
  462 + if (CollectionUtils.isNotEmpty(records)) {
  463 + TrackDownRecord track = records.get(0);
  464 + trackDownRecord.setId(track.getId());
  465 + }
  466 + if (day > 42) {//不需要做产后访视追访记录,只做产后复查追访
  467 + trackDownRecord.setTrackType(TrackDownDateEnums.J.getId());
  468 + }
  469 + trackDownService.addOrupdateTrackDownRecord(patients.getOperator(), trackDownRecord);
468 470 }
469 471 }
470 472 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java View file @ 1679f6b
... ... @@ -111,8 +111,6 @@
111 111 private List<Map<String, Object>> getResidentMainData(List<ResidentsArchiveModel> residentsArchiveModels) {
112 112 List<Map<String, Object>> archiveModelList = new ArrayList<>();
113 113  
114   - List<Map<String, Object>> restList = new ArrayList<>();
115   -
116 114 for (ResidentsArchiveModel archiveModel : residentsArchiveModels) {
117 115 Map<String, Object> temp = new HashMap<>();
118 116 temp.put("bookbuild", 3);//孕期建档默认空白
... ... @@ -138,7 +136,7 @@
138 136 if (CollectionUtils.isNotEmpty(patientsList)) {
139 137 Patients patients = patientsList.get(0);
140 138 temp.put("bookbuild", 1); // 孕期建档 1=勾勾 2=叉叉
141   - temp.put("bookbuildDate", patients.getBookbuildingDate());
  139 + temp.put("bookbuildDate", DateUtil.getyyyy_MM_dd(patients.getBookbuildingDate()));
142 140 if (patients.getType() == 3) {
143 141 temp.put("fm", 1); // 孕期建档 1=勾勾 2=叉叉
144 142 temp.put("fmType", patients.getFmType()); // 分娩方式 1: 顺产,2:剖宫产
... ... @@ -218,7 +216,6 @@
218 216 //建档时间
219 217 temp.put("bookbuildDate", DateUtil.getyyyy_MM_dd(patient.getBookbuildingDate()));
220 218 temp.put("bookbuild", 1); // 孕期建档 1=勾勾 2=叉叉
221   - temp.put("bookbuildDate", patient.getBookbuildingDate());
222 219  
223 220 //已分娩
224 221 if (patient.getType() == 3) {