8590ef6a9ea67dc789436ac3558ed17a1e446c1a..ae3d8d1b4e5d77323197aa298e3c767dc4859f0e
2025-04-23 liusheng
代码提交
ae3d8d 对比 | 目录
2025-04-23 liusheng
代码提交
d76e92 对比 | 目录
2025-04-23 liusheng
代码提交
3000e6 对比 | 目录
已修改6个文件
199 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtask.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -13,6 +13,8 @@
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.smartor.domain.*;
import com.smartor.mapper.PatMedInhospMapper;
import com.smartor.mapper.PatMedOuthospMapper;
import com.smartor.service.IServiceSubtaskRecordService;
import com.smartor.service.IServiceSubtaskService;
import io.swagger.annotations.Api;
smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
@@ -566,4 +566,5 @@
    @ApiModelProperty(value = "患者来源:0本地患者表    1外部患者表")
    private String patfrom;
}
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -189,30 +189,25 @@
    @Override
    public int dealOutHospInfo() {
        //定义三个变量用来记录,这个患者是不是三个随访都是为空
        Boolean deptIsNull = false;
        Boolean wardIsNull = false;
        Boolean diagIsNull = false;
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        PatMedInhosp pmks = new PatMedInhosp();
        //获取需要出院部门随访,未处理的数据
        patMedInhosp.setDeptcheckFlag("0");
        patMedInhosp.setInhospstate("1");
        patMedInhosp.setFuflag("1");
        List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        log.error("dealOutHospInfo需要处理的出院患者信息:{}", patMedInhosps);
        pmks.setDeptcheckFlag("0");
        pmks.setInhospstate("1");
        pmks.setFuflag("1");
        List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks);
        log.error("dealOutHospInfo需要处理的出院部门患者信息:{}", patMedInhosps);
        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.setWardcheckFlag("2");
                patMedInhosp1.setDiagcheckFlag("2");
                patMedInhosp1.setLongTaskReason("患者基本信息为空");
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                continue;
@@ -223,59 +218,19 @@
                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) {
                    deptIsNull = true;
                    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);
                    }
                    patMedInhosp1.setDeptcheckFlag("1");
                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                }
                //根据患者所在病区,获取该病区的长期任务,新华医院可以先不用根据病区和疾病来做
                if (visitHosp != 1) {
                    serviceTaskdept.setLongtask(1L);
                    serviceTaskdept.setDeptCode(patMedInhosp1.getLeavehospitaldistrictcode());
                    serviceTaskdept.setDeptType("2");
                    List<ServiceTaskdept> serviceTaskdeptList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
                    //如果部门模板为空(将deptIsNull设置为true)
                    if (CollectionUtils.isEmpty(serviceTaskdeptList) || serviceTaskdeptList.size() == 0) {
                        wardIsNull = true;
                    } else {
                        for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) {
                            writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 2);
                        }
                        patMedInhosp1.setWardcheckFlag("1");
                        patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                    }
                    // 根据患者的疾病,获取该疾病的长期任务
                    ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag();
                    serviceTaskdiag.setLongtask(1L);
                    serviceTaskdiag.setIcd10code(patMedInhosp1.getLeaveldeptcode());
                    List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagList(serviceTaskdiag);
                    //如果部门模板为空(将deptIsNull设置为true)
                    if (CollectionUtils.isEmpty(serviceTaskdiags) || serviceTaskdiags.size() == 0) {
                        diagIsNull = true;
                    } else {
                        for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) {
                            writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 3);
                        }
                        patMedInhosp1.setDiagcheckFlag("1");
                        patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                    }
                }
                //三个都为空,没法随访了
                if (diagIsNull == true && deptIsNull == true && wardIsNull == true) {
                    patMedInhosp1.setDeptcheckFlag("2");
                    patMedInhosp1.setWardcheckFlag("2");
                    patMedInhosp1.setDiagcheckFlag("2");
                    patMedInhosp1.setLongTaskReason("该患者所在科室、病区 或所患的疾病,未配置长期任务;");
                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                }
@@ -285,14 +240,116 @@
            }
        }
        //根据患者所在病区,获取该病区的长期任务,新华医院可以先不用根据病区和疾病来做
        if (visitHosp != 1) {
            PatMedInhosp pmbq = new PatMedInhosp();
            //获取需要出院部门随访,未处理的数据
            pmbq.setWardcheckFlag("0");
            pmbq.setInhospstate("1");
            pmbq.setFuflag("1");
            List<PatMedInhosp> patMedInhospBQs = patMedInhospMapper.selectPatMedInhospList(pmbq);
            log.error("dealOutHospInfo需要处理的出院病区患者信息:{}", patMedInhosps);
            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);
                        }
                        pmiBQ1.setWardcheckFlag("1");
                        patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    log.error("人员处理出异常了:{}", e.getMessage());
                }
            }
            PatMedInhosp pmjb = new PatMedInhosp();
            //获取需要出院疾病随访,未处理的数据
            pmjb.setDiagcheckFlag("0");
            pmjb.setInhospstate("1");
            pmjb.setFuflag("1");
            List<PatMedInhosp> patMedInhospJBs = patMedInhospMapper.selectPatMedInhospList(pmjb);
            log.error("dealOutHospInfo需要处理的出院疾病患者信息:{}", patMedInhosps);
            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 {
                    // 根据患者的疾病,获取该疾病的长期任务
                    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);
                        }
                        pmiJB.setDiagcheckFlag("1");
                        patMedInhospMapper.updatePatMedInhosp(pmiJB);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    log.error("人员处理出异常了:{}", e.getMessage());
                }
            }
        }
        //获取未处理在院的数据(如果刚刚出院的患者数据的出院时间,在下面查询出的入院时间之前,那之前的出院患者的数据,也得停掉,因为又入院了)
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        //获取需要出院部门随访,未处理的数据
        patMedInhosp.setDeptcheckFlag("0");
        patMedInhosp.setInhospstate("0");
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        for (PatMedInhosp patMedInhosp1 : patMedInhosps) {
            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
            patMedInhosp1.setTagname(tagname);
        }
        if (CollectionUtils.isNotEmpty(patMedInhospList) && patMedInhospList.size() > 0) {
            dealInHospInfo(patMedInhospList);
        }
