陈昶聿
2026-04-25 199805ada794db5d5779be1ad334e5ba310682ab
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -221,168 +221,168 @@
    @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();
            //获取需要出院疾病随访,未处理的数据