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 | +} |