Commit 9d6df786aa08e0ec6f0f2f3b62de84af2d42c70a
1 parent
a4e9c536c0
Exists in
master
and in
6 other branches
美生县医院系统数据分析报告-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 |