From 37b3c3491e5281d7579a69107eb1209d722683d0 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Fri, 25 Nov 2016 14:45:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=95=E4=BA=A7=E5=A6=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/biz/dal/IPatientDao.java | 2 + .../lyms/platform/biz/dal/impl/PatientDaoImpl.java | 8 ++ .../lyms/platform/biz/service/PatientsService.java | 5 ++ .../com/lyms/platform/common/utils/DateUtil.java | 8 +- .../com/lyms/platform/query/PatientsQuery.java | 88 +++++++++++++++++++++- .../java/com/lyms/platform/operate/web/Test.java | 31 ++++---- .../web/facade/AntenatalExaminationFacade.java | 6 +- .../platform/operate/web/facade/PatientFacade.java | 17 +++++ .../web/request/RiskPatientsQueryRequest.java | 51 ++++++++++++- 9 files changed, 191 insertions(+), 25 deletions(-) diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPatientDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPatientDao.java index 35110e2..9603e31 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPatientDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPatientDao.java @@ -30,4 +30,6 @@ public interface IPatientDao { void updatePatientByPid(Patients patientUpdate, String pid); void findAndModify(MongoQuery query,Patients obj); + + void updatePatientOneCol(String id, String colName, Object colValue); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PatientDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PatientDaoImpl.java index 8ab4501..e6deb00 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PatientDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PatientDaoImpl.java @@ -7,6 +7,7 @@ import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.common.dao.operator.Page; import com.lyms.platform.pojo.AntenatalExaminationModel; +import com.lyms.platform.pojo.BabyModel; import com.lyms.platform.pojo.Patients; import org.bson.types.ObjectId; import org.springframework.data.mongodb.core.aggregation.Aggregation; @@ -15,6 +16,7 @@ import org.springframework.data.mongodb.core.aggregation.AggregationResults; import org.springframework.data.mongodb.core.aggregation.Field; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Repository; import java.util.List; @@ -34,6 +36,12 @@ public class PatientDaoImpl extends BaseMongoDAOImpl implements IPatie public void findAndModify(MongoQuery query,Patients obj){ updateMulti(query.convertToMongoQuery(),obj); } + + @Override + public void updatePatientOneCol(String id, String colName, Object colValue) { + this.mongoTemplate.updateFirst(new Query(Criteria.where("id").is(id)), Update.update(colName, colValue), BabyModel.class); + } + @Override public void updatePatient(Patients obj, String id) { update(new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery(), obj); 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 06213a7..63f6778 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 @@ -101,6 +101,11 @@ public class PatientsService { return iPatientDao.getPatient(id); } + public void updatePatientOneCol(String id,String colName,Object colValue) + { + iPatientDao.updatePatientOneCol(id,colName,colValue); + } + /** * 满足孕15+3至20+6之间和有产筛申请单的数据 */ 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 3222434..76a9222 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 @@ -794,11 +794,11 @@ public class DateUtil { // Date startDate = getRangeDate(parseYMD("2016-09-07"),2,"周",-1); // System.out.println(getyyyy_MM_dd(startDate)); -// int a = daysBetween(parseYMD("2013-09-13"),new Date())/7; -// System.out.println(a); + int a = daysBetween(parseYMD("2016-10-01"),new Date())/7; + System.out.println(a); - Date dueDate = DateUtil.addDay(DateUtil.addMonth(parseYMD("2016-02-08"), 9), 7); - System.out.println(getyyyy_MM_dd(dueDate)); +// Date dueDate = DateUtil.addDay(DateUtil.addMonth(parseYMD("2016-02-08"), 9), 7); +// System.out.println(getyyyy_MM_dd(dueDate)); } catch (Exception e) { diff --git a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java index 5af649b..b7edfc2 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java @@ -153,6 +153,17 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { this.hospitalList = hospitalList; } + //查询号 + private String queryNo; + + public String getQueryNo() { + return queryNo; + } + + public void setQueryNo(String queryNo) { + this.queryNo = queryNo; + } + public Integer getPostViewTimes() { return postViewTimes; } @@ -301,6 +312,8 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { private Date fmDateStart; private Date fmDateEnd; + private Date nextCheckTimeStart; + private Date nextCheckTimeEnd; //大于修改时间 private Date gteModified; @@ -308,6 +321,44 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { //大于创建时间 private Date gteCreated; + //最后一次产检医生职工ID + private String lastCheckEmployeeId; + + //建档医生 + private String bookbuildingDoctor; + + + public String getLastCheckEmployeeId() { + return lastCheckEmployeeId; + } + + public void setLastCheckEmployeeId(String lastCheckEmployeeId) { + this.lastCheckEmployeeId = lastCheckEmployeeId; + } + + public String getBookbuildingDoctor() { + return bookbuildingDoctor; + } + + public void setBookbuildingDoctor(String bookbuildingDoctor) { + this.bookbuildingDoctor = bookbuildingDoctor; + } + + public Date getNextCheckTimeStart() { + return nextCheckTimeStart; + } + + public void setNextCheckTimeStart(Date nextCheckTimeStart) { + this.nextCheckTimeStart = nextCheckTimeStart; + } + + public Date getNextCheckTimeEnd() { + return nextCheckTimeEnd; + } + + public void setNextCheckTimeEnd(Date nextCheckTimeEnd) { + this.nextCheckTimeEnd = nextCheckTimeEnd; + } public Date getLastCTimeStart() { return lastCTimeStart; @@ -633,6 +684,7 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { public MongoQuery convertToQuery() { MongoCondition condition = MongoCondition.newInstance(); + if (null != keyword) { MongoCondition con1 = MongoCondition.newInstance("phone", "^" + keyword, MongoOper.LIKE); MongoCondition con = MongoCondition.newInstance("username", "^" + keyword, MongoOper.LIKE); @@ -656,15 +708,19 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { } else if (null != buildTypeList) { MongoCondition mongoCondition = MongoCondition.newInstance("buildType", 3, MongoOper.IS); MongoCondition condition1 = mongoCondition.and("enable", "1", MongoOper.IS); - MongoCondition condition2 = MongoCondition.newInstance("buildType", buildTypeList, MongoOper.IN); - condition = condition.orCondition(new MongoCondition[]{condition1, condition2}); } if (buildTypeEq != null) { condition = condition.and("buildType", buildTypeEq, MongoOper.IS); } + if (lastCheckEmployeeId != null) { + condition = condition.and("lastCheckEmployeeId", lastCheckEmployeeId, MongoOper.IS); + } + if (bookbuildingDoctor != null) { + condition = condition.and("bookbuildingDoctor", bookbuildingDoctor, MongoOper.IS); + } if (visitstatus != -1) { condition = condition.and("isVisit", visitstatus, MongoOper.IS); } @@ -742,6 +798,14 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { condition = condition.and("pid", pid, MongoOper.IS); } Criteria c1 = null; + if (null != queryNo) { + MongoCondition c = MongoCondition.newInstance(); + MongoCondition con1 = MongoCondition.newInstance("phone", queryNo, MongoOper.IS); + MongoCondition con2 = MongoCondition.newInstance("username", queryNo, MongoOper.IS); + MongoCondition con3 = MongoCondition.newInstance("cardNo", queryNo, MongoOper.IS); + c1= c.orCondition(new MongoCondition[]{con1, con2, con3}).getCriteria(); + } + if (fmDateStart != null && fmDateEnd != null) { c1 = Criteria.where("fmDate").gte(fmDateStart).lte(fmDateEnd); } @@ -807,6 +871,24 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { c1 = Criteria.where("lastRhTime").lte(lastRhTimeEnd); } } + + if (null != nextCheckTimeStart) { + if (null != c1) { + c1 = c1.and("nextCheckTime").gte(nextCheckTimeStart); + } else { + c1 = Criteria.where("nextCheckTime").gte(nextCheckTimeStart); + } + } + + if (null != nextCheckTimeEnd) { + if (null != c1) { + c1 = c1.lte(nextCheckTimeEnd); + } else { + c1 = Criteria.where("nextCheckTime").lte(nextCheckTimeEnd); + } + } + + if (null != hScoreStart) { if (null != hScoreStart) { if (null != c1) { @@ -915,7 +997,9 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { } if (null != c1) { condition = condition.andCondition(new MongoCondition(c1)); + } + return condition.toMongoQuery(); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/Test.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/Test.java index c5296ec..40ec8a7 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/Test.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/Test.java @@ -26,23 +26,24 @@ public class Test{ public static void main(String[] args){ PatientsQuery patientsQuery1 = new PatientsQuery(); - patientsQuery1.setPid("pid"); + patientsQuery1.setHospitalId("221"); patientsQuery1.setYn(YnEnums.YES.getId()); patientsQuery1.setType(1); - Patients patients1 = new Patients(); - patients1.setModified(new Date()); - - List ids = new ArrayList<>(); - ids.add("id1"); - ids.add("id12"); - ids.add("id134"); - patients1.setRiskScore(12); - patients1.setRiskFactorId(ids); - patients1.setRiskLevelId(JsonUtil.array2JsonString(ids)); - Update update = MongoConvertHelper - .convertToNativeUpdate(ReflectionUtils.getUpdateField(patients1)); - System.out.println(JsonUtil.obj2JsonString(patientsQuery1.convertToQuery().convertToMongoQuery())); - System.out.println(JsonUtil.obj2JsonString(update)); + + List buildType = new ArrayList(); + buildType.add(0); + buildType.add(2); + patientsQuery1.setBuildTypeList(buildType); + + patientsQuery1.setQueryNo("q"); + + + + patientsQuery1.setBookbuildingDateStart(DateUtil.parseYMD("1999-11-11")); + patientsQuery1.setBookbuildingDateEnd(DateUtil.parseYMD("2016-12-08")); + + + System.out.println(patientsQuery1.convertToQuery().convertToMongoQuery()); } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java index 5749620..527be53 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java @@ -136,7 +136,7 @@ public class AntenatalExaminationFacade { Patients patients = patientsService.findOnePatientById(antExAddRequest.getParentId()); patients.setLastCheckEmployeeId(antExAddRequest.getCheckDoctor()); - + patientsService.updatePatientOneCol(patients.getId(), "nextCheckTime", com.lyms.platform.common.utils.StringUtils.isEmpty(antExAddRequest.getNextCheckTime()) == true ? null : DateUtil.parseYMD(antExAddRequest.getNextCheckTime())); patientsService.updatePatient(patients); //修改孕妇高危等级 updateLastRisk(antExAddRequest.getParentId()); @@ -160,6 +160,7 @@ public class AntenatalExaminationFacade { } Patients patients = patientsService.findOnePatientById(antExAddRequest.getParentId()); patients.setLastCheckEmployeeId(antExAddRequest.getCheckDoctor()); + patientsService.updatePatientOneCol(patients.getId(), "nextCheckTime", com.lyms.platform.common.utils.StringUtils.isEmpty(antExAddRequest.getNextCheckTime()) == true ? null : DateUtil.parseYMD(antExAddRequest.getNextCheckTime())); model.setPid(patients.getPid()); if (StringUtils.isNotEmpty(patients.getEnable()) && "0".equals(patients.getEnable())) { patients.setEnable("1"); @@ -247,7 +248,7 @@ public class AntenatalExaminationFacade { Patients patients = patientsService.findOnePatientById(excAddRequest.getParentId()); patients.setLastCheckEmployeeId(excAddRequest.getProdDoctor()); - + patientsService.updatePatientOneCol(patients.getId(), "nextCheckTime", com.lyms.platform.common.utils.StringUtils.isEmpty(excAddRequest.getNextCheckTime()) == true ? null : DateUtil.parseYMD(excAddRequest.getNextCheckTime())); if (StringUtils.isNotEmpty(patients.getEnable()) && "0".equals(patients.getEnable())) { patients.setEnable("1"); } @@ -291,6 +292,7 @@ public class AntenatalExaminationFacade { antExChuModel.setHospitalId(autoMatchFacade.getHospitalId(userId)); antenatalExaminationService.addOneAntEx(antExChuModel); //修改患者风险等级 + patientsService.updatePatientOneCol(patients.getId(), "nextCheckTime", com.lyms.platform.common.utils.StringUtils.isEmpty(excAddRequest.getNextCheckTime()) == true ? null : DateUtil.parseYMD(excAddRequest.getNextCheckTime())); patients.setLastCheckEmployeeId(excAddRequest.getProdDoctor()); // updatePatientRiskLevel(antExChuModel, patients); patientsService.updatePatient(patients); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java index 5e5eff3..6f7c927 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java @@ -257,6 +257,20 @@ public class PatientFacade { } } + //下次预约时间 + if (StringUtils.isNotEmpty(riskPatientsQueryRequest.getNextCheckTime())) { + String nextDateStr = riskPatientsQueryRequest.getNextCheckTime(); + String[] dates = nextDateStr.split(" - "); + patientsQuery.setNextCheckTimeStart(DateUtil.parseYMD(dates[0])); + if (dates.length == 2) { + patientsQuery.setNextCheckTimeEnd(DateUtil.parseYMD(dates[1])); + } + } + patientsQuery.setBookbuildingDoctor(riskPatientsQueryRequest.getBuildUserId()); + patientsQuery.setLastCheckEmployeeId(riskPatientsQueryRequest.getLastCheckDoctorId()); + + + patientsQuery.setrLevel(riskPatientsQueryRequest.getrLevel()); patientsQuery.setLastMensesStart(riskPatientsQueryRequest.capEnd()); patientsQuery.setLastMensesEnd(riskPatientsQueryRequest.capStart()); @@ -369,6 +383,9 @@ public class PatientFacade { patientsQuery.setHospitalId(hospital); } patientsQuery.setNeed(needPage); + + patientsQuery.setQueryNo(riskPatientsQueryRequest.getQueryNo()); + return patientsQuery; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsQueryRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsQueryRequest.java index aadd7b3..7fda681 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsQueryRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/RiskPatientsQueryRequest.java @@ -61,8 +61,6 @@ public class RiskPatientsQueryRequest extends BasePageQueryRequest { //体验会员 0非会员 1会员 @FormParam private Integer expVip; - //建档时间 - private String buildTime; //最后一次医院定义的高危 private String lastRhTime; //本院最后一次产检时间 @@ -93,6 +91,28 @@ public class RiskPatientsQueryRequest extends BasePageQueryRequest { // 医院id private String hId; + //建档时间 + private String buildTime; + + //下次预约时间 + private String nextCheckTime; + + //查询号 + private String queryNo; + + //建档人 + private String buildUserId; + + //产检医生 + private String lastCheckDoctorId; + + public String getQueryNo() { + return queryNo; + } + + public void setQueryNo(String queryNo) { + this.queryNo = queryNo; + } public String getProvinceRegisterId() { return provinceRegisterId; @@ -174,6 +194,33 @@ public class RiskPatientsQueryRequest extends BasePageQueryRequest { this.hId = hId; } + + + + public String getNextCheckTime() { + return nextCheckTime; + } + + public void setNextCheckTime(String nextCheckTime) { + this.nextCheckTime = nextCheckTime; + } + + public String getBuildUserId() { + return buildUserId; + } + + public void setBuildUserId(String buildUserId) { + this.buildUserId = buildUserId; + } + + public String getLastCheckDoctorId() { + return lastCheckDoctorId; + } + + public void setLastCheckDoctorId(String lastCheckDoctorId) { + this.lastCheckDoctorId = lastCheckDoctorId; + } + public Integer getPostViewTimes() { return postViewTimes; } -- 1.8.3.1