1、archive_detail新增报告单号,并只对下载检验报告用报告单号进行新增更新处理,其他还是依据电子申请单号

2、新增对下载病案首页PDF,不做任何状态限制
3、因暂时电子病历不提供页码,针对新生儿会有_,电子病历也只采取老方式进行传送,也就是apply_id等于住院号_住院次数_Nurse_提交时间,页码是截取ftp地址
4、病理报告从原有共享目录改成ftp路径
master
leijx 5 years ago
parent ce66fbac70
commit a6ff0a6723

@ -54,7 +54,7 @@ public class AliasName {
// public static final String NURSING_RECORD_SHEET = "2"; // public static final String NURSING_RECORD_SHEET = "2";
// 病案首页 // 病案首页
// public static final String MEDICAL_RECORD_HOMEPAGE = "3"; public static final String MEDICAL_RECORD_HOMEPAGE = "3";
// 评估护理单 // 评估护理单
// public static final String ASSESSMENT_NURSING_LIST = "4"; // public static final String ASSESSMENT_NURSING_LIST = "4";

@ -51,6 +51,9 @@ public class ArchiveDetail {
*/ */
private String applyId; private String applyId;
// 2020-12-28 新增报告单号
private String checkReportId;
public ArchiveDetail() { public ArchiveDetail() {
} }
@ -62,6 +65,18 @@ public class ArchiveDetail {
this.applyId = applyId; this.applyId = applyId;
} }
// lis系统下载
public ArchiveDetail(String masterID, Date upLoadDateTime, String assortID, String source, String applyId,String checkReportId, String title) {
this.masterID = masterID;
this.upLoadDateTime = upLoadDateTime;
this.assortID = assortID;
this.source = source;
this.checkReportId = checkReportId;
this.title = title;
this.applyId = applyId;
}
// 普通下载 // 普通下载
public ArchiveDetail(String masterID, Date upLoadDateTime, String assortID, String source, String applyId, String title,Integer i) { public ArchiveDetail(String masterID, Date upLoadDateTime, String assortID, String source, String applyId, String title,Integer i) {
this.masterID = masterID; this.masterID = masterID;

@ -38,14 +38,14 @@ public class ScheduledJob implements Job {
public void execute(JobExecutionContext context) { public void execute(JobExecutionContext context) {
try { try {
//System.out.println("动态的定时任务1执行时间" + LocalTime.now()); //System.out.println("动态的定时任务1执行时间" + LocalTime.now());
QuartzUtils.pauseScheduleJob(scheduler, "group1", "job1"); QuartzUtils.pauseScheduleJob(scheduler, "group1", "job5");
List<MessageSubordinate> all = messageSubordinateService.findAllByStatus(0); List<MessageSubordinate> all = messageSubordinateService.findAllByStatus(0);
queueService.doSomething(all); queueService.doSomething(all);
} catch (Exception e) { } catch (Exception e) {
// 如果报错-- 捕捉异常 继续执行 // 如果报错-- 捕捉异常 继续执行
logger.error("出错咯!错误信息为{},以及错误行数为:{}" ,e,e.getStackTrace()[0]); logger.error("出错咯!错误信息为{},以及错误行数为:{}" ,e,e.getStackTrace()[0]);
} }
QuartzUtils.resumeScheduleJob(scheduler, "group1", "job1"); QuartzUtils.resumeScheduleJob(scheduler, "group1", "job5");
} }
} }

@ -36,7 +36,7 @@ public class SchedulerAllJob {
* properties * properties
* http://blog.csdn.net/liuchuanhong1/article/details/60873295 * http://blog.csdn.net/liuchuanhong1/article/details/60873295
* ScheduleRefreshDatabase * ScheduleRefreshDatabase
* *
* @param scheduler * @param scheduler
* @throws SchedulerException * @throws SchedulerException
*/ */
@ -45,16 +45,16 @@ public class SchedulerAllJob {
* ScheduleRefreshDatabase * ScheduleRefreshDatabase
* *
*/ */
JobDetail jobDetail = JobBuilder.newJob(ScheduledJob.class).withIdentity("job1", "group1").build(); JobDetail jobDetail = JobBuilder.newJob(ScheduledJob.class).withIdentity("job5", "group1").build();
// 每5s执行一次 // 每15s执行一次
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/15 * * * * ?"); CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/15 * * * * ?");
CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("job1", "group1").withSchedule(scheduleBuilder).build(); CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("job5", "group1").withSchedule(scheduleBuilder).build();
scheduler.scheduleJob(jobDetail, cronTrigger); scheduler.scheduleJob(jobDetail, cronTrigger);
} }
/** /**
* Job2 * Job2
* *
* @param scheduler * @param scheduler
* @throws SchedulerException * @throws SchedulerException
*/ */
@ -68,29 +68,29 @@ public class SchedulerAllJob {
/** /**
* Job3 * Job3
* *
* @param scheduler * @param scheduler
* @throws SchedulerException * @throws SchedulerException
*/ */
private void scheduleJob3(Scheduler scheduler) throws SchedulerException { private void scheduleJob3(Scheduler scheduler) throws SchedulerException {
JobDetail jobDetail = JobBuilder.newJob(ScheduledJob3.class).withIdentity("job3", "group1").build(); JobDetail jobDetail = JobBuilder.newJob(ScheduledJob3.class).withIdentity("job3", "group1").build();
// 0 1-2 * * * ? // 0 1-2 * * * ? 0 0/5 * * * ?
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/15 * * * * ?"); CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0 0/2 * * * ? ");
// 每1分钟执行一次 // 每30秒执行一次
CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("job3", "group1").withSchedule(scheduleBuilder).build(); CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("job3", "group1").withSchedule(scheduleBuilder).build();
scheduler.scheduleJob(jobDetail, cronTrigger); scheduler.scheduleJob(jobDetail, cronTrigger);
} }
/** /**
* Job4 * Job4
* *
* @param scheduler * @param scheduler
* @throws SchedulerException * @throws SchedulerException
*/ */
private void scheduleJob4(Scheduler scheduler) throws SchedulerException { private void scheduleJob4(Scheduler scheduler) throws SchedulerException {
JobDetail jobDetail = JobBuilder.newJob(ScheduledJob4.class).withIdentity("job4", "group1").build(); JobDetail jobDetail = JobBuilder.newJob(ScheduledJob4.class).withIdentity("job4", "group1").build();
// 0 1-2 * * * ? // 0 1-2 * * * ?
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0 */1 * * * ?"); CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("* 0/10 * * * ?");
// 每1分钟执行一次 // 每1分钟执行一次
CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("job4", "group1").withSchedule(scheduleBuilder).build(); CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("job4", "group1").withSchedule(scheduleBuilder).build();
scheduler.scheduleJob(jobDetail, cronTrigger); scheduler.scheduleJob(jobDetail, cronTrigger);

@ -64,7 +64,7 @@ public class QueueService {
ArchiveMaster archiveMaster = archiveMasterService.findByInpNoAndVisitIdAndIsValid(messageDto.getInpNo(), messageDto.getVisitId()); ArchiveMaster archiveMaster = archiveMasterService.findByInpNoAndVisitIdAndIsValid(messageDto.getInpNo(), messageDto.getVisitId());
Date date = new Date(); Date date = new Date();
if (archiveMaster != null) { if (archiveMaster != null) {
if (!Objects.equals(messageDto.getType(), AliasName.PATHOLOGY_REPORT)) { if (!Objects.equals(messageDto.getType(), AliasName.PATHOLOGY_REPORT) || !Objects.equals(messageDto.getType(), AliasName.MEDICAL_RECORD_HOMEPAGE)) {
if (archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档")) { if (archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档")) {
messageSubordinate.setStatus(3); messageSubordinate.setStatus(3);
messageSubordinateService.save(messageSubordinate); messageSubordinateService.save(messageSubordinate);
@ -79,17 +79,30 @@ public class QueueService {
archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(), messageDto.getApplyId(), messageDto.getDetailType(), 1); archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(), messageDto.getApplyId(), messageDto.getDetailType(), 1);
archiveDetailService.save(archiveDetail); archiveDetailService.save(archiveDetail);
} else { } else {
// 查询库中是否存在 如果存在就更新 //如果是检验报告 单独处理
archiveDetail = archiveDetailService.isExit(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getApplyId()); if(Objects.equals(messageDto.getType(),AliasName.INSPECTION_REPORT)){
if (archiveDetail == null) { // 查询库中是否存在 如果存在就更新
archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(), messageDto.getApplyId(), archiveDetail = archiveDetailService.isExit(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getCheckReportId());
messageDto.getDetailType(), 1); if (archiveDetail == null) {
archiveDetailService.save(archiveDetail); archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(),messageDto.getApplyId(), messageDto.getCheckReportId(),
} else { messageDto.getDetailType());
//更新时间 archiveDetailService.save(archiveDetail);
archiveDetail.setUpLoadDateTime(date); } else {
//更新时间
archiveDetail.setUpLoadDateTime(date);
}
}else{
// 查询库中是否存在 如果存在就更新
archiveDetail = archiveDetailService.isExit(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getApplyId());
if (archiveDetail == null) {
archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(), messageDto.getApplyId(),
messageDto.getDetailType(), 1);
archiveDetailService.save(archiveDetail);
} else {
//更新时间
archiveDetail.setUpLoadDateTime(date);
}
} }
} }
String pdfPath = null; String pdfPath = null;
String tempPath = ""; String tempPath = "";
@ -102,13 +115,16 @@ public class QueueService {
} }
String tempPageNum = ""; String tempPageNum = "";
if (messageDto.getApplyId().lastIndexOf("_") != -1) { // if (messageDto.getApplyId().lastIndexOf("_") != -1 ) {
//apply_id 000562390700_1_000562390700_0_1_JHR06.00.02_34_2.pdf //apply_id 000562390700_1_000562390700_0_1_JHR06.00.02_34_2.pdf
tempPageNum = messageDto.getApplyId().substring(0, messageDto.getApplyId().indexOf(".pdf")); // if(archiveMaster.getInpNo().lastIndexOf("_") != -1){
}else{
// address ftp://10.6.0.155/2020-08-04/000562390700_1_000562390700_0_1_JHR06.00.02_34_2_0.pdf // }
tempPageNum = address.substring(0, address.lastIndexOf("_")); // tempPageNum = messageDto.getApplyId().substring(0, messageDto.getApplyId().indexOf(".pdf"));
} // }else{
// address ftp://10.6.0.155/2020-08-04/000562390700_1_000562390700_0_1_JHR06.00.02_34_2_0.pdf
tempPageNum = address.substring(0, address.lastIndexOf("_"));
// }
tempPageNum = tempPageNum.substring(tempPageNum.lastIndexOf("_") + 1, tempPageNum.length() ); tempPageNum = tempPageNum.substring(tempPageNum.lastIndexOf("_") + 1, tempPageNum.length() );
if(isInteger(tempPageNum)){ if(isInteger(tempPageNum)){
pageNum = Integer.valueOf(tempPageNum); pageNum = Integer.valueOf(tempPageNum);

@ -165,6 +165,19 @@ public class DownloadUtils {
FTPClient ftpClient = FTPUtil.connectFtpServer(url, port, split[0], split[1]); FTPClient ftpClient = FTPUtil.connectFtpServer(url, port, split[0], split[1]);
return FTPUtil.downloadFtp(path, ftpClient, imageFile); return FTPUtil.downloadFtp(path, ftpClient, imageFile);
} }
if (Objects.equals(type, AliasName.PATHOLOGY_REPORT)) {
// ftp://10.6.0.74:33/202012_U/Report668771_1.jpg
address = address.substring(address.indexOf("/") + 2, address.length());
String url = address.substring(0, address.indexOf(":"));
Integer port = 0;
if (address.indexOf(":") != -1 && address.indexOf("/") != -1) {
port = Integer.parseInt(address.substring(address.indexOf(":") + 1, address.indexOf("/")));
}
String path = address.substring(address.indexOf("/"), address.length());
FTPClient ftpClient = FTPUtil.connectFtpServer(url, port, "", "");
return FTPUtil.downloadFtp(path, ftpClient, imageFile);
}
} else { } else {
// 共享文件 // 共享文件
// //10.6.0.74/Images/201907_U/Report609639_1.jpg // //10.6.0.74/Images/201907_U/Report609639_1.jpg
@ -172,7 +185,6 @@ public class DownloadUtils {
return DownloadUtils.cmdFile(address, imageFile); return DownloadUtils.cmdFile(address, imageFile);
//return true //return true
} }
return false; return false;
} }

