| | |
| | | } catch (Exception e) { |
| | | log.error("人员入院科室处理出异常了:{}", e.getMessage()); |
| | | patMedInhosp1.setInDeptcheckFlag("2"); |
| | | patMedInhosp1.setLongTaskReason("人员入院科室处理出异常了:" + e.getMessage()); |
| | | patMedInhosp1.setLongTaskReason("人员入院科室处理出异常了"); |
| | | patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); |
| | | } |
| | | } |
| | |
| | | //再入院逻辑 |
| | | //景宁 出院首次(7天)随访一定要做 |
| | | boolean firstVisit = false; |
| | | if (orgId.equals("47255004333112711A1001") && serviceSubtask1.getVisitCount() != null && serviceSubtask1.getVisitCount() == 1) { |
| | | if (orgId.equals("47255004333112711A1001")) { |
| | | firstVisit = true; |
| | | } |
| | | if (!firstVisit) { |
| | |
| | | if (CollectionUtils.isEmpty(serviceTasks)) { |
| | | log.info("该手术对应手术等级的长期任务不存在,任务ID为:{}", taskid); |
| | | patMedOperationItem.setOpercheckFlag("2"); |
| | | patMedOperationItem.setLongTaskReason(longTaskReason + " & 该手术对应手术等级的长期任务不存在,任务ID为:" + taskid); |
| | | patMedOperationItemMapper.insertPatMedOperationItem(patMedOperationItem); |
| | | patMedOperationItem.setLongTaskReason(" & 该手术对应手术等级的长期任务不存在,任务ID为:" + taskid +";"); |
| | | patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem); |
| | | return; |
| | | } else { |
| | | serviceTask = serviceTasks.get(0); |
| | |
| | | |
| | | //封装serviceSubtask |
| | | ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperationItem, patArchive, config); |
| | | if (ObjectUtils.isEmpty(serviceSubtask)) { |
| | | if (ObjectUtils.isEmpty(serviceSubtask) || Objects.isNull(serviceSubtask.getTaskid())) { |
| | | return; |
| | | } |
| | | if (StringUtils.isNotEmpty(patMedOperationItem.getLeaveldeptcode())) { |
| | |
| | | PatMedOperationItem patMedOperationItem2 = new PatMedOperationItem(); |
| | | patMedOperationItem2.setId(patMedOperationItem.getId()); |
| | | patMedOperationItem2.setOpercheckFlag("2"); |
| | | patMedOperationItem2.setRemark("生成子任务失败 4"); |
| | | patMedOperationItem2.setLongTaskReason("生成子任务失败 4;"); |
| | | patMedOperationItem2.setUpdateTime(new Date()); |
| | | patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem2); |
| | | } |
| | | } catch (Exception e) { |
| | | //出错回滚事务 |
| | | |
| | | log.info("生成子任务报错回滚sserviceSubtask的taskid为:{},patid为:{}", serviceSubtask.getTaskid(), serviceSubtask.getPatid()); |
| | | log.error("生成子任务报错回滚sserviceSubtask的taskid为:{},patid为:{},手术详情ID为:{}", |
| | | serviceSubtask.getTaskid(), serviceSubtask.getPatid(), patMedOperationItem.getId(), e); |
| | | PatMedOperationItem patMedOperationItem2 = new PatMedOperationItem(); |
| | | patMedOperationItem2.setId(patMedOperationItem.getId()); |
| | | patMedOperationItem2.setOpercheckFlag("2"); |
| | | patMedOperationItem2.setRemark("生成子任务报错回滚 4"); |
| | | patMedOperationItem2.setUpdateTime(new Date()); |
| | | patMedOperationItem2.setLongTaskReason("生成子任务报错回滚 4;"); |
| | | patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem2); |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | private Integer addServiceSubtaskPreachform(ServiceSubtask serviceSubtask, String sendstate) { |
| | | //将preachformDesc的json对象,放到list集合中 |
| | | ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); |
| | | if (Objects.isNull(serviceTask)) { |
| | | log.error("addServiceSubtaskPreachform taskid={} 查不到任务,跳过preachform子表生成", serviceSubtask.getTaskid()); |
| | | return 0; |
| | | } |
| | | String preachformDesc = serviceTask.getPreachformDesc(); |
| | | |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | |
| | | }); |
| | | } catch (JsonProcessingException e) { |
| | | log.error("preachform转List<ServiceSubtaskPreachform>报错了:{}", e.getMessage()); |
| | | } |
| | | if (CollectionUtils.isEmpty(serviceSubtaskPreachformList)) { |
| | | log.error("preachformDesc解析后为空,跳过preachform子表生成,taskid为:{},preachformDesc为:{}", |
| | | serviceSubtask.getTaskid(), preachformDesc); |
| | | return 0; |
| | | } |
| | | for (ServiceSubtaskPreachform serviceSubtaskPreachform : serviceSubtaskPreachformList) { |
| | | serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); |
| | |
| | | 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); |
| | | patMedOperationItem.setOpercheckFlag("2"); |
| | | patMedOperationItem.setLongTaskReason("该患者手术出院时间为空,手术详情ID为:" + patMedOperationItem.getId() + ";"); |
| | | patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem); |
| | | // patMedInhosp1.setDeptcheckFlag("2"); |
| | | // patMedInhosp1.setRemark(patMedInhosp1.getRemark() + "& 该患者手术出院时间为空,出院记录ID为:" + patMedInhosp1.getInhospid()); |
| | | // patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); |
| | | //如果出院时间为空,则返回一个新对象 |
| | | return new ServiceSubtask(); |
| | | return null; |
| | | } |
| | | serviceSubtask.setLongSendTime(newDate); |
| | | serviceSubtask.setVisitTime(newDate); |
| | |
| | | } |
| | | //景宁 出院首次(7天)随访一定要做 |
| | | boolean firstVisit = false; |
| | | if (serviceSubtask1.getOrgid().equals("47255004333112711A1001") && serviceSubtask1.getVisitCount() != null && serviceSubtask1.getVisitCount() == 1) { |
| | | if (serviceSubtask1.getOrgid().equals("47255004333112711A1001")) { |
| | | firstVisit = true; |
| | | } |
| | | if (!firstVisit) { |
| | |
| | | continue; |
| | | } |
| | | // 根据患者的疾病,获取该疾病的长期任务 |
| | | ServiceTaskoper serviceTaskoper = new ServiceTaskoper(); |
| | | serviceTaskoper.setLongtask(1L); |
| | | serviceTaskoper.setOrgid(opItem.getOrgid()); |
| | | serviceTaskoper.setOplevelcode(opItem.getOplevelcode()); |
| | | |
| | | //根据科室、病区过滤 |
| | | List<ServiceTaskoper> serviceTaskopersDept = new ArrayList<>(); |
| | | if(StringUtils.isNotEmpty(opItem.getLeaveldeptcode())){ |
| | | serviceTaskoper.setDeptCode(opItem.getLeaveldeptcode()); |
| | | }else { |
| | | serviceTaskoper.setWardCode(opItem.getLeavehospitaldistrictcode()); |
| | | ServiceTaskoper serviceTaskoper1 = new ServiceTaskoper(); |
| | | serviceTaskoper1.setLongtask(1L); |
| | | serviceTaskoper1.setOrgid(opItem.getOrgid()); |
| | | serviceTaskoper1.setOplevelcode(opItem.getOplevelcode()); |
| | | serviceTaskoper1.setDeptCode(opItem.getLeaveldeptcode()); |
| | | serviceTaskopersDept = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper1); |
| | | } |
| | | |
| | | List<ServiceTaskoper> serviceTaskopers = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper); |
| | | |
| | | List<ServiceTaskoper> serviceTaskopersWard = new ArrayList<>(); |
| | | if(StringUtils.isNotEmpty(opItem.getLeavehospitaldistrictcode())){ |
| | | ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper(); |
| | | serviceTaskoper2.setLongtask(1L); |
| | | serviceTaskoper2.setOrgid(opItem.getOrgid()); |
| | | serviceTaskoper2.setOplevelcode(opItem.getOplevelcode()); |
| | | serviceTaskoper2.setWardCode(opItem.getLeavehospitaldistrictcode()); |
| | | serviceTaskopersWard = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper2); |
| | | } |
| | | |
| | | |
| | | List<ServiceTaskoper> serviceTaskopers = new ArrayList<>(); |
| | | serviceTaskopers.addAll(serviceTaskopersDept); |
| | | serviceTaskopers.addAll(serviceTaskopersWard); |
| | | //如果部门模板为空(将deptIsNull设置为true) |
| | | if (CollectionUtils.isEmpty(serviceTaskopers) || serviceTaskopers.size() == 0) { |
| | | PatMedOperationItem patMedOperationItem = patMedOperationItemMapper.selectPatMedOperationItemById(opItem.getId()); |
| | | patMedOperationItem.setOpercheckFlag("2"); |
| | | patMedOperationItem.setLongTaskReason(patMedOperationItem.getLongTaskReason() + "所患的手术未配置长期任务;"); |
| | | patMedOperationItem.setLongTaskReason("所患的手术未配置长期任务;"); |
| | | patMedOperationItem.setUpdateTime(new Date()); |
| | | patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem); |
| | | } else { |
| | | for (ServiceTaskoper serviceTaskoper1 : serviceTaskopers) { |
| | | writeInSubTaskForOp(serviceTaskoper1.getTaskId(), true, opItem, config); |
| | | for (ServiceTaskoper serviceTaskoper : serviceTaskopers) { |
| | | writeInSubTaskForOp(serviceTaskoper.getTaskId(), true, opItem, config); |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | log.error("人员手术处理出异常了:{}", e.getMessage()); |
| | | opItem.setUpdateTime(new Date()); |
| | | opItem.setOpercheckFlag("2"); |
| | | opItem.setLongTaskReason("人员手术处理异常"); |
| | | patMedOperationItemMapper.updatePatMedOperationItem(opItem); |