修改上传
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using AutoMapper;
|
||||
using DocumentFormat.OpenXml.Drawing;
|
||||
using EasyCaching.Core;
|
||||
using ExcelDataReader;
|
||||
using IRaCIS.Application.Contracts;
|
||||
@@ -12,6 +13,7 @@ using IRaCIS.Core.Application.Helper;
|
||||
using IRaCIS.Core.Application.MediatR.CommandAndQueries;
|
||||
using IRaCIS.Core.Application.MediatR.Handlers;
|
||||
using IRaCIS.Core.Application.Service;
|
||||
using IRaCIS.Core.Application.Service.ImageAndDoc;
|
||||
using IRaCIS.Core.Application.Service.Reading.Dto;
|
||||
using IRaCIS.Core.Domain.Models;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
@@ -223,6 +225,38 @@ namespace IRaCIS.Core.API.Controllers
|
||||
_repository = repository;
|
||||
}
|
||||
|
||||
public async Task<IResponseOutput> PreArchiveStudy(PreArchiveStudyCommand preArchiveStudyCommand,
|
||||
[FromServices] IStudyService _studyService,
|
||||
[FromServices] IRepository<StudyMonitor> _studyMonitorRepository)
|
||||
{
|
||||
|
||||
if (_provider.Get<List<SystemAnonymization>>(StaticData.Anonymize.Anonymize_AddFixedFiled).Value == null)
|
||||
{
|
||||
await _mediator.Send(new AnonymizeCacheRequest());
|
||||
}
|
||||
|
||||
var savedInfo = _studyService.GetSaveToDicomInfo(preArchiveStudyCommand.SubjectVisitId);
|
||||
|
||||
var studyMonitor = new StudyMonitor()
|
||||
{
|
||||
TrialId = savedInfo.TrialId,
|
||||
SiteId = savedInfo.SiteId,
|
||||
SubjectId = savedInfo.SubjectId,
|
||||
SubjectVisitId = savedInfo.SubjectVisitId,
|
||||
|
||||
IsSuccess = false,
|
||||
UploadStartTime = DateTime.Now,
|
||||
IsDicom = true,
|
||||
IP = _userInfo.IP
|
||||
};
|
||||
|
||||
|
||||
var addEntity = await _studyMonitorRepository.AddAsync(studyMonitor, true);
|
||||
|
||||
return ResponseOutput.Ok(addEntity.Id);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>Dicom 归档</summary>
|
||||
[HttpPost, Route("Study/ArchiveStudy")]
|
||||
@@ -235,17 +269,15 @@ namespace IRaCIS.Core.API.Controllers
|
||||
[FromServices] IStudyService _studyService,
|
||||
[FromServices] IHubContext<UploadHub, IUploadClient> _uploadHub,
|
||||
[FromServices] IDicomArchiveService _dicomArchiveService,
|
||||
[FromServices] IRepository _repository
|
||||
[FromServices] IRepository _repository,
|
||||
[FromServices] IRepository<StudyMonitor> _studyMonitorRepository
|
||||
)
|
||||
{
|
||||
|
||||
|
||||
if (_provider.Get<List<SystemAnonymization>>(StaticData.Anonymize.Anonymize_AddFixedFiled).Value == null)
|
||||
{
|
||||
await _mediator.Send(new AnonymizeCacheRequest());
|
||||
}
|
||||
|
||||
//_logger.LogError("请求到达接口");
|
||||
|
||||
|
||||
|
||||
if (!HttpContext.Request.HasFormContentType ||
|
||||
!MediaTypeHeaderValue.TryParse(HttpContext.Request.ContentType, out var mediaTypeHeader) ||
|
||||
@@ -270,6 +302,13 @@ namespace IRaCIS.Core.API.Controllers
|
||||
_provider.Set($"StudyUid_{trialId}_{archiveStudyCommand.StudyInstanceUid}", _userInfo.Id, TimeSpan.FromMinutes(30));
|
||||
}
|
||||
|
||||
//到了接口,代表上传结束了
|
||||
|
||||
var studyMonitor = await _studyMonitorRepository.FirstOrDefaultAsync(t => t.Id == archiveStudyCommand.StudyMonitorId);
|
||||
|
||||
studyMonitor.UploadFinishedTime = DateTime.Now;
|
||||
|
||||
|
||||
var (archiveResult, archivedStudyIds) = (new DicomArchiveResult(), new List<Guid>());
|
||||
|
||||
|
||||
@@ -332,23 +371,12 @@ namespace IRaCIS.Core.API.Controllers
|
||||
throw new BusinessValidationFailedException("请求异常,请重试!");
|
||||
}
|
||||
|
||||
studyMonitor.FileSize = (decimal)HttpContext.Request.ContentLength;
|
||||
studyMonitor.FileCount = archiveResult.ReceivedFileCount;
|
||||
studyMonitor.FailedFileCount = archiveResult.ErrorFiles.Count;
|
||||
studyMonitor.IsDicomReUpload = archiveStudyCommand.AbandonStudyId != null;
|
||||
studyMonitor.Note = JsonConvert.SerializeObject(archiveResult);
|
||||
|
||||
var studyMonitor = new StudyMonitor()
|
||||
{
|
||||
TrialId = savedInfo.TrialId,
|
||||
SiteId = savedInfo.SiteId,
|
||||
SubjectId = savedInfo.SubjectId,
|
||||
SubjectVisitId = savedInfo.SubjectVisitId,
|
||||
|
||||
|
||||
|
||||
UploadStartTime = startTime,
|
||||
FileSize = (decimal)HttpContext.Request.ContentLength,
|
||||
FileCount = archiveResult.ReceivedFileCount,
|
||||
IsDicom = true,
|
||||
IsDicomReUpload = archiveStudyCommand.AbandonStudyId != null,
|
||||
IP = _userInfo.IP
|
||||
};
|
||||
|
||||
try
|
||||
{
|
||||
@@ -365,21 +393,12 @@ namespace IRaCIS.Core.API.Controllers
|
||||
studyMonitor.IsSuccess = true;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
studyMonitor.IsSuccess = false;
|
||||
studyMonitor.Note = JsonConvert.SerializeObject(archiveResult);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
studyMonitor.IsSuccess = false;
|
||||
studyMonitor.Note = JsonConvert.SerializeObject(new { Message = e.Message, Result = archiveResult });
|
||||
|
||||
_logger.LogError(e.Message + e.StackTrace);
|
||||
|
||||
}
|
||||
@@ -389,9 +408,7 @@ namespace IRaCIS.Core.API.Controllers
|
||||
|
||||
studyMonitor.StudyId = archiveResult.ArchivedDicomStudies.FirstOrDefault()?.Id ?? Guid.Empty;
|
||||
studyMonitor.StudyCode = archiveResult.ArchivedDicomStudies.FirstOrDefault()?.StudyCode;
|
||||
studyMonitor.UploadFinishedTime = DateTime.Now;
|
||||
await _repository.AddAsync(studyMonitor, true);
|
||||
|
||||
studyMonitor.ArchiveFinishedTime = DateTime.Now;
|
||||
}
|
||||
|
||||
|
||||
@@ -642,6 +659,7 @@ namespace IRaCIS.Core.API.Controllers
|
||||
return serverFilePath;
|
||||
});
|
||||
|
||||
var uploadFinishedTime = DateTime.Now;
|
||||
|
||||
|
||||
//// 上传非Dicom 后 将状态改为待提交 分为普通上传 和QC后重传 普通上传时才改为待提交
|
||||
@@ -660,7 +678,8 @@ namespace IRaCIS.Core.API.Controllers
|
||||
StudyId = noneDicomStudyId,
|
||||
StudyCode = noneDicomStudy.StudyCode,
|
||||
UploadStartTime = startTime,
|
||||
UploadFinishedTime = DateTime.Now,
|
||||
UploadFinishedTime = uploadFinishedTime,
|
||||
ArchiveFinishedTime=DateTime.Now,
|
||||
IP = _userInfo.IP,
|
||||
TrialId = sv.TrialId,
|
||||
SiteId = sv.SiteId,
|
||||
|
||||
Reference in New Issue
Block a user