| | |
| | | */ |
| | | @Override |
| | | public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp) { |
| | | if (patMedInhosp.getCry() == 0) { |
| | | patMedInhosp.setDeptcodeList(patMedInhosp.getLeaveldeptcodes()); |
| | | patMedInhosp.setHospitaldistrictcodeList(patMedInhosp.getLeavehospitaldistrictcodes()); |
| | | patMedInhosp.setLeaveldeptcodes(null); |
| | | patMedInhosp.setLeavehospitaldistrictcodes(null); |
| | | patMedInhosp.setInhospstate("0"); |
| | | } else if (patMedInhosp.getCry() == 1) { |
| | | patMedInhosp.setInhospstate("1"); |
| | | } |
| | | |
| | | List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); |
| | | for (PatMedInhosp patMedInhosp1 : patMedInhospList) { |
| | | String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); |
| | |
| | | public PatMedRes selectPatMedInhospListCount(PatMedReq patMedReq) { |
| | | PatMedRes patMedRes = null; |
| | | // 获取当前登陆人的部门权限 |
| | | if (org.springframework.util.CollectionUtils.isEmpty(patMedReq.getDeptcodeList())) { |
| | | // Long userId = SecurityUtils.getUserId(); |
| | | // List<SysDept> sysDepts = sysUserDeptMapper.selectDeptListByUserId(userId); |
| | | // List<String> deptCode = new ArrayList<>(); |
| | | // for (SysDept sysDept : sysDepts) { |
| | | // deptCode.add(sysDept.getDeptId().toString()); |
| | | // } |
| | | // patMedReq.setDeptcodeList(deptCode); |
| | | // patMedRes = patMedInhospMapper.selectPatMedInhospCount(patMedReq); |
| | | } |
| | | patMedRes = patMedInhospMapper.selectPatMedInhospCount(patMedReq); |
| | | return patMedRes; |
| | | } |
| | |
| | | @Override |
| | | public int dealOutHospInfo(String config) { |
| | | |
| | | PatMedInhosp pmks = new PatMedInhosp(); |
| | | //获取需要出院部门随访,未处理的数据 |
| | | pmks.setDeptcheckFlag("0"); |
| | | pmks.setInhospstate("1"); |
| | | pmks.setFuflag("1"); |
| | | List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks); |
| | | log.info("dealOutHospInfo需要处理的出院部门患者信息:{}", CollectionUtils.isNotEmpty(patMedInhosps) ? patMedInhosps.size() : null); |
| | | for (PatMedInhosp patMedInhosp1 : patMedInhosps) { |
| | | String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); |
| | | patMedInhosp1.setTagname(tagname); |
| | | } |
| | | |
| | | //科室 |
| | | for (PatMedInhosp patMedInhosp1 : patMedInhosps) { |
| | | //获取患者信息 |
| | | PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid()); |
| | | if (Objects.isNull(patArchive)) { |
| | | patMedInhosp1.setDeptcheckFlag("2"); |
| | | patMedInhosp1.setLongTaskReason("患者基本信息为空"); |
| | | patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); |
| | | continue; |
| | | } |
| | | try { |
| | | //根据患者所在科室,获取该科室的长期任务 |
| | | ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); |
| | | serviceTaskdept.setLongtask(1L); |
| | | serviceTaskdept.setDeptCode(patMedInhosp1.getLeaveldeptcode()); |
| | | serviceTaskdept.setDeptType("1"); |
| | | serviceTaskdept.setOrgid(patMedInhosp1.getOrgid()); |
| | | List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept); |
| | | //如果部门模板为空(将deptIsNull设置为true) |
| | | if (CollectionUtils.isEmpty(serviceTaskdepts) || serviceTaskdepts.size() == 0) { |
| | | PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid()); |
| | | patMedInhosp1.setDeptcheckFlag("2"); |
| | | patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该患者所在科室未配置长期任务;"); |
| | | patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); |
| | | } else { |
| | | for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) { |
| | | writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config); |
| | | } |
| | | // patMedInhosp1.setDeptcheckFlag("1"); |
| | | // PatMedInhosp pmks = new PatMedInhosp(); |
| | | // //获取需要出院部门随访,未处理的数据 |
| | | // pmks.setDeptcheckFlag("0"); |
| | | // pmks.setInhospstate("1"); |
| | | // pmks.setFuflag("1"); |
| | | // List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks); |
| | | // log.info("dealOutHospInfo需要处理的出院部门患者信息:{}", CollectionUtils.isNotEmpty(patMedInhosps) ? patMedInhosps.size() : null); |
| | | // for (PatMedInhosp patMedInhosp1 : patMedInhosps) { |
| | | // String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); |
| | | // patMedInhosp1.setTagname(tagname); |
| | | // } |
| | | // |
| | | // //科室 |
| | | // for (PatMedInhosp patMedInhosp1 : patMedInhosps) { |
| | | // //获取患者信息 |
| | | // PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid()); |
| | | // if (Objects.isNull(patArchive)) { |
| | | // patMedInhosp1.setDeptcheckFlag("2"); |
| | | // patMedInhosp1.setLongTaskReason("患者基本信息为空"); |
| | | // patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); |
| | | // continue; |
| | | // } |
| | | // try { |
| | | // //根据患者所在科室,获取该科室的长期任务 |
| | | // ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); |
| | | // serviceTaskdept.setLongtask(1L); |
| | | // serviceTaskdept.setDeptCode(patMedInhosp1.getLeaveldeptcode()); |
| | | // serviceTaskdept.setDeptType("1"); |
| | | // serviceTaskdept.setOrgid(patMedInhosp1.getOrgid()); |
| | | // List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept); |
| | | // //如果部门模板为空(将deptIsNull设置为true) |
| | | // if (CollectionUtils.isEmpty(serviceTaskdepts) || serviceTaskdepts.size() == 0) { |
| | | // PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid()); |
| | | // patMedInhosp1.setDeptcheckFlag("2"); |
| | | // patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该患者所在科室未配置长期任务;"); |
| | | // patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("人员科室处理出异常了:{}", e.getMessage()); |
| | | patMedInhosp1.setDeptcheckFlag("2"); |
| | | patMedInhosp1.setLongTaskReason("人员科室处理异常:" + e.getMessage()); |
| | | patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); |
| | | } |
| | | } |
| | | // } else { |
| | | // for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) { |
| | | // writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config); |
| | | // } |
| | | //// patMedInhosp1.setDeptcheckFlag("1"); |
| | | //// patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); |
| | | // } |
| | | // |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // log.error("人员科室处理出异常了:{}", e.getMessage()); |
| | | // patMedInhosp1.setDeptcheckFlag("2"); |
| | | // patMedInhosp1.setLongTaskReason("人员科室处理异常:" + e.getMessage()); |
| | | // patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); |
| | | // } |
| | | // } |
| | | |
| | | //根据患者所在病区,获取该病区的长期任务,新华医院可以先不用根据病区和疾病来做 |
| | | if (!active.equals("xh")) { |
| | | PatMedInhosp pmbq = new PatMedInhosp(); |
| | | //获取需要出院部门随访,未处理的数据 |
| | | pmbq.setWardcheckFlag("0"); |
| | | pmbq.setInhospstate("1"); |
| | | pmbq.setFuflag("1"); |
| | | List<PatMedInhosp> patMedInhospBQs = patMedInhospMapper.selectPatMedInhospList(pmbq); |
| | | log.info("dealOutHospInfo需要处理的出院病区患者信息:{}", CollectionUtils.isNotEmpty(patMedInhospBQs) ? patMedInhospBQs.size() : null); |
| | | for (PatMedInhosp patMedInhosp1 : patMedInhospBQs) { |
| | | String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); |
| | | patMedInhosp1.setTagname(tagname); |
| | | } |
| | | |
| | | //病区数据处理 |
| | | for (PatMedInhosp pmiBQ1 : patMedInhospBQs) { |
| | | //获取患者信息 |
| | | PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiBQ1.getPatid()); |
| | | if (Objects.isNull(patArchive)) { |
| | | pmiBQ1.setWardcheckFlag("2"); |
| | | pmiBQ1.setLongTaskReason("患者基本信息为空"); |
| | | patMedInhospMapper.updatePatMedInhosp(pmiBQ1); |
| | | continue; |
| | | } |
| | | try { |
| | | ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); |
| | | serviceTaskdept.setLongtask(1L); |
| | | serviceTaskdept.setDeptCode(pmiBQ1.getLeavehospitaldistrictcode()); |
| | | serviceTaskdept.setDeptType("2"); |
| | | serviceTaskdept.setOrgid(pmiBQ1.getOrgid()); |
| | | List<ServiceTaskdept> serviceTaskdeptList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept); |
| | | //如果部门模板为空(将deptIsNull设置为true) |
| | | if (CollectionUtils.isEmpty(serviceTaskdeptList) || serviceTaskdeptList.size() == 0) { |
| | | PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiBQ1.getInhospid()); |
| | | pmiBQ1.setWardcheckFlag("2"); |
| | | pmiBQ1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该患者所在病区未配置长期任务;"); |
| | | patMedInhospMapper.updatePatMedInhosp(pmiBQ1); |
| | | } else { |
| | | for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) { |
| | | writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiBQ1, patArchive, 2, config); |
| | | } |
| | | // pmiBQ1.setWardcheckFlag("1"); |
| | | // PatMedInhosp pmbq = new PatMedInhosp(); |
| | | // //获取需要出院部门随访,未处理的数据 |
| | | // pmbq.setWardcheckFlag("0"); |
| | | // pmbq.setInhospstate("1"); |
| | | // pmbq.setFuflag("1"); |
| | | // List<PatMedInhosp> patMedInhospBQs = patMedInhospMapper.selectPatMedInhospList(pmbq); |
| | | // log.info("dealOutHospInfo需要处理的出院病区患者信息:{}", CollectionUtils.isNotEmpty(patMedInhospBQs) ? patMedInhospBQs.size() : null); |
| | | // for (PatMedInhosp patMedInhosp1 : patMedInhospBQs) { |
| | | // String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); |
| | | // patMedInhosp1.setTagname(tagname); |
| | | // } |
| | | // |
| | | // //病区数据处理 |
| | | // for (PatMedInhosp pmiBQ1 : patMedInhospBQs) { |
| | | // //获取患者信息 |
| | | // PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiBQ1.getPatid()); |
| | | // if (Objects.isNull(patArchive)) { |
| | | // pmiBQ1.setWardcheckFlag("2"); |
| | | // pmiBQ1.setLongTaskReason("患者基本信息为空"); |
| | | // patMedInhospMapper.updatePatMedInhosp(pmiBQ1); |
| | | // continue; |
| | | // } |
| | | // try { |
| | | // ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); |
| | | // serviceTaskdept.setLongtask(1L); |
| | | // serviceTaskdept.setDeptCode(pmiBQ1.getLeavehospitaldistrictcode()); |
| | | // serviceTaskdept.setDeptType("2"); |
| | | // serviceTaskdept.setOrgid(pmiBQ1.getOrgid()); |
| | | // List<ServiceTaskdept> serviceTaskdeptList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept); |
| | | // //如果部门模板为空(将deptIsNull设置为true) |
| | | // if (CollectionUtils.isEmpty(serviceTaskdeptList) || serviceTaskdeptList.size() == 0) { |
| | | // PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiBQ1.getInhospid()); |
| | | // pmiBQ1.setWardcheckFlag("2"); |
| | | // pmiBQ1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该患者所在病区未配置长期任务;"); |
| | | // patMedInhospMapper.updatePatMedInhosp(pmiBQ1); |
| | | } |
| | | |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("人员病区处理出异常了:{}", e.getMessage()); |
| | | pmiBQ1.setWardcheckFlag("2"); |
| | | pmiBQ1.setLongTaskReason("人员病区处理异常:" + e.getMessage()); |
| | | patMedInhospMapper.updatePatMedInhosp(pmiBQ1); |
| | | } |
| | | } |
| | | |
| | | PatMedInhosp pmjb = new PatMedInhosp(); |
| | | //获取需要出院疾病随访,未处理的数据 |
| | | pmjb.setDiagcheckFlag("0"); |
| | | pmjb.setInhospstate("1"); |
| | | pmjb.setFuflag("1"); |
| | | List<PatMedInhosp> patMedInhospJBs = patMedInhospMapper.selectPatMedInhospList(pmjb); |
| | | log.info("dealOutHospInfo需要处理的出院疾病患者信息:{}", CollectionUtils.isNotEmpty(patMedInhospJBs) ? patMedInhospJBs.size() : null); |
| | | for (PatMedInhosp patMedInhosp1 : patMedInhospJBs) { |
| | | String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); |
| | | patMedInhosp1.setTagname(tagname); |
| | | } |
| | | |
| | | for (PatMedInhosp pmiJB : patMedInhospJBs) { |
| | | //获取患者信息 |
| | | PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiJB.getPatid()); |
| | | if (Objects.isNull(patArchive)) { |
| | | pmiJB.setDiagcheckFlag("2"); |
| | | pmiJB.setLongTaskReason("患者基本信息为空"); |
| | | patMedInhospMapper.updatePatMedInhosp(pmiJB); |
| | | continue; |
| | | } |
| | | try { |
| | | if (StringUtils.isEmpty(pmiJB.getLeaveicd10code())) { |
| | | continue; |
| | | } |
| | | // 根据患者的疾病,获取该疾病的长期任务 |
| | | ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag(); |
| | | serviceTaskdiag.setLongtask(1L); |
| | | serviceTaskdiag.setIcd10code(pmiJB.getLeaveicd10code()); |
| | | serviceTaskdiag.setOrgid(pmiJB.getOrgid()); |
| | | |
| | | List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagList(serviceTaskdiag); |
| | | //如果部门模板为空(将deptIsNull设置为true) |
| | | if (CollectionUtils.isEmpty(serviceTaskdiags) || serviceTaskdiags.size() == 0) { |
| | | PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid()); |
| | | pmiJB.setDiagcheckFlag("2"); |
| | | pmiJB.setLongTaskReason(patMedInhosp.getLongTaskReason() + "所患的疾病未配置长期任务;"); |
| | | patMedInhospMapper.updatePatMedInhosp(pmiJB); |
| | | } else { |
| | | for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) { |
| | | writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config); |
| | | } |
| | | // pmiJB.setDiagcheckFlag("1"); |
| | | // } else { |
| | | // for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) { |
| | | // writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiBQ1, patArchive, 2, config); |
| | | // } |
| | | //// pmiBQ1.setWardcheckFlag("1"); |
| | | //// patMedInhospMapper.updatePatMedInhosp(pmiBQ1); |
| | | // } |
| | | // |
| | | // |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // log.error("人员病区处理出异常了:{}", e.getMessage()); |
| | | // pmiBQ1.setWardcheckFlag("2"); |
| | | // pmiBQ1.setLongTaskReason("人员病区处理异常:" + e.getMessage()); |
| | | // patMedInhospMapper.updatePatMedInhosp(pmiBQ1); |
| | | // } |
| | | // } |
| | | // |
| | | // PatMedInhosp pmjb = new PatMedInhosp(); |
| | | // //获取需要出院疾病随访,未处理的数据 |
| | | // pmjb.setDiagcheckFlag("0"); |
| | | // pmjb.setInhospstate("1"); |
| | | // pmjb.setFuflag("1"); |
| | | // List<PatMedInhosp> patMedInhospJBs = patMedInhospMapper.selectPatMedInhospList(pmjb); |
| | | // log.info("dealOutHospInfo需要处理的出院疾病患者信息:{}", CollectionUtils.isNotEmpty(patMedInhospJBs) ? patMedInhospJBs.size() : null); |
| | | // for (PatMedInhosp patMedInhosp1 : patMedInhospJBs) { |
| | | // String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); |
| | | // patMedInhosp1.setTagname(tagname); |
| | | // } |
| | | // |
| | | // for (PatMedInhosp pmiJB : patMedInhospJBs) { |
| | | // //获取患者信息 |
| | | // PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiJB.getPatid()); |
| | | // if (Objects.isNull(patArchive)) { |
| | | // pmiJB.setDiagcheckFlag("2"); |
| | | // pmiJB.setLongTaskReason("患者基本信息为空"); |
| | | // patMedInhospMapper.updatePatMedInhosp(pmiJB); |
| | | // continue; |
| | | // } |
| | | // try { |
| | | // if (StringUtils.isEmpty(pmiJB.getLeaveicd10code())) { |
| | | // continue; |
| | | // } |
| | | // // 根据患者的疾病,获取该疾病的长期任务 |
| | | // ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag(); |
| | | // serviceTaskdiag.setLongtask(1L); |
| | | // serviceTaskdiag.setIcd10code(pmiJB.getLeaveicd10code()); |
| | | // serviceTaskdiag.setOrgid(pmiJB.getOrgid()); |
| | | // |
| | | // List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagList(serviceTaskdiag); |
| | | // //如果部门模板为空(将deptIsNull设置为true) |
| | | // if (CollectionUtils.isEmpty(serviceTaskdiags) || serviceTaskdiags.size() == 0) { |
| | | // PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid()); |
| | | // pmiJB.setDiagcheckFlag("2"); |
| | | // pmiJB.setLongTaskReason(patMedInhosp.getLongTaskReason() + "所患的疾病未配置长期任务;"); |
| | | // patMedInhospMapper.updatePatMedInhosp(pmiJB); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("人员疾病处理出异常了:{}", e.getMessage()); |
| | | pmiJB.setDiagcheckFlag("2"); |
| | | pmiJB.setLongTaskReason("人员疾病处理异常:" + e.getMessage()); |
| | | patMedInhospMapper.updatePatMedInhosp(pmiJB); |
| | | } |
| | | } |
| | | // } else { |
| | | // for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) { |
| | | // writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config); |
| | | // } |
| | | //// pmiJB.setDiagcheckFlag("1"); |
| | | //// patMedInhospMapper.updatePatMedInhosp(pmiJB); |
| | | // } |
| | | // |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // log.error("人员疾病处理出异常了:{}", e.getMessage()); |
| | | // pmiJB.setDiagcheckFlag("2"); |
| | | // pmiJB.setLongTaskReason("人员疾病处理异常:" + e.getMessage()); |
| | | // patMedInhospMapper.updatePatMedInhosp(pmiJB); |
| | | // } |
| | | // } |
| | | // 手术随访 |
| | | PatMedOperationItem pmoi = new PatMedOperationItem(); |
| | | //获取需要出院疾病随访,未处理的数据 |
| | |
| | | |
| | | /** |
| | | * 多维度随访 |
| | | * |
| | | * @param config |
| | | * @return |
| | | */ |
| | |
| | | * 按维度找到所有匹配长期任务,批量生成 subtask |
| | | * type: 1=科室, 2=病区, 3=疾病 |
| | | */ |
| | | private void processTasksByDimension(PatMedInhosp patMedInhosp1, |
| | | PatArchive patArchive, |
| | | String config, int type) { |
| | | private void processTasksByDimension(PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, int type) { |
| | | List<Long> matchedTaskIds = findMatchingTaskIds(patMedInhosp1, type); |
| | | |
| | | if (CollectionUtils.isEmpty(matchedTaskIds)) { |
| | | String reason = getDimensionReason(type); |
| | | markFlagAsNoConfig(patMedInhosp1, type, reason); |
| | | String reason = getDimensionReason(type); |
| | | markFlagAsNoConfig(patMedInhosp1, type, reason); |
| | | return; |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | private String getDimensionReason(int type){ |
| | | private String getDimensionReason(int type) { |
| | | switch (type) { |
| | | case 1: { // 科室 |
| | | return "未找到科室匹配的长期任务"; |
| | | } |
| | | } |
| | | case 2: { // 病区 |
| | | return "未找到病区匹配的长期任务"; |
| | | } |
| | |
| | | return "多维长期任务-匹配类型为空"; |
| | | } |
| | | |
| | | private void markFlagAsNoConfig(PatMedInhosp patMedInhosp, |
| | | int type, |
| | | String reason){ |
| | | private void markFlagAsNoConfig(PatMedInhosp patMedInhosp, int type, String reason) { |
| | | switch (type) { |
| | | case 1: { // 科室 |
| | | patMedInhosp.setDeptcheckFlag("2"); |
| | |
| | | |
| | | } |
| | | |
| | | private void markAllFlagsAsError(PatMedInhosp patMedInhosp, |
| | | String reason){ |
| | | private void markAllFlagsAsError(PatMedInhosp patMedInhosp, String reason) { |
| | | patMedInhosp.setDeptcheckFlag("2"); |
| | | patMedInhosp.setWardcheckFlag("2"); |
| | | patMedInhosp.setDiagcheckFlag("2"); |
| | | patMedInhosp.setRemark(reason); |
| | | patMedInhospMapper.updatePatMedInhosp(patMedInhosp); |
| | | } |
| | | |
| | | /** |
| | | * 根据维度类型查询匹配的长期任务 ID 列表 |
| | | */ |
| | |
| | | query.setDeptCode(patMedInhosp1.getLeaveldeptcode()); |
| | | query.setDeptType("1"); |
| | | query.setOrgid(patMedInhosp1.getOrgid()); |
| | | return serviceTaskdeptMapper.selectServiceTaskdeptList(query) |
| | | .stream().map(ServiceTaskdept::getTaskId).collect(Collectors.toList()); |
| | | return serviceTaskdeptMapper.selectServiceTaskdeptList(query).stream().map(ServiceTaskdept::getTaskId).collect(Collectors.toList()); |
| | | } |
| | | case 2: { // 病区 |
| | | ServiceTaskdept query = new ServiceTaskdept(); |
| | |
| | | query.setDeptCode(patMedInhosp1.getLeavehospitaldistrictcode()); |
| | | query.setDeptType("2"); |
| | | query.setOrgid(patMedInhosp1.getOrgid()); |
| | | return serviceTaskdeptMapper.selectServiceTaskdeptList(query) |
| | | .stream().map(ServiceTaskdept::getTaskId).collect(Collectors.toList()); |
| | | return serviceTaskdeptMapper.selectServiceTaskdeptList(query).stream().map(ServiceTaskdept::getTaskId).collect(Collectors.toList()); |
| | | } |
| | | case 3: { // 疾病 |
| | | if (StringUtils.isEmpty(patMedInhosp1.getLeaveicd10code())) return Collections.emptyList(); |
| | |
| | | query.setLongtask(1L); |
| | | query.setIcd10code(patMedInhosp1.getLeaveicd10code()); |
| | | query.setOrgid(patMedInhosp1.getOrgid()); |
| | | return serviceTaskdiagMapper.selectServiceTaskdiagList(query) |
| | | .stream().map(ServiceTaskdiag::getTaskId).collect(Collectors.toList()); |
| | | return serviceTaskdiagMapper.selectServiceTaskdiagList(query).stream().map(ServiceTaskdiag::getTaskId).collect(Collectors.toList()); |
| | | } |
| | | } |
| | | return Collections.emptyList(); |
| | |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param taskid 任务id |
| | | * @param check 是否需要校验 |
| | | * @param taskid 任务id |
| | | * @param check 是否需要校验 |
| | | * @param patMedInhosp1 病人出入院信息 |
| | | * @param patArchive 病人信息 |
| | | * @param type 随访类型(1-科室,2-病区,3-疾病) |
| | | * @param config 配置信息 visit.early.day |
| | | * @param patArchive 病人信息 |
| | | * @param type 随访类型(1-科室,2-病区,3-疾病) |
| | | * @param config 配置信息 visit.early.day |
| | | */ |
| | | //将患者放到subtask中 |
| | | private void writeInSubTask(Long taskid, Boolean check, PatMedInhosp patMedInhosp1, PatArchive patArchive, Integer type, String config) { |
| | |
| | | if (Objects.isNull(patArchive)) { |
| | | return; |
| | | } |
| | | PatMedInhosp patMedInhosp = new PatMedInhosp(); |
| | | patMedInhosp.setPatid(patMedOperation.getPatid()); |
| | | patMedInhosp.setInhospstate("1"); |
| | | patMedInhosp.setFuflag("1"); |
| | | List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); |
| | | |
| | | if (CollectionUtils.isEmpty(patMedInhospList)) { |
| | | return; |
| | | } |
| | | |
| | | //封装serviceSubtask |
| | | ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedOperation, patMedOperationItem, patArchive, config); |
| | | ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperation, patMedOperationItem, patArchive, config); |
| | | if (ObjectUtils.isEmpty(serviceSubtask)) { |
| | | return; |
| | | } |
| | |
| | | } |
| | | |
| | | //封装serviceSubtask |
| | | private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedOperation patMedOperation, PatMedOperationItem patMedOperationItem, PatArchive patArchive, String config) { |
| | | private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatMedOperation patMedOperation, PatMedOperationItem patMedOperationItem, PatArchive patArchive, String config) { |
| | | ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class); |
| | | serviceSubtask.setTaskid(serviceTask.getTaskid()); |
| | | if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid())) |
| | |
| | | serviceSubtask.setOperationItemId(patMedOperationItem.getId()); |
| | | serviceSubtask.setUpdateBy(serviceTask.getUpdateBy()); |
| | | serviceSubtask.setUpdateTime(new Date()); |
| | | |
| | | //todo |
| | | //设置发送时间 |
| | | if (serviceTask.getSendDay() == null) serviceTask.setSendDay(1L); |
| | | Date newDate = null; |
| | | //todo |
| | | newDate = addDays(patMedOperation.getCreateTime(), serviceTask.getSendDay().intValue()); |
| | | if (!Objects.isNull(patMedInhosp1.getEndtime())) { |
| | | newDate = addDays(patMedInhosp1.getEndtime(), serviceTask.getSendDay().intValue()); |
| | | } else { |
| | | patMedInhosp1.setDeptcheckFlag("2"); |
| | | patMedInhosp1.setRemark(patMedInhosp1.getRemark() + "& 该患者手术出院时间为空,出院记录ID为:" + patMedInhosp1.getInhospid()); |
| | | patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); |
| | | //如果出院时间为空,则返回一个新对象 |
| | | return new ServiceSubtask(); |
| | | } |
| | | serviceSubtask.setLongSendTime(newDate); |
| | | serviceSubtask.setVisitTime(newDate); |
| | | |
| | |
| | | if ("3".equals(serviceTask.getType())) { |
| | | serviceSubtask.setVisitTime(minusDay(newDate, StringUtils.isNotEmpty(config) ? Integer.parseInt(config) : 0)); |
| | | } |
| | | |
| | | //患者发送时间 |
| | | if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) { |
| | | String remark = patArchive.getNotrequiredreason(); |
| | |
| | | //不是长期任务,不处理 |
| | | continue; |
| | | } |
| | | if (serviceSubtask1.getEndtime().before(patMedInhosp1.getStarttime())) { |
| | | //如果当前循环的子任务的出院时间在“准备新增的子任务”的出院时间之前,则将循环的子任务停掉 |
| | | // log.error("患者再入院的serviceSubtask1为:{}", serviceSubtask1); |
| | | serviceSubtask1.setSendstate(4L); |
| | | serviceSubtask1.setRemark("患者再入院"); |
| | | serviceSubtask1.setResult("error"); |
| | | // serviceSubtask1.setFinishtime(new Date()); |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1); |
| | | //景宁 出院首次(7天)随访一定要做 |
| | | boolean firstVisit = false; |
| | | if (serviceSubtask1.getOrgid().equals("47255004333112711A1001") && serviceSubtask1.getVisitCount() != null && serviceSubtask1.getVisitCount() == 1) { |
| | | firstVisit = true; |
| | | } |
| | | if (!firstVisit) { |
| | | if (serviceSubtask1.getEndtime().before(patMedInhosp1.getStarttime())) { |
| | | //如果当前循环的子任务的出院时间在“准备新增的子任务”的出院时间之前,则将循环的子任务停掉 |
| | | // log.error("患者再入院的serviceSubtask1为:{}", serviceSubtask1); |
| | | serviceSubtask1.setSendstate(4L); |
| | | serviceSubtask1.setIsVisitAgain(2); |
| | | serviceSubtask1.setRemark("患者再入院"); |
| | | serviceSubtask1.setResult("error"); |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | //将患入的入院数据设置为已处理 |
| | | //更新状态值 patMedInhosp1.setDeptcheckFlag("0"); |
| | | //patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); |
| | | } catch (Exception e) { |
| | | log.error("入院数据信息出异常了:{},{}", patMedInhosp1, e.getMessage()); |
| | | } |