From eca2b0467428250fdc99350591c1b4e5f52bba2b Mon Sep 17 00:00:00 2001 From: yangfei Date: Mon, 9 Apr 2018 09:51:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E4=BA=A7=E7=A8=8B=EF=BC=8C=E7=94=B5?= =?UTF-8?q?=E5=AD=90=E7=97=85=E5=8E=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lyms/platform/biz/service/PatientsService.java | 2 +- .../platform/pojo/AntenatalExaminationModel.java | 2 +- .../web/facade/AntenatalExaminationFacade.java | 637 ++++++++++++--------- 3 files changed, 384 insertions(+), 257 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 78decf3..16a629b 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 @@ -329,7 +329,7 @@ public class PatientsService { List records = trackDownRecordService.queryTrackDown(downRecordQuery); for (TrackDownRecord tr : records) { Patients patients = iPatientDao.getPatient(tr.getParentId()); - if(patients == null){ + if(patients == null||tr==null){ System.out.println("处理产筛追访数据,孕周大于20周自动进入产检追访:patient为空"+tr.getParentId()); continue; } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/AntenatalExaminationModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/AntenatalExaminationModel.java index 500bc2a..e292b25 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/AntenatalExaminationModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/AntenatalExaminationModel.java @@ -9,7 +9,7 @@ import java.util.List; import java.util.Map; /** - * 产前检查 + * 产前检查(复诊) * * Created by Administrator on 2016/6/16 0016. */ 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 054a622..9931938 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 @@ -263,7 +263,7 @@ public class AntenatalExaminationFacade { * @param antExAddRequest * @return */ - public BaseResponse addOneAntEx(final AntExAddRequest antExAddRequest, Integer userId) { + public BaseResponse addOneAntEx(final AntExAddRequest antExAddRequest, Integer userId) { final String hospitalId = autoMatchFacade.getHospitalId(userId); AntenatalExaminationModel model = antExAddRequest.convertToDataModel(); //表示区域的 @@ -384,7 +384,6 @@ public class AntenatalExaminationFacade { }); - operateLogFacade.addAddOptLog(userId, Integer.parseInt(hospitalId), model, OptActionEnums.ADD.getId(), "添加复诊"); if (null != patients.getBuildType() && patients.getBuildType() == 3) { @@ -416,7 +415,7 @@ public class AntenatalExaminationFacade { } } //添加复诊时添加追访信息 - addTrackDownInfo(userId,patients); + addTrackDownInfo(userId, patients); } //处理自定义高危状态为已使用状态 highRiskFacade.dispHospHighRiskUse(model.getOtherRisk()); @@ -454,7 +453,7 @@ public class AntenatalExaminationFacade { * @param excAddRequest * @return */ - public BaseResponse addOneAnetExChu(final AntExcAddRequest excAddRequest, final Integer userId) { + public BaseResponse addOneAnetExChu(final AntExcAddRequest excAddRequest, final Integer userId) { StopWatch stopWatch = new StopWatch("addOneAnetExChu"); final String hospitalId = autoMatchFacade.getHospitalId(userId); @@ -564,7 +563,7 @@ public class AntenatalExaminationFacade { commonThreadPool.execute(new Runnable() { @Override public void run() { - // stopWatch.stop(); + // stopWatch.stop(); /** 把优惠券设置为已使用状态 */ //stopWatch.start("couponService.use"); couponService.use(hospitalId, excAddRequest.getCouponCode(), userId, chuId); @@ -622,7 +621,7 @@ public class AntenatalExaminationFacade { } } //初诊是添加追访记录 - addTrackDownInfo(userId,patients); + addTrackDownInfo(userId, patients); } else { return new BaseResponse().setErrorcode(ErrorCodeConstants.PARAMETER_ERROR).setErrormsg("您已经做过初诊"); } @@ -634,6 +633,7 @@ public class AntenatalExaminationFacade { /** * 初诊、复诊添加或更新追访信息 + * * @param userId * @param patient */ @@ -927,243 +927,249 @@ public class AntenatalExaminationFacade { List listDate = new ArrayList(); if (CollectionUtils.isNotEmpty(list)) { -// Patients patients2 = findOnePatient(null, null, null, hospital, -1, true, exListQueryRequest.getPid(),false); Patients patients2 = findOnePatient(null, null, null, groupsFacade.findGroupHospital(userId, true), -1, true, exListQueryRequest.getPid(), false); antexListResult.convertToResult(null, patients2, null); HighScoreResult highScoreResult = findLastRisk(list.get(0).getPid(), false); antexListResult.setRiskFactor(highScoreResult.getHighRisk()); antexListResult.setRiskScore(highScoreResult.getScoreStr()); - - MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); - matDeliverQuery.setPid(list.get(0).getPid()); - matDeliverQuery.setYn(YnEnums.YES.getId()); - //分娩记录 - List modelList = matDeliverService.query(matDeliverQuery); - for (MaternalDeliverModel model : modelList) { - listDate.add(new SortIn(model)); - map.put(model.getId(), model); - } - //终止妊娠记录 - StopPregQuery query = new StopPregQuery(); - query.setYn(YnEnums.YES.getId()); - query.setPid(list.get(0).getPid()); - List stopPregs = stopPregnancyService.queryStopPreg(query); - for (StopPregModel stopPregModel : stopPregs) { - listDate.add(new SortIn(stopPregModel)); - map.put(stopPregModel.getId(), stopPregModel); - } - //排序集合 sortList(listDate); - - //需要过滤掉建档就分娩的情况 - Date dueDate = null; - if (CollectionUtils.isNotEmpty(listDate)) { - String pid = ""; - int count = 0; - for (int i = 0; i < listDate.size(); i++) { - dueDate = listDate.get(i).getDate(); - Date end = new Date(listDate.get(i).getDate().getTime() + 86398000); - List listData = new ArrayList(); - Organization organization = null; - PatientsQuery patientsQuery1 = new PatientsQuery(); - patientsQuery1.setLastMensesEnd(end); - patientsQuery1.setBuildType(1); - patientsQuery1.setYn(YnEnums.YES.getId()); - //在区域组的时候不用查询隐藏档案 - if (null != groupsFacade.findByCurrentUserId(autoMatchFacade.getHospitalId(userId))) { - patientsQuery1.setExtEnable(false); - } - - if (listDate.size() > i + 1) { - patientsQuery1.setLastMensesStart(new Date(listDate.get(i + 1).getDate().getTime() + 86398000)); - } - pid = list.get(0).getPid(); - patientsQuery1.setPid(pid); - List patientses = patientsService.queryPatient1(patientsQuery1, "created"); - if (CollectionUtils.isNotEmpty(patientses)) { - count = count + patientses.size(); - //TODO 处理自动分娩的情况 - updateAutoMatdel(patientses, list, i, dueDate, sortList, listDate, map); - listData = new ArrayList(); - } - - if (CollectionUtils.isNotEmpty(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(); - } - //分娩前的数据 - buildPatientList(dueDate, patientses, listData, min, false); - - PostReviewQuery postReviewQuery = new PostReviewQuery(); - postReviewQuery.setStart(dueDate); - if (i > 0) { - //下次建档记录前都是产后复查,如果没有下个产程的数据就直接显示 - postReviewQuery.setEnd(listDate.get(i - 1).getDate()); - } - postReviewQuery.setPid(pid); - Object obj = map.get(listDate.get(i).getId()); - if (obj instanceof MaternalDeliverModel) { - MaternalDeliverModel model = (MaternalDeliverModel) obj; - if (null != model.getHospitalId()) { - organization = organizationService.getOrganization(Integer.valueOf(model.getHospitalId())); - } - listData.add(new AntData((MaternalDeliverModel) obj, patientses.get(0).getLastMenses(), null != organization ? organization.getName() : "")); - } else if (obj instanceof StopPregModel) { - StopPregModel model = (StopPregModel) obj; - if (null != model.getHospitalId()) { - organization = organizationService.getOrganization(Integer.valueOf(model.getHospitalId())); - } - listData.add(new AntData(stopPregs.get(0), patientses.get(0).getLastMenses(), null != organization ? organization.getName() : "")); - } - - - DischargeAbstractMotherQuery dischargeAbstractMotherQuery = new DischargeAbstractMotherQuery(); - dischargeAbstractMotherQuery.setPid(pid); - dischargeAbstractMotherQuery.setYn(YnEnums.YES.getId()); - if (list.size() - 1 > i) { - dischargeAbstractMotherQuery.setStart(dueDate); - if (CollectionUtils.isNotEmpty(listDate)) { - //下次建档记录前都是产后复查,如果没有下个产程的数据就直接显示 - if (listDate.size() > 1 && i > 1) { - dischargeAbstractMotherQuery.setEnd(listDate.get(i - 1).getDate()); - } - } - } - - List dischargeAbstractMotherModels = dischargeAbstractMotherService.query(dischargeAbstractMotherQuery); - - if (CollectionUtils.isNotEmpty(dischargeAbstractMotherModels)) { - for (DischargeAbstractMotherModel model : dischargeAbstractMotherModels) { - listData.add(new AntData(model, null != organization ? organization.getName() : "", dueDate)); - } - } - - - //产后复查记录 - List reviewModels = postReviewService.findWithList(postReviewQuery); - if (CollectionUtils.isNotEmpty(reviewModels)) { - for (PostReviewModel postReviewModel : reviewModels) { - if (postReviewModel.getYn() == YnEnums.YES.getId()) { - if (null != postReviewModel.getHospitalId()) { - organization = organizationService.getOrganization(Integer.valueOf(postReviewModel.getHospitalId())); - } - listData.add(new AntData(postReviewModel, null != organization ? organization.getName() : "", patientses.get(patientses.size() - 1).getFmDate())); - } - } - } - } - if (!listData.isEmpty()) { - sort(listData); - updateEditEnable(listData, sortList); - sortList.add(listData); -// Collections.reverse(sortList); - } - } - if (list.size() > count) { - //分娩记录剩下的建档 - PatientsQuery patientsQuery1 = new PatientsQuery(); - patientsQuery1.setYn(YnEnums.YES.getId()); - patientsQuery1.setPid(pid); - patientsQuery1.setLastMensesStart(new Date(listDate.get(0).getDate().getTime())); - patientsQuery1.setType(1); - patientsQuery1.setBuildType(1); - 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(); - } - List l = buildPatientList(new Date(), patientsList, list1, min, false); - if (!l.isEmpty()) { - sort(l); - - List list2 = new ArrayList(); - list2.add(l); - list2.addAll(sortList); - sortList = list2; - updateEditEnable(l, sortList); - l = new ArrayList(); - } - } - - } else { - //没有终止的情况 - List list1 = new ArrayList(); - List tmp = new ArrayList(); - for (Patients patients : list) { - tmp.add(new SortIn(patients)); - } - int size = list.size(); - sortList(tmp); - Date min = null; - if (!tmp.isEmpty()) { - min = tmp.get(tmp.size() - 1).getDate(); - } - updateAutoMatdel(list, list, 0, dueDate, sortList, null, null); - if (size != list.size()) { - list1 = new ArrayList(); - } - /*if(null==dueDate){ - dueDate= new Date(); - }*/ - //TODO buildPatientList(dueDate, list, list1, min, false); - List l = buildPatientList(dueDate, list, list1, min, false); - if (!l.isEmpty()) { - sort(l); - updateEditEnable(l, sortList); - sortList.add(l); - } - } + distPatientData(list, sortList); } antexListResult.setData(sortList); return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(antexListResult); + + // MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); + // matDeliverQuery.setPid(list.get(0).getPid()); + // matDeliverQuery.setYn(YnEnums.YES.getId()); + // //分娩记录 + // List modelList = matDeliverService.query(matDeliverQuery); + // for (MaternalDeliverModel model : modelList) { + // listDate.add(new SortIn(model)); + // map.put(model.getId(), model); + // } + // //终止妊娠记录 + // StopPregQuery query = new StopPregQuery(); + // query.setYn(YnEnums.YES.getId()); + // query.setPid(list.get(0).getPid()); + // List stopPregs = stopPregnancyService.queryStopPreg(query); + // for (StopPregModel stopPregModel : stopPregs) { + // listDate.add(new SortIn(stopPregModel)); + // map.put(stopPregModel.getId(), stopPregModel); + // } + // //排序集合 + + // sort(listData); + // updateEditEnable(listData, sortList); + // sortList.add(listData); + + // Date dueDate = null; + // + // //有分娩记录或终止妊娠记录 + // if (CollectionUtils.isNotEmpty(listDate)) { + // String pid = ""; + // int count = 0; + // for (int i = 0; i < listDate.size(); i++) { + // dueDate = listDate.get(i).getDate(); + // Date end = new Date(listDate.get(i).getDate().getTime() + 86398000); + // List listData = new ArrayList(); + // Organization organization = null; + // PatientsQuery patientsQuery1 = new PatientsQuery(); + // patientsQuery1.setLastMensesEnd(end); + // patientsQuery1.setBuildType(1); + // patientsQuery1.setYn(YnEnums.YES.getId()); + // //在区域组的时候不用查询隐藏档案 + // if (null != groupsFacade.findByCurrentUserId(autoMatchFacade.getHospitalId(userId))) { + // patientsQuery1.setExtEnable(false); + // } + // + // if (listDate.size() > i + 1) { + // patientsQuery1.setLastMensesStart(new Date(listDate.get(i + 1).getDate().getTime() + 86398000)); + // } + // pid = list.get(0).getPid(); + // patientsQuery1.setPid(pid); + // List patientses = patientsService.queryPatient1(patientsQuery1, "created"); + // if (CollectionUtils.isNotEmpty(patientses)) { + // count = count + patientses.size(); + // //TODO 处理自动分娩或终止妊娠的情况 + // updateAutoMatdel(patientses, list, i, dueDate, sortList, listDate, map); + // listData = new ArrayList(); + // } + // + // if (CollectionUtils.isNotEmpty(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(); + // } + // //分娩前的数据,初诊、复诊、建档 + // buildPatientList(dueDate, patientses, listData, min, false); + + + // Object obj = map.get(listDate.get(i).getId()); + // if (obj instanceof MaternalDeliverModel) { + // MaternalDeliverModel model = (MaternalDeliverModel) obj; + // if (null != model.getHospitalId()) { + // organization = organizationService.getOrganization(Integer.valueOf(model.getHospitalId())); + // } + // listData.add(new AntData((MaternalDeliverModel) obj, patientses.get(0).getLastMenses(), null != organization ? organization.getName() : "")); + // } else if (obj instanceof StopPregModel) { + // StopPregModel model = (StopPregModel) obj; + // if (null != model.getHospitalId()) { + // organization = organizationService.getOrganization(Integer.valueOf(model.getHospitalId())); + // } + // listData.add(new AntData(stopPregs.get(0), patientses.get(0).getLastMenses(), null != organization ? organization.getName() : "")); + // } + +// //出院小结查询条件 +// DischargeAbstractMotherQuery dischargeAbstractMotherQuery = new DischargeAbstractMotherQuery(); +// dischargeAbstractMotherQuery.setPid(pid); +// dischargeAbstractMotherQuery.setYn(YnEnums.YES.getId()); +// if (list.size() - 1 > i) { +// dischargeAbstractMotherQuery.setStart(dueDate); +// if (CollectionUtils.isNotEmpty(listDate)) { +// //下次建档记录前都是产后复查,如果没有下个产程的数据就直接显示 +// if (listDate.size() > 1 && i > 1) { +// dischargeAbstractMotherQuery.setEnd(listDate.get(i - 1).getDate()); +// } +// } +// } +// //出院小结信息 +// List dischargeAbstractMotherModels = dischargeAbstractMotherService.query(dischargeAbstractMotherQuery); +// if (CollectionUtils.isNotEmpty(dischargeAbstractMotherModels)) { +// for (DischargeAbstractMotherModel model : dischargeAbstractMotherModels) { +// listData.add(new AntData(model, null != organization ? organization.getName() : "", dueDate)); +// } +// } +// +// PostReviewQuery postReviewQuery = new PostReviewQuery(); +// postReviewQuery.setStart(dueDate); +// if (i > 0) { +// //下次建档记录前都是产后复查,如果没有下个产程的数据就直接显示 +// postReviewQuery.setEnd(listDate.get(i - 1).getDate()); +// } +// postReviewQuery.setPid(pid); +// //产后复查记录 +// List reviewModels = postReviewService.findWithList(postReviewQuery); +// if (CollectionUtils.isNotEmpty(reviewModels)) { +// for (PostReviewModel postReviewModel : reviewModels) { +// if (postReviewModel.getYn() == YnEnums.YES.getId()) { +// if (null != postReviewModel.getHospitalId()) { +// organization = organizationService.getOrganization(Integer.valueOf(postReviewModel.getHospitalId())); +// } +// listData.add(new AntData(postReviewModel, null != organization ? organization.getName() : "", patientses.get(patientses.size() - 1).getFmDate())); +// } +// } +// } +// } +// if (!listData.isEmpty()) { +// sort(listData); +// updateEditEnable(listData, sortList); +// sortList.add(listData); +// // Collections.reverse(sortList); +// } +// } +// if (list.size() > count) { +// //分娩记录剩下的建档 +// PatientsQuery patientsQuery1 = new PatientsQuery(); +// patientsQuery1.setYn(YnEnums.YES.getId()); +// patientsQuery1.setPid(pid); +// patientsQuery1.setLastMensesStart(new Date(listDate.get(0).getDate().getTime())); +// patientsQuery1.setType(1); +// patientsQuery1.setBuildType(1); +// 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(); +// } +// List l = buildPatientList(new Date(), patientsList, list1, min, false); +// if (!l.isEmpty()) { +// sort(l); +// +// List list2 = new ArrayList(); +// list2.add(l); +// list2.addAll(sortList); +// sortList = list2; +// updateEditEnable(l, sortList); +// l = new ArrayList(); +// } +// } +// +// } else { //没有终止的情况 +// List list1 = new ArrayList(); +// List tmp = new ArrayList(); +// for (Patients patients : list) { +// tmp.add(new SortIn(patients)); +// } +// int size = list.size(); +// sortList(tmp); +// Date min = null; +// if (!tmp.isEmpty()) { +// min = tmp.get(tmp.size() - 1).getDate(); +// } +// updateAutoMatdel(list, list, 0, dueDate, sortList, null, null); +// if (size != list.size()) { +// list1 = new ArrayList(); +// } +// /*if(null==dueDate){ +// dueDate= new Date(); +// }*/ +// //TODO buildPatientList(dueDate, list, list1, min, false); +// List l = buildPatientList(dueDate, list, list1, min, false); +// if (!l.isEmpty()) { +// sort(l); +// updateEditEnable(l, sortList); +// sortList.add(l); +// } +// } + } /** - * 处理自动分娩的情况 + * 处理自动分娩或终止妊娠的情况 */ private void updateAutoMatdel(List patientses, List list, int i, Date dueDate, List sortList, List listDate, Map map) { Iterator iterator = patientses.iterator(); Organization organization = null; String pid = ""; + String patientId = ""; List listData = new ArrayList(); Date lastMenses = null;//上一次的末次月经 + //遍历产程,只处理分娩或者终止妊娠的数据 while (iterator.hasNext()) { Patients patients = iterator.next(); - //处理建档就分娩的情况 + //处理建档就分娩的情况,根据末次月经计算预产期 Date date = DateUtil.addWeek(patients.getLastMenses(), 42); - + //获取当前时间的年月日 Date currentDate = DateUtil.formatDate(new Date()); - - + //如果当前时间小于预产期或者已经自动分娩,或者终止妊娠 if ((date.getTime() <= currentDate.getTime() || patients.getBuildType() == 2 || (patients.getIsAutoFm() != null && patients.getIsAutoFm() == 1)) || patients.getType() == 3 && patients.getFmDate() != null) { //建档记录 if (null != patients.getHospitalId()) { organization = organizationService.getOrganization(Integer.valueOf(patients.getHospitalId())); } + //获取personId pid = patients.getPid(); + //获取产程ID + patientId = patients.getId(); //当主档案的医院不在group组里需要显示本来的隐藏档案 if (!"2".equals(patients.getEnable())) { listData.add(new AntData(patients, null != organization ? organization.getName() : "")); } -// if (null == dueDate && null != patients.getFmDate()) { dueDate = patients.getFmDate(); -// } //初诊记录 AntExChuQuery antExChuQuery = new AntExChuQuery(); @@ -1175,23 +1181,23 @@ public class AntenatalExaminationFacade { antExChuQuery.setEnd(new Date(patients.getFmDate().getTime() + 86398000)); } - antExChuQuery.setPid(pid); - + // antExChuQuery.setPid(pid); + antExChuQuery.setParentId(patientId); List antExChuModels = antenatalExaminationService.queryAntExChu(antExChuQuery); if (CollectionUtils.isNotEmpty(antExChuModels)) { for (AntExChuModel an : antExChuModels) { if (null != an.getHospitalId()) { organization = organizationService.getOrganization(Integer.valueOf(an.getHospitalId())); } - - listData.add(new AntData(an, null != organization ? organization.getName() : "", patientses.get(0).getLastMenses())); + listData.add(new AntData(an, null != organization ? organization.getName() : "", patients.getLastMenses())); } } //复诊记录 AntExQuery antExQuery = new AntExQuery(); antExQuery.setYn(YnEnums.YES.getId()); - antExQuery.setPid(pid); + // antExQuery.setPid(pid); + antExQuery.setParentId(patientId); antExQuery.setStart(patients.getBookbuildingDate()); if (null == patients.getFmDate()) { antExQuery.setEnd(new Date(DateUtil.addWeek(patients.getLastMenses(), 42).getTime() + 86398000)); @@ -1206,7 +1212,7 @@ public class AntenatalExaminationFacade { organization = organizationService.getOrganization(Integer.valueOf(an.getHospitalId())); } - listData.add(new AntData(an, null != organization ? organization.getName() : "", patientses.get(0).getLastMenses())); + listData.add(new AntData(an, null != organization ? organization.getName() : "", patients.getLastMenses())); } } /* @@ -1224,7 +1230,8 @@ public class AntenatalExaminationFacade { if (null != map) { MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); matDeliverQuery.setYn(YnEnums.YES.getId()); - matDeliverQuery.setPid(pid); + // matDeliverQuery.setPid(pid); + matDeliverQuery.setParentId(patientId); // matDeliverQuery.setNeStart(true); // matDeliverQuery.setNeEnd(true); matDeliverQuery.setCreatedStart(dueDate); @@ -1243,12 +1250,13 @@ public class AntenatalExaminationFacade { organization = organizationService.getOrganization(Integer.valueOf(model.getHospitalId())); } - listData.add(new AntData(model, patientses.get(0).getLastMenses(), null != organization ? organization.getName() : "")); + listData.add(new AntData(model, patients.getLastMenses(), null != organization ? organization.getName() : "")); } } DischargeAbstractMotherQuery dischargeAbstractMotherQuery = new DischargeAbstractMotherQuery(); - dischargeAbstractMotherQuery.setPid(pid); + // dischargeAbstractMotherQuery.setPid(pid); + dischargeAbstractMotherQuery.setPatientId(patientId); dischargeAbstractMotherQuery.setYn(YnEnums.YES.getId()); if (list.size() - 1 > i) { dischargeAbstractMotherQuery.setStart(dueDate); @@ -1272,7 +1280,8 @@ public class AntenatalExaminationFacade { if (null != patients.getDueStatus() && 1 == patients.getDueStatus()) { StopPregQuery stopPregQuery = new StopPregQuery(); stopPregQuery.setYn(YnEnums.YES.getId()); - stopPregQuery.setPid(pid); + // stopPregQuery.setPid(pid); + stopPregQuery.setPatientId(patientId); if (list.size() - 1 > i) { stopPregQuery.setStopDateStart(dueDate); if (CollectionUtils.isNotEmpty(listDate)) { @@ -1310,7 +1319,8 @@ public class AntenatalExaminationFacade { } } postReviewQuery.setYn(YnEnums.YES.getId()); - postReviewQuery.setPid(pid); + // postReviewQuery.setPid(pid); + postReviewQuery.setParentId(patientId); //产后复查记录 @@ -1343,6 +1353,136 @@ public class AntenatalExaminationFacade { /** + * 处理产程数据 + */ + private void distPatientData(List patientses, List sortList) { + Iterator iterator = patientses.iterator(); + Organization organization = null; + String patientId = ""; + while (iterator.hasNext()) { + List listData = new ArrayList(); + Patients patients = iterator.next(); + //建档记录 + if (null != patients.getHospitalId()) { + organization = organizationService.getOrganization(Integer.valueOf(patients.getHospitalId())); + } + //获取产程ID + patientId = patients.getId(); + //当主档案的医院不在group组里需要显示本来的隐藏档案 + if (!"2".equals(patients.getEnable())) { + listData.add(new AntData(patients, null != organization ? organization.getName() : "")); + } + + //初诊记录 + AntExChuQuery antExChuQuery = new AntExChuQuery(); + antExChuQuery.setYn(YnEnums.YES.getId()); + antExChuQuery.setStart(patients.getBookbuildingDate()); + if (null == patients.getFmDate()) { + antExChuQuery.setEnd(new Date(DateUtil.addWeek(patients.getLastMenses(), 42).getTime() + 86398000)); + } else { + antExChuQuery.setEnd(new Date(patients.getFmDate().getTime() + 86398000)); + } + antExChuQuery.setParentId(patientId); + List antExChuModels = antenatalExaminationService.queryAntExChu(antExChuQuery); + if (CollectionUtils.isNotEmpty(antExChuModels)) { + for (AntExChuModel an : antExChuModels) { + if (null != an.getHospitalId()) { + organization = organizationService.getOrganization(Integer.valueOf(an.getHospitalId())); + } + listData.add(new AntData(an, null != organization ? organization.getName() : "", patients.getLastMenses())); + } + } + + //复诊记录 + AntExQuery antExQuery = new AntExQuery(); + antExQuery.setYn(YnEnums.YES.getId()); + antExQuery.setParentId(patientId); + antExQuery.setStart(patients.getBookbuildingDate()); + if (null == patients.getFmDate()) { + antExQuery.setEnd(new Date(DateUtil.addWeek(patients.getLastMenses(), 42).getTime() + 86398000)); + } else { + antExQuery.setEnd(new Date(patients.getFmDate().getTime() + 86398000)); + } + + List list1 = antenatalExaminationService.queryAntenatalExamination(antExQuery.convertToQuery()); + if (CollectionUtils.isNotEmpty(list1)) { + for (AntenatalExaminationModel an : list1) { + if (null != an.getHospitalId()) { + organization = organizationService.getOrganization(Integer.valueOf(an.getHospitalId())); + } + + listData.add(new AntData(an, null != organization ? organization.getName() : "", patients.getLastMenses())); + } + } + //分娩记录 + MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); + matDeliverQuery.setYn(YnEnums.YES.getId()); + matDeliverQuery.setParentId(patientId); + List l = matDeliverService.query(matDeliverQuery); + if (CollectionUtils.isNotEmpty(l)) { + MaternalDeliverModel model = l.get(0); + if (null != model.getHospitalId()) { + organization = organizationService.getOrganization(Integer.valueOf(model.getHospitalId())); + } + + listData.add(new AntData(model, patients.getLastMenses(), null != organization ? organization.getName() : "")); + } + //出院小结 + DischargeAbstractMotherQuery dischargeAbstractMotherQuery = new DischargeAbstractMotherQuery(); + dischargeAbstractMotherQuery.setPatientId(patientId); + dischargeAbstractMotherQuery.setYn(YnEnums.YES.getId()); + List dischargeAbstractMotherModels = dischargeAbstractMotherService.query(dischargeAbstractMotherQuery); + + if (CollectionUtils.isNotEmpty(dischargeAbstractMotherModels)) { + for (DischargeAbstractMotherModel model : dischargeAbstractMotherModels) { + listData.add(new AntData(model, null != organization ? organization.getName() : "", patients.getFmDate())); + } + } + + //终止妊娠的情况 + if (null != patients.getDueStatus() && 1 == patients.getDueStatus()) { + StopPregQuery stopPregQuery = new StopPregQuery(); + stopPregQuery.setYn(YnEnums.YES.getId()); + stopPregQuery.setPatientId(patientId); + List models = stopPregnancyService.queryStopPreg(stopPregQuery); + if (CollectionUtils.isNotEmpty(models)) { + for (StopPregModel stop : models) { + if (null != stop.getHospitalId()) { + organization = organizationService.getOrganization(Integer.valueOf(stop.getHospitalId())); + } + listData.add(new AntData(stop, patients.getLastMenses(), null != organization ? organization.getName() : "")); + } + } + } else { + PostReviewQuery postReviewQuery = new PostReviewQuery(); + postReviewQuery.setYn(YnEnums.YES.getId()); + postReviewQuery.setParentId(patientId); + + //产后复查记录 + List reviewModels = postReviewService.findWithList(postReviewQuery); + if (CollectionUtils.isNotEmpty(reviewModels)) { + if (CollectionUtils.isNotEmpty(listData)) { + for (PostReviewModel postReviewModel : reviewModels) { + if (postReviewModel.getYn() == YnEnums.YES.getId()) { + if (null != postReviewModel.getHospitalId()) { + organization = organizationService.getOrganization(Integer.valueOf(postReviewModel.getHospitalId())); + } + + listData.add(new AntData(postReviewModel, null != organization ? organization.getName() : "", patients.getFmDate())); + } + } + } + } + } + if (CollectionUtils.isNotEmpty(listData)) { + sort(listData); + updateEditEnable(listData, sortList); + sortList.add(listData); + } + } + } + + /** * 修改按钮控制 * * @param list 同一产程记录 @@ -1356,7 +1496,7 @@ public class AntenatalExaminationFacade { antData.setEnableEdit("0"); } } - //如果最后一条是复查 4 5 6 分娩 复查 终止妊娠 + //如果最后一条是复查 4 5 6 分娩 产后复查 终止妊娠 if ("4567".indexOf(list.get(list.size() - 1).getType()) > -1) { for (int i = 0; i < list.size() - 1; i++) { list.get(i).setEnableEdit("0"); @@ -1493,7 +1633,6 @@ public class AntenatalExaminationFacade { } - public class SortIn { public SortIn(Patients patients) { @@ -1800,8 +1939,8 @@ public class AntenatalExaminationFacade { HighScoreResult highScoreResult = findLastRisk(patients.getPid(), true); patients1.setRiskScore(highScoreResult.getScore()); patients1.setRiskFactorId(highScoreResult.getHighId()); - List list =highScoreResult.getLevelId(); - com.lyms.platform.operate.web.utils.CollectionUtils.removeDuplicate(list,true); + List list = highScoreResult.getLevelId(); + com.lyms.platform.operate.web.utils.CollectionUtils.removeDuplicate(list, true); patients1.setRiskLevelId(JsonUtil.array2JsonString(list)); //设置其他的高危因素 patients1.setoRiskFactor(StringUtils.isNotEmpty(highScoreResult.getOtherRisk()) ? highScoreResult.getOtherRisk() : ""); @@ -1969,13 +2108,14 @@ public class AntenatalExaminationFacade { matDeliverQuery.setPid(patients.getPid()); matDeliverQuery.setYn(YnEnums.YES.getId()); + //查询分娩记录 List list1 = matDeliverService.query(matDeliverQuery); StopPregQuery stopPregQuery = new StopPregQuery(); stopPregQuery.setPid(patients.getPid()); stopPregQuery.setYn(YnEnums.YES.getId()); - + //查询终止妊娠 List list2 = stopPregnancyService.queryStopPreg(stopPregQuery); @@ -2003,6 +2143,8 @@ public class AntenatalExaminationFacade { max = new Date(sortList.get(0).getDate().getTime() + 400000); } antExChuQuery.setStart(max); + + // System.out.println("初诊查询:"+antExChuQuery.convertToQuery().convertToMongoQuery()); //获取初诊记录 List antExChulist = antenatalExaminationService.queryAntExChu(antExChuQuery); @@ -2027,6 +2169,7 @@ public class AntenatalExaminationFacade { antExQuery1.setPid(patients.getPid()); antExQuery1.setYn(YnEnums.YES.getId()); antExQuery1.setStart(max); + // System.out.println("复诊查询:"+antExQuery1.convertToQuery().convertToMongoQuery()); List examinationModelList = antenatalExaminationService.queryAntenatalExamination(antExQuery1.convertToQuery().addOrder(Sort.Direction.DESC, "created")); String lastTime = ""; @@ -2090,19 +2233,16 @@ public class AntenatalExaminationFacade { } - if (patients != null) - { + if (patients != null) { //测量数据 - antexListResult.setMeasureData(measureInfoFacade.getMeasureInfo(patients.getPcerteTypeId(),patients.getCardNo(),hospitalId)); + antexListResult.setMeasureData(measureInfoFacade.getMeasureInfo(patients.getPcerteTypeId(), patients.getCardNo(), hospitalId)); //产筛状态 antexListResult.setSieveStatus(sieveFacade.getSieveStatus(patients.getId(), hospitalId)); } - - return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(antexListResult); } @@ -2555,41 +2695,35 @@ public class AntenatalExaminationFacade { public BaseResponse getGongGaoLine(String patientId, Integer id) { - Map map = new HashMap<>(); + Map map = new HashMap<>(); List titles = new ArrayList<>(); List values = new ArrayList<>(); - List> tables = new LinkedList<>(); + List> tables = new LinkedList<>(); AntExChuQuery antExChuQuery = new AntExChuQuery(); antExChuQuery.setYn(YnEnums.YES.getId()); antExChuQuery.setParentId(patientId); List antExChuModels = antenatalExaminationService.queryAntExChu(antExChuQuery); - if (CollectionUtils.isNotEmpty(antExChuModels)) - { + if (CollectionUtils.isNotEmpty(antExChuModels)) { AntExChuModel chumodel = antExChuModels.get(0); - if (StringUtils.isNotEmpty(chumodel.getGonggao()) || StringUtils.isNotEmpty(chumodel.getGonggaoSelect())) - { - Map item = new HashMap<>(); + if (StringUtils.isNotEmpty(chumodel.getGonggao()) || StringUtils.isNotEmpty(chumodel.getGonggaoSelect())) { + Map item = new HashMap<>(); String value = ""; - if (StringUtils.isNotEmpty(chumodel.getGonggaoSelect()) ) - { + if (StringUtils.isNotEmpty(chumodel.getGonggaoSelect())) { if (StringUtils.isNotEmpty(chumodel.getGonggaoType())) { value = GongJingEnums.getGongGaoNameById(chumodel.getGonggaoSelect()) + "," + GongJingEnums.getHengZhiNameById(chumodel.getGonggaoType()); } else { value = GongJingEnums.getGongGaoNameById(chumodel.getGonggaoSelect()); } - } - else if (StringUtils.isNotEmpty(chumodel.getGonggao())) - { + } else if (StringUtils.isNotEmpty(chumodel.getGonggao())) { value = chumodel.getGonggao(); } item.put("value", value); item.put("time", DateUtil.getyyyy_MM_dd(chumodel.getCheckTime())); - if (StringUtils.isNotEmpty(chumodel.getGonggao()) && (StringUtils.isNumeric(chumodel.getGonggao()) || Pattern.compile("^[-\\+]?[.\\d]*$").matcher(chumodel.getGonggao()).matches())) - { + if (StringUtils.isNotEmpty(chumodel.getGonggao()) && (StringUtils.isNumeric(chumodel.getGonggao()) || Pattern.compile("^[-\\+]?[.\\d]*$").matcher(chumodel.getGonggao()).matches())) { titles.add(DateUtil.getyyyy_MM_dd(chumodel.getCheckTime())); values.add(chumodel.getGonggao()); } @@ -2602,32 +2736,25 @@ public class AntenatalExaminationFacade { antExQuery.setParentId(patientId); antExQuery.setYn(YnEnums.YES.getId()); List examinationModelList = antenatalExaminationService.queryAntenatalExamination(antExQuery.convertToQuery().addOrder(Sort.Direction.ASC, "created")); - if (CollectionUtils.isNotEmpty(examinationModelList)) - { - for (AntenatalExaminationModel anmodel : examinationModelList) - { - if (StringUtils.isNotEmpty(anmodel.getGongGao()) || StringUtils.isNotEmpty(anmodel.getGongGaoSelect())) - { - Map item = new HashMap<>(); + if (CollectionUtils.isNotEmpty(examinationModelList)) { + for (AntenatalExaminationModel anmodel : examinationModelList) { + if (StringUtils.isNotEmpty(anmodel.getGongGao()) || StringUtils.isNotEmpty(anmodel.getGongGaoSelect())) { + Map item = new HashMap<>(); String value = ""; - if (StringUtils.isNotEmpty(anmodel.getGongGaoSelect()) ) - { + if (StringUtils.isNotEmpty(anmodel.getGongGaoSelect())) { if (StringUtils.isNotEmpty(anmodel.getGongGaoType())) { value = GongJingEnums.getGongGaoNameById(anmodel.getGongGaoSelect()) + "," + GongJingEnums.getHengZhiNameById(anmodel.getGongGaoType()); } else { value = GongJingEnums.getGongGaoNameById(anmodel.getGongGaoSelect()); } - } - else if (StringUtils.isNotEmpty(anmodel.getGongGao())) - { + } else if (StringUtils.isNotEmpty(anmodel.getGongGao())) { value = anmodel.getGongGao(); } item.put("value", value); item.put("time", DateUtil.getyyyy_MM_dd(anmodel.getCheckDate())); - if (StringUtils.isNotEmpty(anmodel.getGongGao()) && (StringUtils.isNumeric(anmodel.getGongGao()) || Pattern.compile("^[-\\+]?[.\\d]*$").matcher(anmodel.getGongGao()).matches())) - { + if (StringUtils.isNotEmpty(anmodel.getGongGao()) && (StringUtils.isNumeric(anmodel.getGongGao()) || Pattern.compile("^[-\\+]?[.\\d]*$").matcher(anmodel.getGongGao()).matches())) { titles.add(DateUtil.getyyyy_MM_dd(anmodel.getCheckDate())); values.add(anmodel.getGongGao()); } -- 1.8.3.1