@ -21,6 +21,7 @@ import java.io.File;
import java.util.Date ;
import java.util.List ;
import java.util.Objects ;
import java.util.regex.Pattern ;
/ * *
* @Author : LeiJiaXin
@ -61,9 +62,10 @@ public class QueueService {
messageSubordinate . setRemark ( "住院号:" + messageDto . getInpNo ( ) + "pdf路径为空( 可能出现下载问题) 。。。" ) ;
} else {
ArchiveMaster archiveMaster = archiveMasterService . findByInpNoAndVisitIdAndIsValid ( messageDto . getInpNo ( ) , messageDto . getVisitId ( ) ) ;
Date date = new Date ( ) ;
if ( archiveMaster ! = null ) {
if ( ! Objects . equals ( messageDto . getType ( ) , AliasName . PATHOLOGY_REPORT ) ) {
if ( archiveMaster . getArchiveState ( ) . equals ( "初审" ) | | archiveMaster . getArchiveState ( ) . equals ( "已归档" ) ) {
if ( ! Objects . equals ( messageDto . getType ( ) , AliasName . PATHOLOGY_REPORT ) ) {
if ( archiveMaster . getArchiveState ( ) . equals ( "初审" ) | | archiveMaster . getArchiveState ( ) . equals ( "已归档" ) ) {
messageSubordinate . setStatus ( 3 ) ;
messageSubordinateService . save ( messageSubordinate ) ;
continue ;
@ -71,58 +73,68 @@ public class QueueService {
}
String address = messageDto . getReportAddress ( ) ;
Date date = new Date ( ) ;
if ( address ! = null & & ( ! address . equals ( "" ) ) ) {
// 如果是老数据
if ( Objects . equals ( messageDto . getIsOld ( ) , "0" ) ) {
archiveDetail = new ArchiveDetail ( archiveMaster . getId ( ) , date , messageDto . getType ( ) , messageDto . getSource ( ) , messageDto . getApplyId ( ) , messageDto . getDetailType ( ) , 1 ) ;
if ( Objects . equals ( messageDto . getIsOld ( ) , "0" ) ) {
archiveDetail = new ArchiveDetail ( archiveMaster . getId ( ) , date , messageDto . getType ( ) , messageDto . getSource ( ) , messageDto . getApplyId ( ) , messageDto . getDetailType ( ) , 1 ) ;
archiveDetailService . save ( archiveDetail ) ;
} else {
} 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 ) ;
messageDto . getDetailType ( ) , 1 ) ;
archiveDetailService . save ( archiveDetail ) ;
} else {
} else {
//更新时间
archiveDetail . setUpLoadDateTime ( date ) ;
}
}
String pdfPath = null ;
String emr Path = "" ;
if ( messageDto . getSource ( ) . equals ( InterfaceName . NURSE_DATA ) ) {
// 医生 护理单独做处理
if ( archiveMaster . getEmrNurseCmt ( ) = = null ) {
String temp Path = "" ;
Integer pageNum = 1 ;
if ( messageDto . getSource ( ) . equals ( InterfaceName . NURSE_DATA ) ) {
// 护理单独做处理
if ( archiveMaster . getEmrNurseCmt ( ) = = null ) {
archiveMaster . setEmrNurseCmt ( "提交" ) ;
archiveMasterService . save ( archiveMaster ) ;
}
String a = "" ;
if ( messageDto . getApplyId ( ) . lastIndexOf ( "_" ) ! = - 1 ) {
a = messageDto . getApplyId ( ) . substring ( 0 , messageDto . getApplyId ( ) . indexOf ( ".pdf" ) ) ;
String tempPageNum = "" ;
if ( messageDto . getApplyId ( ) . lastIndexOf ( "_" ) ! = - 1 ) {
//apply_id 000562390700_1_000562390700_0_1_JHR06.00.02_34_2.pdf
tempPageNum = messageDto . getApplyId ( ) . substring ( 0 , messageDto . getApplyId ( ) . indexOf ( ".pdf" ) ) ;
} else {
a = address . substring ( 0 , address . lastIndexOf ( "_" ) ) ;
// 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 ( ) ) ;
if ( isInteger ( tempPageNum ) ) {
pageNum = Integer . valueOf ( tempPageNum ) ;
}
emrPath = messageDto . getType ( ) + "~" + ( a . substring ( a . lastIndexOf ( "_" ) + 1 , a . length ( ) ) ) + "~" ;
} else if ( messageDto . getSource ( ) . equals ( InterfaceName . DOCTOR_DATA ) ) {
//护士 护理单独做处理
if ( archiveMaster . getEmrDoctorCmt ( ) = = null ) {
tempPath = messageDto . getType ( ) + "~" + pageNum + "~" ;
} else if ( messageDto . getSource ( ) . equals ( InterfaceName . DOCTOR_DATA ) ) {
// 医生单独做处理
if ( archiveMaster . getEmrDoctorCmt ( ) = = null ) {
archiveMaster . setEmrDoctorCmt ( "提交" ) ;
archiveMasterService . save ( archiveMaster ) ;
}
emr Path = messageDto . getType ( ) + "~" + messageDto . getCaptionDateTime ( ) + "~" ;
} else {
temp Path = messageDto . getType ( ) + "~" + messageDto . getCaptionDateTime ( ) + "~" ;
} else {
// 20200518 给重症系统的文件排序
if ( messageDto . getType ( ) . equals ( AliasName . ICU_REPORT ) ) {
if ( messageDto . getType ( ) . equals ( AliasName . ICU_REPORT ) ) {
if ( isInteger ( messageDto . getCaptionDateTime ( ) ) ) {
pageNum = Integer . valueOf ( messageDto . getCaptionDateTime ( ) ) ;
}
//重症如果是pdf
emrPath = messageDto . getDetailType ( ) + "~" + messageDto . getCaptionDateTime ( ) + "~" ;
temp Path = messageDto . getDetailType ( ) + "~" + messageDto . getCaptionDateTime ( ) + "~" ;
}
}
File pdfFile = FileUtils . createFile ( "pdfs" , messageDto . getInpNo ( ) , messageDto . getVisitId ( ) , archiveDetail . getId ( ) , emr Path) ;
File pdfFile = FileUtils . createFile ( "pdfs" , messageDto . getInpNo ( ) , messageDto . getVisitId ( ) , archiveDetail . getId ( ) , temp Path) ;
if ( pdfFile ! = null ) {
if ( address . endsWith ( ".pdf" ) | | address . endsWith ( ".PDF" ) ) {
String path = DownloadUtils . downLoadPdfFile ( pdfFile , address , messageDto . getType ( ) ) ;
@ -132,28 +144,28 @@ public class QueueService {
} else {
if ( Objects . equals ( messageDto . getType ( ) , AliasName . ICU_REPORT ) ) {
File file = pdfFile ;
if ( address . indexOf ( ".png" ) ! = - 1 ) {
if ( address . indexOf ( ".png" ) ! = - 1 ) {
file = FileUtils . createDir ( "images" , messageDto . getInpNo ( ) , messageDto . getVisitId ( ) ) ;
}
String fileNames = DownloadUtils . downloadImageFiles ( address , file . getParent ( ) ) ;
if ( fileNames ! = null ) {
if ( address . indexOf ( ".png" ) ! = - 1 ) {
if ( fileNames ! = null ) {
if ( address . indexOf ( ".png" ) ! = - 1 ) {
// 多个图片那么转成pdf
pdfPath = PdfUtils . imageDirToPdf ( fileNames , pdfFile ) ;
} else {
if ( fileNames . indexOf ( ";" ) ! = - 1 ) {
fileNames = fileNames . substring ( 0 , fileNames . length ( ) - 1 ) ;
} else {
if ( fileNames . indexOf ( ";" ) ! = - 1 ) {
fileNames = fileNames . substring ( 0 , fileNames . length ( ) - 1 ) ;
file . delete ( ) ;
}
if ( new File ( fileNames ) . renameTo ( file ) ) {
if ( new File ( fileNames ) . renameTo ( file ) ) {
pdfPath = file . getAbsolutePath ( ) ;
}
}
}
} else {
// 一张图片转成pdf
File imageFile = FileUtils . createFile ( "images" , messageDto . getInpNo ( ) , messageDto . getVisitId ( ) , archiveDetail . getId ( ) , emr Path) ;
File imageFile = FileUtils . createFile ( "images" , messageDto . getInpNo ( ) , messageDto . getVisitId ( ) , archiveDetail . getId ( ) , temp Path) ;
if ( DownloadUtils . downloadImageFile ( address , messageDto . getType ( ) , imageFile ) ) {
pdfPath = PdfUtils . imagesToPdf ( imageFile , pdfFile ) ;
}
@ -163,6 +175,7 @@ public class QueueService {
//存入pdf地址
if ( pdfPath ! = null ) {
// 转成格式
archiveDetail . setPageNumber ( pageNum ) ;
archiveDetail . setPdfPath ( pdfPath ) ;
archiveDetailService . save ( archiveDetail ) ;
@ -183,27 +196,9 @@ public class QueueService {
}
}
} else {
// 判断是否是扫描文件
if ( messageDto . getType ( ) . equals ( AliasName . SCANNING_FILE ) ) {
String outContent = this . handlePdfFile ( messageDto , archiveMaster . getId ( ) ) ;
if ( outContent = = null ) {
status = 1 ;
//更新messageLog的最后执行时间
Date xmlCreateTime = messageLog . getXmlCreateTime ( ) ;
long beginTime = xmlCreateTime . getTime ( ) ;
long endTime = date . getTime ( ) ;
messageLog . setXmlExecutionTime ( endTime - beginTime ) ;
messageService . save ( messageLog ) ;
} else {
messageSubordinate . setRemark ( outContent ) ;
}
} else {
messageSubordinate . setRemark ( "地址为空。。。。" ) ;
}
messageSubordinate . setRemark ( "地址为空。。。。" ) ;
}
} else {
} else {
messageSubordinate . setRemark ( "住院号为:" + messageDto . getInpNo ( ) + "的ArchiveMaster为空。。。。" ) ;
}
}
@ -241,45 +236,6 @@ public class QueueService {
}
}
public String handlePdfFile ( MessageDto messageDto , String masterId ) throws Exception {
try {
ScanningFile scanningFile = JSON . parseObject ( messageDto . getObject ( ) . toString ( ) , ScanningFile . class ) ;
if ( scanningFile = = null ) {
return "扫描文件解析实体错误。。。" ;
}
Object [ ] objects = WebServiceUtils . connect ( scanningFile . getPath ( ) + "\\" + scanningFile . getFileName ( ) ) ;
if ( objects = = null ) {
return "扫描文件下载图片出错了。。。" ;
}
byte [ ] bytes = ( byte [ ] ) objects [ 0 ] ;
String path = ( scanningFile . getApplyId ( ) ! = null ? scanningFile . getApplyId ( ) : "" ) + "~" + ( scanningFile . getNumber ( ) ! = null ? scanningFile . getNumber ( ) : "" ) ;
// 给临时图片填充内容
File imageTempFile = FileUtils . createFile ( "images" , messageDto . getInpNo ( ) , messageDto . getVisitId ( ) , path ) ;
File imageFile = FileUtils . getImageFileByByteArray ( bytes , imageTempFile ) ;
if ( imageFile = = null ) {
return "扫描文件填充临时图片出错了。。。" ;
}
File pdfFile = FileUtils . createFile ( "pdfs" , messageDto . getInpNo ( ) , messageDto . getVisitId ( ) , path ) ;
String pdfPath = PdfUtils . imagesToPdf ( imageFile , pdfFile ) ;
//存入pdf地址
if ( pdfPath = = null ) {
return "扫描文件image转成pdf出错了。。。" ;
}
// 如果存在 那就更新
ArchiveDetail archiveDetail = archiveDetailService . isExit ( masterId , messageDto . getType ( ) , messageDto . getSource ( ) , messageDto . getApplyId ( ) + "~" + ( scanningFile . getNumber ( ) ! = null ? scanningFile . getNumber ( ) : "" ) ) ;
if ( archiveDetail = = null ) {
archiveDetail = new ArchiveDetail ( masterId , new Date ( ) , messageDto . getType ( ) , messageDto . getSource ( ) , messageDto . getApplyId ( ) + "~" + ( scanningFile . getNumber ( ) ! = null ? scanningFile . getNumber ( ) : "" ) , pdfPath ) ;
archiveDetailService . save ( archiveDetail ) ;
}
} catch ( Exception e ) {
return e + "" ;
}
return null ;
}
public void doSomethingByHIS ( ) {
try {
@ -302,10 +258,10 @@ public class QueueService {
}
// 查询库中是否存在 如果存在就更新
archiveDetail = archiveDetailService . isExit ( archiveMaster . getId ( ) , interfaceHisCache. getType ( ) , "HIS系统" , "" ) ;
archiveDetail = archiveDetailService . isExit ( archiveMaster . getId ( ) , type, "HIS系统" , title ) ;
Date date = new Date ( ) ;
if ( archiveDetail = = null ) {
archiveDetail = new ArchiveDetail ( archiveMaster . getId ( ) , date , type , "HIS系统" , "" ,
archiveDetail = new ArchiveDetail ( archiveMaster . getId ( ) , date , type , "HIS系统" , title ,
title , 1 ) ;
archiveDetailService . save ( archiveDetail ) ;
} else {
@ -359,4 +315,9 @@ public class QueueService {
}
}
public boolean isInteger ( String str ) {
Pattern pattern = Pattern . compile ( "^[-\\+]?[\\d]*$" ) ;
return pattern . matcher ( str ) . matches ( ) ;
}
}