diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java index 61a7d06..8a85a52 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java @@ -248,15 +248,13 @@ public class PatientsService { */ public void dandleReachDue(){ //查询出满足预产期前两周的孕妇 - Date endDate = new Date(); - Date start = DateUtil.addDay(DateUtil.formatDate(endDate), -14); - + Date endDate = DateUtil.addDay(DateUtil.formatDate(new Date()), +14); PatientsQuery patientsQuery = new PatientsQuery(); patientsQuery.setDueDateEnd(endDate); - patientsQuery.setDueDateStart(start); patientsQuery.setYn(YnEnums.YES.getId()); patientsQuery.setDueStatus(0); patientsQuery.setType(1); + List patientses = iPatientDao.queryPatient(patientsQuery.convertToQuery()); if (CollectionUtils.isNotEmpty(patientses)) { logger.info("处理预产期前两周的孕妇数据,进入分娩住院追访 size:" + patientses.size()); diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java index 8f6a3c5..60b49ab 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java @@ -1437,13 +1437,18 @@ public class DateUtil { } public static void main(String[] args) { - System.out.println(getDayLastSecond(new Date()).toLocaleString()); - List> monthBetween = getRange(parseYMD("2017-1-11"), parseYMD("2017-12-29")); - for (Map map : monthBetween) { - System.out.print("cname>> " + getyyyy_mm(map.get("cname"))); - System.out.print(" start>> " + getyyyy_MM_dd(map.get("start"))); - System.out.println(" end>> " + getyyyy_MM_dd(map.get("end"))); - } + + int i = DateUtil.daysBetween(DateUtil.parseYMD("2018-02-20"),new Date()); + System.out.println(i); + + + // System.out.println(getDayLastSecond(new Date()).toLocaleString()); + // List> monthBetween = getRange(parseYMD("2017-1-11"), parseYMD("2017-12-29")); + // for (Map map : monthBetween) { + // System.out.print("cname>> " + getyyyy_mm(map.get("cname"))); + // System.out.print(" start>> " + getyyyy_MM_dd(map.get("start"))); + // System.out.println(" end>> " + getyyyy_MM_dd(map.get("end"))); + // } /* Date yesterday = DateUtil.getYesterday(); System.out.println(yesterday.toLocaleString()); diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/PremaritalCheckup.java b/platform-dal/src/main/java/com/lyms/platform/pojo/PremaritalCheckup.java index b2faa45..d41548d 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/PremaritalCheckup.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/PremaritalCheckup.java @@ -1529,28 +1529,4 @@ public class PremaritalCheckup extends BaseModel { this.hunJianDoctor = hunJianDoctor; } - public TrackDownRecord build(ResidentsArchiveModel resid) { - if (StringUtils.isEmpty(getParentId())) { - return null; - } - TrackDownRecord record = new TrackDownRecord(); - - record.setResidentsArchiveId(resid.getId()); - record.setAddressRegister(resid.getAddressRegister()); - record.setAreaRegisterId(resid.getAreaRegisterId()); - record.setBirth(resid.getBirthday()); - record.setCityRegisterId(resid.getCityRegisterId()); - record.setUsername(resid.getUsername()); - record.setStreetRegisterId(resid.getStreetRegisterId()); - record.setPhone(resid.getPhone()); - - //默认值 - record.setSource(getId()); - record.setHospitalId(getHospitalId()); - record.setStatus(1); - record.setCardNo(getCertificateNum()); - record.setTrackType(TrackDownDateEnums.B.getId()); - return record; - } - } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java index 256b1f1..f6550ec 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java @@ -14,10 +14,7 @@ import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.*; -import com.lyms.platform.operate.web.request.BabyBookbuildingAddRequest; -import com.lyms.platform.operate.web.request.BabyGuideSmsequest; -import com.lyms.platform.operate.web.request.BabyManageRequest; -import com.lyms.platform.operate.web.request.BookbuildingQueryRequest; +import com.lyms.platform.operate.web.request.*; import com.lyms.platform.operate.web.result.*; import com.lyms.platform.operate.web.service.ITrackDownService; import com.lyms.platform.operate.web.utils.BabyListTask; @@ -151,6 +148,8 @@ public class BabyBookbuildingFacade { private ITrackDownService trackDownService; @Autowired + private TrackDownRecordService downRecordService; + @Autowired private TrackDownRecordService trackDownRecordService; public BaseResponse getBabyBase(String babyId) { //查询儿童的基本信息 @@ -410,6 +409,8 @@ public class BabyBookbuildingFacade { patientUpdate.setId(pat.getId()); patientUpdate.setFmDate(StringUtils.isEmpty(request.getDueDate()) ? DateUtil.parseYMD(request.getBabyBirthday()) : DateUtil.parseYMD(request.getDueDate())); patientsService.updatePatient(patientUpdate); + //修改追访信息 + addTrackDownInfo(userId,patientUpdate); } } @@ -654,34 +655,12 @@ public class BabyBookbuildingFacade { patient.setPid(pm.getId()); patient.setCreated(new Date()); patients = yunBookbuildingService.addPregnantBookbuilding(patient); - - //这里还需加判断验证,母亲的分娩时间是否在复查和追访的时间范围内 - //添加产后追访信息 - /*TrackDownRecord trackDownRecord = patient.build(); - TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); - downRecordQuery.setParentId(trackDownRecord.getParentId()); //添加产后追访信息 - List records = trackDownRecordService.queryTrackDown(downRecordQuery); - if(CollectionUtils.isNotEmpty(records)){ - TrackDownRecord trackDownRecord1 = records.get(0); - if(trackDownRecord1.getStatus()==1&&trackDownRecord.getTrackType()!=TrackDownDateEnums.F.getId()){ - trackDownRecord.setHospitalId(hid); - trackDownRecord.setSource(patient.getId()); - trackDownRecord.setTrackType(TrackDownDateEnums.F.getId()); - trackDownService.addOrupdateTrackDownRecord(userId,trackDownRecord); - } - }else{ - trackDownRecord.setHospitalId(hid); - trackDownRecord.setSource(patient.getId()); - trackDownRecord.setStatus(1); - trackDownRecord.setTrackType(TrackDownDateEnums.F.getId()); - trackDownService.addOrupdateTrackDownRecord(userId,trackDownRecord); - }*/ + addTrackDownInfo(userId,patients); operateLogFacade.addAddOptLog(userId, Integer.valueOf(hid), patients, OptActionEnums.ADD.getId(), "儿童建档时候添加孕妇建档"); } } - } } //没有孕妇基本信息就新建产妇建档 和基本信息 @@ -706,11 +685,7 @@ public class BabyBookbuildingFacade { patient.setPid(yunModel.getId()); patient.setCreated(new Date()); patients = yunBookbuildingService.addPregnantBookbuilding(patient); - - // //添加产后追访信息 - // TrackDownRecord trackDownRecord = patient.build(); - // trackDownRecord.setTrackType(TrackDownDateEnums.F.getId()); - // trackDownService.addOrupdateTrackDownRecord(userId,trackDownRecord); + addTrackDownInfo(userId,patients); operateLogFacade.addAddOptLog(userId, Integer.valueOf(hid), patients, OptActionEnums.ADD.getId(), "儿童建档时候添加孕妇建档"); } @@ -804,6 +779,41 @@ public class BabyBookbuildingFacade { return br; } + /** + * 添加或更新追访信息 + * @param userId + */ + public void addTrackDownInfo(Integer userId, Patients patients) { + Date currDate = new Date(); + //分娩日期不为空 + if (patients.getFmDate()!=null) { + //分娩距当前时间天数 + int day = DateUtil.daysBetween(patients.getFmDate(), currDate); + if (day <= 60) {//产后60天内,可做产后访视或产后复查环节 + if (null != patients) { + TrackDownRecord trackDownRecord = patients.build(); + trackDownRecord.setTrackType(TrackDownDateEnums.F.getId()); + + //查询是否存在追访记录,如果有则修改,没有则新增 + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setPids(Arrays.asList(patients.getPid())); + List records = downRecordService.queryTrackDown(downRecordQuery); + if (CollectionUtils.isNotEmpty(records)) { + TrackDownRecord track = records.get(0); + trackDownRecord.setId(track.getId()); + } + + if(day>42){//不需要做产后访视追访记录,只做产后复查追访 + trackDownRecord.setTrackType(TrackDownDateEnums.J.getId()); + } + + if (null != trackDownRecord) { + trackDownService.addOrupdateTrackDownRecord(userId, trackDownRecord); + } + } + } + } + } /** diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java index 475b8f3..111ec51 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java @@ -302,7 +302,6 @@ public class BookbuildingFacade { } //修改孕妇档案 yunBookbuildingService.updatePregnant(p1, p.getId()); - } @@ -312,13 +311,9 @@ public class BookbuildingFacade { return br; } - //加入产筛 patientsService.validata(p); - - if (p.getType() != null && p.getType() == 1) { - Organization organization = organizationService.getOrganization(Integer.valueOf(yunRequest.getHospitalId())); if (null != organization) { AreaCodeQuery areaCodeQuery = new AreaCodeQuery(); @@ -395,7 +390,7 @@ public class BookbuildingFacade { * @param yunRequest */ public void addTrackDownInfo(Integer userId, Patients patient, YunBookbuildingAddRequest yunRequest) { - //添加产后追访信息 + //添加产检追访信息 TrackDownRecord trackDownRecord = patient.build(); //根据patient查询是否存在追访信息 TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); @@ -405,26 +400,17 @@ public class BookbuildingFacade { TrackDownRecord trackDownRecord1 = records.get(0); trackDownRecord.setId(trackDownRecord1.getId()); } else {//不存在查询居民健康档案是否存在追访 - //查询居民健康档案 - ResidentsArchiveQuery archiveQuery = new ResidentsArchiveQuery(); - archiveQuery.setYn(YnEnums.YES.getId()); - archiveQuery.setHospitalId(yunRequest.getHospitalId()); - - if (StringUtils.isNotEmpty(patient.getCardNo())) { - archiveQuery.setCertificateNum(patient.getCardNo()); - List residents = residentsArchiveService.queryResident(archiveQuery); - if (CollectionUtils.isNotEmpty(residents) && residents.get(0) != null) { - //居民健康档案 - ResidentsArchiveModel archiveModel = residents.get(0); - //添加产后追访信息 - downRecordQuery = new TrackDownRecordQuery(); - downRecordQuery.setSource(archiveModel.getId()); - records = trackDownRecordService.queryTrackDown(downRecordQuery); - if (CollectionUtils.isNotEmpty(records)) {//修改 - TrackDownRecord trackDownRecord1 = records.get(0); - trackDownRecord.setId(trackDownRecord1.getId()); - } - } + downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setHospitalId(patient.getHospitalId()); + if(StringUtils.isNotEmpty(patient.getCardNo())){ + downRecordQuery.setCardNo(patient.getCardNo()); + }else if(StringUtils.isNotEmpty(patient.getPhone())){ + downRecordQuery.setPhone(patient.getPhone()); + } + records = trackDownRecordService.queryTrackDown(downRecordQuery); + if(CollectionUtils.isNotEmpty(records)){ + TrackDownRecord trackDownRecord1 = records.get(0); + trackDownRecord.setId(trackDownRecord1.getId()); } } trackDownService.addOrupdateTrackDownRecord(userId, trackDownRecord); @@ -553,9 +539,6 @@ public class BookbuildingFacade { patient.setOperator(userId); Patients p = yunBookbuildingService.addPregnantBookbuilding(patient); - //添加产后追访信息 - TrackDownRecord trackDownRecord = patient.build(); - //添加追访信息 addTrackDownInfo(userId, p, yunRequest); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PremaritalCheckupFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PremaritalCheckupFacade.java index dc40fcd..fa55358 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PremaritalCheckupFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PremaritalCheckupFacade.java @@ -747,7 +747,7 @@ public class PremaritalCheckupFacade { } /** - * 新增居民健康档案时追访信息 + * 新增婚检时追访信息 * @param userId */ public void addTrackDownInfo(Integer userId, ResidentsArchiveModel residentsArchiveModel) { @@ -765,7 +765,7 @@ public class PremaritalCheckupFacade { downRecordQuery = new TrackDownRecordQuery(); downRecordQuery.setHospitalId(residentsArchiveModel.getHospitalId()); if(StringUtils.isNotEmpty(residentsArchiveModel.getCertificateNum())){ - downRecordQuery.setKey(residentsArchiveModel.getCertificateNum()); + downRecordQuery.setCardNo(residentsArchiveModel.getCertificateNum()); }else if(StringUtils.isNotEmpty(residentsArchiveModel.getPhone())){ downRecordQuery.setPhone(residentsArchiveModel.getPhone()); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java index f6200f6..1de3076 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java @@ -364,8 +364,6 @@ public class TrackDownFacade { //分娩日期 temp.put("fmDate", patients.getFmDate()==null?"--":DateUtil.getyyyy_MM_dd(patients.getFmDate())); } - - return temp; } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownJobFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownJobFacade.java index f847510..e275b3e 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownJobFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownJobFacade.java @@ -7,6 +7,8 @@ import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.StringUtils; +import com.lyms.platform.common.utils.SystemConfig; +import com.lyms.platform.operate.web.service.ITrackDownService; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; import org.apache.commons.collections.CollectionUtils; @@ -49,8 +51,7 @@ public class TrackDownJobFacade { @Qualifier("commonThreadPool") private ThreadPoolTaskExecutor commonThreadPool; - @Autowired - private TrackDownRecordService downRecordService; + @Autowired private PatientsService patientsService; @@ -65,6 +66,13 @@ public class TrackDownJobFacade { */ @Autowired private PremaritalCheckupService premaritalCheckupService; + @Autowired + private TrackDownRecordService downRecordService; + @Autowired + private ITrackDownService trackDownService; + @Autowired + private TrackDownRecordService trackDownRecordService; + interface TrackDownDataLoader { //分页的条数 @@ -105,12 +113,12 @@ public class TrackDownJobFacade { private void init() { //婚前检查数据加载 downJobHandlers.add(new HJTrackDownDataLoader()); - //怀孕数据加载 + //怀孕建档数据加载 downJobHandlers.add(new HYTrackDownDataLoader()); //产检数据加载 downJobHandlers.add(new CJTrackDownDataLoader()); - //分娩数据加载 - downJobHandlers.add(new FMTrackDownDataLoader()); + //分娩数据加载,有自动任务处理 + // downJobHandlers.add(new FMTrackDownDataLoader()); //产后访视和产后复查的数据加载 产后访视和产后复查的规则一样 downJobHandlers.add(new CHTrackDownDataLoader()); } @@ -127,55 +135,6 @@ public class TrackDownJobFacade { } return new BaseResponse().setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION).setErrorcode(ErrorCodeConstants.SUCCESS); } - /** - * 分娩追访数据加载 - */ - class FMTrackDownDataLoader implements TrackDownDataLoader { - - @Override - public void execute() { - int page = 0; - List data = null; - do { - PatientsQuery patientsQuery1 = new PatientsQuery(); - patientsQuery1.setYn(YnEnums.YES.getId()); - patientsQuery1.setSort("created asc"); - patientsQuery1.setNeed("1"); - patientsQuery1.setPage(page); - patientsQuery1.setLimit(limit); - patientsQuery1.setType(1); - //预产期前两周 - patientsQuery1.setDueDateStart(DateUtil.addDay(new Date(), -14)); - - logger.info("FMTrackDownDataLoader execute "); - //查询妇女建档 - data = patientsService.queryPatient(patientsQuery1); - if (CollectionUtils.isNotEmpty(data)) { - for (Patients model : data) { - handOneByOne(model); - } - } - page++; - } while (CollectionUtils.isNotEmpty(data) && data.size() == limit); - } - - @Override - public void handOneByOne(Patients model) { - TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); - downRecordQuery.setParentId(model.getId()); - List records = downRecordService.queryTrackDown(downRecordQuery); - if (CollectionUtils.isEmpty(records)) { - logger.info("FMTrackDownDataLoader addTrackDown by id :" + model.getId()); - TrackDownRecord downRecord = model.build(); - downRecord.setHospitalId(model.getHospitalId()); - downRecord.setStatus(1); - downRecord.setTrackType(TrackDownDateEnums.E.getId()); - downRecordService.addTrackDown(downRecord); - } - } - - - } /** @@ -207,27 +166,38 @@ public class TrackDownJobFacade { } while (CollectionUtils.isNotEmpty(data) && data.size() == limit); } + //孕妇档案生成产检追访 @Override public void handOneByOne(Patients model) { + //添加产检追访信息 + TrackDownRecord trackDownRecord = model.build(); + //根据patient查询是否存在追访信息 TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); downRecordQuery.setParentId(model.getId()); - List records = downRecordService.queryTrackDown(downRecordQuery); - if (CollectionUtils.isEmpty(records)) { - logger.info("CJTrackDownDataLoader addTrackDown by id :" + model.getId()); - TrackDownRecord downRecord = model.build(); - downRecord.setHospitalId(model.getHospitalId()); - downRecord.setStatus(1); - downRecord.setTrackType(TrackDownDateEnums.C.getId()); - downRecordService.addTrackDown(downRecord); - } else { - //TODO 处理已经在追访列表的情况 + List records = trackDownRecordService.queryTrackDown(downRecordQuery); + if (CollectionUtils.isNotEmpty(records)) {//存在则跳过 + return; + } else {//不存在则查询继续查追访记录,可能来至妇女建档追访数据 + downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setHospitalId(model.getHospitalId()); + if (StringUtils.isNotEmpty(model.getCardNo())) { + downRecordQuery.setCardNo(model.getCardNo()); + } else if (StringUtils.isNotEmpty(model.getPhone())) { + downRecordQuery.setPhone(model.getPhone()); + } + records = trackDownRecordService.queryTrackDown(downRecordQuery); + if (CollectionUtils.isNotEmpty(records)) { + TrackDownRecord trackDownRecord1 = records.get(0); + trackDownRecord.setId(trackDownRecord1.getId()); + } } + trackDownService.addOrupdateTrackDownRecord(model.getOperator(), trackDownRecord); } - } + } /** - * 怀孕建档数据加载 + * 怀孕建档追访数据加载 *

* 完成婚检流程并没有建档 */ @@ -238,7 +208,6 @@ public class TrackDownJobFacade { int page = 0; List data = null; do { - PremaritalCheckupQuery premaritalCheckupQuery = new PremaritalCheckupQuery(); premaritalCheckupQuery.setYn(YnEnums.YES.getId()); premaritalCheckupQuery.setSexType(1); @@ -258,26 +227,57 @@ public class TrackDownJobFacade { } while (CollectionUtils.isNotEmpty(data) && data.size() == limit); } + /** + * 婚前检查记录生成追访信息 + * + * @param model + */ @Override public void handOneByOne(PremaritalCheckup model) { PatientsQuery patientsQuery1 = new PatientsQuery(); patientsQuery1.setCardNo(model.getCertificateNum()); patientsQuery1.setPcerteTypeId(model.getCertificateTypeId()); patientsQuery1.setType(1); + //查询是否存在孕妇建档 Integer count = patientsService.queryPatientCount(patientsQuery1); + //不存在建档数据,预生成追访记录信息 if (null != count && count == 0) { logger.info("HYTrackDownDataLoader addTrackDown by id :" + model.getId()); ResidentsArchiveModel resid = residentsArchiveService.getResident(model.getParentId()); if (null != resid) { - TrackDownRecord downRecord = model.build(resid); - // downRecord.setSource(model.getId()); - // downRecord.setHospitalId(model.getHospitalId()); - // downRecord.setStatus(1); - // downRecord.setCardNo(model.getCertificateNum()); - // downRecord.setTrackType(TrackDownDateEnums.B.getId()); - + TrackDownRecord downRecord = resid.build(); + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setSource(model.getId()); + List records = trackDownRecordService.queryTrackDown(downRecordQuery); + + if (CollectionUtils.isNotEmpty(records)) {//存在则进行修改,只修改基本信息,不修改显示状态和追访类型 + TrackDownRecord trackDownRecord1 = records.get(0); + downRecord.setId(trackDownRecord1.getId()); + } else {//根据patient查询是否存在追访信息 + //根据医院id和身份证或手机号进行查询 + downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setHospitalId(model.getHospitalId()); + if (StringUtils.isNotEmpty(model.getCertificateNum())) { + downRecordQuery.setCardNo(model.getCertificateNum()); + } else if (StringUtils.isNotEmpty(resid.getPhone())) { + downRecordQuery.setPhone(resid.getPhone()); + } + records = trackDownRecordService.queryTrackDown(downRecordQuery); + if (CollectionUtils.isNotEmpty(records)) {//修改 + TrackDownRecord trackDownRecord1 = records.get(0); + downRecord.setId(trackDownRecord1.getId()); + } + } + //新增婚前检查,男的结束流程,女的进入怀孕建档) + if (downRecord.getSex().equals(SystemConfig.WOMAN_ID)) { + //新增婚检追访信息 + downRecord.setTrackType(TrackDownDateEnums.B.getId()); + } else if (downRecord.getSex().equals(SystemConfig.MAN_ID)) {//男结束流程 + //新增婚检追访信息 + downRecord.setStatus(0); + } if (null != downRecord) { - downRecordService.addTrackDown(downRecord); + trackDownService.addOrupdateTrackDownRecord(model.getPublishId(), downRecord); } } } @@ -316,88 +316,55 @@ public class TrackDownJobFacade { } /** - * 单条处理 + * 妇女建档生成婚检追访处理 + * 查询追访信息是否存在,存在则跳过 * * @param model */ public void handOneByOne(ResidentsArchiveModel model) { - if (null != model && StringUtils.isNotEmpty(model.getId())) { - PremaritalCheckupQuery premaritalCheckupQuery = new PremaritalCheckupQuery(); - premaritalCheckupQuery.setYn(YnEnums.YES.getId()); - premaritalCheckupQuery.setParentId(model.getId()); -// premaritalCheckupQuery.setSexType(1); - List DATA = premaritalCheckupService.queryPremaritalCheckup(premaritalCheckupQuery); - - if (CollectionUtils.isEmpty(DATA)) { - logger.info("HJTrackDownDataLoader addTrackDown by id :" + model.getId()); - TrackDownRecord record = model.build(); - downRecordService.addTrackDown(record); - } else { - //TODO 如果有婚检还存在的情况 + if ("5d0b782f-b61b-441b-b8c5-4bf55eece273".equals(model.getSex())) {//男 + if ("d75d1902-61a5-4a17-a68a-5b8a9826537b".equals(model.getMarriageId())) {//已婚,不添加追访信息 + return; } } - } - } - /** - } - - /** - * 产后访视数据加载 - */ - class CHFSTrackDownDataLoader implements TrackDownDataLoader { - - @Override - public void execute() { - int page = 1; - List data = null; - do { - MatDeliverQuery deliverQuery = new MatDeliverQuery(); - deliverQuery.setYn(YnEnums.YES.getId()); - deliverQuery.setSort("created asc"); - deliverQuery.setNeed("1"); - deliverQuery.setPage(page); - deliverQuery.setLimit(limit); - - //查询妇女建档 - data = matDeliverService.query(deliverQuery); - if (CollectionUtils.isNotEmpty(data)) { - for (MaternalDeliverModel model : data) { - //单条数据处理 - handOneByOne(model); - } - } - page++; - } while (CollectionUtils.isNotEmpty(data) && data.size() == limit); - } - @Override - public void handOneByOne(MaternalDeliverModel model) { if (null != model && StringUtils.isNotEmpty(model.getId())) { PremaritalCheckupQuery premaritalCheckupQuery = new PremaritalCheckupQuery(); premaritalCheckupQuery.setYn(YnEnums.YES.getId()); premaritalCheckupQuery.setParentId(model.getId()); - premaritalCheckupQuery.setSexType(1); - List DATA = premaritalCheckupService.queryPremaritalCheckup(premaritalCheckupQuery); + //查询居民婚检信息 + List premaritalCheckup = premaritalCheckupService.queryPremaritalCheckup(premaritalCheckupQuery); + //没有婚前检查,预备生成婚前检查追访 + if (CollectionUtils.isEmpty(premaritalCheckup)) { + //先根据医院id和证件号、手机号查询是否存在追访信息 + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setHospitalId(model.getHospitalId()); + if (StringUtils.isNotEmpty(model.getCertificateNum())) { + downRecordQuery.setKey(model.getCertificateNum()); + } else if (StringUtils.isNotEmpty(model.getPhone())) { + downRecordQuery.setPhone(model.getPhone()); + } + List records = trackDownRecordService.queryTrackDown(downRecordQuery); + if (CollectionUtils.isNotEmpty(records)) {//存在追访信息 + return; + } - if (CollectionUtils.isEmpty(DATA)) { - logger.info("HJTrackDownDataLoader addTrackDown by id :" + model.getId()); - Patients patients = patientsService.findOnePatientById(model.getParentId()); - TrackDownRecord record = model.build(patients); + TrackDownRecord record = model.build(); + if ("d75d1902-61a5-4a17-a68a-5b8a9826537b".equals(model.getMarriageId())) {//女已婚,直接进入孕妇建档追访 + record.setStatus(1); + record.setTrackType(TrackDownDateEnums.B.getId()); + } downRecordService.addTrackDown(record); - - } else { - //TODO 如果有婚检还存在的情况 } } } - - } + /** - * 产后访视追访数据加载 - * 1.分娩并出院有出院小结的孕妇 + * 产后访视/产后复查追访数据加载 + * 1.有分娩记录的产妇 */ class CHTrackDownDataLoader implements TrackDownDataLoader { @@ -422,7 +389,7 @@ public class TrackDownJobFacade { //查询妇女建档 if (CollectionUtils.isNotEmpty(data)) { - for (MaternalDeliverModel model : data) { + for (MaternalDeliverModel model : data) { handOneByOne(model); } } @@ -432,22 +399,39 @@ public class TrackDownJobFacade { @Override public void handOneByOne(MaternalDeliverModel model) { - - TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); - downRecordQuery.setParentId(model.getId()); - List records = downRecordService.queryTrackDown(downRecordQuery); - if (CollectionUtils.isEmpty(records)) { - logger.info("CHTrackDownDataLoader addTrackDown by id :" + model.getId()); - Patients patients = patientsService.findOnePatientById(model.getParentId()); - if (null != patients) { - TrackDownRecord trackDownRecord = model.build(patients); - if (null != trackDownRecord) { - downRecordService.addTrackDown(trackDownRecord); + Date currDate = new Date(); + //分娩日期不为空 + if (StringUtils.isNotEmpty(model.getDueDate())) { + //分娩距当前时间天数 + int day = DateUtil.daysBetween(DateUtil.parseYMD(model.getDueDate()), currDate); + if (day <= 60) {//产后60天内,可做产后访视或产后复查环节 + Patients patients = patientsService.findOnePatientById(model.getParentId()); + if (null != patients) { + TrackDownRecord trackDownRecord = model.build(patients); + + //查询是否存在追访记录,如果有则修改,没有则新增 + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setParentId(model.getId()); + List records = downRecordService.queryTrackDown(downRecordQuery); + if (CollectionUtils.isNotEmpty(records)) { + logger.info("CHTrackDownDataLoader addTrackDown by id :" + model.getId()); + TrackDownRecord track = records.get(0); + trackDownRecord.setId(track.getId()); + } + + if(day>42){//不需要做产后访视追访记录,只做产后复查追访 + trackDownRecord.setTrackType(TrackDownDateEnums.J.getId()); + } + + if (null != trackDownRecord) { + trackDownService.addOrupdateTrackDownRecord(model.getOperator(), trackDownRecord); + } } } } } } + @Autowired private MatDeliverService matDeliverService; } \ No newline at end of file