diff --git a/src/main/java/com/shibofu/spring/controller/MoneyController.java b/src/main/java/com/shibofu/spring/controller/MoneyController.java index c15874e..01c5627 100644 --- a/src/main/java/com/shibofu/spring/controller/MoneyController.java +++ b/src/main/java/com/shibofu/spring/controller/MoneyController.java @@ -22,7 +22,7 @@ public class MoneyController { @GetMapping("/makeUpByPacsAndTime") public String makeUpByNeed() { - pacsPollingService.PacsEveryDayPolling(); + pacsPollingService.pacsAnxu(); return "采集完成"; } diff --git a/src/main/java/com/shibofu/spring/db1/dao/ArchiveMasterDao.java b/src/main/java/com/shibofu/spring/db1/dao/ArchiveMasterDao.java index d554956..0e634ce 100644 --- a/src/main/java/com/shibofu/spring/db1/dao/ArchiveMasterDao.java +++ b/src/main/java/com/shibofu/spring/db1/dao/ArchiveMasterDao.java @@ -17,6 +17,8 @@ public interface ArchiveMasterDao { //查询24小时内出院病历 List PollingPacs(); + List PollingPacsAnXu(); + //查询24小时内出院病历 List PacsEveryWeekPolling(); diff --git a/src/main/java/com/shibofu/spring/db1/service/PacsPollingService.java b/src/main/java/com/shibofu/spring/db1/service/PacsPollingService.java index 7dfc9bc..1a60bd1 100644 --- a/src/main/java/com/shibofu/spring/db1/service/PacsPollingService.java +++ b/src/main/java/com/shibofu/spring/db1/service/PacsPollingService.java @@ -25,6 +25,9 @@ public interface PacsPollingService { Msg PacsEveryDayPolling() ; + Msg pacsAnxu(); + + /** * @description: 定时查询每星期出院患者 diff --git a/src/main/java/com/shibofu/spring/db1/serviceImpl/PacsPollingServiceImpl.java b/src/main/java/com/shibofu/spring/db1/serviceImpl/PacsPollingServiceImpl.java index 7866d3b..29d1bae 100644 --- a/src/main/java/com/shibofu/spring/db1/serviceImpl/PacsPollingServiceImpl.java +++ b/src/main/java/com/shibofu/spring/db1/serviceImpl/PacsPollingServiceImpl.java @@ -59,10 +59,8 @@ public class PacsPollingServiceImpl implements PacsPollingService { // 创建 JNI 实例 PacsAutoPrintPDF.INSTANCE.setServerInfo("10.36.116.100", 204); for (ArchiveMasterVo list : archiveMasterVos) { - logger.info("本次需要采集病历数量:" + list.getVisitId()); ArchiveMasterDto dto = new ArchiveMasterDto(); BeanUtils.copyProperties(list, dto); - logger.info("该住院号时间内无数据" + dto.getInpNo() + "住院次数为:" + dto.getVisitId()); //根据入院前六小时出院后六小时住院号查询要下载pdf的路径 List vo = pacsDao.getVo(dto); if (CollectionUtils.isEmpty(vo)) { @@ -73,12 +71,17 @@ public class PacsPollingServiceImpl implements PacsPollingService { List ArchiveDetailList = new ArrayList<>(); //需要同步的数据 for (PacsVo pacsList : vo) { + //查询文件是否存在,如果存在先删除后新增 + List subAssort = archiveDetailDao.getSubAssort(pacsList.getAccessionnumber()); + if (subAssort.size() > 0) { + deleteFliepath(subAssort); + } //使用yyyyMMddHHmmssSSS格式作为文件名 Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String newDate = format.format(date); //组织路径 - String filePathdir = savePath + "\\" + list.getInpNo() + "\\" + list.getVisitId(); + String filePathdir = savePath + File.separatorChar + list.getInpNo() + File.separatorChar + list.getVisitId(); File file = new File(filePathdir); //判断文件夹是否存在不存在创建文件夹 logger.info("创建文件的路径:" + file.getAbsolutePath()); @@ -86,23 +89,101 @@ public class PacsPollingServiceImpl implements PacsPollingService { logger.info("尝试创建文件:" + file.getAbsolutePath()); file.mkdirs(); } - String filePath = filePathdir + "/" + newDate + ".pdf"; + String filePath = filePathdir + File.separatorChar + newDate + ".pdf"; logger.info("-----------------文件id:" + pacsList.getAccessionnumber() + ",路径:" + filePath); // 调用 GetPDF 函数 boolean result = PacsAutoPrintPDF.INSTANCE.GetPDF(pacsList.getAccessionnumber(), filePath); //成功存在文件表中,不成功输出到日志中 if (result) { - ArchiveDetailDto archiveDetailDto = new ArchiveDetailDto(); - archiveDetailDto.setMasterId(dto.getId()); - archiveDetailDto.setUploadDateTime(new Date()); - archiveDetailDto.setAssortId("EABEEB5D628449A7930F4C0A9953A754"); - archiveDetailDto.setSource("pacs"); - archiveDetailDto.setFlag("0"); - archiveDetailDto.setTitle(pacsList.getExamItem()); - archiveDetailDto.setPdfPath(filePath); - archiveDetailDto.setSubAssort(pacsList.getAccessionnumber()); - ArchiveDetailList.add(archiveDetailDto); - //记录保存文件表 + if (new File(filePath).exists()) { + ArchiveDetailDto archiveDetailDto = new ArchiveDetailDto(); + archiveDetailDto.setMasterId(dto.getId()); + archiveDetailDto.setUploadDateTime(new Date()); + archiveDetailDto.setAssortId("EABEEB5D628449A7930F4C0A9953A754"); + archiveDetailDto.setSource("pacs"); + archiveDetailDto.setFlag("0"); + archiveDetailDto.setTitle(pacsList.getExamItem()); + archiveDetailDto.setPdfPath(filePath); + archiveDetailDto.setSubAssort(pacsList.getAccessionnumber()); + ArchiveDetailList.add(archiveDetailDto); + //记录保存文件表 + } else { + logger.info("-----------------住院号:" + list.getInpNo() + ",文件名:" + pacsList.getExamItem() + "解析不返回图片"); + } + } else { + logger.info("-----------------住院号:" + list.getInpNo() + ",文件名:" + pacsList.getExamItem() + "解析失败"); + } + } + //插入文件表 + boolean b = archiveDetailDao.addArchiveDetail(ArchiveDetailList); + if (b) { + ArchiveDetailList.clear(); + logger.info("住院号:" + list.getInpNo() + "住院次数为:" + list.getVisitId() + "采集完成"); + } + } + return Msg.success("采集完成"); + } + + @Override + public Msg pacsAnxu() { + List archiveMasterVos = archiveMasterDao.PollingPacsAnXu(); + if (CollectionUtils.isEmpty(archiveMasterVos)) { + return Msg.fail("无需采集数据"); + } + // 创建 JNI 实例 + PacsAutoPrintPDF.INSTANCE.setServerInfo("10.36.116.100", 204); + for (ArchiveMasterVo list : archiveMasterVos) { + ArchiveMasterDto dto = new ArchiveMasterDto(); + BeanUtils.copyProperties(list, dto); + //根据入院前六小时出院后六小时住院号查询要下载pdf的路径 + List vo = pacsDao.getVo(dto); + if (CollectionUtils.isEmpty(vo)) { + logger.info("该住院号时间内无数据" + list.getInpNo() + "住院次数为:" + list.getVisitId()); + continue; + } + //插入文件表数据集合 + List ArchiveDetailList = new ArrayList<>(); + //需要同步的数据 + for (PacsVo pacsList : vo) { + //查询文件是否存在,如果存在先删除后新增 + List subAssort = archiveDetailDao.getSubAssort(pacsList.getAccessionnumber()); + if (subAssort.size() > 0) { + deleteFliepath(subAssort); + } + //使用yyyyMMddHHmmssSSS格式作为文件名 + Date date = new Date(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + String newDate = format.format(date); + //组织路径 + String filePathdir = savePath + File.separatorChar + list.getInpNo() + File.separatorChar + list.getVisitId(); + File file = new File(filePathdir); + //判断文件夹是否存在不存在创建文件夹 + logger.info("创建文件的路径:" + file.getAbsolutePath()); + if (!file.exists()) { + logger.info("尝试创建文件:" + file.getAbsolutePath()); + file.mkdirs(); + } + String filePath = filePathdir + File.separatorChar + newDate + ".pdf"; + logger.info("-----------------文件id:" + pacsList.getAccessionnumber() + ",路径:" + filePath); + // 调用 GetPDF 函数 + boolean result = PacsAutoPrintPDF.INSTANCE.GetPDF(pacsList.getAccessionnumber(), filePath); + //成功存在文件表中,不成功输出到日志中 + if (result) { + if (new File(filePath).exists()) { + ArchiveDetailDto archiveDetailDto = new ArchiveDetailDto(); + archiveDetailDto.setMasterId(dto.getId()); + archiveDetailDto.setUploadDateTime(new Date()); + archiveDetailDto.setAssortId("EABEEB5D628449A7930F4C0A9953A754"); + archiveDetailDto.setSource("pacs"); + archiveDetailDto.setFlag("0"); + archiveDetailDto.setTitle(pacsList.getExamItem()); + archiveDetailDto.setPdfPath(filePath); + archiveDetailDto.setSubAssort(pacsList.getAccessionnumber()); + ArchiveDetailList.add(archiveDetailDto); + //记录保存文件表 + } else { + logger.info("-----------------住院号:" + list.getInpNo() + ",文件名:" + pacsList.getExamItem() + "解析不返回图片"); + } } else { logger.info("-----------------住院号:" + list.getInpNo() + ",文件名:" + pacsList.getExamItem() + "解析失败"); } @@ -150,29 +231,33 @@ public class PacsPollingServiceImpl implements PacsPollingService { SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String newDate = format.format(date); //组织路径 - String filePathdir = savePath + "\\" + list.getInpNo() + "\\" + list.getVisitId(); + String filePathdir = savePath + File.separatorChar + list.getInpNo() + File.separatorChar + list.getVisitId(); File file = new File(filePathdir); //判断文件夹是否存在不存在创建文件夹 if (!file.exists()) { file.mkdirs(); } - String filePath = filePathdir + "/" + newDate + ".pdf"; + String filePath = filePathdir + File.separatorChar + newDate + ".pdf"; logger.info("-----------------文件id:" + pacsList.getAccessionnumber() + ",路径:" + filePath); // 调用 GetPDF 函数 boolean result = PacsAutoPrintPDF.INSTANCE.GetPDF(pacsList.getAccessionnumber(), filePath); //成功存在文件表中,不成功输出到日志中 if (result) { - ArchiveDetailDto archiveDetailDto = new ArchiveDetailDto(); - archiveDetailDto.setMasterId(dto.getId()); - archiveDetailDto.setUploadDateTime(new Date()); - archiveDetailDto.setAssortId("EABEEB5D628449A7930F4C0A9953A754"); - archiveDetailDto.setSource("pacs"); - archiveDetailDto.setFlag("0"); - archiveDetailDto.setTitle(pacsList.getExamItem()); - archiveDetailDto.setPdfPath(filePath); - archiveDetailDto.setSubAssort(pacsList.getAccessionnumber()); - ArchiveDetailList.add(archiveDetailDto); - //记录保存文件表 + if (new File(filePath).exists()) { + ArchiveDetailDto archiveDetailDto = new ArchiveDetailDto(); + archiveDetailDto.setMasterId(dto.getId()); + archiveDetailDto.setUploadDateTime(new Date()); + archiveDetailDto.setAssortId("EABEEB5D628449A7930F4C0A9953A754"); + archiveDetailDto.setSource("pacs"); + archiveDetailDto.setFlag("0"); + archiveDetailDto.setTitle(pacsList.getExamItem()); + archiveDetailDto.setPdfPath(filePath); + archiveDetailDto.setSubAssort(pacsList.getAccessionnumber()); + ArchiveDetailList.add(archiveDetailDto); + //记录保存文件表 + } else { + logger.info("-----------------住院号:" + list.getInpNo() + ",文件名:" + pacsList.getExamItem() + "解析不返回图片"); + } } else { logger.info("-----------------住院号:" + list.getInpNo() + ",文件名:" + pacsList.getExamItem() + "解析失败"); } @@ -210,12 +295,17 @@ public class PacsPollingServiceImpl implements PacsPollingService { List ArchiveDetailList = new ArrayList<>(); //需要同步的数据 for (PacsVo pacsList : vo) { + //查询文件是否存在,如果存在先删除后新增 + List subAssort = archiveDetailDao.getSubAssort(pacsList.getAccessionnumber()); + if (subAssort.size() > 0) { + deleteFliepath(subAssort); + } //使用yyyyMMddHHmmssSSS格式作为文件名 Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String newDate = format.format(date); //组织路径 - String filePathdir = savePath + "\\" + list.getInpNo() + "\\" + list.getVisitId(); + String filePathdir = savePath + File.separatorChar + list.getInpNo() + File.separatorChar + list.getVisitId(); File file = new File(filePathdir); //判断文件夹是否存在不存在创建文件夹 logger.info("创建文件的路径:" + file.getAbsolutePath()); @@ -223,23 +313,27 @@ public class PacsPollingServiceImpl implements PacsPollingService { logger.info("尝试创建文件:" + file.getAbsolutePath()); file.mkdirs(); } - String filePath = filePathdir + "/" + newDate + ".pdf"; + String filePath = filePathdir + File.separatorChar + newDate + ".pdf"; logger.info("-----------------文件id:" + pacsList.getAccessionnumber() + ",路径:" + filePath); // 调用 GetPDF 函数 boolean result = PacsAutoPrintPDF.INSTANCE.GetPDF(pacsList.getAccessionnumber(), filePath); //成功存在文件表中,不成功输出到日志中 if (result) { - ArchiveDetailDto archiveDetailDto = new ArchiveDetailDto(); - archiveDetailDto.setMasterId(dto.getId()); - archiveDetailDto.setUploadDateTime(new Date()); - archiveDetailDto.setAssortId("EABEEB5D628449A7930F4C0A9953A754"); - archiveDetailDto.setSource("pacs"); - archiveDetailDto.setFlag("0"); - archiveDetailDto.setTitle(pacsList.getExamItem()); - archiveDetailDto.setPdfPath(filePath); - archiveDetailDto.setSubAssort(pacsList.getAccessionnumber()); - ArchiveDetailList.add(archiveDetailDto); - //记录保存文件表 + if (new File(filePath).exists()) { + ArchiveDetailDto archiveDetailDto = new ArchiveDetailDto(); + archiveDetailDto.setMasterId(dto.getId()); + archiveDetailDto.setUploadDateTime(new Date()); + archiveDetailDto.setAssortId("EABEEB5D628449A7930F4C0A9953A754"); + archiveDetailDto.setSource("pacs"); + archiveDetailDto.setFlag("0"); + archiveDetailDto.setTitle(pacsList.getExamItem()); + archiveDetailDto.setPdfPath(filePath); + archiveDetailDto.setSubAssort(pacsList.getAccessionnumber()); + ArchiveDetailList.add(archiveDetailDto); + //记录保存文件表 + } else { + logger.info("-----------------住院号:" + list.getInpNo() + ",文件名:" + pacsList.getExamItem() + "解析不返回图片"); + } } else { logger.info("-----------------住院号:" + list.getInpNo() + ",文件名:" + pacsList.getExamItem() + "解析失败"); } diff --git a/src/main/java/com/shibofu/spring/text/test.java b/src/main/java/com/shibofu/spring/text/test.java index 2f8cd15..e82fb22 100644 --- a/src/main/java/com/shibofu/spring/text/test.java +++ b/src/main/java/com/shibofu/spring/text/test.java @@ -10,6 +10,7 @@ import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @@ -28,15 +29,23 @@ import java.io.File; @Slf4j public class test { + @Value("${savePath}") + private String savePath; + private final static Logger logger = LoggerFactory.getLogger(test.class); @Autowired private PacsPollingService pacsPollingService; @Test public void testDemo() { -// String filePath = "D:\\脐血库1期图像\\1.jpg"; -// File file = new File(filePath); -// file.delete(); + String filePathdir = savePath + File.separatorChar + "1231" + File.separatorChar + "111"; + File file = new File(filePathdir); + //判断文件夹是否存在不存在创建文件夹 + log.info("创建文件的路径:" + file.getAbsolutePath()); + if (!file.exists()) { + log.info("尝试创建文件:" + file.getAbsolutePath()); + file.mkdirs(); + } } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index a3d3509..eaeec15 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,5 +1,5 @@ #文件保存路径 -savePath: F:\\jiashi\\reload +savePath: F:\jiashi\reload #定时补偿任务时间 quartzTime: 0 0 1 * * ? #quartzTime: "0 10 16 * * ? diff --git a/src/main/resources/mapper/db1/ArchiveMasterMapper.xml b/src/main/resources/mapper/db1/ArchiveMasterMapper.xml index dda04e6..9b0b22f 100644 --- a/src/main/resources/mapper/db1/ArchiveMasterMapper.xml +++ b/src/main/resources/mapper/db1/ArchiveMasterMapper.xml @@ -15,7 +15,7 @@ FROM archive_master WHERE - discharge_date_time BETWEEN DATEADD( hh, - 24,GETDATE() ) AND GETDATE() + discharge_date_time BETWEEN DATEADD( hh, - 24,GETDATE() ) AND GETDATE() + \ No newline at end of file