上传监控

Uat_Study
hang 2022-08-04 15:25:00 +08:00
parent f2202daa75
commit 8eb5476f8e
6 changed files with 174 additions and 46 deletions

View File

@ -199,19 +199,19 @@ namespace IRaCIS.Core.API.Controllers
public IMapper _mapper { get; set; }
public IUserInfo _userInfo { get; set; }
private readonly IMediator _mediator;
private readonly IWebHostEnvironment _hostEnvironment;
private readonly IRepository _repository;
public StudyController(IMapper mapper, IUserInfo userInfo, IWebHostEnvironment hostEnvironment, IMediator mediator,
IRepository repository)
{
_hostEnvironment = hostEnvironment;
_mediator = mediator;
_mapper = mapper;
_userInfo = userInfo;
_repository = repository;
@ -227,7 +227,7 @@ namespace IRaCIS.Core.API.Controllers
[FromServices] ILogger<UploadDownLoadController> _logger,
[FromServices] IEasyCachingProvider _provider,
[FromServices] IStudyService _studyService,
[FromServices] IDicomArchiveService _dicomArchiveService,
[FromServices] IRepository _repository
)
@ -293,9 +293,27 @@ namespace IRaCIS.Core.API.Controllers
});
var studyMonitor = new StudyMonitor()
{
TrialId = savedInfo.TrialId,
SiteId = savedInfo.SiteId,
SubjectId = savedInfo.SubjectId,
SubjectVisitId = savedInfo.SubjectVisitId,
StudyId = archivedStudyIds[0],
StudyCode = studycode,
UploadStartTime = startTime,
UploadFinishedTime = DateTime.Now,
FileSize = (decimal)HttpContext.Request.ContentLength,
FileCount = archiveResult.ReceivedFileCount,
IsDicom = true,
IsDicomReUpload = archiveStudyCommand.AbandonStudyId != null,
IP = _userInfo.IP
};
try
{
if (archivedStudyIds.Count > 0) // 上传成功,处理逻辑
{
@ -305,24 +323,9 @@ namespace IRaCIS.Core.API.Controllers
archiveResult.ReuploadNewStudyId = archivedStudyIds[0] == archiveStudyCommand.AbandonStudyId ? archivedStudyIds[0] : Guid.Empty;
await _repository.AddAsync(new StudyMonitor()
{
TrialId = savedInfo.TrialId,
SiteId = savedInfo.SiteId,
SubjectId = savedInfo.SubjectId,
SubjectVisitId = savedInfo.SubjectVisitId,
StudyId = archivedStudyIds[0],
StudyCode = studycode,
UploadStartTime = startTime,
UploadFinishedTime = DateTime.Now,
FileSize = (decimal)HttpContext.Request.ContentLength,
FileCount = archiveResult.ReceivedFileCount,
IsDicom = true,
IsDicomReUpload = archiveStudyCommand.AbandonStudyId != null,
IP = _userInfo.IP
}, true);
studyMonitor.IsSuccess = true;
//_studyService.UploadOrReUploadNeedTodo(archiveStudyCommand, archivedStudyIds, ref archiveResult, );
@ -331,20 +334,32 @@ namespace IRaCIS.Core.API.Controllers
}
else
{
studyMonitor.IsSuccess = false;
studyMonitor.Note= JsonConvert.SerializeObject(archiveResult);
return ResponseOutput.NotOk(archiveResult);
}
}
catch (Exception e)
{
studyMonitor.IsSuccess = false;
studyMonitor.Note = JsonConvert.SerializeObject(new { Message=e.Message,Result= archiveResult });
_logger.LogError(e.Message + e.StackTrace);
_provider.Remove("StudyUid_" + archiveStudyCommand.StudyInstanceUid);
return ResponseOutput.NotOk(e.Message, ApiResponseCodeEnum.ProgramException);
}
finally
{
await _repository.AddAsync(studyMonitor, true);
}
return ResponseOutput.Ok(archiveResult);
@ -354,7 +369,7 @@ namespace IRaCIS.Core.API.Controllers
}
@ -370,19 +385,24 @@ namespace IRaCIS.Core.API.Controllers
{
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
var sv = _repository.Where<SubjectVisit>(t => t.Id == subjectVisitId).Select(t => new { t.TrialId, t.SiteId, t.SubjectId }).FirstOrDefault().IfNullThrowException();
await FileUploadAsync(async (fileName) =>
{
var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetClinicalDataPath(_hostEnvironment, fileName, sv.TrialId, sv.SiteId, sv.SubjectId, subjectVisitId);
//插入临床pdf 路径
await _repository.AddAsync(new PreviousPDF() { SubjectVisitId = subjectVisitId,
await _repository.AddAsync(new PreviousPDF()
{
SubjectVisitId = subjectVisitId,
IsVisist=true,
DataType= ClinicalDataType.MedicalHistory,
UploadType=ClinicalUploadType.PDF,
SubjectId= sv.SubjectId,
TrialId=sv.TrialId,
ClinicalLevel = ClinicalLevel.Subject, Path = relativePath, FileName = fileRealName });
IsVisist = true,
DataType = ClinicalDataType.MedicalHistory,
UploadType = ClinicalUploadType.PDF,
SubjectId = sv.SubjectId,
TrialId = sv.TrialId,
ClinicalLevel = ClinicalLevel.Subject,
Path = relativePath,
FileName = fileRealName
});
return serverFilePath;
});
await _repository.SaveChangesAsync();
@ -397,11 +417,11 @@ namespace IRaCIS.Core.API.Controllers
/// <returns></returns>
[HttpPost("ClinicalData/UploadClinicalTemplate")]
[DisableRequestSizeLimit]
public async Task<IResponseOutput<List<FileDto>>> UploadClinicalTemplate(Guid? trialId)
{
if(trialId==null)
trialId=default(Guid);
if (trialId == null)
trialId = default(Guid);
var filerelativePath = string.Empty;
List<FileDto> fileDtos = new List<FileDto>();
@ -434,7 +454,7 @@ namespace IRaCIS.Core.API.Controllers
/// <returns></returns>
[HttpPost("ClinicalData/UploadClinicalData/{trialId:guid}/{subjectId:guid}/{readingId:guid}")]
[DisableRequestSizeLimit]
public async Task<IResponseOutput<List<FileDto>>> UploadReadClinicalData(Guid trialId,Guid subjectId,Guid readingId)
public async Task<IResponseOutput<List<FileDto>>> UploadReadClinicalData(Guid trialId, Guid subjectId, Guid readingId)
{
var filerelativePath = string.Empty;
List<FileDto> fileDtos = new List<FileDto>();
@ -457,7 +477,7 @@ namespace IRaCIS.Core.API.Controllers
});
return ResponseOutput.Ok(fileDtos);
}
/// <summary>
@ -480,7 +500,7 @@ namespace IRaCIS.Core.API.Controllers
return serverFilePath;
});
return ResponseOutput.Ok(fileDto);
}
@ -494,7 +514,7 @@ namespace IRaCIS.Core.API.Controllers
[TypeFilter(typeof(TrialResourceFilter))]
public async Task<IResponseOutput<FileDto>> UploadJudgeTaskImage(Guid trialId, Guid visitTaskId)
{
FileDto fileDto = new FileDto();
await FileUploadAsync(async (fileName) =>
{
@ -531,13 +551,13 @@ namespace IRaCIS.Core.API.Controllers
await _repository.UpdatePartialFromQueryAsync<TaskMedicalReview>(x => x.Id == taskMedicalReviewId, x => new TaskMedicalReview()
{
ImagePath = relativePath,
FileName=fileName,
FileName = fileName,
});
path = relativePath;
fileDto.Path = relativePath;
fileDto.FileName = fileName;
return serverFilePath;
return serverFilePath;
});
await _repository.SaveChangesAsync();
@ -617,9 +637,9 @@ namespace IRaCIS.Core.API.Controllers
[HttpPost("QCOperation/UploadVisitCheckExcel/{trialId:guid}")]
[TypeFilter(typeof(TrialResourceFilter))]
[Authorize(Policy = IRaCISPolicy.PM_APM)]
public async Task<IResponseOutput> UploadVisitCheckExcel(Guid trialId )
public async Task<IResponseOutput> UploadVisitCheckExcel(Guid trialId)
{
var (serverFilePath, relativePath, fileName) = (string.Empty, string.Empty, string.Empty);
await FileUploadAsync(async (realFileName) =>
{
@ -812,7 +832,7 @@ namespace IRaCIS.Core.API.Controllers
{
public IMapper _mapper { get; set; }
public IUserInfo _userInfo { get; set; }
private readonly IWebHostEnvironment _hostEnvironment;
@ -820,11 +840,11 @@ namespace IRaCIS.Core.API.Controllers
public FileController(IMapper mapper, IUserInfo userInfo, IWebHostEnvironment hostEnvironment,IFileService fileService)
public FileController(IMapper mapper, IUserInfo userInfo, IWebHostEnvironment hostEnvironment, IFileService fileService)
{
_fileService = fileService;
_hostEnvironment = hostEnvironment;
_mapper = mapper;
_userInfo = userInfo;
}
@ -923,7 +943,7 @@ namespace IRaCIS.Core.API.Controllers
[HttpPost, Route("enroll/downloadResume/{trialId:guid}/{language}")]
[TypeFilter(typeof(TrialResourceFilter))]
[AllowAnonymous]
public async Task<IResponseOutput<string>> DownloadResume( int language, Guid trialId, Guid[] doctorIdArray)
public async Task<IResponseOutput<string>> DownloadResume(int language, Guid trialId, Guid[] doctorIdArray)
{
var zipPath = await _fileService.CreateOfficialResumeZip(language, doctorIdArray);

View File

@ -249,6 +249,14 @@
<param name="readingId"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.API.Controllers.StudyController.UploadReadingAnswerImage(System.Guid,System.Guid)">
<summary>
上传Reading问题的图像
</summary>
<param name="trialId"></param>
<param name="visitTaskId"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.API.Controllers.StudyController.UploadJudgeTaskImage(System.Guid,System.Guid)">
<summary>
上传裁判任务的图像

View File

@ -1537,6 +1537,11 @@
评估原因
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetOncologyReadingInfoOutDto.IsShowDetail">
<summary>
是否显示详情
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetGlobalReadingInfoInDto.UsingOriginalData">
<summary>
当新答案为空的时候 是否是有原数据
@ -1662,6 +1667,21 @@
标准分页Id
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialReadingQuestionOutDto.RelevanceId">
<summary>
关联ID
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialReadingQuestionOutDto.RelevanceValue">
<summary>
关联Value
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialReadingQuestionOutDto.ImageCount">
<summary>
图片数量
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.IRConfirmMedicalReviewInDto.DoctorUserIdeaEnum">
<summary>
阅片人是否认同
@ -2390,6 +2410,21 @@
标准分页Id
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingQuestionTrialView.RelevanceId">
<summary>
关联ID
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingQuestionTrialView.RelevanceValue">
<summary>
关联Value
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingQuestionTrialView.ImageCount">
<summary>
图片数量
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingQuestionSystemView.Id">
<summary>
Id
@ -2450,6 +2485,11 @@
是否是裁判问题
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingQuestionSystemView.ImageCount">
<summary>
图片数量
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingQuestionTrialViewInDto.ReadingQuestionCriterionTrialId">
<summary>
系统标准Id
@ -2550,6 +2590,21 @@
裁判类型
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.TrialQuestion.RelevanceId">
<summary>
关联ID
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.TrialQuestion.RelevanceValue">
<summary>
关联Value
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.TrialQuestion.ImageCount">
<summary>
图片数量
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.AddOrUpdateReadingQuestionSystemInDto.GroupName">
<summary>
分组
@ -2610,6 +2665,11 @@
类型值
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.AddOrUpdateReadingQuestionSystemInDto.ImageCount">
<summary>
图片数量
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.AddOrUpdateReadingQuestionTrialInDto.Id">
<summary>
Id
@ -2680,6 +2740,21 @@
标准分页Id
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.AddOrUpdateReadingQuestionTrialInDto.RelevanceId">
<summary>
关联ID
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.AddOrUpdateReadingQuestionTrialInDto.RelevanceValue">
<summary>
关联Value
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.AddOrUpdateReadingQuestionTrialInDto.ImageCount">
<summary>
图片数量
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingQuestionCriterionSystemView.Id">
<summary>
返回的对象
@ -2740,6 +2815,11 @@
修约小数点
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingQuestionCriterionTrialView.ShowOrder">
<summary>
排序
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingQuestionCriterionTrialView.IsSystemData">
<summary>
是否是系统数据
@ -4285,6 +4365,11 @@
评估原因
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Contracts.SetOncologySetInDto.IsShowDetail">
<summary>
是否显示详情
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Contracts.GetOncologySetOutDto.EvaluationResult">
<summary>
评估结果
@ -4295,6 +4380,11 @@
评估原因
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Contracts.GetOncologySetOutDto.IsShowDetail">
<summary>
是否显示详情
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Contracts.SetTrialReadingCriterionInDto.FormType">
<summary>
表单类型

View File

@ -103,6 +103,10 @@ namespace IRaCIS.Core.Application.Contracts
public int FileCount { get; set; }
public bool IsSuccess = true;
public string Note = string.Empty;
}

View File

@ -180,7 +180,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
UploadTime = t.CreateTime,
IsSuccess=t.IsSuccess,
Note=t.Note,
IP = t.IP,
FileCount = t.FileCount,
FileSize = t.FileSize,

View File

@ -80,6 +80,11 @@ namespace IRaCIS.Core.Domain.Models
[ForeignKey("CreateUserId")]
public User Uploader { get; set; }
public bool IsSuccess = true;
public string Note = string.Empty;
}
}