|
|
|
@ -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<PacsVo> vo = pacsDao.getVo(dto);
|
|
|
|
|
if (CollectionUtils.isEmpty(vo)) {
|
|
|
|
@ -73,12 +71,17 @@ public class PacsPollingServiceImpl implements PacsPollingService {
|
|
|
|
|
List<ArchiveDetailDto> ArchiveDetailList = new ArrayList<>();
|
|
|
|
|
//需要同步的数据
|
|
|
|
|
for (PacsVo pacsList : vo) {
|
|
|
|
|
//查询文件是否存在,如果存在先删除后新增
|
|
|
|
|
List<ArchiveDetailVo> 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<ArchiveMasterVo> 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<PacsVo> vo = pacsDao.getVo(dto);
|
|
|
|
|
if (CollectionUtils.isEmpty(vo)) {
|
|
|
|
|
logger.info("该住院号时间内无数据" + list.getInpNo() + "住院次数为:" + list.getVisitId());
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
//插入文件表数据集合
|
|
|
|
|
List<ArchiveDetailDto> ArchiveDetailList = new ArrayList<>();
|
|
|
|
|
//需要同步的数据
|
|
|
|
|
for (PacsVo pacsList : vo) {
|
|
|
|
|
//查询文件是否存在,如果存在先删除后新增
|
|
|
|
|
List<ArchiveDetailVo> 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<ArchiveDetailDto> ArchiveDetailList = new ArrayList<>();
|
|
|
|
|
//需要同步的数据
|
|
|
|
|
for (PacsVo pacsList : vo) {
|
|
|
|
|
//查询文件是否存在,如果存在先删除后新增
|
|
|
|
|
List<ArchiveDetailVo> 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() + "解析失败");
|
|
|
|
|
}
|
|
|
|
|