Commit 9ea1a1d96bf0a09edb89bc47d6bfd9af521f2b23

Authored by liquanyu
1 parent 7aa0f89868

公共卫生统计

Showing 2 changed files with 92 additions and 33 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AreaCountController.java View file @ 9ea1a1d
... ... @@ -527,6 +527,30 @@
527 527 patientSyncMysqlFacade.getPublicHygieneServiceCountExport(provinceId,cityId,areaId,streetId,dateTime,response);
528 528 }
529 529  
  530 +
  531 + /**
  532 + * 本月活产 和 累计活产数
  533 + * @param request
  534 + * @param page
  535 + * @param limit
  536 + * @param areaId
  537 + * @param streetId
  538 + * @param dateTime
  539 + * @return
  540 + */
  541 + @RequestMapping(method = RequestMethod.GET, value = "/getBabyFmList")
  542 + @ResponseBody
  543 + @TokenRequired
  544 + public BaseResponse getBabyFmList(HttpServletRequest request,
  545 + Integer page, Integer limit,
  546 + @RequestParam String areaId,
  547 + @RequestParam( required = false) String streetId,
  548 + @RequestParam Integer type, // 1本月活产 2累计活产
  549 + @RequestParam Date dateTime) {
  550 + LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  551 + return patientSyncMysqlFacade.getBabyFmList(page,limit,areaId,streetId,dateTime,type);
  552 + }
  553 +