@ -1,25 +1,25 @@
spring: spring:
datasource: datasource:
# url: jdbc:mysql://localhost:3306/test url: jdbc:mysql://localhost:3306/test
# # url: jdbc:mysql://10.6.1.127:3306/test # url: jdbc:mysql://10.6.1.127:3306/test
# username: root username: root
# password: 123456 password: 123456
# driver-class-name: com.mysql.jdbc.Driver driver-class-name: com.mysql.jdbc.Driver
# jpa:
# database: mysql
# show-sql: false
# hibernate:
# ddl-auto: update
url: jdbc:sqlserver://10.6.1.127:1433;DatabaseName=DB_PrivilegeManagement_GYFY
# url: jdbc:sqlserver://120.27.212.36:1433;DatabaseName=emr_record
username: sa
password: docus@702
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
jpa: jpa:
database: sql_server database: mysql
show-sql: false show-sql: false
hibernate: hibernate:
dialect: org.hibernate.dialect.SQLServer2008Dialect ddl-auto: update
# url: jdbc:sqlserver://10.6.1.127:1433;DatabaseName=DB_PrivilegeManagement_GYFY
# # url: jdbc:sqlserver://120.27.212.36:1433;DatabaseName=emr_record
# username: sa
# password: docus@702
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
# jpa:
# database: sql_server
# show-sql: false
# hibernate:
# dialect: org.hibernate.dialect.SQLServer2008Dialect
thymeleaf: thymeleaf:
prefix: classpath:/templates/ prefix: classpath:/templates/
@ -50,8 +50,8 @@ file:
dischargeRecordPath: D:\\1\dischargeRecord.properties dischargeRecordPath: D:\\1\dischargeRecord.properties
transferRecordPath: D:\\1\transferRecord.properties transferRecordPath: D:\\1\transferRecord.properties
admissionRecordPath: D:\\1\admissionRecord.properties admissionRecordPath: D:\\1\admissionRecord.properties
pdfPath: Z:/project_js pdfPath: D:/project_js
imagePath: Z:/images imagePath: D:/images
signContent: <REQUEST> signContent: <REQUEST>
<patient_statu>0</patient_statu> <patient_statu>0</patient_statu>

Loading…
Cancel
Save