diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBabyCheckDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBabyCheckDao.java index d1ece59..639ea2d 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBabyCheckDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IBabyCheckDao.java @@ -17,4 +17,5 @@ public interface IBabyCheckDao { public List queryBabyCheckRecord(MongoQuery query); + List queryLastCheck(List ids); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BabyCheckDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BabyCheckDaoImpl.java index a911bc5..8e0f3e3 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BabyCheckDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/BabyCheckDaoImpl.java @@ -1,15 +1,16 @@ package com.lyms.platform.biz.dal.impl; -import com.lyms.platform.biz.dal.IBabyBookBuildingDao; import com.lyms.platform.biz.dal.IBabyCheckDao; import com.lyms.platform.common.dao.BaseMongoDAOImpl; 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 com.lyms.platform.pojo.AntenatalExaminationModel; import com.lyms.platform.pojo.BabyCheckModel; -import com.lyms.platform.pojo.BabyModel; -import com.lyms.platform.pojo.HwModel; -import com.lyms.platform.query.BabyCheckModelQuery; +import org.springframework.data.mongodb.core.aggregation.Aggregation; +import org.springframework.data.mongodb.core.aggregation.AggregationOperation; +import org.springframework.data.mongodb.core.aggregation.AggregationResults; +import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.stereotype.Repository; import java.util.List; @@ -37,5 +38,16 @@ public class BabyCheckDaoImpl extends BaseMongoDAOImpl implement return find(query.convertToMongoQuery()); } + @Override + public List queryLastCheck(List ids) { + + AggregationOperation match = Aggregation.match(Criteria.where("buildId").in(ids).and("yn").is(1)); + AggregationOperation group = Aggregation.group("_id","diagnose").max("modified").as("modified"); + AggregationOperation fields = Aggregation.project("_id", "diagnose"); + Aggregation aggregation = Aggregation.newAggregation(match, group,fields); + AggregationResults result = this.mongoTemplate.aggregate(aggregation, "lyms_babycheck", BabyCheckModel.class); + return result.getMappedResults(); + } + } 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 3b506ad..92d8f41 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 @@ -67,7 +67,7 @@ public class PatientDaoImpl extends BaseMongoDAOImpl implements IPatie @Override public Patients findLastBuildRecord(String pid, int yn) { AggregationOperation match = Aggregation.match(Criteria.where("pid").is(pid).and("yn").is(yn)); - AggregationOperation group = Aggregation.group("_id","pid","dueDate").max("created").as("created"); + AggregationOperation group = Aggregation.group("_id","pid","dueDate").max("modified").as("modified"); AggregationOperation fields = Aggregation.project("_id", "pid", "dueDate"); Aggregation aggregation = Aggregation.newAggregation(match, group,fields); AggregationResults result = this.mongoTemplate.aggregate(aggregation, "lyms_patient", Patients.class); diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyBookbuildingService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyBookbuildingService.java index 21ee37d..adcf3d3 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyBookbuildingService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyBookbuildingService.java @@ -46,7 +46,7 @@ public class BabyBookbuildingService { babyQuery.mysqlBuild(babyBookBuildingDao.queryBabyManageCount(babyQuery.convertToQuery())); query.start(babyQuery.getOffset()).end(babyQuery.getLimit()); } - return babyBookBuildingDao.queryBabyWithQuery(query.addOrder(Sort.Direction.DESC, "created")); + return babyBookBuildingDao.queryBabyWithQuery(query.addOrder(Sort.Direction.DESC, "modified")); } public int queryBabyCount(BabyModelQuery babyQuery) { diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyCheckService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyCheckService.java index 39cb0ab..56beb44 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyCheckService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyCheckService.java @@ -63,4 +63,8 @@ public class BabyCheckService { condition = condition.and("sex", sex, MongoOper.IS); return babyAwDao.queryAwByHeight(condition.toMongoQuery()); } + + public List queryLastCheck(List ids) { + return babyCheckDao.queryLastCheck(ids); + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java index d51b683..4727f56 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java @@ -2,6 +2,7 @@ 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.dao.operator.MongoQuery; import com.lyms.platform.common.enums.*; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; @@ -10,16 +11,14 @@ 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.operate.web.request.BabyCheckRequest; -import com.lyms.platform.operate.web.result.BabyBasicResult; -import com.lyms.platform.operate.web.result.BabyCheckResult; -import com.lyms.platform.operate.web.result.BabyChooseResult; -import com.lyms.platform.operate.web.result.BasicConfigResult; +import com.lyms.platform.operate.web.result.*; import com.lyms.platform.permission.model.Users; import com.lyms.platform.permission.service.UsersService; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Component; import java.util.*; @@ -43,13 +42,15 @@ public class BabyCheckFacade { @Autowired private AntenatalExaminationService antenatalExaminationService; + @Autowired + private UsersService usersService; @Autowired - private AntenatalExaminationFacade antenatalExaminationFacade; + private PersonService personService; @Autowired - private UsersService usersService; + private AntenatalExaminationFacade antenatalExaminationFacade; /** * 更新检查 * @@ -271,10 +272,10 @@ public class BabyCheckFacade { base.setMonthAge(DateUtil.getBabyMonthAge(model.getBirth(), new Date())); base.setBirthday(DateUtil.getyyyy_MM_dd(model.getBirth())); - if (model.getDiagnose() != null) + if (model.getPid() != null) { //诊断 - List list = JsonUtil.toList(model.getDiagnose(), List.class); + List list = getBabyLastDiagnose(model.getPid()); List dlist = new ArrayList<>(); if (CollectionUtils.isNotEmpty(list)) { for (Object did : list) { @@ -298,60 +299,79 @@ public class BabyCheckFacade { //母亲是否高危 if (!StringUtils.isEmpty(model.getMcertNo())) { - PatientsQuery patientsQuery = new PatientsQuery(); - patientsQuery.setCardNo(model.getMcertNo()); - patientsQuery.setYn(YnEnums.YES.getId()); - +// PatientsQuery patientsQuery = new PatientsQuery(); +// patientsQuery.setCardNo(model.getMcertNo()); +// patientsQuery.setYn(YnEnums.YES.getId()); +// +// +// List listHighRisk = new ArrayList(); +// List list = patientsService.queryPatient(patientsQuery); +// Patients patients = null; +// if (CollectionUtils.isNotEmpty(list)) { +// patients = list.get(0); +// base.setCardNo(patients.getCardNo()); +// base.setVcCardNo(patients.getVcCardNo()); +// AntExChuQuery antExChuQuery=new AntExChuQuery(); +// antExChuQuery.setParentId(patients.getId()); +// antExChuQuery.setYn(YnEnums.YES.getId()); +// //查询产前检查记录 +// List checkList = antenatalExaminationService.findAllByParentId(patients.getId()); +// +// String highRisk = ""; +// if (CollectionUtils.isNotEmpty(checkList)) +// { +// AntenatalExaminationModel m = (AntenatalExaminationModel)checkList.get(0); +// highRisk = m.getRiskFactor(); +// } +// else +// { +// +// //获取初诊记录 +// List antExChulist = antenatalExaminationService.queryAntExChu(antExChuQuery); +// AntExChuModel antExChuModel=null; +// if(CollectionUtils.isNotEmpty(antExChulist)){ +// antExChuModel= antExChulist.get(0); +// } +// if (antExChuModel != null) +// { +// highRisk = antExChuModel.getHighrisk(); +// } +// +// } +// +// if (!StringUtils.isEmpty(highRisk)) +// { +// listHighRisk = JsonUtil.toList(highRisk, List.class); +// } + +// if (CollectionUtils.isNotEmpty(listHighRisk)) +// { +// base.setHighRisk("高危"); +// } +// else +// { +// base.setHighRisk("健康"); +// } + + + HighScoreResult res = antenatalExaminationFacade.findLastRisk(model.getPid(),false); + List listHighRisk = res.getHighRisk(); - List listHighRisk = new ArrayList(); - List list = patientsService.queryPatient(patientsQuery); - Patients patients = null; - if (CollectionUtils.isNotEmpty(list)) { - patients = list.get(0); - base.setCardNo(patients.getCardNo()); - base.setVcCardNo(patients.getVcCardNo()); - AntExChuQuery antExChuQuery=new AntExChuQuery(); - antExChuQuery.setParentId(patients.getId()); - antExChuQuery.setYn(YnEnums.YES.getId()); - //查询产前检查记录 - List checkList = antenatalExaminationService.findAllByParentId(patients.getId()); - - String highRisk = ""; - if (CollectionUtils.isNotEmpty(checkList)) - { - AntenatalExaminationModel m = (AntenatalExaminationModel)checkList.get(0); - highRisk = m.getRiskFactor(); - } - else + if (CollectionUtils.isNotEmpty(listHighRisk)) { - - //获取初诊记录 - List antExChulist = antenatalExaminationService.queryAntExChu(antExChuQuery); - AntExChuModel antExChuModel=null; - if(CollectionUtils.isNotEmpty(antExChulist)){ - antExChuModel= antExChulist.get(0); + if (listHighRisk.contains("健康")) + { + base.setHighRisk("健康"); } - if (antExChuModel != null) + else { - highRisk = antExChuModel.getHighrisk(); + base.setHighRisk("高危"); } - - } - - if (!StringUtils.isEmpty(highRisk)) - { - listHighRisk = JsonUtil.toList(highRisk, List.class); - } - - if (CollectionUtils.isNotEmpty(listHighRisk)) - { - base.setHighRisk("高危"); } else { base.setHighRisk("健康"); } - } } @@ -364,6 +384,81 @@ public class BabyCheckFacade { } /** + * 查询孕妇最后一次检查的高危因素 全院 + * @param cardNo + * @param babyBirth + * @return + */ +// private List getYunLastDiagnose(String cardNo,Date babyBirth) +// { +// PatientsQuery patientsQuery = new PatientsQuery(); +// patientsQuery.setCardNo(cardNo); +// patientsQuery.setYn(YnEnums.YES.getId()); +// +// +// List listHighRisk = new ArrayList(); +// List list = patientsService.queryPatient1(patientsQuery); +// if (CollectionUtils.isNotEmpty(list)) +// { +// AntExQuery antExQuery = new AntExQuery(); +// antExQuery.setYn(YnEnums.YES.getId()); +// +// MongoQuery query = antExQuery.convertToQuery(); +// query.addOrder(Sort.Direction.DESC, "modified"); +// +// //查询产前检查记录 +// List checkList = antenatalExaminationService.queryAntenatalExamination(query); +// } +// +// return listHighRisk; +// } + + /** + * 获取儿童最后一次检查诊断因素 所有医院 + * @param pid person表的id + * @return + */ + private List getBabyLastDiagnose(String pid) + { + //诊断 + List list = null; + String diagnose = null; + List ids = new ArrayList<>(); + BabyModelQuery babyQuery = new BabyModelQuery(); + babyQuery.setPid(pid); + babyQuery.setYn(YnEnums.YES.getId()); + //查询儿童的基本信息 + List models = babyBookbuildingService.queryBabyBuildByCond(babyQuery); + if (CollectionUtils.isNotEmpty(models)) + { + for(BabyModel model : models) + { + ids.add(model.getId()); + } + if (CollectionUtils.isNotEmpty(ids)) + { + List checkModels = babyCheckService.queryLastCheck(ids); + if (CollectionUtils.isNotEmpty(checkModels) && checkModels.get(0) != null) + { + diagnose = checkModels.get(0).getDiagnose(); + } + else + { + diagnose = models.get(0).getDiagnose(); + } + } + + } + + if (StringUtils.isNotEmpty(diagnose)) + { + list = JsonUtil.toList(diagnose, List.class); + } + return list; + } + + + /** * 查询母亲身份证下面或者就诊卡号下面的儿童 * * @param vcCardNo diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java index 4af2365..1440a1e 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java @@ -346,7 +346,8 @@ public class BookbuildingFacade { pmodel.setModified(new Date()); personService.updatePerson(pmodel, yunRequest.getPid()); } - + //加入产筛 + patientsService.validata(patient); yunBookbuildingService.updatePregnant(patient, id); }