Commit bb382dfad7b1182779f4a8b641f45d1db2ade2a8

Authored by yangfei
1 parent c23abccf82

儿童建档时,母亲快捷建档,根据儿童生日生成产后访视追访,及自动生成追访信息数据

Showing 8 changed files with 203 additions and 249 deletions

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
... ... @@ -364,8 +364,6 @@
364 364 //分娩日期
365 365 temp.put("fmDate", patients.getFmDate()==null?"--":DateUtil.getyyyy_MM_dd(patients.getFmDate()));
366 366 }
367   -
368   -
369 367 return temp;
370 368 }
371 369 }
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 }