@@ -597,7 +654,7 @@
        serviceSubtask.setSendstate(2L);
        serviceSubtask.setStarttime(patMedInhosp1.getStarttime());
        serviceSubtask.setEndtime(patMedInhosp1.getEndtime());
        serviceSubtask.setServiceType("2");
        serviceSubtask.setServiceType(serviceTask.getServiceType());
        serviceSubtask.setPreachform(serviceTask.getPreachform());
        serviceSubtask.setHospType("2");
        serviceSubtask.setCreateTime(new Date());
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
@@ -274,7 +274,7 @@
        serviceSubtask.setSex(patArchive.getSex());
        serviceSubtask.setAge(patArchive.getAge());
        serviceSubtask.setSendstate(2L);
        serviceSubtask.setServiceType("3");
        serviceSubtask.setServiceType(serviceTask.getServiceType());
        serviceSubtask.setPreachform(serviceTask.getPreachform());
        serviceSubtask.setHospType("1");
        serviceSubtask.setCreateTime(new Date());
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -444,8 +444,8 @@
                info.setIcd10((String) map.get("Icd10"));
                return info;
            }).collect(Collectors.toList());
            patMedInhosp1.setLeaveicd10code(StringUtils.isNotEmpty(patMedInhosp1.getLeaveicd10code()) ? patMedInhosp1.getLeaveicd10code() + "," + hospPatientDiagnoseInfos2.get(0).getIcd10() : hospPatientDiagnoseInfos2.get(0).getIcd10());
            patMedInhosp1.setLeavediagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanMC() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
            patMedInhosp1.setLeaveicd10code(hospPatientDiagnoseInfos2.get(0).getIcd10());
            patMedInhosp1.setLeavediagname(hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
            patMedInhosp1.setDiagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanMC() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
            //patMedInhosp1.setLeavediagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
            //patMedInhosp1.setDiagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java
@@ -304,8 +304,12 @@
            throw new BaseException("360查询条件为空");
        }
        String token = null;
        LyraTokenUtil lyraTokenUtil = null;
        if (serviceQueryInfo.getXiaoXiTou().getFaSongJGID().equals("47255004333112711A1001"))  //景宁
            lyraTokenUtil = LyraTokenUtil.createLyraTokenUtil("https://9.0.124.104:13021/mediinfo-lyra-authserver/connect/token", "zjhes.suifangxt", "OIjdJvx2ALjFVGZoCZO4I8O");
        if (serviceQueryInfo.getXiaoXiTou().getFaSongJGID().equals("47231022633110211A2101"))  //中医院
            lyraTokenUtil = LyraTokenUtil.createLyraTokenUtil("https://9.0.124.104:13011/mediinfo-lyra-authserver/connect/token", "zjhes.suifangxt", "OIjdJvx2ALjFVGZoCZO4I8O");
        LyraTokenUtil lyraTokenUtil = LyraTokenUtil.createLyraTokenUtil("https://9.0.124.104:13021/mediinfo-lyra-authserver/connect/token", "zjhes.suifangxt", "OIjdJvx2ALjFVGZoCZO4I8O");
        try {
            token = lyraTokenUtil.getToken();
        } catch (IOException e) {
@@ -337,7 +341,10 @@
        try {
            String jsonString = objectMapper.writeValueAsString(serviceQueryInfo);
            log.error("token的值为:{}", token);
            if (serviceQueryInfo.getXiaoXiTou().getFaSongJGID().equals("47255004333112711A1001"))  //景宁
            result = OkHttpExample.sendPostRequest("https://9.0.124.104:13021/mediinfo-grus-fuwuzxwg/api/esb/lyraSyncRun", jsonString, token);
            if (serviceQueryInfo.getXiaoXiTou().getFaSongJGID().equals("47231022633110211A2101"))  //中医院
            result = OkHttpExample.sendPostRequest("https://9.0.124.104:13011/mediinfo-grus-fuwuzxwg/api/esb/lyraSyncRun", jsonString, token);
            map = objectMapper.readValue(result, Map.class);
        } catch (Exception e) {
            e.printStackTrace();