Commit bb382dfad7b1182779f4a8b641f45d1db2ade2a8
1 parent
c23abccf82
Exists in
master
and in
6 other branches
儿童建档时,母亲快捷建档,根据儿童生日生成产后访视追访,及自动生成追访信息数据
Showing 8 changed files with 203 additions and 249 deletions
- platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java
- platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java
- platform-dal/src/main/java/com/lyms/platform/pojo/PremaritalCheckup.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PremaritalCheckupFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownJobFacade.java
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java
View file @
bb382df
| ... | ... | @@ -248,15 +248,13 @@ |
| 248 | 248 | */ |
| 249 | 249 | public void dandleReachDue(){ |
| 250 | 250 | //查询出满足预产期前两周的孕妇 |
| 251 | - Date endDate = new Date(); | |
| 252 | - Date start = DateUtil.addDay(DateUtil.formatDate(endDate), -14); | |
| 253 | - | |
| 251 | + Date endDate = DateUtil.addDay(DateUtil.formatDate(new Date()), +14); | |
| 254 | 252 | PatientsQuery patientsQuery = new PatientsQuery(); |
| 255 | 253 | patientsQuery.setDueDateEnd(endDate); |
| 256 | - patientsQuery.setDueDateStart(start); | |
| 257 | 254 | patientsQuery.setYn(YnEnums.YES.getId()); |
| 258 | 255 | patientsQuery.setDueStatus(0); |
| 259 | 256 | patientsQuery.setType(1); |
| 257 | + | |
| 260 | 258 | List<Patients> patientses = iPatientDao.queryPatient(patientsQuery.convertToQuery()); |
| 261 | 259 | if (CollectionUtils.isNotEmpty(patientses)) { |
| 262 | 260 | logger.info("处理预产期前两周的孕妇数据,进入分娩住院追访 size:" + patientses.size()); |
platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java
View file @
bb382df
| ... | ... | @@ -1437,13 +1437,18 @@ |
| 1437 | 1437 | } |
| 1438 | 1438 | |
| 1439 | 1439 | public static void main(String[] args) { |
| 1440 | - System.out.println(getDayLastSecond(new Date()).toLocaleString()); | |
| 1441 | - List<Map<String, Date>> monthBetween = getRange(parseYMD("2017-1-11"), parseYMD("2017-12-29")); | |
| 1442 | - for (Map<String, Date> map : monthBetween) { | |
| 1443 | - System.out.print("cname>> " + getyyyy_mm(map.get("cname"))); | |
| 1444 | - System.out.print(" start>> " + getyyyy_MM_dd(map.get("start"))); | |
| 1445 | - System.out.println(" end>> " + getyyyy_MM_dd(map.get("end"))); | |
| 1446 | - } | |
| 1440 | + | |
| 1441 | + int i = DateUtil.daysBetween(DateUtil.parseYMD("2018-02-20"),new Date()); | |
| 1442 | + System.out.println(i); | |
| 1443 | + | |
| 1444 | + | |
| 1445 | + // System.out.println(getDayLastSecond(new Date()).toLocaleString()); | |
| 1446 | + // List<Map<String, Date>> monthBetween = getRange(parseYMD("2017-1-11"), parseYMD("2017-12-29")); | |
| 1447 | + // for (Map<String, Date> map : monthBetween) { | |
| 1448 | + // System.out.print("cname>> " + getyyyy_mm(map.get("cname"))); | |
| 1449 | + // System.out.print(" start>> " + getyyyy_MM_dd(map.get("start"))); | |
| 1450 | + // System.out.println(" end>> " + getyyyy_MM_dd(map.get("end"))); | |
| 1451 | + // } | |
| 1447 | 1452 | |
| 1448 | 1453 | /* Date yesterday = DateUtil.getYesterday(); |
| 1449 | 1454 | System.out.println(yesterday.toLocaleString()); |
platform-dal/src/main/java/com/lyms/platform/pojo/PremaritalCheckup.java
View file @
bb382df
| ... | ... | @@ -1529,29 +1529,5 @@ |
| 1529 | 1529 | this.hunJianDoctor = hunJianDoctor; |
| 1530 | 1530 | } |
| 1531 | 1531 | |
| 1532 | - public TrackDownRecord build(ResidentsArchiveModel resid) { | |
| 1533 | - if (StringUtils.isEmpty(getParentId())) { | |
| 1534 | - return null; | |
| 1535 | - } | |
| 1536 | - TrackDownRecord record = new TrackDownRecord(); | |
| 1537 | - | |
| 1538 | - record.setResidentsArchiveId(resid.getId()); | |
| 1539 | - record.setAddressRegister(resid.getAddressRegister()); | |
| 1540 | - record.setAreaRegisterId(resid.getAreaRegisterId()); | |
| 1541 | - record.setBirth(resid.getBirthday()); | |
| 1542 | - record.setCityRegisterId(resid.getCityRegisterId()); | |
| 1543 | - record.setUsername(resid.getUsername()); | |
| 1544 | - record.setStreetRegisterId(resid.getStreetRegisterId()); | |
| 1545 | - record.setPhone(resid.getPhone()); | |
| 1546 | - | |
| 1547 | - //默认值 | |
| 1548 | - record.setSource(getId()); | |
| 1549 | - record.setHospitalId(getHospitalId()); | |
| 1550 | - record.setStatus(1); | |
| 1551 | - record.setCardNo(getCertificateNum()); | |
| 1552 | - record.setTrackType(TrackDownDateEnums.B.getId()); | |
| 1553 | - return record; | |
| 1554 | - } | |
| 1555 | - | |
| 1556 | 1532 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java
View file @
bb382df
| ... | ... | @@ -14,10 +14,7 @@ |
| 14 | 14 | import com.lyms.platform.common.result.BaseObjectResponse; |
| 15 | 15 | import com.lyms.platform.common.result.BaseResponse; |
| 16 | 16 | import com.lyms.platform.common.utils.*; |
| 17 | -import com.lyms.platform.operate.web.request.BabyBookbuildingAddRequest; | |
| 18 | -import com.lyms.platform.operate.web.request.BabyGuideSmsequest; | |
| 19 | -import com.lyms.platform.operate.web.request.BabyManageRequest; | |
| 20 | -import com.lyms.platform.operate.web.request.BookbuildingQueryRequest; | |
| 17 | +import com.lyms.platform.operate.web.request.*; | |
| 21 | 18 | import com.lyms.platform.operate.web.result.*; |
| 22 | 19 | import com.lyms.platform.operate.web.service.ITrackDownService; |
| 23 | 20 | import com.lyms.platform.operate.web.utils.BabyListTask; |
| ... | ... | @@ -151,6 +148,8 @@ |
| 151 | 148 | private ITrackDownService trackDownService; |
| 152 | 149 | |
| 153 | 150 | @Autowired |
| 151 | + private TrackDownRecordService downRecordService; | |
| 152 | + @Autowired | |
| 154 | 153 | private TrackDownRecordService trackDownRecordService; |
| 155 | 154 | public BaseResponse getBabyBase(String babyId) { |
| 156 | 155 | //查询儿童的基本信息 |
| ... | ... | @@ -410,6 +409,8 @@ |
| 410 | 409 | patientUpdate.setId(pat.getId()); |
| 411 | 410 | patientUpdate.setFmDate(StringUtils.isEmpty(request.getDueDate()) ? DateUtil.parseYMD(request.getBabyBirthday()) : DateUtil.parseYMD(request.getDueDate())); |
| 412 | 411 | patientsService.updatePatient(patientUpdate); |
| 412 | + //修改追访信息 | |
| 413 | + addTrackDownInfo(userId,patientUpdate); | |
| 413 | 414 | } |
| 414 | 415 | |
| 415 | 416 | } |
| 416 | 417 | |
| 417 | 418 | |
| ... | ... | @@ -654,34 +655,12 @@ |
| 654 | 655 | patient.setPid(pm.getId()); |
| 655 | 656 | patient.setCreated(new Date()); |
| 656 | 657 | patients = yunBookbuildingService.addPregnantBookbuilding(patient); |
| 657 | - | |
| 658 | - //这里还需加判断验证,母亲的分娩时间是否在复查和追访的时间范围内 | |
| 659 | 658 | //添加产后追访信息 |
| 660 | - /*TrackDownRecord trackDownRecord = patient.build(); | |
| 661 | - TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); | |
| 662 | - downRecordQuery.setParentId(trackDownRecord.getParentId()); | |
| 663 | - //添加产后追访信息 | |
| 664 | - List<TrackDownRecord> records = trackDownRecordService.queryTrackDown(downRecordQuery); | |
| 665 | - if(CollectionUtils.isNotEmpty(records)){ | |
| 666 | - TrackDownRecord trackDownRecord1 = records.get(0); | |
| 667 | - if(trackDownRecord1.getStatus()==1&&trackDownRecord.getTrackType()!=TrackDownDateEnums.F.getId()){ | |
| 668 | - trackDownRecord.setHospitalId(hid); | |
| 669 | - trackDownRecord.setSource(patient.getId()); | |
| 670 | - trackDownRecord.setTrackType(TrackDownDateEnums.F.getId()); | |
| 671 | - trackDownService.addOrupdateTrackDownRecord(userId,trackDownRecord); | |
| 672 | - } | |
| 673 | - }else{ | |
| 674 | - trackDownRecord.setHospitalId(hid); | |
| 675 | - trackDownRecord.setSource(patient.getId()); | |
| 676 | - trackDownRecord.setStatus(1); | |
| 677 | - trackDownRecord.setTrackType(TrackDownDateEnums.F.getId()); | |
| 678 | - trackDownService.addOrupdateTrackDownRecord(userId,trackDownRecord); | |
| 679 | - }*/ | |
| 659 | + addTrackDownInfo(userId,patients); | |
| 680 | 660 | |
| 681 | 661 | operateLogFacade.addAddOptLog(userId, Integer.valueOf(hid), patients, OptActionEnums.ADD.getId(), "儿童建档时候添加孕妇建档"); |
| 682 | 662 | } |
| 683 | 663 | } |
| 684 | - | |
| 685 | 664 | } |
| 686 | 665 | } |
| 687 | 666 | //没有孕妇基本信息就新建产妇建档 和基本信息 |
| 688 | 667 | |
| ... | ... | @@ -706,12 +685,8 @@ |
| 706 | 685 | patient.setPid(yunModel.getId()); |
| 707 | 686 | patient.setCreated(new Date()); |
| 708 | 687 | patients = yunBookbuildingService.addPregnantBookbuilding(patient); |
| 688 | + addTrackDownInfo(userId,patients); | |
| 709 | 689 | |
| 710 | - // //添加产后追访信息 | |
| 711 | - // TrackDownRecord trackDownRecord = patient.build(); | |
| 712 | - // trackDownRecord.setTrackType(TrackDownDateEnums.F.getId()); | |
| 713 | - // trackDownService.addOrupdateTrackDownRecord(userId,trackDownRecord); | |
| 714 | - | |
| 715 | 690 | operateLogFacade.addAddOptLog(userId, Integer.valueOf(hid), patients, OptActionEnums.ADD.getId(), "儿童建档时候添加孕妇建档"); |
| 716 | 691 | } |
| 717 | 692 | |
| ... | ... | @@ -804,6 +779,41 @@ |
| 804 | 779 | return br; |
| 805 | 780 | } |
| 806 | 781 | |
| 782 | + /** | |
| 783 | + * 添加或更新追访信息 | |
| 784 | + * @param userId | |
| 785 | + */ | |
| 786 | + public void addTrackDownInfo(Integer userId, Patients patients) { | |
| 787 | + Date currDate = new Date(); | |
| 788 | + //分娩日期不为空 | |
| 789 | + if (patients.getFmDate()!=null) { | |
| 790 | + //分娩距当前时间天数 | |
| 791 | + int day = DateUtil.daysBetween(patients.getFmDate(), currDate); | |
| 792 | + if (day <= 60) {//产后60天内,可做产后访视或产后复查环节 | |
| 793 | + if (null != patients) { | |
| 794 | + TrackDownRecord trackDownRecord = patients.build(); | |
| 795 | + trackDownRecord.setTrackType(TrackDownDateEnums.F.getId()); | |
| 796 | + | |
| 797 | + //查询是否存在追访记录,如果有则修改,没有则新增 | |
| 798 | + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); | |
| 799 | + downRecordQuery.setPids(Arrays.asList(patients.getPid())); | |
| 800 | + List<TrackDownRecord> records = downRecordService.queryTrackDown(downRecordQuery); | |
| 801 | + if (CollectionUtils.isNotEmpty(records)) { | |
| 802 | + TrackDownRecord track = records.get(0); | |
| 803 | + trackDownRecord.setId(track.getId()); | |
| 804 | + } | |
| 805 | + | |
| 806 | + if(day>42){//不需要做产后访视追访记录,只做产后复查追访 | |
| 807 | + trackDownRecord.setTrackType(TrackDownDateEnums.J.getId()); | |
| 808 | + } | |
| 809 | + | |
| 810 | + if (null != trackDownRecord) { | |
| 811 | + trackDownService.addOrupdateTrackDownRecord(userId, trackDownRecord); | |
| 812 | + } | |
| 813 | + } | |
| 814 | + } | |
| 815 | + } | |
| 816 | + } | |
| 807 | 817 | |
| 808 | 818 | |
| 809 | 819 | /** |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java
View file @
bb382df
| ... | ... | @@ -302,7 +302,6 @@ |
| 302 | 302 | } |
| 303 | 303 | //修改孕妇档案 |
| 304 | 304 | yunBookbuildingService.updatePregnant(p1, p.getId()); |
| 305 | - | |
| 306 | 305 | } |
| 307 | 306 | |
| 308 | 307 | |
| 309 | 308 | |
| 310 | 309 | |
| ... | ... | @@ -312,13 +311,9 @@ |
| 312 | 311 | return br; |
| 313 | 312 | |
| 314 | 313 | } |
| 315 | - | |
| 316 | 314 | //加入产筛 |
| 317 | 315 | patientsService.validata(p); |
| 318 | - | |
| 319 | - | |
| 320 | 316 | if (p.getType() != null && p.getType() == 1) { |
| 321 | - | |
| 322 | 317 | Organization organization = organizationService.getOrganization(Integer.valueOf(yunRequest.getHospitalId())); |
| 323 | 318 | if (null != organization) { |
| 324 | 319 | AreaCodeQuery areaCodeQuery = new AreaCodeQuery(); |
| ... | ... | @@ -395,7 +390,7 @@ |
| 395 | 390 | * @param yunRequest |
| 396 | 391 | */ |
| 397 | 392 | public void addTrackDownInfo(Integer userId, Patients patient, YunBookbuildingAddRequest yunRequest) { |
| 398 | - //添加产后追访信息 | |
| 393 | + //添加产检追访信息 | |
| 399 | 394 | TrackDownRecord trackDownRecord = patient.build(); |
| 400 | 395 | //根据patient查询是否存在追访信息 |
| 401 | 396 | TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); |
| 402 | 397 | |
| ... | ... | @@ -405,27 +400,18 @@ |
| 405 | 400 | TrackDownRecord trackDownRecord1 = records.get(0); |
| 406 | 401 | trackDownRecord.setId(trackDownRecord1.getId()); |
| 407 | 402 | } else {//不存在查询居民健康档案是否存在追访 |
| 408 | - //查询居民健康档案 | |
| 409 | - ResidentsArchiveQuery archiveQuery = new ResidentsArchiveQuery(); | |
| 410 | - archiveQuery.setYn(YnEnums.YES.getId()); | |
| 411 | - archiveQuery.setHospitalId(yunRequest.getHospitalId()); | |
| 412 | - | |
| 413 | - if (StringUtils.isNotEmpty(patient.getCardNo())) { | |
| 414 | - archiveQuery.setCertificateNum(patient.getCardNo()); | |
| 415 | - List<ResidentsArchiveModel> residents = residentsArchiveService.queryResident(archiveQuery); | |
| 416 | - if (CollectionUtils.isNotEmpty(residents) && residents.get(0) != null) { | |
| 417 | - //居民健康档案 | |
| 418 | - ResidentsArchiveModel archiveModel = residents.get(0); | |
| 419 | - //添加产后追访信息 | |
| 420 | - downRecordQuery = new TrackDownRecordQuery(); | |
| 421 | - downRecordQuery.setSource(archiveModel.getId()); | |
| 422 | - records = trackDownRecordService.queryTrackDown(downRecordQuery); | |
| 423 | - if (CollectionUtils.isNotEmpty(records)) {//修改 | |
| 424 | - TrackDownRecord trackDownRecord1 = records.get(0); | |
| 425 | - trackDownRecord.setId(trackDownRecord1.getId()); | |
| 426 | - } | |
| 427 | - } | |
| 403 | + downRecordQuery = new TrackDownRecordQuery(); | |
| 404 | + downRecordQuery.setHospitalId(patient.getHospitalId()); | |
| 405 | + if(StringUtils.isNotEmpty(patient.getCardNo())){ | |
| 406 | + downRecordQuery.setCardNo(patient.getCardNo()); | |
| 407 | + }else if(StringUtils.isNotEmpty(patient.getPhone())){ | |
| 408 | + downRecordQuery.setPhone(patient.getPhone()); | |
| 428 | 409 | } |
| 410 | + records = trackDownRecordService.queryTrackDown(downRecordQuery); | |
| 411 | + if(CollectionUtils.isNotEmpty(records)){ | |
| 412 | + TrackDownRecord trackDownRecord1 = records.get(0); | |
| 413 | + trackDownRecord.setId(trackDownRecord1.getId()); | |
| 414 | + } | |
| 429 | 415 | } |
| 430 | 416 | trackDownService.addOrupdateTrackDownRecord(userId, trackDownRecord); |
| 431 | 417 | } |
| ... | ... | @@ -552,9 +538,6 @@ |
| 552 | 538 | patient.setModified(new Date()); |
| 553 | 539 | patient.setOperator(userId); |
| 554 | 540 | Patients p = yunBookbuildingService.addPregnantBookbuilding(patient); |
| 555 | - | |
| 556 | - //添加产后追访信息 | |
| 557 | - TrackDownRecord trackDownRecord = patient.build(); | |
| 558 | 541 | |
| 559 | 542 | |
| 560 | 543 | //添加追访信息 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PremaritalCheckupFacade.java
View file @
bb382df
| ... | ... | @@ -747,7 +747,7 @@ |
| 747 | 747 | } |
| 748 | 748 | |
| 749 | 749 | /** |
| 750 | - * 新增居民健康档案时追访信息 | |
| 750 | + * 新增婚检时追访信息 | |
| 751 | 751 | * @param userId |
| 752 | 752 | */ |
| 753 | 753 | public void addTrackDownInfo(Integer userId, ResidentsArchiveModel residentsArchiveModel) { |
| ... | ... | @@ -765,7 +765,7 @@ |
| 765 | 765 | downRecordQuery = new TrackDownRecordQuery(); |
| 766 | 766 | downRecordQuery.setHospitalId(residentsArchiveModel.getHospitalId()); |
| 767 | 767 | if(StringUtils.isNotEmpty(residentsArchiveModel.getCertificateNum())){ |
| 768 | - downRecordQuery.setKey(residentsArchiveModel.getCertificateNum()); | |
| 768 | + downRecordQuery.setCardNo(residentsArchiveModel.getCertificateNum()); | |
| 769 | 769 | }else if(StringUtils.isNotEmpty(residentsArchiveModel.getPhone())){ |
| 770 | 770 | downRecordQuery.setPhone(residentsArchiveModel.getPhone()); |
| 771 | 771 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java
View file @
bb382df
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownJobFacade.java
View file @
bb382df
| ... | ... | @@ -7,6 +7,8 @@ |
| 7 | 7 | import com.lyms.platform.common.result.BaseResponse; |
| 8 | 8 | import com.lyms.platform.common.utils.DateUtil; |
| 9 | 9 | import com.lyms.platform.common.utils.StringUtils; |
| 10 | +import com.lyms.platform.common.utils.SystemConfig; | |
| 11 | +import com.lyms.platform.operate.web.service.ITrackDownService; | |
| 10 | 12 | import com.lyms.platform.pojo.*; |
| 11 | 13 | import com.lyms.platform.query.*; |
| 12 | 14 | import org.apache.commons.collections.CollectionUtils; |
| 13 | 15 | |
| ... | ... | @@ -49,9 +51,8 @@ |
| 49 | 51 | @Qualifier("commonThreadPool") |
| 50 | 52 | private ThreadPoolTaskExecutor commonThreadPool; |
| 51 | 53 | |
| 52 | - @Autowired | |
| 53 | - private TrackDownRecordService downRecordService; | |
| 54 | 54 | |
| 55 | + | |
| 55 | 56 | @Autowired |
| 56 | 57 | private PatientsService patientsService; |
| 57 | 58 | /** |
| 58 | 59 | |
| ... | ... | @@ -65,7 +66,14 @@ |
| 65 | 66 | */ |
| 66 | 67 | @Autowired |
| 67 | 68 | private PremaritalCheckupService premaritalCheckupService; |
| 69 | + @Autowired | |
| 70 | + private TrackDownRecordService downRecordService; | |
| 71 | + @Autowired | |
| 72 | + private ITrackDownService trackDownService; | |
| 73 | + @Autowired | |
| 74 | + private TrackDownRecordService trackDownRecordService; | |
| 68 | 75 | |
| 76 | + | |
| 69 | 77 | interface TrackDownDataLoader<T> { |
| 70 | 78 | //分页的条数 |
| 71 | 79 | int limit = 100; |
| 72 | 80 | |
| ... | ... | @@ -105,12 +113,12 @@ |
| 105 | 113 | private void init() { |
| 106 | 114 | //婚前检查数据加载 |
| 107 | 115 | downJobHandlers.add(new HJTrackDownDataLoader()); |
| 108 | - //怀孕数据加载 | |
| 116 | + //怀孕建档数据加载 | |
| 109 | 117 | downJobHandlers.add(new HYTrackDownDataLoader()); |
| 110 | 118 | //产检数据加载 |
| 111 | 119 | downJobHandlers.add(new CJTrackDownDataLoader()); |
| 112 | - //分娩数据加载 | |
| 113 | - downJobHandlers.add(new FMTrackDownDataLoader()); | |
| 120 | + //分娩数据加载,有自动任务处理 | |
| 121 | + // downJobHandlers.add(new FMTrackDownDataLoader()); | |
| 114 | 122 | //产后访视和产后复查的数据加载 产后访视和产后复查的规则一样 |
| 115 | 123 | downJobHandlers.add(new CHTrackDownDataLoader()); |
| 116 | 124 | } |
| 117 | 125 | |
| 118 | 126 | |
| ... | ... | @@ -127,57 +135,8 @@ |
| 127 | 135 | } |
| 128 | 136 | return new BaseResponse().setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION).setErrorcode(ErrorCodeConstants.SUCCESS); |
| 129 | 137 | } |
| 130 | - /** | |
| 131 | - * 分娩追访数据加载 | |
| 132 | - */ | |
| 133 | - class FMTrackDownDataLoader implements TrackDownDataLoader<Patients> { | |
| 134 | 138 | |
| 135 | - @Override | |
| 136 | - public void execute() { | |
| 137 | - int page = 0; | |
| 138 | - List<Patients> data = null; | |
| 139 | - do { | |
| 140 | - PatientsQuery patientsQuery1 = new PatientsQuery(); | |
| 141 | - patientsQuery1.setYn(YnEnums.YES.getId()); | |
| 142 | - patientsQuery1.setSort("created asc"); | |
| 143 | - patientsQuery1.setNeed("1"); | |
| 144 | - patientsQuery1.setPage(page); | |
| 145 | - patientsQuery1.setLimit(limit); | |
| 146 | - patientsQuery1.setType(1); | |
| 147 | - //预产期前两周 | |
| 148 | - patientsQuery1.setDueDateStart(DateUtil.addDay(new Date(), -14)); | |
| 149 | 139 | |
| 150 | - logger.info("FMTrackDownDataLoader execute "); | |
| 151 | - //查询妇女建档 | |
| 152 | - data = patientsService.queryPatient(patientsQuery1); | |
| 153 | - if (CollectionUtils.isNotEmpty(data)) { | |
| 154 | - for (Patients model : data) { | |
| 155 | - handOneByOne(model); | |
| 156 | - } | |
| 157 | - } | |
| 158 | - page++; | |
| 159 | - } while (CollectionUtils.isNotEmpty(data) && data.size() == limit); | |
| 160 | - } | |
| 161 | - | |
| 162 | - @Override | |
| 163 | - public void handOneByOne(Patients model) { | |
| 164 | - TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); | |
| 165 | - downRecordQuery.setParentId(model.getId()); | |
| 166 | - List<TrackDownRecord> records = downRecordService.queryTrackDown(downRecordQuery); | |
| 167 | - if (CollectionUtils.isEmpty(records)) { | |
| 168 | - logger.info("FMTrackDownDataLoader addTrackDown by id :" + model.getId()); | |
| 169 | - TrackDownRecord downRecord = model.build(); | |
| 170 | - downRecord.setHospitalId(model.getHospitalId()); | |
| 171 | - downRecord.setStatus(1); | |
| 172 | - downRecord.setTrackType(TrackDownDateEnums.E.getId()); | |
| 173 | - downRecordService.addTrackDown(downRecord); | |
| 174 | - } | |
| 175 | - } | |
| 176 | - | |
| 177 | - | |
| 178 | - } | |
| 179 | - | |
| 180 | - | |
| 181 | 140 | /** |
| 182 | 141 | * 产检追访数据加载 |
| 183 | 142 | */ |
| 184 | 143 | |
| 185 | 144 | |
| 186 | 145 | |
| 187 | 146 | |
| 188 | 147 | |
| ... | ... | @@ -207,27 +166,38 @@ |
| 207 | 166 | } while (CollectionUtils.isNotEmpty(data) && data.size() == limit); |
| 208 | 167 | } |
| 209 | 168 | |
| 169 | + //孕妇档案生成产检追访 | |
| 210 | 170 | @Override |
| 211 | 171 | public void handOneByOne(Patients model) { |
| 172 | + //添加产检追访信息 | |
| 173 | + TrackDownRecord trackDownRecord = model.build(); | |
| 174 | + //根据patient查询是否存在追访信息 | |
| 212 | 175 | TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); |
| 213 | 176 | downRecordQuery.setParentId(model.getId()); |
| 214 | - List<TrackDownRecord> records = downRecordService.queryTrackDown(downRecordQuery); | |
| 215 | - if (CollectionUtils.isEmpty(records)) { | |
| 216 | - logger.info("CJTrackDownDataLoader addTrackDown by id :" + model.getId()); | |
| 217 | - TrackDownRecord downRecord = model.build(); | |
| 218 | - downRecord.setHospitalId(model.getHospitalId()); | |
| 219 | - downRecord.setStatus(1); | |
| 220 | - downRecord.setTrackType(TrackDownDateEnums.C.getId()); | |
| 221 | - downRecordService.addTrackDown(downRecord); | |
| 222 | - } else { | |
| 223 | - //TODO 处理已经在追访列表的情况 | |
| 177 | + List<TrackDownRecord> records = trackDownRecordService.queryTrackDown(downRecordQuery); | |
| 178 | + if (CollectionUtils.isNotEmpty(records)) {//存在则跳过 | |
| 179 | + return; | |
| 180 | + } else {//不存在则查询继续查追访记录,可能来至妇女建档追访数据 | |
| 181 | + downRecordQuery = new TrackDownRecordQuery(); | |
| 182 | + downRecordQuery.setHospitalId(model.getHospitalId()); | |
| 183 | + if (StringUtils.isNotEmpty(model.getCardNo())) { | |
| 184 | + downRecordQuery.setCardNo(model.getCardNo()); | |
| 185 | + } else if (StringUtils.isNotEmpty(model.getPhone())) { | |
| 186 | + downRecordQuery.setPhone(model.getPhone()); | |
| 187 | + } | |
| 188 | + records = trackDownRecordService.queryTrackDown(downRecordQuery); | |
| 189 | + if (CollectionUtils.isNotEmpty(records)) { | |
| 190 | + TrackDownRecord trackDownRecord1 = records.get(0); | |
| 191 | + trackDownRecord.setId(trackDownRecord1.getId()); | |
| 192 | + } | |
| 224 | 193 | } |
| 194 | + trackDownService.addOrupdateTrackDownRecord(model.getOperator(), trackDownRecord); | |
| 225 | 195 | } |
| 226 | - } | |
| 196 | + } | |
| 227 | 197 | |
| 228 | 198 | |
| 229 | 199 | /** |
| 230 | - * 怀孕建档数据加载 | |
| 200 | + * 怀孕建档追访数据加载 | |
| 231 | 201 | * <p/> |
| 232 | 202 | * 完成婚检流程并没有建档 |
| 233 | 203 | */ |
| ... | ... | @@ -238,7 +208,6 @@ |
| 238 | 208 | int page = 0; |
| 239 | 209 | List<PremaritalCheckup> data = null; |
| 240 | 210 | do { |
| 241 | - | |
| 242 | 211 | PremaritalCheckupQuery premaritalCheckupQuery = new PremaritalCheckupQuery(); |
| 243 | 212 | premaritalCheckupQuery.setYn(YnEnums.YES.getId()); |
| 244 | 213 | premaritalCheckupQuery.setSexType(1); |
| 245 | 214 | |
| 246 | 215 | |
| 247 | 216 | |
| 248 | 217 | |
| 249 | 218 | |
| ... | ... | @@ -258,26 +227,57 @@ |
| 258 | 227 | } while (CollectionUtils.isNotEmpty(data) && data.size() == limit); |
| 259 | 228 | } |
| 260 | 229 | |
| 230 | + /** | |
| 231 | + * 婚前检查记录生成追访信息 | |
| 232 | + * | |
| 233 | + * @param model | |
| 234 | + */ | |
| 261 | 235 | @Override |
| 262 | 236 | public void handOneByOne(PremaritalCheckup model) { |
| 263 | 237 | PatientsQuery patientsQuery1 = new PatientsQuery(); |
| 264 | 238 | patientsQuery1.setCardNo(model.getCertificateNum()); |
| 265 | 239 | patientsQuery1.setPcerteTypeId(model.getCertificateTypeId()); |
| 266 | 240 | patientsQuery1.setType(1); |
| 241 | + //查询是否存在孕妇建档 | |
| 267 | 242 | Integer count = patientsService.queryPatientCount(patientsQuery1); |
| 243 | + //不存在建档数据,预生成追访记录信息 | |
| 268 | 244 | if (null != count && count == 0) { |
| 269 | 245 | logger.info("HYTrackDownDataLoader addTrackDown by id :" + model.getId()); |
| 270 | 246 | ResidentsArchiveModel resid = residentsArchiveService.getResident(model.getParentId()); |
| 271 | 247 | if (null != resid) { |
| 272 | - TrackDownRecord downRecord = model.build(resid); | |
| 273 | - // downRecord.setSource(model.getId()); | |
| 274 | - // downRecord.setHospitalId(model.getHospitalId()); | |
| 275 | - // downRecord.setStatus(1); | |
| 276 | - // downRecord.setCardNo(model.getCertificateNum()); | |
| 277 | - // downRecord.setTrackType(TrackDownDateEnums.B.getId()); | |
| 248 | + TrackDownRecord downRecord = resid.build(); | |
| 249 | + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); | |
| 250 | + downRecordQuery.setSource(model.getId()); | |
| 251 | + List<TrackDownRecord> records = trackDownRecordService.queryTrackDown(downRecordQuery); | |
| 278 | 252 | |
| 253 | + if (CollectionUtils.isNotEmpty(records)) {//存在则进行修改,只修改基本信息,不修改显示状态和追访类型 | |
| 254 | + TrackDownRecord trackDownRecord1 = records.get(0); | |
| 255 | + downRecord.setId(trackDownRecord1.getId()); | |
| 256 | + } else {//根据patient查询是否存在追访信息 | |
| 257 | + //根据医院id和身份证或手机号进行查询 | |
| 258 | + downRecordQuery = new TrackDownRecordQuery(); | |
| 259 | + downRecordQuery.setHospitalId(model.getHospitalId()); | |
| 260 | + if (StringUtils.isNotEmpty(model.getCertificateNum())) { | |
| 261 | + downRecordQuery.setCardNo(model.getCertificateNum()); | |
| 262 | + } else if (StringUtils.isNotEmpty(resid.getPhone())) { | |
| 263 | + downRecordQuery.setPhone(resid.getPhone()); | |
| 264 | + } | |
| 265 | + records = trackDownRecordService.queryTrackDown(downRecordQuery); | |
| 266 | + if (CollectionUtils.isNotEmpty(records)) {//修改 | |
| 267 | + TrackDownRecord trackDownRecord1 = records.get(0); | |
| 268 | + downRecord.setId(trackDownRecord1.getId()); | |
| 269 | + } | |
| 270 | + } | |
| 271 | + //新增婚前检查,男的结束流程,女的进入怀孕建档) | |
| 272 | + if (downRecord.getSex().equals(SystemConfig.WOMAN_ID)) { | |
| 273 | + //新增婚检追访信息 | |
| 274 | + downRecord.setTrackType(TrackDownDateEnums.B.getId()); | |
| 275 | + } else if (downRecord.getSex().equals(SystemConfig.MAN_ID)) {//男结束流程 | |
| 276 | + //新增婚检追访信息 | |
| 277 | + downRecord.setStatus(0); | |
| 278 | + } | |
| 279 | 279 | if (null != downRecord) { |
| 280 | - downRecordService.addTrackDown(downRecord); | |
| 280 | + trackDownService.addOrupdateTrackDownRecord(model.getPublishId(), downRecord); | |
| 281 | 281 | } |
| 282 | 282 | } |
| 283 | 283 | } |
| 284 | 284 | |
| 285 | 285 | |
| 286 | 286 | |
| 287 | 287 | |
| 288 | 288 | |
| 289 | 289 | |
| 290 | 290 | |
| 291 | 291 | |
| 292 | 292 | |
| ... | ... | @@ -316,88 +316,55 @@ |
| 316 | 316 | } |
| 317 | 317 | |
| 318 | 318 | /** |
| 319 | - * 单条处理 | |
| 319 | + * 妇女建档生成婚检追访处理 | |
| 320 | + * 查询追访信息是否存在,存在则跳过 | |
| 320 | 321 | * |
| 321 | 322 | * @param model |
| 322 | 323 | */ |
| 323 | 324 | public void handOneByOne(ResidentsArchiveModel model) { |
| 324 | - if (null != model && StringUtils.isNotEmpty(model.getId())) { | |
| 325 | - PremaritalCheckupQuery premaritalCheckupQuery = new PremaritalCheckupQuery(); | |
| 326 | - premaritalCheckupQuery.setYn(YnEnums.YES.getId()); | |
| 327 | - premaritalCheckupQuery.setParentId(model.getId()); | |
| 328 | -// premaritalCheckupQuery.setSexType(1); | |
| 329 | - List<PremaritalCheckup> DATA = premaritalCheckupService.queryPremaritalCheckup(premaritalCheckupQuery); | |
| 330 | - | |
| 331 | - if (CollectionUtils.isEmpty(DATA)) { | |
| 332 | - logger.info("HJTrackDownDataLoader addTrackDown by id :" + model.getId()); | |
| 333 | - TrackDownRecord record = model.build(); | |
| 334 | - downRecordService.addTrackDown(record); | |
| 335 | - } else { | |
| 336 | - //TODO 如果有婚检还存在的情况 | |
| 325 | + if ("5d0b782f-b61b-441b-b8c5-4bf55eece273".equals(model.getSex())) {//男 | |
| 326 | + if ("d75d1902-61a5-4a17-a68a-5b8a9826537b".equals(model.getMarriageId())) {//已婚,不添加追访信息 | |
| 327 | + return; | |
| 337 | 328 | } |
| 338 | 329 | } |
| 339 | - } | |
| 340 | - } | |
| 341 | - /** | |
| 342 | - } | |
| 343 | 330 | |
| 344 | - /** | |
| 345 | - * 产后访视数据加载 | |
| 346 | - */ | |
| 347 | - class CHFSTrackDownDataLoader implements TrackDownDataLoader<MaternalDeliverModel> { | |
| 348 | - | |
| 349 | - @Override | |
| 350 | - public void execute() { | |
| 351 | - int page = 1; | |
| 352 | - List<MaternalDeliverModel> data = null; | |
| 353 | - do { | |
| 354 | - MatDeliverQuery deliverQuery = new MatDeliverQuery(); | |
| 355 | - deliverQuery.setYn(YnEnums.YES.getId()); | |
| 356 | - deliverQuery.setSort("created asc"); | |
| 357 | - deliverQuery.setNeed("1"); | |
| 358 | - deliverQuery.setPage(page); | |
| 359 | - deliverQuery.setLimit(limit); | |
| 360 | - | |
| 361 | - //查询妇女建档 | |
| 362 | - data = matDeliverService.query(deliverQuery); | |
| 363 | - if (CollectionUtils.isNotEmpty(data)) { | |
| 364 | - for (MaternalDeliverModel model : data) { | |
| 365 | - //单条数据处理 | |
| 366 | - handOneByOne(model); | |
| 367 | - } | |
| 368 | - } | |
| 369 | - page++; | |
| 370 | - } while (CollectionUtils.isNotEmpty(data) && data.size() == limit); | |
| 371 | - } | |
| 372 | - | |
| 373 | - @Override | |
| 374 | - public void handOneByOne(MaternalDeliverModel model) { | |
| 375 | 331 | if (null != model && StringUtils.isNotEmpty(model.getId())) { |
| 376 | 332 | PremaritalCheckupQuery premaritalCheckupQuery = new PremaritalCheckupQuery(); |
| 377 | 333 | premaritalCheckupQuery.setYn(YnEnums.YES.getId()); |
| 378 | 334 | premaritalCheckupQuery.setParentId(model.getId()); |
| 379 | - premaritalCheckupQuery.setSexType(1); | |
| 380 | - List<PremaritalCheckup> DATA = premaritalCheckupService.queryPremaritalCheckup(premaritalCheckupQuery); | |
| 335 | + //查询居民婚检信息 | |
| 336 | + List<PremaritalCheckup> premaritalCheckup = premaritalCheckupService.queryPremaritalCheckup(premaritalCheckupQuery); | |
| 337 | + //没有婚前检查,预备生成婚前检查追访 | |
| 338 | + if (CollectionUtils.isEmpty(premaritalCheckup)) { | |
| 339 | + //先根据医院id和证件号、手机号查询是否存在追访信息 | |
| 340 | + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); | |
| 341 | + downRecordQuery.setHospitalId(model.getHospitalId()); | |
| 342 | + if (StringUtils.isNotEmpty(model.getCertificateNum())) { | |
| 343 | + downRecordQuery.setKey(model.getCertificateNum()); | |
| 344 | + } else if (StringUtils.isNotEmpty(model.getPhone())) { | |
| 345 | + downRecordQuery.setPhone(model.getPhone()); | |
| 346 | + } | |
| 347 | + List<TrackDownRecord> records = trackDownRecordService.queryTrackDown(downRecordQuery); | |
| 348 | + if (CollectionUtils.isNotEmpty(records)) {//存在追访信息 | |
| 349 | + return; | |
| 350 | + } | |
| 381 | 351 | |
| 382 | - if (CollectionUtils.isEmpty(DATA)) { | |
| 383 | - logger.info("HJTrackDownDataLoader addTrackDown by id :" + model.getId()); | |
| 384 | - Patients patients = patientsService.findOnePatientById(model.getParentId()); | |
| 385 | - TrackDownRecord record = model.build(patients); | |
| 352 | + TrackDownRecord record = model.build(); | |
| 353 | + if ("d75d1902-61a5-4a17-a68a-5b8a9826537b".equals(model.getMarriageId())) {//女已婚,直接进入孕妇建档追访 | |
| 354 | + record.setStatus(1); | |
| 355 | + record.setTrackType(TrackDownDateEnums.B.getId()); | |
| 356 | + } | |
| 386 | 357 | downRecordService.addTrackDown(record); |
| 387 | - | |
| 388 | - } else { | |
| 389 | - //TODO 如果有婚检还存在的情况 | |
| 390 | 358 | } |
| 391 | 359 | } |
| 392 | 360 | } |
| 393 | - | |
| 394 | - | |
| 395 | 361 | } |
| 396 | 362 | |
| 397 | 363 | |
| 364 | + | |
| 398 | 365 | /** |
| 399 | - * 产后访视追访数据加载 | |
| 400 | - * 1.分娩并出院有出院小结的孕妇 | |
| 366 | + * 产后访视/产后复查追访数据加载 | |
| 367 | + * 1.有分娩记录的产妇 | |
| 401 | 368 | */ |
| 402 | 369 | class CHTrackDownDataLoader implements TrackDownDataLoader<MaternalDeliverModel> { |
| 403 | 370 | |
| ... | ... | @@ -422,7 +389,7 @@ |
| 422 | 389 | |
| 423 | 390 | //查询妇女建档 |
| 424 | 391 | if (CollectionUtils.isNotEmpty(data)) { |
| 425 | - for (MaternalDeliverModel model : data) { | |
| 392 | + for (MaternalDeliverModel model : data) { | |
| 426 | 393 | handOneByOne(model); |
| 427 | 394 | } |
| 428 | 395 | } |
| 429 | 396 | |
| 430 | 397 | |
| ... | ... | @@ -432,22 +399,39 @@ |
| 432 | 399 | |
| 433 | 400 | @Override |
| 434 | 401 | public void handOneByOne(MaternalDeliverModel model) { |
| 402 | + Date currDate = new Date(); | |
| 403 | + //分娩日期不为空 | |
| 404 | + if (StringUtils.isNotEmpty(model.getDueDate())) { | |
| 405 | + //分娩距当前时间天数 | |
| 406 | + int day = DateUtil.daysBetween(DateUtil.parseYMD(model.getDueDate()), currDate); | |
| 407 | + if (day <= 60) {//产后60天内,可做产后访视或产后复查环节 | |
| 408 | + Patients patients = patientsService.findOnePatientById(model.getParentId()); | |
| 409 | + if (null != patients) { | |
| 410 | + TrackDownRecord trackDownRecord = model.build(patients); | |
| 435 | 411 | |
| 436 | - TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); | |
| 437 | - downRecordQuery.setParentId(model.getId()); | |
| 438 | - List<TrackDownRecord> records = downRecordService.queryTrackDown(downRecordQuery); | |
| 439 | - if (CollectionUtils.isEmpty(records)) { | |
| 440 | - logger.info("CHTrackDownDataLoader addTrackDown by id :" + model.getId()); | |
| 441 | - Patients patients = patientsService.findOnePatientById(model.getParentId()); | |
| 442 | - if (null != patients) { | |
| 443 | - TrackDownRecord trackDownRecord = model.build(patients); | |
| 444 | - if (null != trackDownRecord) { | |
| 445 | - downRecordService.addTrackDown(trackDownRecord); | |
| 412 | + //查询是否存在追访记录,如果有则修改,没有则新增 | |
| 413 | + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); | |
| 414 | + downRecordQuery.setParentId(model.getId()); | |
| 415 | + List<TrackDownRecord> records = downRecordService.queryTrackDown(downRecordQuery); | |
| 416 | + if (CollectionUtils.isNotEmpty(records)) { | |
| 417 | + logger.info("CHTrackDownDataLoader addTrackDown by id :" + model.getId()); | |
| 418 | + TrackDownRecord track = records.get(0); | |
| 419 | + trackDownRecord.setId(track.getId()); | |
| 420 | + } | |
| 421 | + | |
| 422 | + if(day>42){//不需要做产后访视追访记录,只做产后复查追访 | |
| 423 | + trackDownRecord.setTrackType(TrackDownDateEnums.J.getId()); | |
| 424 | + } | |
| 425 | + | |
| 426 | + if (null != trackDownRecord) { | |
| 427 | + trackDownService.addOrupdateTrackDownRecord(model.getOperator(), trackDownRecord); | |
| 428 | + } | |
| 446 | 429 | } |
| 447 | 430 | } |
| 448 | 431 | } |
| 449 | 432 | } |
| 450 | 433 | } |
| 434 | + | |
| 451 | 435 | @Autowired |
| 452 | 436 | private MatDeliverService matDeliverService; |
| 453 | 437 | } |