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 6cae463..2a6e8fc 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 @@ -3,7 +3,6 @@ package com.lyms.platform.operate.web.facade; import com.lyms.platform.biz.service.*; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.enums.*; -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.Assert; @@ -241,7 +240,47 @@ public class AntenatalExaminationFacade { * @return */ public HighScoreResult findLastRisk(String pid, boolean needLevel) { - HighScoreResult highScoreResult = getPatLastRiskByDate(pid, needLevel, null); + MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); + matDeliverQuery.setPid(pid); + matDeliverQuery.setYn(YnEnums.YES.getId()); + List listDate = new ArrayList<>(); + //分娩记录 + List modelList = matDeliverService.query(matDeliverQuery); + if(CollectionUtils.isNotEmpty(modelList)){ + for (MaternalDeliverModel model : modelList) { + listDate.add(new SortIn(model)); + } + } + + //终止妊娠记录 + StopPregQuery query = new StopPregQuery(); + query.setYn(YnEnums.YES.getId()); + query.setPid(pid); + List stopPregs = stopPregnancyService.queryStopPreg(query); + if(CollectionUtils.isNotEmpty(stopPregs)) { + for (StopPregModel stopPregModel : stopPregs) { + listDate.add(new SortIn(stopPregModel)); + } + } + PatientsQuery patientsQuery=new PatientsQuery(); + patientsQuery.setPid(pid); + patientsQuery.setType(3); + patientsQuery.setYn(YnEnums.YES.getId()); + List patientses = patientsService.queryPatient(patientsQuery); + if(CollectionUtils.isNotEmpty(patientses)) { + for (Patients patients : patientses) { + listDate.add(new SortIn(patients, 1)); + } + } + //排序集合 + sortList(listDate); + + Date max = null; + if (!listDate.isEmpty()) { + max = listDate.get(0).getDate(); + } + + HighScoreResult highScoreResult = getPatLastRiskByDate(pid, needLevel, max); return highScoreResult; } @@ -426,31 +465,30 @@ public class AntenatalExaminationFacade { //需要过滤掉建档就分娩的情况 Date dueDate = new Date(); if (CollectionUtils.isNotEmpty(listDate)) { - String pid=""; + String pid = ""; for (int i = 0; i < listDate.size(); i++) { dueDate = listDate.get(i).getDate(); - Date end =new Date(listDate.get(i).getDate().getTime()+86398000); + Date end = new Date(listDate.get(i).getDate().getTime() + 86398000); List listData = new ArrayList(); Organization organization = null; PatientsQuery patientsQuery1 = new PatientsQuery(); patientsQuery1.setBookbuildingDateEnd(end); if (listDate.size() > i + 1) { - patientsQuery1.setBookbuildingDateStart(new Date(listDate.get(i + 1).getDate().getTime()+86398000)); + patientsQuery1.setBookbuildingDateStart(new Date(listDate.get(i + 1).getDate().getTime() + 86398000)); }/*else if(listDate.size()==i){ patientsQuery1.setBookbuildingDateStart(new Date()); }*/ - pid=list.get(0).getPid(); + pid = list.get(0).getPid(); patientsQuery1.setPid(pid); List patientses = patientsService.queryPatient1(patientsQuery1); - if(CollectionUtils.isNotEmpty(patientses)){ - Iterator iterator=patientses.iterator(); - while(iterator.hasNext()){ - Patients patients= iterator.next(); + if (CollectionUtils.isNotEmpty(patientses)) { + Iterator iterator = patientses.iterator(); + while (iterator.hasNext()) { + Patients patients = iterator.next(); //处理建档就分娩的情况 - Date date = DateUtil.addWeek(patients.getLastMenses(),42); + Date date = DateUtil.addWeek(patients.getLastMenses(), 42); Date currentDate = DateUtil.formatDate(patients.getBookbuildingDate()); - if (date.getTime() <= currentDate.getTime()) - { + if (date.getTime() <= currentDate.getTime()) { //建档记录 if (null != patients.getHospitalId()) { organization = organizationService.getOrganization(Integer.valueOf(patients.getHospitalId())); @@ -479,30 +517,30 @@ public class AntenatalExaminationFacade { } } sortList.add(listData); - listData=new ArrayList(); + listData = new ArrayList(); } } } - if(CollectionUtils.isNotEmpty(patientses)){ + if (CollectionUtils.isNotEmpty(patientses)) { - List tmp =new ArrayList(); - for(Patients patients:patientses){ + List tmp = new ArrayList(); + for (Patients patients : patientses) { tmp.add(new SortIn(patients)); } sortList(tmp); - Date min=null; - if(!tmp.isEmpty()){ - min=tmp.get(tmp.size()-1).getDate(); + Date min = null; + if (!tmp.isEmpty()) { + min = tmp.get(tmp.size() - 1).getDate(); } //分娩前的数据 - buildPatientList(dueDate,patientses,listData,min,false); + buildPatientList(dueDate, patientses, listData, min, false); PostReviewQuery postReviewQuery = new PostReviewQuery(); postReviewQuery.setStart(dueDate); - if ( i>0) { + if (i > 0) { //下次建档记录前都是产后复查,如果没有下个产程的数据就直接显示 - postReviewQuery.setEnd(listDate.get(i-1).getDate()); + postReviewQuery.setEnd(listDate.get(i - 1).getDate()); } postReviewQuery.setPid(pid); Object obj = map.get(listDate.get(i).getId()); @@ -523,45 +561,45 @@ public class AntenatalExaminationFacade { } } } - if(!listData.isEmpty()){ + if (!listData.isEmpty()) { sort(listData); sortList.add(listData); } } - PatientsQuery patientsQuery1=new PatientsQuery(); + PatientsQuery patientsQuery1 = new PatientsQuery(); patientsQuery1.setYn(YnEnums.YES.getId()); patientsQuery1.setPid(pid); patientsQuery1.setBookbuildingDateStart(new Date(listDate.get(0).getDate().getTime())); patientsQuery1.setType(1); - List patientsList = patientsService.queryPatient(patientsQuery1); - List list1=new ArrayList(); - List tmp =new ArrayList(); - for(Patients patients:patientsList){ + List patientsList = patientsService.queryPatient(patientsQuery1); + List list1 = new ArrayList(); + List tmp = new ArrayList(); + for (Patients patients : patientsList) { tmp.add(new SortIn(patients)); } sortList(tmp); - Date min=null; - if(!tmp.isEmpty()){ - min=tmp.get(tmp.size()-1).getDate(); + Date min = null; + if (!tmp.isEmpty()) { + min = tmp.get(tmp.size() - 1).getDate(); } - List l= buildPatientList(new Date(), patientsList, list1,min,false); - if(!l.isEmpty()){ + List l = buildPatientList(new Date(), patientsList, list1, min, false); + if (!l.isEmpty()) { sort(l); sortList.add(l); } - }else{ - List list1=new ArrayList(); - List tmp =new ArrayList(); - for(Patients patients:list){ + } else { + List list1 = new ArrayList(); + List tmp = new ArrayList(); + for (Patients patients : list) { tmp.add(new SortIn(patients)); } sortList(tmp); - Date min=null; - if(!tmp.isEmpty()){ - min=tmp.get(tmp.size()-1).getDate(); + Date min = null; + if (!tmp.isEmpty()) { + min = tmp.get(tmp.size() - 1).getDate(); } - List l=buildPatientList(dueDate, list, list1,min,true); - if(!l.isEmpty()){ + List l = buildPatientList(dueDate, list, list1, min, true); + if (!l.isEmpty()) { sort(l); sortList.add(l); } @@ -570,18 +608,19 @@ public class AntenatalExaminationFacade { antexListResult.setData(sortList); return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(antexListResult); } - private void sort(List listData){ + + private void sort(List listData) { Collections.sort(listData, new Comparator() { @Override public int compare(AntData o1, AntData o2) { - if(Integer.valueOf(o1.getType())>Integer.valueOf(o2.getType())){ + if (Integer.valueOf(o1.getType()) > Integer.valueOf(o2.getType())) { return 1; } - if(Integer.valueOf(o1.getType()) patientses,List listData,Date min,boolean f) { - if(CollectionUtils.isEmpty(patientses)){ + private List buildPatientList(Date end, List patientses, List listData, Date min, boolean f) { + if (CollectionUtils.isEmpty(patientses)) { return listData; } Organization organization = null; @@ -616,11 +654,11 @@ public class AntenatalExaminationFacade { //初诊记录 AntExChuQuery antExChuQuery = new AntExChuQuery(); antExChuQuery.setYn(YnEnums.YES.getId()); - if(!f){ - if(null==min){ + if (!f) { + if (null == min) { antExChuQuery.setStart(patientses.get(0).getBookbuildingDate()); - antExChuQuery.setEnd(new Date(end.getTime()+86398000)); - }else{ + antExChuQuery.setEnd(new Date(end.getTime() + 86398000)); + } else { antExChuQuery.setStart(min); antExChuQuery.setEnd(end); } @@ -641,7 +679,7 @@ public class AntenatalExaminationFacade { AntExQuery antExQuery = new AntExQuery(); antExQuery.setYn(YnEnums.YES.getId()); antExQuery.setPid(pid); - if(!f) { + if (!f) { if (null == min) { antExQuery.setStart(patientses.get(0).getBookbuildingDate()); antExQuery.setEnd(new Date(end.getTime() + 86398000)); @@ -688,7 +726,11 @@ public class AntenatalExaminationFacade { this.date = patients.getBookbuildingDate(); this.type = 2; } - + public SortIn(Patients patients,int i) { + this.id = patients.getId(); + this.date = patients.getFmDate(); + this.type = 2; + } public SortIn(StopPregModel stopPregModel) { this.id = stopPregModel.getId(); this.date = stopPregModel.getStopDate(); @@ -992,44 +1034,43 @@ public class AntenatalExaminationFacade { } - MatDeliverQuery matDeliverQuery=new MatDeliverQuery(); + MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); matDeliverQuery.setPid(patients.getPid()); matDeliverQuery.setYn(YnEnums.YES.getId()); - List list1 = matDeliverService.query(matDeliverQuery); + List list1 = matDeliverService.query(matDeliverQuery); - StopPregQuery stopPregQuery=new StopPregQuery(); + StopPregQuery stopPregQuery = new StopPregQuery(); stopPregQuery.setPid(patients.getPid()); stopPregQuery.setYn(YnEnums.YES.getId()); - List list2= stopPregnancyService.queryStopPreg(stopPregQuery); + List list2 = stopPregnancyService.queryStopPreg(stopPregQuery); List sortList = new ArrayList<>(); - if(CollectionUtils.isNotEmpty(list1)){ - for(MaternalDeliverModel model:list1){ + if (CollectionUtils.isNotEmpty(list1)) { + for (MaternalDeliverModel model : list1) { sortList.add(new SortIn(model)); } } - if(CollectionUtils.isNotEmpty(list2)) { + if (CollectionUtils.isNotEmpty(list2)) { for (StopPregModel model : list2) { sortList.add(new SortIn(model)); } } - AntexListResult antexListResult = new AntexListResult(); AntExChuQuery antExChuQuery = new AntExChuQuery(); antExChuQuery.setPid(patients.getPid()); antExChuQuery.setYn(YnEnums.YES.getId()); - Date max=null; - if(!sortList.isEmpty()){ + Date max = null; + if (!sortList.isEmpty()) { sortList(sortList); - max =new Date( sortList.get(0).getDate().getTime()+400000); + max = new Date(sortList.get(0).getDate().getTime() + 400000); } antExChuQuery.setStart(max); //获取初诊记录