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 | } |