diff --git a/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverQuery.java index de64745..8e71f34 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverQuery.java @@ -5,6 +5,7 @@ import com.lyms.platform.common.dao.BaseQuery; import com.lyms.platform.common.dao.operator.MongoCondition; import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.dao.operator.MongoQuery; +import org.apache.commons.collections.CollectionUtils; import org.springframework.data.mongodb.core.query.Criteria; import java.util.Date; @@ -33,12 +34,71 @@ public class MatDeliverQuery extends BaseQuery implements IConvertToNativeQuery private String deliveryModeQueryJson; private String fmHospital; + private List fmHospitalList; + /** + * 预约联系结果(1-成功、2-失败) + */ + private Integer contactResult; + + /** + * 预约失败理由(1-无人接听电话、2-拒绝访视、3-其他) + */ + private Integer contactReason; + + /** + * 访视结果(1-成功、2-失败) + */ + private Integer visitResult; + /** + * 产妇随访确认(1-待确认、2-已确认) + */ + private Integer visitAffirm; /** * 最后一次随访id */ private String matFollowId; + public Integer getContactResult() { + return contactResult; + } + + public void setContactResult(Integer contactResult) { + this.contactResult = contactResult; + } + + public Integer getContactReason() { + return contactReason; + } + + public void setContactReason(Integer contactReason) { + this.contactReason = contactReason; + } + + public Integer getVisitResult() { + return visitResult; + } + + public void setVisitResult(Integer visitResult) { + this.visitResult = visitResult; + } + + public Integer getVisitAffirm() { + return visitAffirm; + } + + public void setVisitAffirm(Integer visitAffirm) { + this.visitAffirm = visitAffirm; + } + + public List getFmHospitalList() { + return fmHospitalList; + } + + public void setFmHospitalList(List fmHospitalList) { + this.fmHospitalList = fmHospitalList; + } + public String getMatFollowId() { return matFollowId; } @@ -151,6 +211,25 @@ public class MatDeliverQuery extends BaseQuery implements IConvertToNativeQuery if (null != hospitalId) { condition = condition.and("hospitalId", hospitalId, MongoOper.IS); } + if (null != contactResult) { + condition = condition.and("contactResult", contactResult, MongoOper.IS); + } + if (null != contactReason) { + condition = condition.and("contactReason", contactReason, MongoOper.IS); + } + if (null != visitResult) { + condition = condition.and("visitResult", visitResult, MongoOper.IS); + } + if (null != visitAffirm) { + condition = condition.and("visitAffirm", visitAffirm, MongoOper.IS); + } + if (null != matFollowId) { + condition = condition.and("matFollowId", matFollowId, MongoOper.IS); + } + if (CollectionUtils.isNotEmpty(fmHospitalList)) { + condition = condition.and("fmHospital", fmHospitalList, MongoOper.IN); + } + if (null != fmHospital) { condition = condition.and("fmHospital", fmHospital, MongoOper.IS); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java index aba2038..fd17def 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java @@ -1122,53 +1122,51 @@ public class MatDeliverFacade { /** * 分娩后随访列表数据 * - * @param MatdeliverFollowRequest + * @param matdeliverFollowRequest * @return */ - public BaseListResponse postpartumDeliver(MatdeliverFollowRequest MatdeliverFollowRequest) { + public BaseListResponse postpartumDeliver(MatdeliverFollowRequest matdeliverFollowRequest) { BaseListResponse listResponse = new BaseListResponse(); List matdeliverFollowListResults = new ArrayList<>(); - PatientsQuery patientsQuery = new PatientsQuery(); - - if (StringUtils.isNotEmpty(MatdeliverFollowRequest.getBirthDate())) { - patientsQuery.setFmDateStart(DateUtil.getSNDate(MatdeliverFollowRequest.getBirthDate())[0]); - patientsQuery.setFmDateEnd(DateUtil.getSNDate(MatdeliverFollowRequest.getBirthDate())[1]); - } - patientsQuery.setYn(YnEnums.YES.getId()); - patientsQuery.setIsAutoFm(YnEnums.NO.getId()); - patientsQuery.setType(3); // 构造医院id集合 List hospitalList = new ArrayList<>(); - if (StringUtils.isEmpty(MatdeliverFollowRequest.getIsArea())) { - // 非区域 - hospitalList.add(MatdeliverFollowRequest.getHospitalId()); + //传入了具体的医院id + if (StringUtils.isNotEmpty(matdeliverFollowRequest.getHospitalId())) { + hospitalList.add(matdeliverFollowRequest.getHospitalId()); } else { + // 未传入查询条件,进行院内系统进行查询 + if (StringUtils.isEmpty(matdeliverFollowRequest.getHospitalProvinceId()) && StringUtils.isEmpty(matdeliverFollowRequest.getHospitalCityId()) && StringUtils.isEmpty(matdeliverFollowRequest.getHospitalAreaId())) { - if (StringUtils.isNotEmpty(MatdeliverFollowRequest.getHospitalId())) { - hospitalList.add(MatdeliverFollowRequest.getHospitalId()); - } + //根据用户id获取医院ID + String hospitalId = autoMatchFacade.getHospitalId(matdeliverFollowRequest.getOperatorId()); + //默认添加当前医院 + hospitalList.add(hospitalId); - // 未传入查询条件,进行院内系统进行查询 - if (StringUtils.isEmpty(MatdeliverFollowRequest.getHospitalProvinceId()) && StringUtils.isEmpty(MatdeliverFollowRequest.getHospitalCityId()) && StringUtils.isEmpty(MatdeliverFollowRequest.getHospitalAreaId())) { DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); - dataPermissionsModelQuery.setUserId(MatdeliverFollowRequest.getOperatorId()); + dataPermissionsModelQuery.setUserId(matdeliverFollowRequest.getOperatorId()); List dataPermissionsModelList = dataPermissionService.queryPermission(dataPermissionsModelQuery); if (CollectionUtils.isNotEmpty(dataPermissionsModelList)) { Map data = dataPermissionsModelList.get(0).getData(); - for (Object hospitalId : data.keySet()) { - if (StringUtils.isNotEmpty(hospitalId.toString()) && !hospitalList.contains(hospitalId.toString())) { - hospitalList.add(hospitalId.toString()); + for (Object hosId : data.keySet()) { + if (StringUtils.isNotEmpty(hosId.toString()) && !hospitalList.contains(hosId.toString())) { + hospitalList.add(hosId.toString()); } } } } else { // 传入了查询条件 OrganizationQuery organizationQuery = new OrganizationQuery(); - organizationQuery.setProvinceId(MatdeliverFollowRequest.getHospitalProvinceId()); - organizationQuery.setCityId(MatdeliverFollowRequest.getHospitalCityId()); - organizationQuery.setAreaId(MatdeliverFollowRequest.getHospitalAreaId()); + if (StringUtils.isNotEmpty(matdeliverFollowRequest.getHospitalProvinceId())) { + organizationQuery.setProvinceId(matdeliverFollowRequest.getHospitalProvinceId()); + } + if (StringUtils.isNotEmpty(matdeliverFollowRequest.getHospitalCityId())) { + organizationQuery.setCityId(matdeliverFollowRequest.getHospitalCityId()); + } + if (StringUtils.isNotEmpty(matdeliverFollowRequest.getHospitalAreaId())) { + organizationQuery.setAreaId(matdeliverFollowRequest.getHospitalAreaId()); + } organizationQuery.setYn(YnEnums.YES.getId()); List organizationList = organizationService.queryHospitals(organizationQuery); if (CollectionUtils.isNotEmpty(organizationList)) { @@ -1178,19 +1176,70 @@ public class MatDeliverFacade { } } } - patientsQuery.setFmHospitalQueryList(hospitalList); - patientsQuery.setLimit(MatdeliverFollowRequest.getLimit()); - patientsQuery.setPage(MatdeliverFollowRequest.getPage()); - patientsQuery.setNeed("need"); - patientsQuery.setDesc("fmDate"); - patientsQuery.setSort("fmDate"); - List patientsList = patientsService.queryPatient(patientsQuery); - List parentIdList = new ArrayList<>(); - if (CollectionUtils.isEmpty(patientsList)) { + if(CollectionUtils.isEmpty(hospitalList)){ + // 没有查到,直接抛出 + return listResponse; + } + + MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); + + //查询号不为空,则查询孕妇id + if (StringUtils.isNotEmpty(matdeliverFollowRequest.getQueryNo())) { + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setQueryNo(matdeliverFollowRequest.getQueryNo()); + patientsQuery.setYn(YnEnums.YES.getId()); + patientsQuery.setIsAutoFm(YnEnums.NO.getId()); + patientsQuery.setType(3); + if (StringUtils.isNotEmpty(matdeliverFollowRequest.getBirthDate())) { + patientsQuery.setFmDateStart(DateUtil.getSNDate(matdeliverFollowRequest.getBirthDate())[0]); + patientsQuery.setFmDateEnd(DateUtil.getSNDate(matdeliverFollowRequest.getBirthDate())[1]); + } + patientsQuery.setFmHospitalQueryList(hospitalList); + + List patientsList = patientsService.queryPatient(patientsQuery); + if (CollectionUtils.isEmpty(patientsList)) { + // 没有查到,直接抛出 + return listResponse; + } + List parentIdList = new ArrayList<>(); + for (Patients patients : patientsList) { + parentIdList.add(patients.getId()); + } + matDeliverQuery.setParentIdList(parentIdList); + } + + matDeliverQuery.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(matdeliverFollowRequest.getBirthDate())) { + matDeliverQuery.setCreatedStart(DateUtil.getSNDate(matdeliverFollowRequest.getBirthDate())[0]); + matDeliverQuery.setEndStart(DateUtil.getSNDate(matdeliverFollowRequest.getBirthDate())[1]); + } + matDeliverQuery.setFmHospitalList(hospitalList); + matDeliverQuery.setContactResult(matdeliverFollowRequest.getContactResult()); + if (matdeliverFollowRequest.getContactReason() != null) { + matDeliverQuery.setContactResult(PostpartumFollowMakeEnums.ResultEnum.SB.getId()); + matDeliverQuery.setContactReason(matdeliverFollowRequest.getContactReason()); + } + + matDeliverQuery.setVisitResult(matdeliverFollowRequest.getVisitResult()); + matDeliverQuery.setVisitAffirm(matdeliverFollowRequest.getVisitAffirm()); + matDeliverQuery.setLimit(matdeliverFollowRequest.getLimit()); + matDeliverQuery.setPage(matdeliverFollowRequest.getPage()); + matDeliverQuery.setNeed("need"); + + List maternalDeliverModelList = matDeliverService.pageQuery(matDeliverQuery); + if(CollectionUtils.isEmpty(maternalDeliverModelList)){ // 没有查到,直接抛出 return listResponse; } + + PatientsQuery patientsQuery = new PatientsQuery(); + List parentIdList = new ArrayList<>(); + for (MaternalDeliverModel md : maternalDeliverModelList) { + parentIdList.add(md.getParentId()); + } + patientsQuery.setIds(parentIdList); + List patientsList = patientsService.queryPatient(patientsQuery); Map patientsMap = new HashMap<>(); for (Patients patients : patientsList) { parentIdList.add(patients.getId()); @@ -1211,17 +1260,16 @@ public class MatDeliverFacade { patientsMap.put(patients.getId(), matdeliverFollowListResult); } - MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); - matDeliverQuery.setParentIdList(parentIdList); - matDeliverQuery.setYn(YnEnums.YES.getId()); - List maternalDeliverModelList = matDeliverService.query(matDeliverQuery); for (MaternalDeliverModel deliverModel : maternalDeliverModelList) { MatdeliverFollowListResult matdeliverFollowListResult = patientsMap.get(deliverModel.getParentId()); + if(matdeliverFollowListResult == null){ + continue; + } //最后一次随访Id matdeliverFollowListResult.setMatFollowId(deliverModel.getMatFollowId()); - + matdeliverFollowListResult.setDueDate(deliverModel.getDueDate()); matdeliverFollowListResult.setId(deliverModel.getId()); //机构信息 Organization organization = organizationService.getOrganization(Integer.valueOf(deliverModel.getFmHospital())); @@ -1237,9 +1285,10 @@ public class MatDeliverFacade { } //分娩医院 matdeliverFollowListResult.setFmHospital(organization.getName()); + matdeliverFollowListResult.setContactResult(deliverModel.getContactResult()); //预约联系结果 if (deliverModel.getContactResult() != null) { - matdeliverFollowListResult.setContactResult(PostpartumFollowMakeEnums.ResultEnum.getTitle(deliverModel.getContactResult())); + matdeliverFollowListResult.setContactResultStr(PostpartumFollowMakeEnums.ResultEnum.getTitle(deliverModel.getContactResult())); } //产妇确认结果 if (deliverModel.getVisitAffirm() != null) { @@ -1251,28 +1300,28 @@ public class MatDeliverFacade { matdeliverFollowListResult.setMakeType(PostpartumFollowMakeEnums.TypeEnum.getTitle(deliverModel.getMakeType())); } + matdeliverFollowListResult.setIsClose(deliverModel.getIsClose()); //访视是否结案,如果已经结案则返回已结案,如果未结案,显示下次访视时间 if (deliverModel.getIsClose() != null && deliverModel.getIsClose() == PostpartumFollowMakeEnums.IsCloseEnum.YJA.getId()) { matdeliverFollowListResult.setNextVisitDate(PostpartumFollowMakeEnums.IsCloseEnum.getTitle(deliverModel.getIsClose())); - } else { + } else if (deliverModel.getIsClose() != null && deliverModel.getIsClose() == PostpartumFollowMakeEnums.IsCloseEnum.WJA.getId()) { //下次访视时间 - if (deliverModel.getNextVisitDate() != null) { + if (deliverModel.getNextVisitDate() != null&&deliverModel.getVisitResult()==1) { matdeliverFollowListResult.setNextVisitDate(DateUtil.getyyyy_MM_dd(deliverModel.getNextVisitDate())); } } - //访视状态 + //访视状态 0--是修改后替换的初始值 if (deliverModel.getVisitStatus() != null && deliverModel.getVisitStatus() == 1) { matdeliverFollowListResult.setVisitResult("待访视"); } //访视结果 - if (deliverModel.getVisitResult() != null) { + if (deliverModel.getVisitResult() != null&&deliverModel.getVisitResult() != 0) { matdeliverFollowListResult.setVisitResult(PostpartumFollowMakeEnums.ResultEnum.getTitle(deliverModel.getVisitResult())); } - matdeliverFollowListResults.add(matdeliverFollowListResult); } - listResponse.setPageInfo(patientsQuery.getPageInfo()); + listResponse.setPageInfo(matDeliverQuery.getPageInfo()); listResponse.setObject(matdeliverFollowListResults); return listResponse; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatdeliverFollowFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatdeliverFollowFacade.java index 184fbf5..836a9cd 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatdeliverFollowFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatdeliverFollowFacade.java @@ -158,18 +158,7 @@ public class MatdeliverFollowFacade { //如果修改的是最后一次随访记录,则进行同步修改分娩记录里的随访信息 if (matDeliverFollowAddRequest.getId().equals(maternalDeliverModel.getMatFollowId())) { - - //在分娩记录上记录随访部分信息 - maternalDeliverModel.setContactResult(matDeliverFollowAddRequest.getContactResult()); - maternalDeliverModel.setContactReason(matDeliverFollowAddRequest.getContactReason()); - maternalDeliverModel.setVisitAffirm(matDeliverFollowAddRequest.getVisitAffirm()); - maternalDeliverModel.setVisitStatus(matDeliverFollowAddRequest.getVisitStatus()); - maternalDeliverModel.setMakeType(matDeliverFollowAddRequest.getMakeType()); - maternalDeliverModel.setVisitResult(matDeliverFollowAddRequest.getVisitResult()); - maternalDeliverModel.setNextVisitDate(matDeliverFollowAddRequest.getNextVisitDateStr()); - maternalDeliverModel.setIsClose(matDeliverFollowAddRequest.getIsClose()); - //修改分娩记录 - matDeliverService.updateOne(maternalDeliverModel, maternalDeliverModel.getId()); + updateMaternalDeliver(matDeliverFollowAddRequest,maternalDeliverModel); baseResponse.setObject(matDeliverFollowAddRequest.getId()); } } else {//新增随访记录,并同步更新分娩记录里的随访信息 @@ -185,16 +174,7 @@ public class MatdeliverFollowFacade { if (maternalDeliverModel != null) { //在分娩记录上记录随访部分信息 maternalDeliverModel.setMatFollowId(matdeliverFollowModel.getId()); - maternalDeliverModel.setContactResult(matdeliverFollowModel.getContactResult()); - maternalDeliverModel.setContactReason(matdeliverFollowModel.getContactReason()); - maternalDeliverModel.setVisitAffirm(matdeliverFollowModel.getVisitAffirm()); - maternalDeliverModel.setVisitStatus(matdeliverFollowModel.getVisitStatus()); - maternalDeliverModel.setMakeType(matdeliverFollowModel.getMakeType()); - maternalDeliverModel.setVisitResult(matdeliverFollowModel.getVisitResult()); - maternalDeliverModel.setNextVisitDate(matdeliverFollowModel.getNextVisitDate()); - maternalDeliverModel.setIsClose(matdeliverFollowModel.getIsClose()); - //修改分娩记录 - matDeliverService.updateOne(maternalDeliverModel, maternalDeliverModel.getId()); + updateMaternalDeliver(matDeliverFollowAddRequest,maternalDeliverModel); }else{ log.error("分娩记录随访没有找到随访记录,传入随访id:"+matDeliverFollowAddRequest.getDeliverId()); } @@ -206,6 +186,50 @@ public class MatdeliverFollowFacade { return baseResponse; } + + private void updateMaternalDeliver(MatDeliverFollowAddRequest matDeliverFollowAddRequest,MaternalDeliverModel maternalDeliverModel){ + //在分娩记录上记录随访部分信息 + maternalDeliverModel.setContactResult(matDeliverFollowAddRequest.getContactResult()); + if(matDeliverFollowAddRequest.getContactReason()!=null){ + maternalDeliverModel.setContactReason(matDeliverFollowAddRequest.getContactReason()); + }else{ + maternalDeliverModel.setContactReason(0); + } + if(matDeliverFollowAddRequest.getVisitAffirm()!=null){ + maternalDeliverModel.setVisitAffirm(matDeliverFollowAddRequest.getVisitAffirm()); + }else{ + maternalDeliverModel.setVisitAffirm(0); + } + if(matDeliverFollowAddRequest.getVisitStatus()!=null){ + maternalDeliverModel.setVisitStatus(matDeliverFollowAddRequest.getVisitStatus()); + }else{ + maternalDeliverModel.setVisitStatus(0); + } + if(matDeliverFollowAddRequest.getMakeType()!=null){ + maternalDeliverModel.setMakeType(matDeliverFollowAddRequest.getMakeType()); + }else{ + maternalDeliverModel.setMakeType(0); + } + + if(matDeliverFollowAddRequest.getVisitResult()!=null){ + maternalDeliverModel.setVisitResult(matDeliverFollowAddRequest.getVisitResult()); + }else{ + maternalDeliverModel.setVisitResult(0); + } + if(matDeliverFollowAddRequest.getNextVisitDateStr()!=null){ + maternalDeliverModel.setNextVisitDate(matDeliverFollowAddRequest.getNextVisitDateStr()); + }else{ + maternalDeliverModel.setNextVisitDate(null); + } + if(matDeliverFollowAddRequest.getIsClose()!=null){ + maternalDeliverModel.setIsClose(matDeliverFollowAddRequest.getIsClose()); + }else { + maternalDeliverModel.setIsClose(0); + } + //修改分娩记录 + matDeliverService.updateOne(maternalDeliverModel, maternalDeliverModel.getId()); + } + public BaseResponse getOneMatdeliverFollowMake(String id) { BaseResponse baseResponse = new BaseResponse(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/MatdeliverFollowListResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/MatdeliverFollowListResult.java index 3e22f74..5f76d70 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/MatdeliverFollowListResult.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/MatdeliverFollowListResult.java @@ -14,6 +14,10 @@ public class MatdeliverFollowListResult { private String patientId; private String pid; + + //分娩时间 + private String dueDate; + /** * 最后一次随访id */ @@ -58,7 +62,13 @@ public class MatdeliverFollowListResult { /** * 预约联系结果(1-成功、2-失败) */ - private String contactResult; + private Integer contactResult; + + /** + * 预约联系结果(1-成功、2-失败) + */ + private String contactResultStr; + /** * 产妇随访确认(1-待确认、2-已确认) */ @@ -81,6 +91,14 @@ public class MatdeliverFollowListResult { */ private Integer isClose; + public String getDueDate() { + return dueDate; + } + + public void setDueDate(String dueDate) { + this.dueDate = dueDate; + } + public String getMatFollowId() { return matFollowId; } @@ -193,14 +211,22 @@ public class MatdeliverFollowListResult { this.postViewDay = postViewDay; } - public String getContactResult() { + public Integer getContactResult() { return contactResult; } - public void setContactResult(String contactResult) { + public void setContactResult(Integer contactResult) { this.contactResult = contactResult; } + public String getContactResultStr() { + return contactResultStr; + } + + public void setContactResultStr(String contactResultStr) { + this.contactResultStr = contactResultStr; + } + public String getVisitAffirm() { return visitAffirm; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/MatdeliverFollowResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/MatdeliverFollowResult.java index 7591dc9..5585cee 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/MatdeliverFollowResult.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/MatdeliverFollowResult.java @@ -151,13 +151,14 @@ public class MatdeliverFollowResult extends MatdeliverFollowModel { if (matdeliverFollowModel.getMakeVisitDate() != null) { makeVisitDateStr = DateUtil.getyyyy_MM_dd(matdeliverFollowModel.getMakeVisitDate()); } - if (matdeliverFollowModel.getContactReason() != null) { + + if (matdeliverFollowModel.getContactReason() != null && getContactResult() == 2) { contactReasonStr = PostpartumFollowMakeEnums.ReasonEnum.getTitle(matdeliverFollowModel.getContactReason()); } if (matdeliverFollowModel.getVisitResult() != null) { visitResultStr = PostpartumFollowMakeEnums.ResultEnum.getTitle(matdeliverFollowModel.getVisitResult()); } - if (matdeliverFollowModel.getVisitReason() != null) { + if (matdeliverFollowModel.getVisitReason() != null&&getVisitResult() == 2) { visitReasonStr = PostpartumFollowMakeEnums.ReasonEnum.getTitle(matdeliverFollowModel.getVisitReason()); } if (matdeliverFollowModel.getVisitStatus() != null) {