Commit 9d6df786aa08e0ec6f0f2f3b62de84af2d42c70a

Authored by shiyang
1 parent a4e9c536c0

美生县医院系统数据分析报告-2.1.3.产妇及活产详情

Showing 3 changed files with 96 additions and 11 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java View file @ 9d6df78
... ... @@ -546,7 +546,7 @@
546 546 return reportService.getAntExChuDetail(hospitalId, startDate, endDate);
547 547 }
548 548 /**
549   - * 统计管理-孕产妇数据统计-初诊详情
  549 + * 统计管理-孕产妇数据统计-高危详情
550 550 *
551 551 * @param hospitalId
552 552 * @param startDate
... ... @@ -563,6 +563,22 @@
563 563 @RequestParam(required = true)Integer page,
564 564 @RequestParam(required = true)Integer limit) {
565 565 return reportService.getHighRiskDetail(hospitalId,riskType, startDate, endDate, page, limit);
  566 + }
  567 + /**
  568 + * 统计管理-孕产妇数据统计-分娩详情
  569 + *
  570 + * @param hospitalId
  571 + * @param startDate
  572 + * @param endDate
  573 + * @return
  574 + */
  575 + @RequestMapping(value = "/getFmDetail", method = RequestMethod.GET)
  576 + @ResponseBody
  577 + @TokenRequired
  578 + public BaseResponse getFmDetail(@RequestParam(required = true)String hospitalId,
  579 + @RequestParam(required = true)Date startDate,
  580 + @RequestParam(required = true)Date endDate) {
  581 + return reportService.getFmDetail(hospitalId, startDate, endDate);
566 582 }
567 583  
568 584 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java View file @ 9d6df78
... ... @@ -115,5 +115,7 @@
115 115 BaseResponse getAntExChuDetail(String hospitalId, Date startDate, Date endDate);
116 116  
117 117 BaseResponse getHighRiskDetail(String hospitalId,String riskType, Date startDate, Date endDate,Integer page,Integer limit);
  118 +
  119 + BaseResponse getFmDetail(String hospitalId, Date startDate, Date endDate);
118 120 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java View file @ 9d6df78
... ... @@ -37,6 +37,7 @@
37 37 import org.springframework.data.domain.Sort;
38 38 import org.springframework.data.mongodb.core.MongoTemplate;
39 39 import org.springframework.data.mongodb.core.aggregation.Aggregation;
  40 +import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
