Commit f36491d1fd69e2d5766fc8e57b4d6263d5ddee32
1 parent
9a59a5380d
Exists in
dev
fix:优化儿童、产妇转诊相关逻辑,新增转诊统计功能
Showing 3 changed files with 183 additions and 0 deletions
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ApplyScreeningController.java
View file @
f36491d
... | ... | @@ -7,6 +7,7 @@ |
7 | 7 | import com.lyms.platform.common.result.BaseResponse; |
8 | 8 | import com.lyms.platform.common.utils.StringUtils; |
9 | 9 | import com.lyms.platform.operate.web.facade.ApplyScreeningFacade; |
10 | +import com.lyms.platform.operate.web.request.ApplyQueryRequest; | |
10 | 11 | import com.lyms.platform.operate.web.request.ApplyScreeningQueryRequest; |
11 | 12 | import com.lyms.platform.operate.web.request.ReferralApplyScreeningAddRequest; |
12 | 13 | import com.lyms.platform.operate.web.request.ScreeningReferralReceiptRequest; |
... | ... | @@ -54,6 +55,18 @@ |
54 | 55 | return applyScreeningFacade.queryApplyScreening(screeningQueryRequest, loginState.getId()); |
55 | 56 | } |
56 | 57 | |
58 | + /** | |
59 | + * 统计查询 | |
60 | + * @param request | |
61 | + * @return | |
62 | + */ | |
63 | + @RequestMapping(method = RequestMethod.GET, value = "/applyStatistics") | |
64 | + @ResponseBody | |
65 | + //@TokenRequired | |
66 | + public BaseResponse queryStatistics(ApplyQueryRequest applyQueryRequest, HttpServletRequest request) { | |
67 | + // LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); | |
68 | + return applyScreeningFacade.queryStatistics(applyQueryRequest,2100013059); | |
69 | + } | |
57 | 70 | |
58 | 71 | //查询--转诊单 |
59 | 72 | @RequestMapping(method = RequestMethod.GET, value = "/referralapply") |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ApplyScreeningFacade.java
View file @
f36491d
... | ... | @@ -509,6 +509,155 @@ |
509 | 509 | } |
510 | 510 | |
511 | 511 | |
512 | + public BaseListResponse queryStatistics(ApplyQueryRequest applyQueryRequest,Integer userId) { | |
513 | + | |
514 | + ReferralApplyScreeningQuery referralApplyScreeningQuery = new ReferralApplyScreeningQuery(); | |
515 | + referralApplyScreeningQuery.setPage(applyQueryRequest.getPage()); | |
516 | + referralApplyScreeningQuery.setLimit(applyQueryRequest.getLimit()); | |
517 | + referralApplyScreeningQuery.setType(3); | |
518 | + referralApplyScreeningQuery.setNeed("1"); | |
519 | + | |
520 | + if (StringUtils.isNotEmpty(applyQueryRequest.getTime())) { | |
521 | + String[] dates = applyQueryRequest.getTime().split(" - "); | |
522 | + referralApplyScreeningQuery.setTransferredStart(DateUtil.parseYMD(dates[0])); | |
523 | + if (dates.length == 2) { | |
524 | + referralApplyScreeningQuery.setTransferredEnd(DateUtil.parseYMDHMS(dates[1] + " 23:59:59")); | |
525 | + } | |
526 | + } | |
527 | + | |
528 | + String hospital = autoMatchFacade.getHospitalId(userId); | |
529 | + if (StringUtils.isNotEmpty(hospital)) { | |
530 | + referralApplyScreeningQuery.setHospitalId(hospital); | |
531 | + Organization og = organizationService.getOrganization(Integer.valueOf(hospital)); | |
532 | + if (null != og) { | |
533 | + referralApplyScreeningQuery.setHospitalName(og.getName()); | |
534 | + } | |
535 | + } | |
536 | + | |
537 | + | |
538 | + List<ReferralApplyScreeningModel> screeningModels = | |
539 | + applyScreeningService.queryReferralApplyScreeningWithQuery(referralApplyScreeningQuery); | |
540 | + | |
541 | + List data = new ArrayList(); | |
542 | + if (CollectionUtils.isNotEmpty(screeningModels)) { | |
543 | + for (ReferralApplyScreeningModel screeningModel : screeningModels) { | |
544 | + ApplyScreeningOutResult screeningOutResult = new ApplyScreeningOutResult(); | |
545 | + String zhuanchu = screeningModel.getOutHospitalId(); | |
546 | + String zhuanru = screeningModel.getTransferredHospital(); | |
547 | + String zhuanCName = zhuanchu; | |
548 | + String zhuanRname = zhuanru; | |
549 | + if (NumberUtils.isNumber(zhuanchu)) { | |
550 | + try { | |
551 | + Organization zhuanc = organizationService.getOrganization(Integer.valueOf(zhuanchu)); | |
552 | + if (null != zhuanc) { | |
553 | + zhuanCName = zhuanc.getName(); | |
554 | + } | |
555 | + } catch (Exception e) { | |
556 | + } | |
557 | + } | |
558 | + if (NumberUtils.isNumber(zhuanru)) { | |
559 | + try { | |
560 | + Organization zhuanc1 = organizationService.getOrganization(Integer.valueOf(zhuanru)); | |
561 | + if (null != zhuanc1) { | |
562 | + zhuanRname = zhuanc1.getName(); | |
563 | + } | |
564 | + } catch (Exception e) { | |
565 | + } | |
566 | + } | |
567 | + | |
568 | + if (NumberUtils.isNumber(screeningModel.getApplyDoctor())) { | |
569 | + Users users = usersService.getUsers(NumberUtils.toInt(screeningModel.getApplyDoctor())); | |
570 | + if (null != users) { | |
571 | + screeningOutResult.setApplyDoctor(users.getName()); | |
572 | + } | |
573 | + } | |
574 | + if (NumberUtils.isNumber(screeningModel.getRecDoctor())) { | |
575 | + Users users = usersService.getUsers(NumberUtils.toInt(screeningModel.getRecDoctor())); | |
576 | + if (null != users) { | |
577 | + screeningOutResult.setRecDoctor(users.getName()); | |
578 | + } | |
579 | + } | |
580 | + | |
581 | + StringBuilder stringBuilder = new StringBuilder(); | |
582 | + if (CollectionUtils.isNotEmpty(screeningModel.getrRisk())) { | |
583 | + for (String str : screeningModel.getrRisk()) { | |
584 | + stringBuilder.append(str).append(", "); | |
585 | + } | |
586 | + if (stringBuilder.length() > 0) { | |
587 | + stringBuilder.setLength(stringBuilder.length() - 2); | |
588 | + } | |
589 | + } | |
590 | + | |
591 | + if (StringUtils.isNotEmpty(screeningModel.getOtherHighRisk())) { | |
592 | + if (stringBuilder.length() > 0 && StringUtils.isNotEmpty(screeningModel.getOtherHighRisk())) { | |
593 | + stringBuilder.append(","); | |
594 | + } | |
595 | + if (StringUtils.isNotEmpty(screeningModel.getOtherHighRisk())) { | |
596 | + stringBuilder.append(screeningModel.getOtherHighRisk()); | |
597 | + } | |
598 | + } | |
599 | + | |
600 | + screeningOutResult.convertToResult(screeningModel, zhuanCName, zhuanRname); | |
601 | + | |
602 | + /* 诊断指导 */ | |
603 | + String diagnosis = ""; | |
604 | + if (StringUtils.isNotEmpty(screeningModel.getDiagnosis())) { | |
605 | + List<String> temp = JsonUtil.toList(screeningModel.getDiagnosis(), String.class); | |
606 | + if (CollectionUtils.isNotEmpty(temp)) { | |
607 | + StringBuilder sb = new StringBuilder(); | |
608 | + for (String sId : temp) { | |
609 | + sb.append(FunvCommonUtil.getBaseicConfigByid(sId, basicConfigService)).append(","); | |
610 | + } | |
611 | + if (sb.toString().endsWith(",")) { | |
612 | + diagnosis = sb.substring(0, sb.length() - 1); | |
613 | + } else { | |
614 | + diagnosis = sb.toString(); | |
615 | + } | |
616 | + } | |
617 | + } | |
618 | + screeningOutResult.setDiagnosis(diagnosis); | |
619 | + | |
620 | + screeningOutResult.setrRisk(stringBuilder.toString()); | |
621 | + screeningOutResult.setScore(screeningModel.getScore()); | |
622 | + screeningOutResult.setReason(StringUtils.isNotEmpty(screeningModel.getReason()) ? screeningModel.getReason() : "--"); | |
623 | + List rLevel = new ArrayList(); | |
624 | + if (CollectionUtils.isNotEmpty(screeningModel.getrLevel())) { | |
625 | + try { | |
626 | + List<String> list = screeningModel.getrLevel(); | |
627 | + for (String str : list) { | |
628 | + BasicConfig basicConfig = basicConfigService.getOneBasicConfigById(str); | |
629 | + if (null != basicConfig) { | |
630 | + Map map = new HashMap(); | |
631 | + basicConfig.replenRisk(map); | |
632 | + rLevel.add(map); | |
633 | + } | |
634 | + } | |
635 | + } catch (Exception e) { | |
636 | + ExceptionUtils.catchException(e, "patients.getRiskLevelId error."); | |
637 | + } | |
638 | + screeningOutResult.setrLevel(HighScoreResult.filter(rLevel)); | |
639 | + } | |
640 | + screeningOutResult.setrLevel(rLevel); | |
641 | + Patients patients = patientsService.findOnePatientById(screeningModel.getParentId()); | |
642 | + if (patients != null) { | |
643 | + //筛查结果数据 | |
644 | + String screenStr = basicConfigService.getScreenResult(patients.getScreenResult()); | |
645 | + screeningOutResult.setScreenResult(screenStr); | |
646 | + if (null != patients) { | |
647 | + screeningOutResult.setIsGravida(patients.getType() == 3 ? "0" : "1"); | |
648 | + if (1 == patients.getDueStatus()) | |
649 | + screeningOutResult.setcDueWeek("终止妊娠"); | |
650 | + else if (patients.getType() == 3) | |
651 | + screeningOutResult.setcDueWeek("已分娩"); | |
652 | + } | |
653 | + } | |
654 | + data.add(screeningOutResult); | |
655 | + } | |
656 | + } | |
657 | + return new BaseListResponse().setData(data).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setPageInfo(referralApplyScreeningQuery.getPageInfo()); | |
658 | + } | |
659 | + | |
660 | + | |
512 | 661 | /** |
513 | 662 | * 查询 转诊申请 |
514 | 663 | * |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/ApplyQueryRequest.java
View file @
f36491d
1 | +package com.lyms.platform.operate.web.request; | |
2 | + | |
3 | +import com.lyms.platform.common.core.annotation.form.Form; | |
4 | +import com.lyms.platform.common.core.annotation.form.FormParam; | |
5 | + | |
6 | +/** | |
7 | + * 医联体--转出、转入产妇列表 查询请求 | |
8 | + */ | |
9 | +@Form | |
10 | +public class ApplyQueryRequest extends BasePageQueryRequest { | |
11 | + | |
12 | + private String time; | |
13 | + | |
14 | + public String getTime() { | |
15 | + return time; | |
16 | + } | |
17 | + | |
18 | + public void setTime(String time) { | |
19 | + this.time = time; | |
20 | + } | |
21 | +} |