修改采集保存路径

master
linjj 1 year ago
parent 31ae529b21
commit 06362c4b26

@ -22,7 +22,7 @@ public class MoneyController {
@GetMapping("/makeUpByPacsAndTime")
public String makeUpByNeed() {
pacsPollingService.PacsEveryDayPolling();
pacsPollingService.pacsAnxu();
return "采集完成";
}

@ -17,6 +17,8 @@ public interface ArchiveMasterDao {
//查询24小时内出院病历
List<ArchiveMasterVo> PollingPacs();
List<ArchiveMasterVo> PollingPacsAnXu();
//查询24小时内出院病历
List<ArchiveMasterVo> PacsEveryWeekPolling();

@ -25,6 +25,9 @@ public interface PacsPollingService {
Msg PacsEveryDayPolling() ;
Msg pacsAnxu();
/**
* @description:

@ -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() + "解析失败");
}

@ -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();
}
}
}

@ -1,5 +1,5 @@
#文件保存路径
savePath: F:\\jiashi\\reload
savePath: F:\jiashi\reload
#定时补偿任务时间
quartzTime: 0 0 1 * * ?
#quartzTime: "0 10 16 * * ?

@ -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()
</select>
<select id="PacsEveryWeekPolling" resultType="com.shibofu.spring.vo.ArchiveMasterVo">
SELECT
@ -43,4 +43,15 @@
WHERE
id=#{masterId}
</select>
<select id="PollingPacsAnXu" resultType="com.shibofu.spring.vo.ArchiveMasterVo">
SELECT
id,
name,
visit_id AS visitId,
inp_no AS inpNo,
admission_date_time AS admissionDateTime,
discharge_date_time AS dischargeDateTime
FROM
archive_master order by discharge_date_time ASC
</select>
</mapper>
Loading…
Cancel
Save