|
|
|
@ -10,6 +10,7 @@ import com.docus.server.collect.converter.FileReportConverter;
|
|
|
|
|
import com.docus.server.collect.dto.TBasicQrDto;
|
|
|
|
|
import com.docus.server.collect.entity.DownloadTask;
|
|
|
|
|
import com.docus.server.collect.entity.TBasic;
|
|
|
|
|
import com.docus.server.collect.entity.TSeal;
|
|
|
|
|
import com.docus.server.collect.infrastructure.client.DownloadPlatformService;
|
|
|
|
|
import com.docus.server.collect.infrastructure.client.dto.ReportDownDto;
|
|
|
|
|
import com.docus.server.collect.infrastructure.dao.DownloadTaskDao;
|
|
|
|
@ -70,6 +71,27 @@ public class FileReportServiceImpl implements FileReportService {
|
|
|
|
|
report(downloadTask);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void saveDownloadTaskAndSealReport(ReportFileInfoDTO fileInfoDTO) {
|
|
|
|
|
// TODO 封存病案
|
|
|
|
|
TSeal sealCondition = new TSeal(fileInfoDTO);
|
|
|
|
|
// 查询基础数据,更新新的病案信息
|
|
|
|
|
TSeal seal = downloadTaskDao.findSealByCondition(sealCondition);
|
|
|
|
|
// 如果找到患者基础数据,并且刚好为1条
|
|
|
|
|
fileInfoDTO.setPatientId(seal.getPatientId());
|
|
|
|
|
fileInfoDTO.setInpatientNo(seal.getInpatientNo());
|
|
|
|
|
fileInfoDTO.setAdmisstimes(seal.getAdmissTimes());
|
|
|
|
|
fileInfoDTO.setJzh(seal.getJzh());
|
|
|
|
|
// 转换下载任务对象
|
|
|
|
|
DownloadTask downloadTask = fileReportConverter.convertDownloadTask(fileInfoDTO, 2);
|
|
|
|
|
// 查询旧的下载任务id,更新/保存任务信息
|
|
|
|
|
Long downloadTaskId = Optional.ofNullable(getDownloadTaskId(downloadTask)).orElse(idService.getDateSeq());
|
|
|
|
|
downloadTask.setId(downloadTaskId);
|
|
|
|
|
downloadTaskDao.saveOrUpdate(downloadTask);
|
|
|
|
|
reportSeal(downloadTask);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private TBasicQrDto convertTbasicQrDto(ReportFileInfoDTO fileInfoDTO) {
|
|
|
|
|
String patientId = fileInfoDTO.getPatientId();
|
|
|
|
|
String jzh = fileInfoDTO.getJzh();
|
|
|
|
@ -128,4 +150,26 @@ public class FileReportServiceImpl implements FileReportService {
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据下载任务,上报到下载平台服务
|
|
|
|
|
*
|
|
|
|
|
* @param downloadTask 下载任务
|
|
|
|
|
*/
|
|
|
|
|
private void reportSeal(DownloadTask downloadTask) {
|
|
|
|
|
threadPoolExecutor.execute(() -> {
|
|
|
|
|
if (downloadTask.getBasicDataType().equals(2)) {
|
|
|
|
|
ReportDownDto reportDownDto = fileReportConverter.convertDownloadPlatformParam(downloadTask);
|
|
|
|
|
String paramJson = Func.toJson(reportDownDto);
|
|
|
|
|
try {
|
|
|
|
|
log.info("封存病案上报文件,参数:{}", paramJson);
|
|
|
|
|
CommonResult result = downloadPlatformService.sealReport(reportDownDto);
|
|
|
|
|
log.info("封存病案上报文件,返回结果:{}", Func.toJson(result));
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
log.error("封存病案上报文件发生未知错误,参数:" + paramJson, ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|