530 554 /**
531 555 * 公共卫生项目统计 中医指导明细
532 556 * @param request
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientSyncMysqlFacade.java View file @ 9ea1a1d
... ... @@ -3256,43 +3256,39 @@
3256 3256 Date startDateFirst=DateUtil.getYearFirst(DateUtil.getYear(startDate));
3257 3257 DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
3258 3258 //本月活产数
3259   - int data1=0;
3260   -// for (int i=1;i<=7;i++){//多胎情况
3261   - MatDeliverQuery matDeliverQuery = new MatDeliverQuery();
3262   - matDeliverQuery.setHospitalId(hospitalId);
3263   - matDeliverQuery.setYn(YnEnums.YES.getId());
3264   -// matDeliverQuery.setTireNumber(i);
3265   - matDeliverQuery.setCreatedStart(startDate);
3266   - matDeliverQuery.setEndStart(endDate);
3267   - data1+=matDeliverService.count(matDeliverQuery);//*i
3268   -// }
  3259 + int data1= (int)mongoTemplate.count(new Query(Criteria.
  3260 + where("yn").is(1)
  3261 + .and("baby.pregnancyOut").is("0").and("hospitalId").is(hospitalId)
  3262 + .and("dueDate1").gte(startDate).lte(endDate)),MaternalDeliverModel.class);
  3263 +
3269 3264 int lastDate1= null==hospitalDate.get("data1")?0:Integer.parseInt(hospitalDate.get("data1").toString());
3270 3265 hospitalDate.put("data1",data1+lastDate1);
3271 3266 //累计活产数
3272   - int data2=0;
3273   -// for (int i=1;i<=7;i++){//多胎情况
3274   - MatDeliverQuery matDeliverQuery2 = new MatDeliverQuery();
3275   - matDeliverQuery2.setHospitalId(hospitalId);
3276   - matDeliverQuery2.setYn(YnEnums.YES.getId());
3277   -// matDeliverQuery.setTireNumber(i);
3278   - matDeliverQuery2.setCreatedStart(startDateFirst);
3279   - matDeliverQuery2.setEndStart(endDate);
3280   - data2+=matDeliverService.count(matDeliverQuery2);//*i;
3281   -// }
  3267 + int data2 = (int)mongoTemplate.count(new Query(Criteria.
  3268 + where("yn").is(1)
  3269 + .and("baby.pregnancyOut").is("0").and("hospitalId").is(hospitalId)
  3270 + .and("dueDate1").lte(endDate)),MaternalDeliverModel.class);
  3271 +
3282 3272 int lastDate2= null==hospitalDate.get("data2")?0:Integer.parseInt(hospitalDate.get("data2").toString());
3283 3273 hospitalDate.put("data2",data2+lastDate2);
3284   - //新生儿访视人数
3285   - int data3=0;
3286   - AggregationOperation match = Aggregation.match(Criteria.
3287   - where("hospitalId").is(hospitalId)
3288   - .and("yn").is("1")
3289   - .and("created").gte(startDateFirst).lte(endDate));
3290   - AggregationOperation group = Aggregation.group("babyId");
3291   - Aggregation aggregation= Aggregation.newAggregation(match, group);
3292   - AggregationResults<HashMap> result = mongoTemplate.aggregate(aggregation,"lyms_newborn_visit", HashMap.class);
3293   - data3=result.getMappedResults().size();
  3274 +
  3275 +
  3276 + //本月新生儿访视人数
  3277 + int data26 = (int)mongoTemplate.count(new Query(Criteria.
  3278 + where("yn").is("1")
  3279 + .and("hospitalId").is(hospitalId)
  3280 + .and("checkTime").gte(startDate).lte(endDate)),NewbornVisit.class);
  3281 + int lastDate26= null==hospitalDate.get("data26")?0:Integer.parseInt(hospitalDate.get("data26").toString());
  3282 + hospitalDate.put("data26",data26+lastDate26);
  3283 +
  3284 + //累计新生儿访视人数
  3285 + int data3 = (int)mongoTemplate.count(new Query(Criteria.
  3286 + where("yn").is("1")
  3287 + .and("hospitalId").is(hospitalId)
  3288 + .and("checkTime").lte(endDate)),NewbornVisit.class);
3294 3289 int lastDate3= null==hospitalDate.get("data3")?0:Integer.parseInt(hospitalDate.get("data3").toString());
3295 3290 hospitalDate.put("data3",data3+lastDate3);
  3291 +
3296 3292 //新生儿访视率%
3297 3293 String data3_data2="0.00";
3298 3294 if(Integer.parseInt(hospitalDate.get("data2").toString())!=0){
... ... @@ -3304,6 +3300,7 @@
3304 3300 }
3305 3301 }
3306 3302 hospitalDate.put("data4",data3_data2+"%");
  3303 +
3307 3304 //0-3岁儿童总数
3308 3305 int data5=0;
3309 3306 BabyModelQuery babyQuery=new BabyModelQuery();
3310 3307  
3311 3308  
3312 3309  
3313 3310  
3314 3311  
3315 3312  
... ... @@ -3384,21 +3381,31 @@
3384 3381 }
3385 3382 }
3386 3383 hospitalDate.put("data14",data13_data8+"%");
  3384 +
3387 3385 //孕13周之前建册的人数
3388   - int data15=0;
3389 3386 PatientsQuery patientsQuery=new PatientsQuery();
3390 3387 patientsQuery.setYn(YnEnums.YES.getId());
3391 3388 patientsQuery.setHospitalId(hospitalId);
  3389 + patientsQuery.setBuildDaysStart(0);
3392 3390 patientsQuery.setBuildDaysEnd(13*7);
  3391 + patientsQuery.setExtEnable(false);
  3392 + patientsQuery.setBuildTypeNot(1);
3393 3393 patientsQuery.setBookbuildingDateStart(startDateFirst);
3394 3394 patientsQuery.setBookbuildingDateEnd(endDate);
3395   - data15=patientsService.queryPatientCount(patientsQuery);
  3395 + int data15 = patientsService.queryPatientCount(patientsQuery);
3396 3396 int lastDate15= null==hospitalDate.get("data15")?0:Integer.parseInt(hospitalDate.get("data15").toString());
3397 3397 hospitalDate.put("data15",data15+lastDate15);
3398 3398 //早孕建册率%
  3399 +
  3400 + patientsQuery.setBuildDaysStart(null);
  3401 + patientsQuery.setBuildDaysEnd(null);
  3402 + patientsQuery.setBookbuildingDateStart(startDateFirst);
  3403 + patientsQuery.setBookbuildingDateEnd(endDate);
  3404 + int buildCount = patientsService.queryPatientCount(patientsQuery);
3399 3405 String data15_data2="0.00";
3400 3406 if(Integer.parseInt(hospitalDate.get("data2").toString())!=0){
3401   - float v = (float) Integer.parseInt(hospitalDate.get("data15").toString()) / Integer.parseInt(hospitalDate.get("data2").toString());
  3407 + float v = (float) Integer.parseInt(hospitalDate.get("data15").toString()) /
  3408 + buildCount;
3402 3409 if(v>=1){
3403 3410 data15_data2="100.00";
3404 3411 }else {
... ... @@ -3507,6 +3514,7 @@
3507 3514 cnames.put("streetName", "乡镇");
3508 3515 cnames.put("data1", "本月活产数");
3509 3516 cnames.put("data2", "累计活产数");
  3517 + cnames.put("data26", "本月新生儿访视人数");
3510 3518 cnames.put("data3", "新生儿访视人数");
3511 3519 cnames.put("data4", "新生儿访视率%");
3512 3520 cnames.put("data5", "0-3岁儿童总数");
... ... @@ -3592,6 +3600,33 @@
3592 3600 }
3593 3601 return RespBuilder.buildSuccess(null);
3594 3602  
  3603 + }
  3604 +
  3605 + public BaseResponse getBabyFmList(Integer page, Integer limit, String areaId, String streetId, Date dateTime, Integer type) {
  3606 + //获得区县下的街道
  3607 + List<BasicConfig> regions = getRegions(areaId,streetId);
  3608 + List<String> hospitalIds = new ArrayList<>();
  3609 + for (BasicConfig region : regions) {
  3610 + //获得街道下的医院
  3611 + List<Organization> organizations = getOrganization(region.getId());
  3612 + for (Organization organization : organizations) {
  3613 + String hospitalId= StringUtils.getIntToVal(organization.getId());
  3614 + hospitalIds.add(hospitalId);
  3615 + }
  3616 + }
  3617 + Date startDate=DateUtil.getDateMonthFirst(dateTime);
  3618 + Date endDate=DateUtil.getDayLastSecond(DateUtil.getDateMonthLast(dateTime));
  3619 + if (CollectionUtils.isNotEmpty(hospitalIds))
  3620 + {
  3621 + //本月活产数
  3622 + Query query = new Query(Criteria.
  3623 + where("yn").is(1)
  3624 + .and("baby.pregnancyOut").is("0").and("hospitalId").in(hospitalIds)
  3625 + .and("dueDate1").gte(startDate).lte(endDate));
  3626 + List<MaternalDeliverModel> datas = mongoTemplate.find(query,MaternalDeliverModel.class);
  3627 + System.out.println(datas);
  3628 + }
  3629 + return null;
3595 3630 }
3596 3631 }