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