Commit fde76615bf7e20957871f15222947e494babc5e0
1 parent
6965a49783
Exists in
master
and in
6 other branches
update
Showing 4 changed files with 274 additions and 3 deletions
- platform-dal/src/main/java/com/lyms/platform/query/SieveApplyOrderQuery.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ApplyOrderFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java
platform-dal/src/main/java/com/lyms/platform/query/SieveApplyOrderQuery.java
View file @
fde7661
... | ... | @@ -90,6 +90,9 @@ |
90 | 90 | if(null!=parentId){ |
91 | 91 | condition= condition.and("parentId",parentId, MongoOper.IS); |
92 | 92 | } |
93 | + if(null!=number){ | |
94 | + condition= condition.and("number",number, MongoOper.IS); | |
95 | + } | |
93 | 96 | if(null!=hospitalId){ |
94 | 97 | condition= condition.and("hospitalId",hospitalId, MongoOper.IS); |
95 | 98 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SieveController.java
View file @
fde7661
... | ... | @@ -355,6 +355,18 @@ |
355 | 355 | LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); |
356 | 356 | sieveFacade.exportSieve(cqSieveQueryRequest, loginState.getId(), response); |
357 | 357 | } |
358 | - | |
358 | + /** | |
359 | + * 产筛导出3.0版 血清学筛查 | |
360 | + * sieveType=1 | |
361 | + * @param cqSieveQueryRequest | |
362 | + * @param request | |
363 | + * @param response | |
364 | + */ | |
365 | + @RequestMapping(value = "/exportSerologySieve", method = RequestMethod.GET) | |
366 | + @TokenRequired | |
367 | + public void exportSerologySieve(@Valid CqSieveQueryRequest cqSieveQueryRequest, HttpServletRequest request, HttpServletResponse response) { | |
368 | + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); | |
369 | + sieveFacade.exportSerologySieve(cqSieveQueryRequest, loginState.getId(), response); | |
370 | + } | |
359 | 371 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ApplyOrderFacade.java
View file @
fde7661
... | ... | @@ -439,8 +439,6 @@ |
439 | 439 | patientsService.validata(p); |
440 | 440 | } |
441 | 441 | } |
442 | - | |
443 | - | |
444 | 442 | sieveApplyOrderModel.setCreated(new Date()); |
445 | 443 | sieveApplyOrderModel.setHospitalId(hospitalId); |
446 | 444 | |
447 | 445 | |
... | ... | @@ -448,9 +446,25 @@ |
448 | 446 | sieveApplyOrderQuery1.setParentId(sieveApplyOrderAddRequest.getParentId()); |
449 | 447 | sieveApplyOrderQuery1.setHospitalId(hospitalId); |
450 | 448 | sieveApplyOrderQuery1.setYn(YnEnums.YES.getId()); |
449 | + //以前逻辑支持一个档案一个产筛,为了支持多个产筛,在第二次添加时候将以前产筛内容也冗余 | |
450 | + List<SieveApplyOrderModel> list1 = applyOrderService.querySieveApplyOrderWithQuery(sieveApplyOrderQuery1); | |
451 | + if(CollectionUtils.isNotEmpty(list1) && list1.size()<2){ | |
452 | + SieveApplyOrderModel sieveApplyOrderModel1 = list1.get(0); | |
453 | + SieveQuery sieveQuery = new SieveQuery(); | |
454 | + sieveQuery.setYn(YnEnums.YES.getId()); | |
455 | + sieveQuery.setParentId(sieveApplyOrderModel1.getParentId()); | |
456 | + sieveQuery.setHospitalId(hospitalId); | |
457 | + List<SieveModel> modelList = sieveService.queryList(sieveQuery); | |
458 | + if(CollectionUtils.isNotEmpty(modelList) && modelList.size()<2){ | |
459 | + SieveModel sieveModel = modelList.get(0); | |
460 | + sieveApplyOrderModel1.setLymsSieveId(sieveModel.getId()); | |
461 | + applyOrderService.updateSieve(sieveApplyOrderModel1); | |
462 | + } | |
463 | + } | |
451 | 464 | //先查询本院是否已申请 |
452 | 465 | //List<SieveApplyOrderModel> list1 = applyOrderService.querySieveApplyOrderWithQuery(sieveApplyOrderQuery1); |
453 | 466 | //if (CollectionUtils.isEmpty(list1)) { |
467 | + | |
454 | 468 | //增加产筛 |
455 | 469 | applyOrderService.addOneSieveApplyOrder(sieveApplyOrderModel); |
456 | 470 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java
View file @
fde7661
... | ... | @@ -567,7 +567,149 @@ |
567 | 567 | } |
568 | 568 | return new BaseListResponse().setData(data).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setPageInfo(sieveQuery.getPageInfo()); |
569 | 569 | } |
570 | + public BaseResponse queryList2(CqSieveQueryRequest cqSieveQueryRequest, Integer userId, String needPage, boolean isSieveLagManage) { | |
571 | + List<SieveListResult> data = new ArrayList<>(); | |
572 | + SieveQuery sieveQuery = new SieveQuery(); | |
573 | + sieveQuery.setQueryNo(cqSieveQueryRequest.getQueryNo()); | |
574 | + sieveQuery.setYn(YnEnums.YES.getId()); | |
575 | + sieveQuery.setPhone(cqSieveQueryRequest.getPhone()); | |
576 | + sieveQuery.setStatus(cqSieveQueryRequest.getStatus()); | |
577 | + sieveQuery.setCqResult(cqSieveQueryRequest.getCqResult()); | |
578 | + sieveQuery.setRenShenResult(cqSieveQueryRequest.getRenShenResult()); | |
579 | + sieveQuery.setName(cqSieveQueryRequest.getName()); | |
580 | + sieveQuery.setCardNo(cqSieveQueryRequest.getCardNo()); | |
581 | + //省市区查询 | |
582 | + sieveQuery.setProvinceId(cqSieveQueryRequest.getProvinceId()); | |
583 | + sieveQuery.setCityId(cqSieveQueryRequest.getCityId()); | |
584 | + sieveQuery.setAreaId(cqSieveQueryRequest.getAreaId()); | |
585 | + sieveQuery.setStreetId(cqSieveQueryRequest.getStreetId()); | |
570 | 586 | |
587 | + if (null != cqSieveQueryRequest.getDueWeekStart()) { | |
588 | + sieveQuery.setDueWeekStart(7 * Integer.valueOf(cqSieveQueryRequest.getDueWeekStart())); | |
589 | + } | |
590 | + if (null != cqSieveQueryRequest.getDueWeekEnd()) { | |
591 | + sieveQuery.setDueWeekEnd(7 * Integer.valueOf(cqSieveQueryRequest.getDueWeekEnd()) + 6); | |
592 | + } | |
593 | + if (null != cqSieveQueryRequest.getcDueWeekStart()) { | |
594 | + sieveQuery.setLastMensesEnd(DateUtil.addDay(DateUtil.parseYMD(DateUtil.getyyyy_MM_dd(new Date())), -(cqSieveQueryRequest.getcDueWeekStart() * 7))); | |
595 | + } | |
596 | + if (null != cqSieveQueryRequest.getcDueWeekEnd()) { | |
597 | + sieveQuery.setLastMensesStart(DateUtil.addDay(DateUtil.parseYMD(DateUtil.getyyyy_MM_dd(new Date())), -(cqSieveQueryRequest.getcDueWeekEnd() * 7) - 6)); | |
598 | + } | |
599 | + | |
600 | + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getApplyTime())) { | |
601 | + String[] dates = cqSieveQueryRequest.getApplyTime().split(" - "); | |
602 | + | |
603 | + sieveQuery.setApplyTimeStart(DateUtil.parseYMD(dates[0])); | |
604 | + if (dates.length == 2) { | |
605 | + sieveQuery.setApplyTimeEnd(DateUtil.parseYMDHMS(dates[1] + " 23:59:59")); | |
606 | + } | |
607 | + } | |
608 | + | |
609 | + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getDiagnosisTime())) { | |
610 | + String[] dates = cqSieveQueryRequest.getDiagnosisTime().split(" - "); | |
611 | + | |
612 | + sieveQuery.setDiagnosisTimeStart(DateUtil.parseYMD(dates[0])); | |
613 | + if (dates.length == 2) { | |
614 | + sieveQuery.setDiagnosisTimeEnd(DateUtil.parseYMDHMS(dates[1] + " 23:59:59")); | |
615 | + } | |
616 | + } | |
617 | + | |
618 | + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getResultTime())) { | |
619 | + String[] dates = cqSieveQueryRequest.getResultTime().split(" - "); | |
620 | + | |
621 | + sieveQuery.setResultTimeStart(DateUtil.parseYMD(dates[0])); | |
622 | + if (dates.length == 2) { | |
623 | + sieveQuery.setResultTimeEnd(DateUtil.parseYMDHMS(dates[1] + " 23:59:59")); | |
624 | + } | |
625 | + } | |
626 | + sieveQuery.setZtfx(cqSieveQueryRequest.getZtfx()); | |
627 | + sieveQuery.setStatus(cqSieveQueryRequest.getIsNotify()); | |
628 | + sieveQuery.setPage(cqSieveQueryRequest.getPage()); | |
629 | + sieveQuery.setLimit(cqSieveQueryRequest.getLimit()); | |
630 | + | |
631 | + | |
632 | + sieveQuery.setNeed(needPage); | |
633 | + String hospitalId = autoMatchFacade.getHospitalId(userId); | |
634 | + | |
635 | + if (isSieveLagManage) { | |
636 | + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getApplyHospitalId())) { | |
637 | + sieveQuery.setApplyHospitalId(cqSieveQueryRequest.getApplyHospitalId()); | |
638 | + } | |
639 | + sieveQuery.setSieveHospitalId(hospitalId); | |
640 | + } else { | |
641 | + sieveQuery.setHospitalId(hospitalId); | |
642 | + } | |
643 | + | |
644 | + | |
645 | + List<String> lymsSieveIds = new ArrayList<>(); | |
646 | + | |
647 | + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getNumber())) { | |
648 | + List<String> parentIds = new ArrayList<>(); | |
649 | + SieveApplyOrderQuery sieveApplyOrderQuery = new SieveApplyOrderQuery(); | |
650 | + sieveApplyOrderQuery.setSieveHospitalId(hospitalId); | |
651 | + if(StringUtils.isNotEmpty(cqSieveQueryRequest.getNumber())){ | |
652 | + sieveApplyOrderQuery.setNumber(cqSieveQueryRequest.getNumber()); | |
653 | + } | |
654 | + sieveApplyOrderQuery.setYn(YnEnums.YES.getId()); | |
655 | + List<SieveApplyOrderModel> sieveApplyOrderModels = applyOrderService.querySieveApplyOrderWithQuery(sieveApplyOrderQuery); | |
656 | + if (CollectionUtils.isNotEmpty(sieveApplyOrderModels)) { | |
657 | + for (SieveApplyOrderModel model : sieveApplyOrderModels) { | |
658 | + parentIds.add(model.getParentId()); | |
659 | + if(StringUtils.isNotEmpty(model.getLymsSieveId())){ | |
660 | + lymsSieveIds.add(model.getLymsSieveId()); | |
661 | + } | |
662 | + } | |
663 | + } | |
664 | + if (CollectionUtils.isNotEmpty(lymsSieveIds)) { | |
665 | + sieveQuery.setLymsSieveIds(lymsSieveIds);//以前产筛表没有这个管理会漏掉,后面修改过就不会,这里有可能会有个问题 | |
666 | + }else if (CollectionUtils.isNotEmpty(parentIds)) { | |
667 | + sieveQuery.setParentIds(parentIds); | |
668 | + } else { | |
669 | + return new BaseListResponse().setData(data).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setPageInfo(sieveQuery.getPageInfo()); | |
670 | + } | |
671 | + } | |
672 | + | |
673 | + // 筛查类型 | |
674 | + String sieveType = cqSieveQueryRequest.getSieveType(); | |
675 | + if (StringUtils.isNotEmpty(sieveType)) { | |
676 | + sieveQuery.setSieveType(sieveType); | |
677 | + } | |
678 | + | |
679 | + // 费用类型 | |
680 | + String costType = cqSieveQueryRequest.getCostType(); | |
681 | + if (StringUtils.isNotEmpty(costType)) { | |
682 | + sieveQuery.setCostType(costType); | |
683 | + } | |
684 | + | |
685 | + // 报告类型 | |
686 | + String reportType = cqSieveQueryRequest.getReportType(); | |
687 | + if (StringUtils.isNotEmpty(reportType)) { | |
688 | + sieveQuery.setReportType(reportType); | |
689 | + } | |
690 | + | |
691 | + //查询产筛list | |
692 | + List<SieveModel> list = sieveService.queryList1(sieveQuery, "order"); | |
693 | + int batchSize = 4; | |
694 | + int end = 0; | |
695 | + List<Future> listFuture = new ArrayList<>(); | |
696 | + for (int i = 0; i < list.size(); i += batchSize) { | |
697 | + end = (end + batchSize); | |
698 | + if (end > list.size()) { | |
699 | + end = list.size(); | |
700 | + } | |
701 | + listFuture.add(commonThreadPool.submit(new SieveWorker(hospitalId, list.subList(i, end), antenatalExaminationService, patientsService, applyOrderService, organizationService, diagnosisService, basicConfigService, usersService, sieveService, mongoTemplate))); | |
702 | + } | |
703 | + for (Future f : listFuture) { | |
704 | + try { | |
705 | + data.addAll((List) f.get(30, TimeUnit.SECONDS)); | |
706 | + } catch (Exception e) { | |
707 | + ExceptionUtils.catchException(e, "cqSieve list get result Future error."); | |
708 | + } | |
709 | + } | |
710 | + return new BaseListResponse().setData(data).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setPageInfo(sieveQuery.getPageInfo()); | |
711 | + } | |
712 | + | |
571 | 713 | public void exportCqsieves(CqSieveQueryRequest cqSieveQueryRequest, Integer id, HttpServletResponse response) { |
572 | 714 | try { |
573 | 715 | |
... | ... | @@ -2376,6 +2518,106 @@ |
2376 | 2518 | } |
2377 | 2519 | } |
2378 | 2520 | |
2521 | + public void exportSerologySieve(CqSieveQueryRequest cqSieveQueryRequest, Integer id, HttpServletResponse response) { | |
2522 | + try { | |
2523 | + BaseListResponse listResponse = (BaseListResponse) queryList2(cqSieveQueryRequest, id, null, false); | |
2524 | + | |
2525 | + List<SieveListResult> list = listResponse.getData(); | |
2526 | + List<Map<String, Object>> datas = new ArrayList<>(); | |
2527 | + | |
2528 | + if (CollectionUtils.isNotEmpty(list)) { | |
2529 | + for (SieveListResult sive : list) { | |
2530 | + Map<String, Object> data = new HashMap<>(); | |
2531 | + /* data.put("versionNo", sive.getNumber()); | |
2532 | + data.put("exportTime", sive.getExportTime()); | |
2533 | + data.put("highRisk", sive.getZtfxText()); | |
2534 | + data.put("age", sive.getAge()); | |
2535 | + data.put("collectBloodWeek", sive.getCollectionWeek()); | |
2536 | + data.put("placeDomicile", sive.getPlaceDomicile());//com.lyms.platform.common.utils.StringUtils.encryPhone(sive.getRealPhone()) | |
2537 | + data.put("residence", sive.getResidence()); | |
2538 | + data.put("dueDate", sive.getDueDate()); | |
2539 | + data.put("bScanInfo", sive.getbScanInfo()); | |
2540 | + data.put("foundHospital", sive.getFoundHospital());*/ | |
2541 | + data.put("SampleID", "");//样本号 | |
2542 | + data.put("PatientID", "");//孕妇编号 | |
2543 | + data.put("LastName", sive.getName());//姓名 | |
2544 | + data.put("ApplicationNo", "");//申请单号 | |
2545 | + data.put("BirthDate", sive.getBirthday());//生日 | |
2546 | + data.put("Ethnicity", "");//种族 | |
2547 | + data.put("IdCard", sive.getCardNo());//身份证号 | |
2548 | + data.put("Address", "");//地址 | |
2549 | + data.put("Phone", sive.getPhone());//电话 | |
2550 | + data.put("NoOfFetuses", "");//胎儿数 | |
2551 | + data.put("LMPDate", sive.getLastMenstrual());//末次月经 | |
2552 | + data.put("Smoking", "");//吸烟 | |
2553 | + data.put("Weight", "");//体重 | |
2554 | + data.put("Insulin", "");//I-型糖尿病 | |
2555 | + data.put("CollectionDate", sive.getCollectionDate());//采样日期(采血日期) | |
2556 | + data.put("ReceivedDate", "");//送检日期 | |
2557 | + data.put("ScanDate", "");//B超日期 | |
2558 | + data.put("CRL", ""); | |
2559 | + data.put("BPD", ""); | |
2560 | + data.put("HC", ""); | |
2561 | + data.put("MannualEntry", "");//B超孕天 | |
2562 | + data.put("NT", ""); | |
2563 | + data.put("ResponsibleCode", sive.getApplyDoctor());//送检单位编号(送检医院) | |
2564 | + data.put("T21", "");//既往T21 | |
2565 | + data.put("T18", "");//既往T18 | |
2566 | + data.put("NTD", "");//既往NTD | |
2567 | + data.put("ARMethod", "");//辅助生殖方法 | |
2568 | + data.put("ExtractionDate", "");//辅助生殖之提取日期 | |
2569 | + data.put("TransferDate", "");//辅助生殖之移植日期 | |
2570 | + data.put("DonorBirthDate", "");//辅助生殖之捐赠者生日 | |
2571 | + data.put("NasalBone", "");//鼻骨 | |
2572 | + data.put("Monozygous", "");//单卵 | |
2573 | + data.put("PatientType", "");//孕妇筛查类型 | |
2574 | + datas.add(data); | |
2575 | + } | |
2576 | + } | |
2577 | + OutputStream out = response.getOutputStream(); | |
2578 | + Map<String, String> cnames = new LinkedHashMap<>(); | |
2579 | + cnames.put("SampleID", "SampleID");//样本号 | |
2580 | + cnames.put("PatientID", "PatientID");//孕妇编号 | |
2581 | + cnames.put("LastName", "LastName");//姓名 | |
2582 | + cnames.put("ApplicationNo", "ApplicationNo");//申请单号 | |
2583 | + cnames.put("BirthDate", "BirthDate");//生日 | |
2584 | + cnames.put("Ethnicity", "Ethnicity");//种族 | |
2585 | + cnames.put("IdCard", "IdCard");//身份证号 | |
2586 | + cnames.put("Address", "Address");//地址 | |
2587 | + cnames.put("Phone", "Phone");//电话 | |
2588 | + cnames.put("NoOfFetuses", "NoOfFetuses");//胎儿数 | |
2589 | + cnames.put("LMPDate", "LMPDate");//末次月经 | |
2590 | + cnames.put("Smoking", "Smoking");//吸烟 | |
2591 | + cnames.put("Weight", "Weight");//体重 | |
2592 | + cnames.put("Insulin", "Insulin");//I-型糖尿病 | |
2593 | + cnames.put("CollectionDate", "CollectionDate");//采样日期 | |
2594 | + cnames.put("ReceivedDate", "ReceivedDate");//送检日期 | |
2595 | + cnames.put("ScanDate", "ScanDate");//B超日期 | |
2596 | + cnames.put("CRL", "CRL"); | |
2597 | + cnames.put("BPD", "BPD"); | |
2598 | + cnames.put("HC", "HC"); | |
2599 | + cnames.put("MannualEntry", "MannualEntry");//B超孕天 | |
2600 | + cnames.put("NT", "NT"); | |
2601 | + cnames.put("ResponsibleCode", "ResponsibleCode");//送检单位编号 | |
2602 | + cnames.put("T21", "T21");//既往T21 | |
2603 | + cnames.put("T18", "T18");//既往T18 | |
2604 | + cnames.put("NTD", "NTD");//既往NTD | |
2605 | + cnames.put("ARMethod", "ARMethod");//辅助生殖方法 | |
2606 | + cnames.put("ExtractionDate", "ExtractionDate");//辅助生殖之提取日期 | |
2607 | + cnames.put("TransferDate", "TransferDate");//辅助生殖之移植日期 | |
2608 | + cnames.put("DonorBirthDate", "DonorBirthDate");//辅助生殖之捐赠者生日 | |
2609 | + cnames.put("NasalBone", "NasalBone");//鼻骨 | |
2610 | + cnames.put("Monozygous", "Monozygous");//单卵 | |
2611 | + cnames.put("PatientType", "PatientType");//孕妇筛查类型 | |
2612 | + | |
2613 | + response.setContentType("application/octet-stream"); | |
2614 | + response.setCharacterEncoding("UTF-8"); | |
2615 | + response.setHeader("Content-Disposition", "attachment;fileName=" + "csdata22.xls"); | |
2616 | + ExcelUtil.toExcel(out, datas, cnames); | |
2617 | + } catch (Exception e) { | |
2618 | + ExceptionUtils.catchException(e, "产筛导出异常"); | |
2619 | + } | |
2620 | + } | |
2379 | 2621 | |
2380 | 2622 | } |