40 41 import org.springframework.data.mongodb.core.aggregation.AggregationResults;
41 42 import org.springframework.data.mongodb.core.aggregation.GroupOperation;
42 43 import org.springframework.data.mongodb.core.query.Criteria;
... ... @@ -4502,16 +4503,22 @@
4502 4503 //当前月分娩产妇(顺产、剖腹产)
4503 4504 long fmSCount=0;//顺产
4504 4505 long fmPCount=0;//剖腹产
4505   - for (int i=1;i<=2;i++) {
4506   - Criteria criteria11 = Criteria.where("birth")
4507   - .gte(startDate).lte(endDate)
4508   -// .and("pregnancyOut").is("0")//是否活产
4509   - .and("dueType").is("" + i)
4510   - .and("hospitalId").is(hospitalId)
4511   - .and("yn").is(YnEnums.YES.getId());
4512   - long count = mongoTemplate.count(Query.query(criteria11), BabyModel.class);
4513   - fmSCount+=i==1?count:0;
4514   - fmPCount+=i==2?count:0;
  4506 + Criteria c = new Criteria();
  4507 + Criteria c1= Criteria.where("deliveryMode").regex("\\\"fmfs\\\":\\\"1\\\"");
  4508 + Criteria c2= Criteria.where("deliveryMode").regex("\\\"fmfs\\\":\\\"2\\\"");
  4509 + c.orOperator(c1,c2);
  4510 + Criteria criteria11 = Criteria.where("dueDate")
  4511 + .gte("2021-12-01").lte("2021-12-31")
  4512 + .andOperator(c)
  4513 + .and("hospitalId").is("216")
  4514 + .and("yn").is(1);
  4515 + List<MaternalDeliverModel> mDlList = mongoTemplate.find(Query.query(criteria11), MaternalDeliverModel.class);
  4516 + for (MaternalDeliverModel deliverModel : mDlList) {
  4517 + if (deliverModel.getDeliveryMode().contains("\"fmfs\":\"1\"")){
  4518 + fmSCount++;
  4519 + }else if(deliverModel.getDeliveryMode().contains("\"fmfs\":\"2\"")){
  4520 + fmPCount++;
  4521 + }
4515 4522 }
4516 4523 long fmCount=fmSCount+fmPCount;
4517 4524 //剖宫产率
... ... @@ -4707,6 +4714,66 @@
4707 4714 br.setErrormsg("成功");
4708 4715 br.setData(antExRecordResult);
4709 4716 br.setPageInfo(antExRecordQuery.getPageInfo());
  4717 + return br;
  4718 + }
  4719 +
  4720 + @Override
  4721 + public BaseResponse getFmDetail(String hospitalId, Date startDate, Date endDate) {
  4722 + BaseResponse br = new BaseResponse();
  4723 + List <Map <String, Object>> doctorFm=new ArrayList<>();
  4724 + //分娩孕妇
  4725 + Criteria c = new Criteria();
  4726 + Criteria c1= Criteria.where("deliveryMode").regex("\\\"fmfs\\\":\\\"1\\\"");
  4727 + Criteria c2= Criteria.where("deliveryMode").regex("\\\"fmfs\\\":\\\"2\\\"");
  4728 + c.orOperator(c1,c2);
  4729 + Criteria criteria = Criteria.where("dueDate")
  4730 + .gte(DateUtil.getyyyy_MM_dd(startDate)).lte(DateUtil.getyyyy_MM_dd(endDate))
  4731 + .andOperator(c)
  4732 + .and("hospitalId").is("216")
  4733 + .and("yn").is(1);
  4734 + //分组查询
  4735 + AggregationOperation match = Aggregation.match(criteria);
  4736 + AggregationOperation group = Aggregation.group("deliverDoctor").count().as("count");
  4737 + Aggregation aggregation= Aggregation.newAggregation(match, group);
  4738 + AggregationResults<HashMap> result = mongoTemplate.aggregate(aggregation,"lyms_matdeliver", HashMap.class);
  4739 + for (HashMap mappedResult : result.getMappedResults()) {
  4740 + Map <String, Object> map=new HashMap<>();
  4741 + long fmSCount=0;//顺产
  4742 + long fmPCount=0;//剖腹产
  4743 + if (null!=mappedResult.get("_id")) {
  4744 + //接生医生姓名
  4745 + String doctor = "";
  4746 + Users users = usersService.getUsers(Integer.parseInt(mappedResult.get("_id").toString()));
  4747 + if (users != null && users.getYn() == YnEnums.YES.getId()) {
  4748 + doctor = users.getName();
  4749 + }
  4750 + map.put("name", doctor);
  4751 + //按医生查询,得到医生的接生信息
  4752 + Criteria criteria2 = Criteria.where("dueDate")
  4753 + .gte(DateUtil.getyyyy_MM_dd(startDate)).lte(DateUtil.getyyyy_MM_dd(endDate))
  4754 + .andOperator(c)
  4755 + .and("hospitalId").is("216")
  4756 + .and("yn").is(1)
  4757 + .and("deliverDoctor").is(mappedResult.get("_id"));
  4758 + List<MaternalDeliverModel> list = mongoTemplate.find(Query.query(criteria2), MaternalDeliverModel.class);
  4759 + //整理医生数据
  4760 + for (MaternalDeliverModel deliverModel : list) {
  4761 + if (deliverModel.getDeliveryMode().contains("\"fmfs\":\"1\"")){
  4762 + fmSCount++;
  4763 + }else if(deliverModel.getDeliveryMode().contains("\"fmfs\":\"2\"")){
  4764 + fmPCount++;
  4765 + }
  4766 + }
  4767 + map.put("fmSCount", fmSCount);
  4768 + map.put("fmPCount", fmPCount);
  4769 + map.put("total", fmSCount+fmPCount);
  4770 + }
  4771 + doctorFm.add(map);
  4772 + }
  4773 +
  4774 + br.setErrorcode(ErrorCodeConstants.SUCCESS);
  4775 + br.setErrormsg("成功");
  4776 + br.setObject(doctorFm);
4710 4777 return br;
4711 4778 }
4712 4779