diff --git a/AcquisitionServer.iml b/AcquisitionServer.iml
index 47f06a6..3f700ec 100644
--- a/AcquisitionServer.iml
+++ b/AcquisitionServer.iml
@@ -15,6 +15,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -23,6 +34,8 @@
+
+
@@ -102,6 +115,9 @@
+
+
+
@@ -151,5 +167,7 @@
+
+
\ No newline at end of file
diff --git a/src/main/java/com/ann/entity/constant/AliasName.java b/src/main/java/com/ann/entity/constant/AliasName.java
index 886b026..4c0a811 100644
--- a/src/main/java/com/ann/entity/constant/AliasName.java
+++ b/src/main/java/com/ann/entity/constant/AliasName.java
@@ -81,5 +81,7 @@ public class AliasName {
public static final String OTHER_REPORT = "110";
+ public static final String NEW_PATHOLOGY_REPORT = "53";
+
}
diff --git a/src/main/java/com/ann/repository/ArchiveDetailRepository.java b/src/main/java/com/ann/repository/ArchiveDetailRepository.java
index 6d08c8a..f81f634 100644
--- a/src/main/java/com/ann/repository/ArchiveDetailRepository.java
+++ b/src/main/java/com/ann/repository/ArchiveDetailRepository.java
@@ -25,10 +25,17 @@ public interface ArchiveDetailRepository extends JpaRepository type, String masterId);
diff --git a/src/main/java/com/ann/service/impl/ArchiveDetailServiceImpl.java b/src/main/java/com/ann/service/impl/ArchiveDetailServiceImpl.java
index 893b1a6..1186b45 100644
--- a/src/main/java/com/ann/service/impl/ArchiveDetailServiceImpl.java
+++ b/src/main/java/com/ann/service/impl/ArchiveDetailServiceImpl.java
@@ -46,6 +46,15 @@ public class ArchiveDetailServiceImpl implements ArchiveDetailService {
return null;
}
+
+
+ @Override
+ public ArchiveDetail isExitCheckReportIdAndApplyId(String id,String checkReportId,String applyId) throws Exception {
+ if (archiveDetailRepository.countByMasterIDAndAndCheckReportIdAndApplyId(id, checkReportId, applyId) > 0)
+ return archiveDetailRepository.findByMasterIDAndAndCheckReportIdAndApplyId(id, checkReportId, applyId);
+ return null;
+ }
+
@Override
public Integer countByMasterIDAndAssortIDAndTitleAndFlag(String masterId, String AssortID,String title) throws Exception {
return archiveDetailRepository.countByMasterIDAndAssortIDAndTitleAndFlag(masterId, AssortID, title);
diff --git a/src/main/java/com/ann/service/impl/QueueService.java b/src/main/java/com/ann/service/impl/QueueService.java
index 7142de6..1a39c7c 100644
--- a/src/main/java/com/ann/service/impl/QueueService.java
+++ b/src/main/java/com/ann/service/impl/QueueService.java
@@ -47,6 +47,7 @@ public class QueueService {
ArchiveDetailService archiveDetailService;
@Autowired
MessageService messageService;
+
//---------------------定时器
public void doSomething(List all) throws Exception {
if (all.size() > 0) {
@@ -64,14 +65,14 @@ public class QueueService {
if (outJson != null) {
MessageDto messageDto = JSON.parseObject(outJson, MessageDto.class);
if (messageDto.getSource().equals(InterfaceName.NURSE_DATA) && (messageDto.getReportAddress().endsWith(".jpg")
- || messageDto.getReportAddress().endsWith(".JPG") )){
+ || messageDto.getReportAddress().endsWith(".JPG"))) {
messageSubordinate.setRemark("住院号:" + messageDto.getInpNo() + "pdf路径为空(可能出现下载问题)。。。");
} else {
ArchiveMaster archiveMaster = archiveMasterService.findByInpNoAndVisitIdAndIsValid(messageDto.getInpNo(), messageDto.getVisitId());
Date date = new Date();
if (archiveMaster != null) {
/**2021-1-26 等lis程序升级 去掉*/
- if (Objects.equals(messageDto.getType(), AliasName.INSPECTION_REPORT) && archiveMaster.getArchiveState().equals("已归档")){
+ if (Objects.equals(messageDto.getType(), AliasName.INSPECTION_REPORT) && archiveMaster.getArchiveState().equals("已归档")) {
messageSubordinate.setStatus(3);
messageSubordinateService.save(messageSubordinate);
continue;
@@ -79,33 +80,28 @@ public class QueueService {
/**2021-1-26 等lis程序升级 去掉*/
/**2021-4-25 等超声补传完 去掉*/
- if (Objects.equals(messageDto.getType(), AliasName.ULTRASONIC_REPORT) && archiveMaster.getArchiveState().equals("已归档")){
+ if (Objects.equals(messageDto.getType(), AliasName.ULTRASONIC_REPORT) && archiveMaster.getArchiveState().equals("已归档")) {
messageSubordinate.setStatus(3);
messageSubordinateService.save(messageSubordinate);
continue;
}
- /**2021-4-25 等超声补传完 去掉*/
-
/**2021-4-25 等心电图补传完 去掉*/
- if (Objects.equals(messageDto.getType(), AliasName.EKG_REPORT) && archiveMaster.getArchiveState().equals("已归档")){
+ if (Objects.equals(messageDto.getType(), AliasName.EKG_REPORT) && archiveMaster.getArchiveState().equals("已归档")) {
messageSubordinate.setStatus(3);
messageSubordinateService.save(messageSubordinate);
continue;
}
- /**2021-4-25 等心电图补传完 去掉*/
-
- if ( !Objects.equals(messageDto.getType(), AliasName.PATHOLOGY_REPORT)
+ if (!Objects.equals(messageDto.getType(), AliasName.PATHOLOGY_REPORT)
/**2021-1-26 等lis程序升级 去掉*/
&& !Objects.equals(messageDto.getType(), AliasName.INSPECTION_REPORT)
- /**2021-1-26 等lis程序升级 去掉*/
/**2021-4-25 等超声补传完 去掉*/
&& !Objects.equals(messageDto.getType(), AliasName.ULTRASONIC_REPORT)
- /**2021-4-25 等超声补传完 去掉*/
/**2021-4-25 等心电图补传完 去掉*/
&& !Objects.equals(messageDto.getType(), AliasName.EKG_REPORT)
/**2021-4-25 等心电图补传完 去掉*/
+ && !Objects.equals(messageDto.getType(), AliasName.NEW_PATHOLOGY_REPORT)
&& (archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档"))
- ){
+ ) {
messageSubordinate.setStatus(3);
messageSubordinateService.save(messageSubordinate);
continue;
@@ -119,40 +115,40 @@ public class QueueService {
archiveDetailService.save(archiveDetail);
} else {
//如果是检验报告 单独处理
- if(Objects.equals(messageDto.getType(),AliasName.INSPECTION_REPORT)){
+ if (Objects.equals(messageDto.getType(), AliasName.INSPECTION_REPORT)) {
// 查询库中是否存在 如果存在就更新
archiveDetail = archiveDetailService.isExitCheckReportId(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getCheckReportId());
if (archiveDetail == null) {
- archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(),messageDto.getApplyId(), messageDto.getCheckReportId(),
+ archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(), messageDto.getApplyId(), messageDto.getCheckReportId(),
messageDto.getDetailType());
archiveDetailService.save(archiveDetail);
} else {
//更新时间
archiveDetail.setUpLoadDateTime(date);
}
- }else{
+ } else {
//获取下载下载
- if(Objects.equals(messageDto.getType(),AliasName.RADIATION_REPORT)) {
+ if (Objects.equals(messageDto.getType(), AliasName.RADIATION_REPORT)) {
//PACS
//获取报告单号|申请单号 DR20210430233|97497407
String checkReportId = messageDto.getCheckReportId();
//定义是否走下载逻辑 第一次推送需要下载,报告单号为空或非第一次推送不需要下载
boolean downFlag = false;
- if(StringUtils.isNotBlank(checkReportId)){
+ if (StringUtils.isNotBlank(checkReportId)) {
//获报告单号DR20210430233
String[] checkReportIdArr = checkReportId.split("\\|");
checkReportId = checkReportIdArr[0];
//判断报告单号是否存在
- archiveDetail = archiveDetailService.isExitCheckReportId(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(),checkReportId);
+ archiveDetail = archiveDetailService.isExitCheckReportId(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), checkReportId);
if (archiveDetail == null) {
- archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(), messageDto.getApplyId(),checkReportId,
+ archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(), messageDto.getApplyId(), checkReportId,
messageDto.getDetailType());
archiveDetailService.save(archiveDetail);
downFlag = true;
} else {
//横杠拼接申请单号
String applyId = archiveDetail.getApplyId();
- if(!applyId.contains(checkReportIdArr[1])) {
+ if (!applyId.contains(checkReportIdArr[1])) {
archiveDetail.setApplyId(applyId + "-" + checkReportIdArr[1]);
//更新时间
archiveDetail.setUpLoadDateTime(date);
@@ -160,16 +156,30 @@ public class QueueService {
}
status = 1;
}
- }else{
+ } else {
messageSubordinate.setRemark("住院号为:" + messageDto.getInpNo() + "的checkReportId为空。。。。");
}
- if(!downFlag) {
+ if (!downFlag) {
messageSubordinate.setStatus(status);
messageSubordinateService.save(messageSubordinate);
continue;
}
- }else{
+ }
+ //如果是新病历报告单独处理
+ if (Objects.equals(messageDto.getType(), AliasName.NEW_PATHOLOGY_REPORT)) {
+ //获取报告单号|申请单号 如果存在更新不存在新增
+ String checkReportId = messageDto.getCheckReportId();
+ String applyId = messageDto.getApplyId();
+ archiveDetail = archiveDetailService.isExitCheckReportIdAndApplyId(archiveMaster.getId(), checkReportId, applyId);
+ if (archiveDetail == null) {
+ archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, "52", messageDto.getSource(), messageDto.getApplyId(), checkReportId,messageDto.getDetailType());
+ archiveDetailService.save(archiveDetail);
+ }else {
+ //更新时间
+ archiveDetail.setUpLoadDateTime(date);
+ }
+ } else {
//非PACS
// 查询库中是否存在 如果存在就更新
archiveDetail = archiveDetailService.isExit(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getApplyId());
@@ -184,7 +194,7 @@ public class QueueService {
}
}
}
- logger.error("保存文件数据耗时:"+(System.currentTimeMillis() - start1));
+ logger.error("保存文件数据耗时:" + (System.currentTimeMillis() - start1));
String pdfPath = null;
String tempPath = "";
Integer pageNum = 1;
@@ -192,11 +202,11 @@ public class QueueService {
// 护理单独做处理
boolean saveFlag = false;
- if(archiveMaster.getEmrNurseCommitTime() == null ){
+ if (archiveMaster.getEmrNurseCommitTime() == null) {
archiveMaster.setEmrNurseCommitTime(messageDto.getEmrCommitTime());
saveFlag = true;
- }else if(messageDto.getEmrCommitTime() != null && archiveMaster.getEmrNurseCommitTime() !=null &&
- !Objects.equals( messageDto.getEmrCommitTime().getTime(),archiveMaster.getEmrNurseCommitTime().getTime())){
+ } else if (messageDto.getEmrCommitTime() != null && archiveMaster.getEmrNurseCommitTime() != null &&
+ !Objects.equals(messageDto.getEmrCommitTime().getTime(), archiveMaster.getEmrNurseCommitTime().getTime())) {
archiveMaster.setEmrNurseCommitTime(messageDto.getEmrCommitTime());
saveFlag = true;
}
@@ -205,23 +215,15 @@ public class QueueService {
archiveMaster.setEmrNurseCmt("提交");
saveFlag = true;
}
- if(saveFlag){
+ if (saveFlag) {
archiveMasterService.save(archiveMaster);
}
String tempPageNum = "";
-// if (messageDto.getApplyId().lastIndexOf("_") != -1 ) {
- //apply_id 000562390700_1_000562390700_0_1_JHR06.00.02_34_2.pdf
-// if(archiveMaster.getInpNo().lastIndexOf("_") != -1){
-
-// }
-// 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() );
- if(isInteger(tempPageNum)){
+ tempPageNum = tempPageNum.substring(tempPageNum.lastIndexOf("_") + 1, tempPageNum.length());
+ if (isInteger(tempPageNum)) {
pageNum = Integer.valueOf(tempPageNum);
}
@@ -231,11 +233,11 @@ public class QueueService {
// 医生单独做处理
boolean saveFlag = false;
- if(archiveMaster.getEmrDoctorCommitTime() == null ){
+ if (archiveMaster.getEmrDoctorCommitTime() == null) {
archiveMaster.setEmrDoctorCommitTime(messageDto.getEmrCommitTime());
saveFlag = true;
- }else if(messageDto.getEmrCommitTime() != null && archiveMaster.getEmrDoctorCommitTime() !=null &&
- !Objects.equals( messageDto.getEmrCommitTime().getTime(),archiveMaster.getEmrDoctorCommitTime().getTime())){
+ } else if (messageDto.getEmrCommitTime() != null && archiveMaster.getEmrDoctorCommitTime() != null &&
+ !Objects.equals(messageDto.getEmrCommitTime().getTime(), archiveMaster.getEmrDoctorCommitTime().getTime())) {
archiveMaster.setEmrDoctorCommitTime(messageDto.getEmrCommitTime());
saveFlag = true;
}
@@ -244,14 +246,14 @@ public class QueueService {
archiveMaster.setEmrDoctorCmt("提交");
saveFlag = true;
}
- if(saveFlag){
+ if (saveFlag) {
archiveMasterService.save(archiveMaster);
}
tempPath = messageDto.getType() + "~" + messageDto.getCaptionDateTime() + "~";
} else {
// 20200518 给重症系统的文件排序
if (messageDto.getType().equals(AliasName.ICU_REPORT)) {
- if(isInteger(messageDto.getCaptionDateTime())){
+ if (isInteger(messageDto.getCaptionDateTime())) {
pageNum = Integer.valueOf(messageDto.getCaptionDateTime());
}
//重症如果是pdf
@@ -288,12 +290,9 @@ public class QueueService {
}
}
}
- } else if (address.contains("http")){//新心电以http协议传
- logger.error("类型为:" + messageDto.getType());
+ } else if (address.contains("http")) {//新心电以http协议传
if (Objects.equals(messageDto.getType(), AliasName.PETCT_REPORT)) {
HttpDownloader httpDownloader = new HttpDownloader(null);
- logger.error("核医学下载地址为URL:" + address);
- logger.error("核医学下载文件名:" + address);
httpDownloader.downLoadFromUrl(address, pdfFile.getName(), pdfFile.getParent());
pdfPath = pdfFile.getAbsolutePath();
} else {
@@ -311,9 +310,9 @@ public class QueueService {
}
//金域外送报告解析 2021-05-06
- if (Objects.equals(messageDto.getType(), AliasName.INSPECTION_REPORT)){
- PdfUtils.base64StringToPDF(address,pdfFile.getAbsolutePath());
- pdfPath=pdfFile.getAbsolutePath();
+ if (Objects.equals(messageDto.getType(), AliasName.INSPECTION_REPORT)) {
+ PdfUtils.base64StringToPDF(address, pdfFile.getAbsolutePath());
+ pdfPath = pdfFile.getAbsolutePath();
}
}
}
@@ -322,11 +321,11 @@ public class QueueService {
// 转成格式
archiveDetail.setPageNumber(pageNum);
archiveDetail.setPdfPath(pdfPath);
- int i=archiveDetailService.countByMasterIDAndAssortIDAndTitleAndFlag(archiveDetail.getMasterID(),archiveDetail.getAssortID(),archiveDetail.getTitle());
+ int i = archiveDetailService.countByMasterIDAndAssortIDAndTitleAndFlag(archiveDetail.getMasterID(), archiveDetail.getAssortID(), archiveDetail.getTitle());
//如果detail表有重复的分段数据,则把falg改为5(5为没人使用的自定义数字),同时修改修改完整性接口的sql
// if(archiveDetailService.countByMasterIDAndAssortIDAndTitleAndFlag(archiveDetail.getMasterID(),archiveDetail.getAssortID(),archiveDetail.getTitle())>1)
// {
- // archiveDetail.setFlag("5");
+ // archiveDetail.setFlag("5");
//}
archiveDetailService.save(archiveDetail);
@@ -346,11 +345,11 @@ public class QueueService {
archiveDetailService.delete(archiveDetail.getId());
}
}
- logger.error("文件下载耗时:"+(System.currentTimeMillis() - start3));
+ logger.error("文件下载耗时:" + (System.currentTimeMillis() - start3));
} else {
messageSubordinate.setRemark("地址为空。。。。");
}
- } else{
+ } else {
messageSubordinate.setRemark("住院号为:" + messageDto.getInpNo() + "的ArchiveMaster为空。。。。");
}
}
@@ -358,14 +357,14 @@ public class QueueService {
}
} catch (Exception e) {
// 设置参数
- messageSubordinate.setRemark(e + ",问题发生时间:"+new Date());
+ messageSubordinate.setRemark(e + ",问题发生时间:" + new Date());
// 报错删掉患者报告详情信息
if (archiveDetail != null) {
if (archiveDetail.getId() != null) {
archiveDetailService.delete(archiveDetail.getId());
}
}
- logger.error("messageId:"+messageId+"报错了:" ,e);
+ logger.error("messageId:" + messageId + "报错了:", e);
}
messageSubordinate.setStatus(status);
@@ -390,38 +389,37 @@ public class QueueService {
}
-
public void doSomethingByHIS() {
try {
while (true) {
//循环开始处理 所有未处理的
List interfaceHisCaches = interfaceHisCacheService.findInterfaceHisCacheByState();
- if(CollectionUtils.isEmpty(interfaceHisCaches)){
+ if (CollectionUtils.isEmpty(interfaceHisCaches)) {
break;
}
doSomethingByHISMethod(interfaceHisCaches);
}
- }catch (Exception e){
- logger.error("出错咯!错误信息为{},以及错误行数为:{}" ,e,e.getStackTrace()[0]);
+ } catch (Exception e) {
+ logger.error("出错咯!错误信息为{},以及错误行数为:{}", e, e.getStackTrace()[0]);
}
}
- private void doSomethingByHISMethod(List interfaceHisCaches){
- for (InterfaceHisCacheDto interfaceHisCacheDto: interfaceHisCaches) {
+ private void doSomethingByHISMethod(List interfaceHisCaches) {
+ for (InterfaceHisCacheDto interfaceHisCacheDto : interfaceHisCaches) {
InterfaceHisCache interfaceHisCache = new InterfaceHisCache();
- BeanUtils.copyProperties(interfaceHisCacheDto,interfaceHisCache);
- String type = null,remark = null,title = null,pdfPath = null,state = "2";
+ BeanUtils.copyProperties(interfaceHisCacheDto, interfaceHisCache);
+ String type = null, remark = null, title = null, pdfPath = null, state = "2";
ArchiveDetail archiveDetail = null;
- try{
+ try {
ArchiveMaster archiveMaster = archiveMasterService.findByInpNoAndVisitIdAndIsValid(interfaceHisCache.getInpNo(), interfaceHisCache.getVisitId());
- if(archiveMaster != null){
- if(interfaceHisCache.getType() != null){
+ if (archiveMaster != null) {
+ if (interfaceHisCache.getType() != null) {
//给type 属性赋值
- if(Objects.equals(interfaceHisCache.getType(),"0")){
+ if (Objects.equals(interfaceHisCache.getType(), "0")) {
type = AliasName.SOS;
title = "临时医嘱";
- }else if(Objects.equals(interfaceHisCache.getType(),"1")){
+ } else if (Objects.equals(interfaceHisCache.getType(), "1")) {
type = AliasName.PRN;
title = "长期医嘱";
}
@@ -431,9 +429,9 @@ public class QueueService {
Date date = new Date();
if (archiveDetail == null) {
archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, type, "HIS系统", title,
- title ,1);
+ title, 1);
archiveDetailService.save(archiveDetail);
- }else{
+ } else {
//更新时间
archiveDetail.setUpLoadDateTime(date);
}
@@ -448,28 +446,28 @@ public class QueueService {
archiveDetail.setPdfPath(pdfPath);
archiveDetailService.save(archiveDetail);
//删除FTP文件
- if(FTPUtil.deleteFile(interfaceHisCache.getPdfPath())){
+ if (FTPUtil.deleteFile(interfaceHisCache.getPdfPath())) {
// 成功
state = "1";
}
- }else {
+ } else {
remark = "下载失败";
}
}
- }else{
+ } else {
remark = "文件创建失败";
}
- }else{
+ } else {
remark = "类型为空";
}
- }else{
+ } else {
remark = "没有入院信息";
}
- }catch (Exception e){
+ } catch (Exception e) {
remark = e.getMessage();
}
- if(remark != null){
+ if (remark != null) {
// 报错删掉患者报告详情信息
if (archiveDetail != null) {
try {
@@ -480,12 +478,12 @@ public class QueueService {
}
}
//赋值
- interfaceHisCache.setValue(state,remark,new Date());
+ interfaceHisCache.setValue(state, remark, new Date());
interfaceHisCacheService.save(interfaceHisCache);
}
}
- public boolean isInteger(String str) {
+ public boolean isInteger(String str) {
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
return pattern.matcher(str).matches();
}