diff --git a/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java index 72711a1..e7634fd 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java @@ -35,6 +35,7 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ private Integer trackType; private List trackTypes; private String parentId; + private List parentIds; private List pids; private String hospitalId; private String residentsArchiveId; @@ -52,6 +53,14 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ */ private Date lastMensesEnd; + public List getParentIds() { + return parentIds; + } + + public void setParentIds(List parentIds) { + this.parentIds = parentIds; + } + public String getPhone() { return phone; } @@ -253,11 +262,14 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ condition = condition.and("parentId", parentId, MongoOper.IS); } + if (null!=parentIds) { + condition = condition.and("parentId", parentIds, MongoOper.IN); + } + if (null != pids) { condition = condition.and("pid", pids, MongoOper.IN); } - Criteria c1 = null; if (StringUtils.isNotEmpty(key)) { 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 eabe545..f40fa5c 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 @@ -8,14 +8,13 @@ import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.result.PageResult; import com.lyms.platform.common.result.RespBuilder; -import com.lyms.platform.common.utils.DateUtil; -import com.lyms.platform.common.utils.JsonUtil; -import com.lyms.platform.common.utils.StringUtils; -import com.lyms.platform.common.utils.SystemConfig; +import com.lyms.platform.common.utils.*; import com.lyms.platform.operate.web.request.TrackDownQueryRequest; +import com.lyms.platform.operate.web.result.HighScoreResult; import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.pojo.*; import com.lyms.platform.query.MatDeliverQuery; +import com.lyms.platform.query.PatientsQuery; import com.lyms.platform.query.PostReviewQuery; import com.lyms.platform.query.TrackDownRecordQuery; import org.apache.commons.collections.CollectionUtils; @@ -49,9 +48,6 @@ import java.util.*; public class TrackDownFacade { - - - /** * 构建返回字段 */ @@ -67,10 +63,16 @@ public class TrackDownFacade { Map build(TrackDownRecord downRecord, MongoTemplate mongoTemplate); } + @Autowired + private PatientsService patientsService; + //日志调测器 private static final Logger logger = LoggerFactory.getLogger(TrackDownFacade.class); @Autowired + private AntExRecordService recordService; + + @Autowired private TrackDownRecordService trackDownRecordService; @Autowired @@ -89,8 +91,6 @@ public class TrackDownFacade { */ @Autowired private ResidentsArchiveService residentsArchiveService; - @Autowired - private PatientsService patientsService; @Autowired private PostReviewService postReviewService; @@ -120,6 +120,7 @@ public class TrackDownFacade { /** * 追访概况备选方案 + * * @param map * @return */ @@ -138,45 +139,78 @@ public class TrackDownFacade { * @return */ private TrackDownRecordQuery convertNaviteQuery(TrackDownQueryRequest downQueryRequest, Integer userId) { - if(downQueryRequest.getStartCheckTime()!=null){//产检开始日期 - } - if(downQueryRequest.getEndCheckTime()!=null){//产检结束日期 + boolean isPatient = false; + String hospitalId = autoMatchFacade.getHospitalId(userId); + PatientsQuery patientsQuery = new PatientsQuery(); + if (downQueryRequest.getStartDueDate() != null) {//预产期开始日期 + patientsQuery.setDueDateStart(downQueryRequest.getStartFmTime()); + isPatient = true; } - if(downQueryRequest.getStartNextCheckTime()!=null){//下次产检开始日期 - + if (downQueryRequest.getStartDueDate() != null) {//预产期结束日期 + patientsQuery.setDueDateEnd(downQueryRequest.getEndFmTime()); + isPatient = true; } - if(downQueryRequest.getEndNextCheckTime()!=null){//下次产检结束日期 - + if (downQueryRequest.getStartFmTime() != null) {//分娩开始日期 + patientsQuery.setFmDateStart(downQueryRequest.getEndNextCheckTime()); + isPatient = true; } - if(downQueryRequest.getStartFmTime()!=null){//分娩开始日期 - + if (downQueryRequest.getEndFmTime() != null) {//分娩结束日期 + patientsQuery.setFmDateEnd(downQueryRequest.getEndFmTime()); + isPatient = true; } - if(downQueryRequest.getEndFmTime()!=null){//分娩结束日期 + if (downQueryRequest.getIsHightRisk() != null) {//是否高危:是:排除健康,否:等于健康 + if (downQueryRequest.getIsHightRisk() == 1) {//是 + patientsQuery.setNotoRiskFactor("d42eec03-aa86-45b8-a4e0-78a0ff365fb6"); + patientsQuery.setIsHighRisk(Boolean.TRUE); + isPatient = true; + } else if (downQueryRequest.getIsHightRisk() == 1) {//否 + patientsQuery.setrFactor("d42eec03-aa86-45b8-a4e0-78a0ff365fb6"); + isPatient = true; + } } - if(downQueryRequest.getStartDueDate()!=null){//预产期开始日期 - + if (downQueryRequest.getLevel() != null) {//高危等级 + patientsQuery.setrLevel(downQueryRequest.getLevel()); + isPatient = true; } - if(downQueryRequest.getStartDueDate()!=null){//预产期结束日期 - + if (downQueryRequest.getRiskFactorId() != null) {//高危因素 + //高危统计中的自定义高危 + if ("otherRiskId".equals(downQueryRequest.getLevel())) { + patientsQuery.setNotoRiskFactor(""); + patientsQuery.setoRiskFactor("true"); + } else { + patientsQuery.setrFactorList(StringUtils.covertToList(downQueryRequest.getRiskFactorId(), String.class)); + } + isPatient = true; } - if(downQueryRequest.getIsHightRisk()!=null){//是否高危 - + if (downQueryRequest.getCheckDoctor() != null) {//产检医生 + patientsQuery.setLastCheckEmployeeId(downQueryRequest.getCheckDoctor()); + isPatient = true; } - if(downQueryRequest.getLevel()!=null){//高危等级 + if (downQueryRequest.getStartCheckTime() != null) {//最后一次产检开始日期 + patientsQuery.setLastCTimeStart(downQueryRequest.getStartCheckTime()); + isPatient = true; } - if(downQueryRequest.getRiskFactorId()!=null){//高危因素 - + if (downQueryRequest.getEndCheckTime() != null) {//最后一次产检结束日期 + patientsQuery.setLastCTimeEnd(downQueryRequest.getEndCheckTime()); + isPatient = true; } - if(downQueryRequest.getCheckDoctor()!=null){//产检医生 + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); + if (isPatient) {//加入了高危因数查询条件 + patientsQuery.setHospitalId(hospitalId); + patientsQuery.setQueryNo(downQueryRequest.getKey()); + List patientses = patientsService.queryPatient(patientsQuery); + List pids = new ArrayList<>(); + for (Patients ps : patientses) { + pids.add(ps.getId()); + } + downRecordQuery.setParentIds(pids); } - - TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); downRecordQuery.setAreaId(downQueryRequest.getAreaId()); downRecordQuery.setProvinceId(downQueryRequest.getProvinceId()); downRecordQuery.setCityId(downQueryRequest.getCityId()); @@ -201,7 +235,7 @@ public class TrackDownFacade { downRecordQuery.setLimit(downQueryRequest.getLimit()); downRecordQuery.setNeed("1"); // downRecordQuery.setSort("modified desc"); - downRecordQuery.setHospitalId(autoMatchFacade.getHospitalId(userId)); + downRecordQuery.setHospitalId(hospitalId); return downRecordQuery; } @@ -222,12 +256,12 @@ public class TrackDownFacade { map.put("phone", resid.getPhone()); map.put("cardNo", resid.getCertificateNum()); map.put("age", DateUtil.getAge(resid.getBirthday())); - if (resid.getSex().equals(SystemConfig.WOMAN_ID)){ - map.put("sex",0); - }else if (resid.getSex().equals(SystemConfig.MAN_ID)){ - map.put("sex",1); - }else{ - map.put("sex",1); + if (resid.getSex().equals(SystemConfig.WOMAN_ID)) { + map.put("sex", 0); + } else if (resid.getSex().equals(SystemConfig.MAN_ID)) { + map.put("sex", 1); + } else { + map.put("sex", 1); } } else { Patients patients = patientsService.findOnePatientById(parentId); @@ -239,7 +273,7 @@ public class TrackDownFacade { map.put("week", DateUtil.getWeekDesc(patients.getLastMenses(), new Date())); map.put("dueDate", DateUtil.getyyyy_MM_dd(patients.getDueDate())); /** 预产期 */ map.put("trackCount", mongoTemplate.count(Query.query(Criteria.where("parentId").is(parentId).and("trackDownDateType").is(trackType).and("yn").is(1)), TrackDown.class)); /** 访视次数 */ - map.put("sex",0); + map.put("sex", 0); map.put("fmDate", DateUtil.getyyyy_MM_dd(patients.getFmDate())); } } @@ -250,13 +284,13 @@ public class TrackDownFacade { if (null != trackType && TrackDownDateEnums.C.getId() == trackType) { trackTypes = Arrays.asList(3, 9); } else if (null != trackType && TrackDownDateEnums.D.getId() == trackType) { - trackTypes =Arrays.asList(3, 8); + trackTypes = Arrays.asList(3, 8); } else if (null != trackType && TrackDownDateEnums.F.getId() == trackType) { - trackTypes =Arrays.asList(6, 11); + trackTypes = Arrays.asList(6, 11); } else if (null != trackType && TrackDownDateEnums.G.getId() == trackType) { - trackTypes =Arrays.asList(6, 10); + trackTypes = Arrays.asList(6, 10); } else { - trackTypes = Arrays.asList(trackType); + trackTypes = Arrays.asList(trackType); } //查询追访记录 @@ -271,7 +305,7 @@ public class TrackDownFacade { //产后复查次数 map.put("fcCount", mongoTemplate.count(Query.query(Criteria.where("parentId").is(parentId).and("yn").is(1)), PostReviewModel.class)); //产前检查次数(初诊+复诊) - map.put("checkCount", getChuzhenCount(parentId) ); + map.put("checkCount", getChuzhenCount(parentId)); //产后复查信息 PostReviewQuery postReviewQuery = new PostReviewQuery(); @@ -312,7 +346,7 @@ public class TrackDownFacade { criteria.and("trackDownDateType").in(trackType); } - TrackDown trackDown = mongoTemplate.findOne(Query.query(criteria).with(new Sort(Sort.Direction.DESC, "created")),TrackDown.class); + TrackDown trackDown = mongoTemplate.findOne(Query.query(criteria).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class); if (trackDown != null) { map.put("nextSieveTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getReservatDate())); // 预约预约时间 } @@ -366,12 +400,12 @@ public class TrackDownFacade { //查询的追访类型 trackDownRecord.setTrackType(downQueryRequest.getTrackType()); Map map = downTypeHandler.build(trackDownRecord, mongoTemplate); - if(downQueryRequest.getTrackType()==TrackDownDateEnums.D.getId()){ - if(trackType == TrackDownDateEnums.C.getId()){ + if (downQueryRequest.getTrackType() == TrackDownDateEnums.D.getId()) { + if (trackType == TrackDownDateEnums.C.getId()) { trackType = TrackDownDateEnums.D.getId(); } - }else if(downQueryRequest.getTrackType()==TrackDownDateEnums.G.getId()){ - if(trackType == TrackDownDateEnums.F.getId()){ + } else if (downQueryRequest.getTrackType() == TrackDownDateEnums.G.getId()) { + if (trackType == TrackDownDateEnums.F.getId()) { trackType = TrackDownDateEnums.G.getId(); } } @@ -380,6 +414,11 @@ public class TrackDownFacade { data.add(map); } } + + + + + PageResult pageResult = new PageResult(); pageResult.setCount(downRecordQuery.getPageInfo().getCount()); pageResult.setPage(downRecordQuery.getPageInfo().getPage()); @@ -401,7 +440,7 @@ public class TrackDownFacade { temp.put("trackDownDateType", downRecord.getTrackType()); temp.put("residenceAddress", CommonsHelper.getFullAddress(downRecord.getProvinceRegisterId(), downRecord.getCityRegisterId(), downRecord.getAreaRegisterId(), downRecord.getAddressRegister(), basicConfigService)); /** 居住地 */ temp.put("phone", StringUtils.encryPhone(downRecord.getPhone())); - TrackDown trackDown = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(downRecord.getParentId()).and("yn").is(1).and("trackDownDateType").in(7,10)).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class); + TrackDown trackDown = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(downRecord.getParentId()).and("yn").is(1).and("trackDownDateType").in(7, 10)).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class); temp.put("age", DateUtil.getAge(downRecord.getBirth())); // 追访结果 temp.put("result", trackDown == null ? "--" : trackDown.getResult()); @@ -411,7 +450,6 @@ public class TrackDownFacade { temp.put("yyTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getReservatDate())); - //预约复查时间默认用追访时间 temp.put("yyfcDate", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getReservatDate())); @@ -421,20 +459,20 @@ public class TrackDownFacade { temp.put("fmDate", DateUtil.getyyyy_MM_dd(patients.getFmDate())); temp.put("scType", "--"); - if(patients.getIsAutoFm()!=null&&patients.getIsAutoFm() == 1){ + if (patients.getIsAutoFm() != null && patients.getIsAutoFm() == 1) { /** 生产方式 */ temp.put("scType", "自动分娩"); - }else { + } else { MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); matDeliverQuery.setParentId(patients.getId()); matDeliverQuery.setYn(YnEnums.YES.getId()); //查询分娩记录 List list2 = matDeliverService.query(matDeliverQuery); - if(CollectionUtils.isNotEmpty(list2)){ + if (CollectionUtils.isNotEmpty(list2)) { MaternalDeliverModel maternalDeliverModel = list2.get(0); if (StringUtils.isNotEmpty(maternalDeliverModel.getDeliveryMode())) { Map deliveryModeMap = JsonUtil.getMap(maternalDeliverModel.getDeliveryMode()); - if(deliveryModeMap.containsKey("fmfs")){ + if (deliveryModeMap.containsKey("fmfs")) { /** 生产方式 */ temp.put("scType", FmTypeEnums.getFmNameById(deliveryModeMap.get("fmfs"))); } @@ -455,7 +493,7 @@ public class TrackDownFacade { PostReviewModel firstPost = list.get(list.size() - 1); /** 初次复查日期 */ temp.put("ccfcDate", firstPost.getCheckTime() == null ? "--" : DateUtil.getyyyy_MM_dd(firstPost.getCheckTime())); - if(endPost.getNextCheckTime() != null){ + if (endPost.getNextCheckTime() != null) { /** 预约复查日期 */ temp.put("yyfcDate", DateUtil.getyyyy_MM_dd(endPost.getNextCheckTime())); } @@ -480,14 +518,14 @@ public class TrackDownFacade { temp.put("residenceAddress", CommonsHelper.getFullAddress(downRecord.getProvinceRegisterId(), downRecord.getCityRegisterId(), downRecord.getAreaRegisterId(), downRecord.getAddressRegister(), basicConfigService)); /** 居住地 */ temp.put("phone", StringUtils.encryPhone(downRecord.getPhone())); - temp.put("fmDate","--"); - temp.put("result","--"); - temp.put("trackDownTime","--"); - temp.put("yyTime","--"); - temp.put("trackCount","--"); - List trackDowns = mongoTemplate.find(Query.query(Criteria.where("parentId").is(downRecord.getParentId()).and("yn").is(1).and("trackDownDateType").in(6,11)).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class); + temp.put("fmDate", "--"); + temp.put("result", "--"); + temp.put("trackDownTime", "--"); + temp.put("yyTime", "--"); + temp.put("trackCount", "--"); + List trackDowns = mongoTemplate.find(Query.query(Criteria.where("parentId").is(downRecord.getParentId()).and("yn").is(1).and("trackDownDateType").in(6, 11)).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class); temp.put("age", DateUtil.getAge(downRecord.getBirth())); - if (CollectionUtils.isNotEmpty(trackDowns)&&trackDowns.get(0)!=null) { + if (CollectionUtils.isNotEmpty(trackDowns) && trackDowns.get(0) != null) { TrackDown trackDown = trackDowns.get(0); // 追访结果 temp.put("result", trackDown.getResult() == null ? "--" : trackDown.getResult()); @@ -501,7 +539,7 @@ public class TrackDownFacade { Patients patients = patientsService.findOnePatientById(downRecord.getParentId()); if (patients != null) { //分娩日期 - temp.put("fmDate", patients.getFmDate()==null?"--":DateUtil.getyyyy_MM_dd(patients.getFmDate())); + temp.put("fmDate", patients.getFmDate() == null ? "--" : DateUtil.getyyyy_MM_dd(patients.getFmDate())); } return temp; } @@ -578,6 +616,8 @@ public class TrackDownFacade { String hospitalId = downRecord.getHospitalId(); Patients patients = patientsService.findOnePatientById(downRecord.getParentId()); Map temp = new HashMap<>(); + //完善高危数据 + handHightRisk(patients,temp); temp.put("username", downRecord.getUsername()); temp.put("age", DateUtil.getAge(downRecord.getBirth())); temp.put("cardNo", StringUtils.encryCardNo(downRecord.getCardNo())); @@ -601,7 +641,7 @@ public class TrackDownFacade { } else { criteria.and("trackDownDateType").in(downRecord.getTrackType()); } - TrackDown trackDown = mongoTemplate.findOne(Query.query(criteria).with(new Sort(Sort.Direction.DESC, "created")),TrackDown.class); + TrackDown trackDown = mongoTemplate.findOne(Query.query(criteria).with(new Sort(Sort.Direction.DESC, "created")), TrackDown.class); if (trackDown != null) { temp.put("result", StringUtils.isEmpty(trackDown.getResult()) ? "--" : trackDown.getResult()); // 追访结果 temp.put("trackDownTime", trackDown == null ? "--" : DateUtil.getyyyy_MM_dd(trackDown.getTrackDownDate())); // 追访时间 @@ -650,4 +690,54 @@ public class TrackDownFacade { return temp; } } + + public void handHightRisk(Patients patients,Map map){ + //高危因素 + List factor = patients.getRiskFactorId(); + + if (CollectionUtils.isNotEmpty(factor)) { + StringBuilder sb = new StringBuilder(56); + for (String srt : factor) { + if (org.apache.commons.lang.StringUtils.isNotEmpty(srt)) { + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(srt); + if (null != basicConfig && sb.indexOf(basicConfig.getName()) == -1) { + sb.append(basicConfig.getName()).append(','); + } + } + } + if (sb.toString().endsWith(",")) { + map.put("rFactor",sb.substring(0, sb.length() - 1)); + } else { + map.put("rFactor",sb.toString()); + } + + if (!"-".equals(map.get("rFactor")) && org.apache.commons.lang.StringUtils.isNotEmpty(patients.getoRiskFactor())) { + map.put("rFactor",map.get("rFactor")+","+patients.getoRiskFactor()); + }else if (org.apache.commons.lang.StringUtils.isNotEmpty(patients.getoRiskFactor())) + { + map.put("rFactor",patients.getoRiskFactor()); + } + } + else if (org.apache.commons.lang.StringUtils.isNotEmpty(patients.getoRiskFactor())) + { + map.put("rFactor",patients.getoRiskFactor()); + } + List level = new ArrayList(); + if (StringUtils.isNotEmpty(patients.getRiskLevelId())) { + try { + List list = JsonUtil.jkstr2Obj(patients.getRiskLevelId(), List.class); + for (String str : list) { + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(str); + if (null != basicConfig) { + Map map1 = new HashMap(); + basicConfig.replenRisk(map1); + level.add(map1); + } + } + } catch (Exception e) { + ExceptionUtils.catchException(e, "patients.getRiskLevelId error."); + } + map.put("rLevel",HighScoreResult.filter(level)); + } + } } \ No newline at end of file