|
|
|
@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
import org.springframework.beans.BeansException;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@ -56,71 +57,7 @@ public class PacsPollingServiceImpl implements PacsPollingService {
|
|
|
|
|
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() + "解析失败");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//插入文件表
|
|
|
|
|
boolean b = archiveDetailDao.addArchiveDetail(ArchiveDetailList);
|
|
|
|
|
if (b) {
|
|
|
|
|
ArchiveDetailList.clear();
|
|
|
|
|
logger.info("住院号:" + list.getInpNo() + "住院次数为:" + list.getVisitId() + "采集完成");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
gather(archiveMasterVos);
|
|
|
|
|
return Msg.success("采集完成");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -130,145 +67,18 @@ public class PacsPollingServiceImpl implements PacsPollingService {
|
|
|
|
|
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() + "解析失败");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//插入文件表
|
|
|
|
|
boolean b = archiveDetailDao.addArchiveDetail(ArchiveDetailList);
|
|
|
|
|
if (b) {
|
|
|
|
|
ArchiveDetailList.clear();
|
|
|
|
|
logger.info("住院号:" + list.getInpNo() + "住院次数为:" + list.getVisitId() + "采集完成");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
gather(archiveMasterVos);
|
|
|
|
|
return Msg.success("采集完成");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Msg PacsEveryWeekPolling() {
|
|
|
|
|
List<ArchiveMasterVo> archiveMasterVos = archiveMasterDao.PacsEveryWeekPolling();
|
|
|
|
|
if (CollectionUtils.isEmpty(archiveMasterVos)) {
|
|
|
|
|
return Msg.fail("无需采集数据");
|
|
|
|
|
}
|
|
|
|
|
// 创建 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)) {
|
|
|
|
|
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);
|
|
|
|
|
//判断文件夹是否存在不存在创建文件夹
|
|
|
|
|
if (!file.exists()) {
|
|
|
|
|
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() + "解析失败");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//插入文件表
|
|
|
|
|
boolean b = archiveDetailDao.addArchiveDetail(ArchiveDetailList);
|
|
|
|
|
if (b) {
|
|
|
|
|
ArchiveDetailList.clear();
|
|
|
|
|
logger.info("住院号:" + list.getInpNo() + "住院次数为:" + list.getVisitId() + "采集完成");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
gather(archiveMasterVos);
|
|
|
|
|
return Msg.success("采集完成");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -278,76 +88,23 @@ public class PacsPollingServiceImpl implements PacsPollingService {
|
|
|
|
|
if (CollectionUtils.isEmpty(archiveMasterVos)) {
|
|
|
|
|
return Msg.fail("无需采集数据");
|
|
|
|
|
}
|
|
|
|
|
// 创建 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)) {
|
|
|
|
|
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() + "解析失败");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//插入文件表
|
|
|
|
|
boolean b = archiveDetailDao.addArchiveDetail(ArchiveDetailList);
|
|
|
|
|
if (b) {
|
|
|
|
|
ArchiveDetailList.clear();
|
|
|
|
|
logger.info("住院号:" + list.getInpNo() + "住院次数为:" + list.getVisitId() + "采集完成");
|
|
|
|
|
}
|
|
|
|
|
gather(archiveMasterVos);
|
|
|
|
|
return Msg.success("采集完成");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Msg makeUpPacsPush() {
|
|
|
|
|
String masterId = archiveMasterDao.selectPacsPush();
|
|
|
|
|
List<ArchiveMasterVo> archiveMasterVos = archiveMasterDao.makeUpPacsByMasterId(masterId);
|
|
|
|
|
if (CollectionUtils.isEmpty(archiveMasterVos)) {
|
|
|
|
|
return Msg.fail("无需采集数据");
|
|
|
|
|
}
|
|
|
|
|
gather(archiveMasterVos);
|
|
|
|
|
archiveMasterDao.updatePacsCompenSate(masterId);
|
|
|
|
|
return Msg.success("采集完成");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void deleteFliepath(List<ArchiveDetailVo> listPath) {
|
|
|
|
|
for (ArchiveDetailVo list : listPath) {
|
|
|
|
|
archiveDetailDao.delSubAssort(list.getId());
|
|
|
|
@ -359,4 +116,82 @@ public class PacsPollingServiceImpl implements PacsPollingService {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void gather(List<ArchiveMasterVo> archiveMasterVos) {
|
|
|
|
|
// 创建 JNI 实例
|
|
|
|
|
PacsAutoPrintPDF.INSTANCE.setServerInfo("10.36.116.100", 204);
|
|
|
|
|
for (ArchiveMasterVo list : archiveMasterVos) {
|
|
|
|
|
try {
|
|
|
|
|
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);
|
|
|
|
|
//判断文件夹是否存在不存在创建文件夹
|
|
|
|
|
if (!file.exists()) {
|
|
|
|
|
file.mkdirs();
|
|
|
|
|
}
|
|
|
|
|
String filePath = filePathdir + File.separatorChar + newDate + ".pdf";
|
|
|
|
|
logger.info("-----------------文件id:" + pacsList.getAccessionnumber() + ",路径:" + filePath);
|
|
|
|
|
// 调用 GetPDF 函数
|
|
|
|
|
try {
|
|
|
|
|
boolean result = PacsAutoPrintPDF.INSTANCE.GetPDF(pacsList.getAccessionnumber(), filePath);
|
|
|
|
|
} catch (Throwable e) {
|
|
|
|
|
logger.info(pacsList.getAccessionnumber()+"异常处理");
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
//成功存在文件表中,不成功输出到日志中
|
|
|
|
|
saveArchiveDetailDto(list, dto, ArchiveDetailList, pacsList, filePath);
|
|
|
|
|
}
|
|
|
|
|
//插入文件表
|
|
|
|
|
boolean b = archiveDetailDao.addArchiveDetail(ArchiveDetailList);
|
|
|
|
|
if (b) {
|
|
|
|
|
ArchiveDetailList.clear();
|
|
|
|
|
logger.info("住院号:" + list.getInpNo() + "住院次数为:" + list.getVisitId() + "采集完成");
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
logger.info(list.getId()+"异常处理");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static void saveArchiveDetailDto(ArchiveMasterVo list, ArchiveMasterDto dto, List<ArchiveDetailDto> ArchiveDetailList, PacsVo pacsList, String filePath) {
|
|
|
|
|
//成功存在文件表中,不成功输出到日志中
|
|
|
|
|
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() + "解析不返回图片");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|