From d96b01c61683218d5aa090e04dc42106e6cc194b Mon Sep 17 00:00:00 2001 From: yangfei Date: Tue, 24 Apr 2018 10:31:25 +0800 Subject: [PATCH] =?UTF-8?q?=E9=AB=98=E5=8D=B1=E8=87=AA=E5=8A=A8=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lyms/platform/biz/service/PatientsService.java | 128 +++++++++++++++++++-- .../biz/service/TrackDownRecordService.java | 30 +++++ .../job/index/restore/data/ConvertHelper.java | 12 +- .../operate/web/facade/RiskReportFacade.java | 1 - .../operate/web/facade/TrackDownFacade.java | 9 +- .../resources/spring/applicationContext-quartz.xml | 28 +---- 6 files changed, 161 insertions(+), 47 deletions(-) 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 59a79e0..e036438 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 @@ -14,9 +14,7 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.domain.Sort; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import java.util.Arrays; @@ -44,7 +42,8 @@ public class PatientsService { private PersonService personService; @Autowired private IAntExRecordDao iAntExRecordDao; - + @Autowired + private TrackDownService trackDownService; @Autowired private TrackDownRecordService trackDownRecordService; @@ -290,11 +289,41 @@ public class PatientsService { } }).start(); + //处理产后复查、产后追访数据显示及自动流转 + new Thread(new Runnable() { + @Override + public void run() { + patientAutoFm(); + } + }).start(); + + //自动流转产后复查转出或产后访视转出 + new Thread(new Runnable() { + @Override + public void run() { + trackAutoFlow(); + } + }).start(); + + //自动流转产后复查转出或产后访视转出 + new Thread(new Runnable() { + @Override + public void run() { + dandleReachDue(); + } + }).start(); + } + + /** + * 自开始处理产后复查、产后访视追访数据: + */ + public void trackAutoFlow() { //添加产后追访信息 TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); downRecordQuery.setTrackTypes(Arrays.asList(TrackDownDateEnums.F.getId(), TrackDownDateEnums.G.getId(), TrackDownDateEnums.K.getId())); List records = trackDownRecordService.queryTrackDown(downRecordQuery); + System.out.println("开始处理产后复查、产后访视追访数据:"+records.size()); for (TrackDownRecord tr : records) { Patients patients = iPatientDao.getPatient(tr.getParentId()); if (patients != null && patients.getFmDate() != null) {//分娩时间不为空 @@ -307,33 +336,68 @@ public class PatientsService { } else {//否则进入产后复查追访 tr.setTrackType(TrackDownDateEnums.J.getId()); } - trackDownRecordService.updateTrackDown(tr, tr.getId()); } + }else{//不显示 + tr.setStatus(0); + } + }else if (patients == null){ + tr.setStatus(0); + } + trackDownRecordService.updateTrackDown(tr, tr.getId()); + } + } + + + /** + * 开始处理产检、产筛追访数据进入分娩追访 + */ + public void patientAutoFm() { + //添加产后追访信息 + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setTrackTypes(Arrays.asList(TrackDownDateEnums.C.getId(), TrackDownDateEnums.D.getId(), TrackDownDateEnums.H.getId(), TrackDownDateEnums.I.getId())); + List records = trackDownRecordService.queryTrackDown(downRecordQuery); + System.out.println("开始处理产检、产筛追访数据进入分娩追访:"+records.size()); + for (TrackDownRecord tr : records) { + Patients patients = iPatientDao.getPatient(tr.getParentId()); + if (patients != null && patients.getType() == 3) {//产妇 + System.out.println("产检追访已经分娩:"+patients.getId()); + //分娩距当前时间天数 + int day = DateUtil.daysBetween(patients.getFmDate(), new Date()); + if (day <= 60) {//产后60天内,可做产后访视或产后复查环节 + if (day > 42) {//不需要做产后访视追访记录,只做产后复查追访 + tr.setTrackType(TrackDownDateEnums.G.getId()); + } else { + tr.setTrackType(TrackDownDateEnums.F.getId()); + } + }else{//否则不显示 + tr.setStatus(0); } + trackDownRecordService.updateTrackDown(tr, tr.getId()); } } } + /** * 处理产筛追访数据,孕周大于20周自动进入产检追访 */ public void handSieveTrack() { //添加产后追访信息 TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); - downRecordQuery.setTrackTypes(Arrays.asList(TrackDownDateEnums.C.getId(),TrackDownDateEnums.H.getId())); + downRecordQuery.setTrackTypes(Arrays.asList(TrackDownDateEnums.C.getId(), TrackDownDateEnums.H.getId())); List records = trackDownRecordService.queryTrackDown(downRecordQuery); for (TrackDownRecord tr : records) { Patients patients = iPatientDao.getPatient(tr.getParentId()); - if(patients == null||tr==null){ - System.out.println("处理产筛追访数据,孕周大于20周自动进入产检追访:patient为空"+tr.getParentId()); + if (patients == null || tr == null) { + System.out.println("处理产筛追访数据,孕周大于20周自动进入产检追访:patient为空" + tr.getParentId()); continue; } int week = DateUtil.getWeek2(patients.getLastMenses(), new Date()); if (week > 20) {//不能做产前筛查追访,显示产前检查追访 - if (tr.getTrackType()== TrackDownDateEnums.C.getId()) { + if (tr.getTrackType() == TrackDownDateEnums.C.getId()) { tr.setTrackType(TrackDownDateEnums.I.getId()); - }else if(tr.getTrackType()== TrackDownDateEnums.H.getId()){ + } else if (tr.getTrackType() == TrackDownDateEnums.H.getId()) { tr.setTrackType(TrackDownDateEnums.E.getId()); } } @@ -386,6 +450,8 @@ public class PatientsService { patients.setIsAutoFm(YnEnums.YES.getId()); // hujiaqi添加结束 updatePatient(patients); + //追访流转到产后访视 + addTrackDownInfo(patients.getOperator(), patients); /** 自动分娩 >> 作废未使用的产检券 */ // remoteService.invalidCoupon(patients.getPid(), "2", RemoteUrlEnum.INVALID_COUPON_URL); @@ -405,6 +471,47 @@ public class PatientsService { } /** + * 分娩添加或更新追访信息 + * + * @param userId + */ + public void addTrackDownInfo(Integer userId, Patients patients) { + //添加产后追访信息 + int day = DateUtil.daysBetween(patients.getFmDate(), new Date()); + if (day <= 60) {//产后60天内,可做产后访视或产后复查环节 + if (null != patients) { + TrackDownRecord trackDownRecord = patients.build(); + trackDownRecord.setTrackType(TrackDownDateEnums.F.getId()); + if (patients.getDueStatus() == 1) {//终止妊娠 + //当前孕妇是孕28周后,进入产后复查追访,否则结束流程 + int dueWeek = DateUtil.getWeek2(patients.getLastMenses(), patients.getFmDate()); + + if (dueWeek >= 28) {//进入产后复查 + trackDownRecord.setTrackType(TrackDownDateEnums.J.getId()); + } else {//结束流程 + trackDownRecord.setStatus(0); + } + } + //查询是否存在追访记录,如果有则修改,没有则新增 + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setParentId(patients.getId()); + downRecordQuery.setStatus(3); + List records = trackDownRecordService.queryTrackDown(downRecordQuery); + logger.info("CHTrackDownDataLoader addTrackDown by id :" + patients.getId()); + if (CollectionUtils.isNotEmpty(records)) { + TrackDownRecord track = records.get(0); + trackDownRecord.setId(track.getId()); + } + if (day > 42) {//不需要做产后访视追访记录,只做产后复查追访 + trackDownRecord.setTrackType(TrackDownDateEnums.J.getId()); + } + trackDownRecordService.addOrupdateTrackDownRecord(patients.getOperator(), trackDownRecord); + } + } + } + + + /** * 孕妇建档时调用的方法或者修改末次月经后调用 * * @param patients @@ -414,7 +521,7 @@ public class PatientsService { new Thread(new Runnable() { @Override public void run() { - if(patients!=null){ + if (patients != null) { //修改产筛s updateSieve(patients); //修改转诊 @@ -426,7 +533,6 @@ public class PatientsService { }).start(); - } /** diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/TrackDownRecordService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/TrackDownRecordService.java index 571983b..5cdd555 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/TrackDownRecordService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/TrackDownRecordService.java @@ -37,6 +37,36 @@ public class TrackDownRecordService { @Autowired private ITrackDownRecordDao iTrackDownRecordDao; + + //新增或更新追访状态 + public boolean addOrupdateTrackDownRecord(Integer userId, TrackDownRecord trackDownRecord) { + try { + //先根据主键id进行查询 + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(trackDownRecord.getId())) { + TrackDownRecord trackDownRecord1 = getTrackDown(trackDownRecord.getId()); + if (trackDownRecord1 != null) { + //流程只能往下流转,不能往上回退,,因为9,10,11,12,是后面加入的产筛转出流程所以不做判断 + if (trackDownRecord.getTrackType() != null && trackDownRecord.getTrackType()!=8 && trackDownRecord.getTrackType()!=9 && trackDownRecord.getTrackType()!=10&&trackDownRecord.getTrackType()!=11 && trackDownRecord.getTrackType() < trackDownRecord1.getTrackType().intValue()) { + //用以前追访的类型和来源id + trackDownRecord.setTrackType(trackDownRecord1.getTrackType()); + trackDownRecord.setSource(trackDownRecord1.getSource()); + } + //由显示修改成不显示,后期数据更新时,不允许将不显示修改成显示。 + if (trackDownRecord1.getStatus() < trackDownRecord.getStatus()) { + trackDownRecord.setStatus(trackDownRecord1.getStatus()); + } + updateTrackDown(trackDownRecord, trackDownRecord1.getId()); + return true; + } + } + addTrackDown(trackDownRecord); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + public TrackDownRecord addTrackDown(TrackDownRecord downRecord) { downRecord.setCreated(new Date()); downRecord.setModified(new Date()); diff --git a/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/ConvertHelper.java b/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/ConvertHelper.java index a3ed59f..35864d9 100644 --- a/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/ConvertHelper.java +++ b/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/ConvertHelper.java @@ -767,11 +767,11 @@ public class ConvertHelper { List otherHighRisks = new ArrayList<>(); List list3 = null; - String ot=antExChuModel.getOtherHighRisk(); - if (org.apache.commons.lang.StringUtils.isNotEmpty(ot)&&ot.startsWith("[") && antExChuModel.getOtherHighRisk().endsWith("]")) { + String ot = antExChuModel.getOtherHighRisk(); + if (org.apache.commons.lang.StringUtils.isNotEmpty(ot) && ot.startsWith("[") && antExChuModel.getOtherHighRisk().endsWith("]")) { list3 = JsonUtil.toList(ot, Map.class); otherHighRisks.addAll(list3); - } else if(org.apache.commons.lang.StringUtils.isNotEmpty(ot)){ + } else if (org.apache.commons.lang.StringUtils.isNotEmpty(ot)) { Map otherMap = JsonUtil.jkstr2Obj(ot, Map.class); otherHighRisks.add(otherMap); } @@ -978,11 +978,11 @@ public class ConvertHelper { } List otherHighRisks = new ArrayList<>(); List list3 = null; - String ot =antExChuModel.getOtherRisk(); - if (org.apache.commons.lang.StringUtils.isNotEmpty(ot)&ot.startsWith("[") && ot.endsWith("]")) { + String ot = antExChuModel.getOtherRisk(); + if (org.apache.commons.lang.StringUtils.isNotEmpty(ot) & ot.startsWith("[") && ot.endsWith("]")) { list3 = JsonUtil.toList(ot, Map.class); otherHighRisks.addAll(list3); - } else if(org.apache.commons.lang.StringUtils.isNotEmpty(ot)){ + } else if (org.apache.commons.lang.StringUtils.isNotEmpty(ot)) { Map otherMap = JsonUtil.jkstr2Obj(ot, Map.class); otherHighRisks.add(otherMap); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java index 97e8553..e8f3703 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java @@ -137,7 +137,6 @@ public class RiskReportFacade { patientsQuery.setNorFactor(Boolean.TRUE); - PatientsQuery query = new PatientsQuery(); query.setYn(YnEnums.YES.getId()); query.setBuildTypeList(patientsQuery.getBuildTypeList()); 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 01cd9b6..af336c5 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 @@ -163,11 +163,14 @@ public class TrackDownFacade { if (downQueryRequest.getIsHightRisk() != null) {//是否高危:是:排除健康,否:等于健康 if (downQueryRequest.getIsHightRisk() == 1) {//是 - patientsQuery.setNotoRiskFactor("d42eec03-aa86-45b8-a4e0-78a0ff365fb6"); + // patientsQuery.setNotoRiskFactor("d42eec03-aa86-45b8-a4e0-78a0ff365fb6"); patientsQuery.setIsHighRisk(Boolean.TRUE); isPatient = true; } else if (downQueryRequest.getIsHightRisk() == 2) {//否 - patientsQuery.setrFactor("d42eec03-aa86-45b8-a4e0-78a0ff365fb6"); + patientsQuery.sethScoreStart(0); + patientsQuery.sethScoreEnd(0); + // patientsQuery.setrLevel("e637b361-99cf-41eb-84f2-f0dab596e928"); + // patientsQuery.setrFactor("d42eec03-aa86-45b8-a4e0-78a0ff365fb6"); isPatient = true; } } @@ -202,7 +205,9 @@ public class TrackDownFacade { TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); if (isPatient) {//加入了高危因数查询条件 patientsQuery.setHospitalId(hospitalId); + patientsQuery.setType(1); patientsQuery.setQueryNo(downQueryRequest.getKey()); + // System.out.println("过滤条件:"+patientsQuery.convertToQuery().convertToMongoQuery()); List patientses = patientsService.queryPatient(patientsQuery); List pids = new ArrayList<>(); for (Patients ps : patientses) { diff --git a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml index 9ba6e51..e550e4f 100644 --- a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml +++ b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml @@ -61,16 +61,6 @@ - - - - - - - - - - @@ -162,11 +152,6 @@ - - - - - @@ -219,13 +204,6 @@ - - - - - - - @@ -281,11 +259,7 @@ - - - - - + -- 1.8.3.1