修改OSS 上传
parent
6e4d038b38
commit
5dec67aa32
|
@ -228,7 +228,6 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[HttpPost, Route("Study/PreArchiveStudy")]
|
[HttpPost, Route("Study/PreArchiveStudy")]
|
||||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
||||||
public async Task<IResponseOutput> PreArchiveStudy(PreArchiveStudyCommand preArchiveStudyCommand,
|
public async Task<IResponseOutput> PreArchiveStudy(PreArchiveStudyCommand preArchiveStudyCommand,
|
||||||
|
@ -264,12 +263,6 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//public string UploadOOSTest(string filePath, string route)
|
|
||||||
//{
|
|
||||||
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>Dicom 归档</summary>
|
/// <summary>Dicom 归档</summary>
|
||||||
[HttpPost, Route("Study/ArchiveStudy")]
|
[HttpPost, Route("Study/ArchiveStudy")]
|
||||||
[DisableFormValueModelBinding]
|
[DisableFormValueModelBinding]
|
||||||
|
@ -443,260 +436,43 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class UploadNoneDicomFileCommand
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 上传临床数据 多文件
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="subjectVisitId"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPost("ClinicalData/UploadVisitClinicalData/{trialId:guid}/{subjectVisitId:guid}")]
|
|
||||||
[DisableRequestSizeLimit]
|
|
||||||
//[Authorize(Policy = IRaCISPolicy.CRC)]
|
|
||||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
|
||||||
|
|
||||||
public async Task<IResponseOutput> UploadVisitClinicalData(Guid subjectVisitId)
|
|
||||||
{
|
{
|
||||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
public Guid TrialId { get; set; }
|
||||||
var sv = _repository.Where<SubjectVisit>(t => t.Id == subjectVisitId).Select(t => new { t.TrialId, t.SiteId, t.SubjectId }).FirstOrDefault().IfNullThrowException();
|
public Guid SubjectVisitId { get; set; }
|
||||||
|
public Guid NoneDicomStudyId { get; set; }
|
||||||
|
public Guid StudyMonitorId { get; set; }
|
||||||
|
|
||||||
await FileUploadAsync(async (fileName) =>
|
|
||||||
|
public List<OSSFileDTO> UploadedFileList { get; set; } = new List<OSSFileDTO>();
|
||||||
|
|
||||||
|
|
||||||
|
public class OSSFileDTO
|
||||||
{
|
{
|
||||||
var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetClinicalDataPath(_hostEnvironment, fileName, sv.TrialId, sv.SiteId, sv.SubjectId, subjectVisitId);
|
public string FilePath { get; set; }
|
||||||
//插入临床pdf 路径
|
public string FileName { get; set; }
|
||||||
await _repository.AddAsync(new PreviousPDF()
|
public int FileFize { get; set; }
|
||||||
{
|
}
|
||||||
SubjectVisitId = subjectVisitId,
|
|
||||||
|
|
||||||
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();
|
|
||||||
return ResponseOutput.Ok();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 上传临床数据模板
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="trialId"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPost("ClinicalData/UploadClinicalTemplate")]
|
|
||||||
[DisableRequestSizeLimit]
|
|
||||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "BeforeOngoingCantOpt", "AfterStopCannNotOpt" })]
|
|
||||||
|
|
||||||
|
|
||||||
public async Task<IResponseOutput<List<FileDto>>> UploadClinicalTemplate(Guid? trialId)
|
|
||||||
{
|
|
||||||
if (trialId == null)
|
|
||||||
trialId = default(Guid);
|
|
||||||
|
|
||||||
var filerelativePath = string.Empty;
|
|
||||||
List<FileDto> fileDtos = new List<FileDto>();
|
|
||||||
await FileUploadAsync(async (fileName) =>
|
|
||||||
{
|
|
||||||
var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetClinicalTemplatePath(_hostEnvironment, fileName, trialId.Value);
|
|
||||||
//插入临床pdf 路径
|
|
||||||
filerelativePath = relativePath;
|
|
||||||
|
|
||||||
fileDtos.Add(new FileDto()
|
|
||||||
{
|
|
||||||
FileName = fileName,
|
|
||||||
Path = relativePath
|
|
||||||
|
|
||||||
});
|
|
||||||
await Task.CompletedTask;
|
|
||||||
return serverFilePath;
|
|
||||||
});
|
|
||||||
|
|
||||||
return ResponseOutput.Ok(fileDtos);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 上传阅片临床数据
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="trialId"></param>
|
|
||||||
/// <param name="subjectId"></param>
|
|
||||||
/// <param name="readingId"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPost("ClinicalData/UploadClinicalData/{trialId:guid}/{subjectId:guid}/{readingId:guid}")]
|
|
||||||
[DisableRequestSizeLimit]
|
|
||||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
|
||||||
|
|
||||||
public async Task<IResponseOutput<List<FileDto>>> UploadReadClinicalData(Guid trialId, Guid subjectId, Guid readingId)
|
|
||||||
{
|
|
||||||
var filerelativePath = string.Empty;
|
|
||||||
List<FileDto> fileDtos = new List<FileDto>();
|
|
||||||
|
|
||||||
var siteid = await _repository.Where<Subject>(x => x.Id == subjectId).Select(x => x.SiteId).FirstOrDefaultAsync();
|
|
||||||
|
|
||||||
await FileUploadAsync(async (fileName) =>
|
|
||||||
{
|
|
||||||
var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetReadClinicalDataPath(_hostEnvironment, fileName, trialId, siteid, subjectId, readingId);
|
|
||||||
//插入临床pdf 路径
|
|
||||||
filerelativePath = relativePath;
|
|
||||||
|
|
||||||
fileDtos.Add(new FileDto()
|
|
||||||
{
|
|
||||||
FileName = fileName,
|
|
||||||
Path = relativePath
|
|
||||||
|
|
||||||
});
|
|
||||||
await Task.CompletedTask;
|
|
||||||
return serverFilePath;
|
|
||||||
});
|
|
||||||
|
|
||||||
return ResponseOutput.Ok(fileDtos);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 上传截图
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="subjectId"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPost("Printscreen/UploadPrintscreen/{subjectId:guid}")]
|
|
||||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
|
||||||
public async Task<IResponseOutput<FileDto>> UploadPrintscreen(Guid subjectId)
|
|
||||||
{
|
|
||||||
|
|
||||||
var subjectInfo = await this._repository.Where<Subject>(x => x.Id == subjectId).FirstNotNullAsync();
|
|
||||||
|
|
||||||
FileDto fileDto = new FileDto();
|
|
||||||
await FileUploadAsync(async (fileName) =>
|
|
||||||
{
|
|
||||||
var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetUploadPrintscreenFilePath(_hostEnvironment, fileName, subjectInfo.TrialId, subjectInfo.SiteId, subjectInfo.Id);
|
|
||||||
fileDto.Path = relativePath;
|
|
||||||
fileDto.FileName = fileName;
|
|
||||||
await Task.CompletedTask;
|
|
||||||
return serverFilePath;
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
return ResponseOutput.Ok(fileDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 上传Reading问题的图像
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="trialId"></param>
|
|
||||||
/// <param name="visitTaskId"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPost("VisitTask/UploadReadingAnswerImage/{trialId:guid}/{visitTaskId:guid}")]
|
|
||||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
|
||||||
public async Task<IResponseOutput<FileDto>> UploadReadingAnswerImage(Guid trialId, Guid visitTaskId)
|
|
||||||
{
|
|
||||||
|
|
||||||
FileDto fileDto = new FileDto();
|
|
||||||
await FileUploadAsync(async (fileName) =>
|
|
||||||
{
|
|
||||||
var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetFilePath(_hostEnvironment, fileName, trialId, visitTaskId, StaticData.Folder.JudgeTask);
|
|
||||||
fileDto.Path = relativePath;
|
|
||||||
fileDto.FileName = fileName;
|
|
||||||
await Task.CompletedTask;
|
|
||||||
return serverFilePath;
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
return ResponseOutput.Ok(fileDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 上传裁判任务的图像
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="trialId"></param>
|
|
||||||
/// <param name="visitTaskId"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPost("VisitTask/UploadJudgeTaskImage/{trialId:guid}/{visitTaskId:guid}")]
|
|
||||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
|
||||||
public async Task<IResponseOutput<FileDto>> UploadJudgeTaskImage(Guid trialId, Guid visitTaskId)
|
|
||||||
{
|
|
||||||
|
|
||||||
FileDto fileDto = new FileDto();
|
|
||||||
await FileUploadAsync(async (fileName) =>
|
|
||||||
{
|
|
||||||
var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetFilePath(_hostEnvironment, fileName, trialId, visitTaskId, StaticData.Folder.JudgeTask);
|
|
||||||
fileDto.Path = relativePath;
|
|
||||||
fileDto.FileName = fileName;
|
|
||||||
|
|
||||||
await Task.CompletedTask;
|
|
||||||
|
|
||||||
return serverFilePath;
|
|
||||||
});
|
|
||||||
|
|
||||||
return ResponseOutput.Ok(fileDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 上传医学审核图片
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="trialId"></param>
|
|
||||||
/// <param name="taskMedicalReviewId"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPost("TaskMedicalReview/UploadMedicalReviewImage/{trialId:guid}/{taskMedicalReviewId:guid}")]
|
|
||||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
|
||||||
public async Task<IResponseOutput<FileDto>> UploadMedicalReviewImage(Guid trialId, Guid taskMedicalReviewId)
|
|
||||||
{
|
|
||||||
string path = string.Empty;
|
|
||||||
FileDto fileDto = new FileDto();
|
|
||||||
await FileUploadAsync(async (fileName) =>
|
|
||||||
{
|
|
||||||
|
|
||||||
var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetMedicalReviewImage(_hostEnvironment, fileName, trialId, taskMedicalReviewId);
|
|
||||||
|
|
||||||
|
|
||||||
//await _repository.UpdatePartialFromQueryAsync<TaskMedicalReview>(x => x.Id == taskMedicalReviewId, x => new TaskMedicalReview()
|
|
||||||
//{
|
|
||||||
// ImagePath = relativePath,
|
|
||||||
// FileName = fileName,
|
|
||||||
//});
|
|
||||||
|
|
||||||
path = relativePath;
|
|
||||||
fileDto.Path = relativePath;
|
|
||||||
fileDto.FileName = fileName;
|
|
||||||
return serverFilePath;
|
|
||||||
});
|
|
||||||
|
|
||||||
await _repository.SaveChangesAsync();
|
|
||||||
return ResponseOutput.Ok(fileDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 上传非Dicom 文件 支持压缩包 多文件上传
|
/// 上传非Dicom 文件 支持压缩包 多文件上传
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="formCollection"></param>
|
|
||||||
/// <param name="subjectVisitId"></param>
|
|
||||||
/// <param name="noneDicomStudyId"></param>
|
|
||||||
/// <param name="studyMonitorId"></param>
|
|
||||||
/// <param name="_noneDicomStudyRepository"></param>
|
/// <param name="_noneDicomStudyRepository"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
//[DisableRequestSizeLimit]
|
//[DisableRequestSizeLimit]
|
||||||
[RequestSizeLimit(1_073_741_824)]
|
[HttpPost("NoneDicomStudy/UploadNoneDicomFile")]
|
||||||
[HttpPost("NoneDicomStudy/UploadNoneDicomFile/{trialId:guid}/{subjectVisitId:guid}/{noneDicomStudyId:guid}/{studyMonitorId:guid}")]
|
|
||||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
||||||
//[Authorize(Policy = IRaCISPolicy.CRC)]
|
//[Authorize(Policy = IRaCISPolicy.CRC)]
|
||||||
public async Task<IResponseOutput> UploadNoneDicomFile(IFormCollection formCollection, Guid subjectVisitId, Guid noneDicomStudyId, Guid studyMonitorId,
|
public async Task<IResponseOutput> UploadNoneDicomFile(UploadNoneDicomFileCommand incommand,
|
||||||
[FromServices] IRepository<NoneDicomStudy> _noneDicomStudyRepository, [FromServices] IRepository<StudyMonitor> _studyMonitorRepository)
|
[FromServices] IRepository<NoneDicomStudy> _noneDicomStudyRepository, [FromServices] IRepository<StudyMonitor> _studyMonitorRepository)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
var subjectVisitId = incommand.SubjectVisitId;
|
||||||
|
var studyMonitorId = incommand.StudyMonitorId;
|
||||||
|
var noneDicomStudyId = incommand.NoneDicomStudyId;
|
||||||
|
|
||||||
|
|
||||||
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
|
||||||
|
|
||||||
var sv = (await _repository.Where<SubjectVisit>(t => t.Id == subjectVisitId).Select(t => new { t.TrialId, t.SiteId, t.SubjectId }).FirstOrDefaultAsync()).IfNullThrowConvertException();
|
var sv = (await _repository.Where<SubjectVisit>(t => t.Id == subjectVisitId).Select(t => new { t.TrialId, t.SiteId, t.SubjectId }).FirstOrDefaultAsync()).IfNullThrowConvertException();
|
||||||
|
@ -705,33 +481,24 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
|
|
||||||
studyMonitor.UploadFinishedTime = DateTime.Now;
|
studyMonitor.UploadFinishedTime = DateTime.Now;
|
||||||
|
|
||||||
await FileUploadAsync(async (fileName) =>
|
foreach (var item in incommand.UploadedFileList)
|
||||||
{
|
{
|
||||||
|
await _repository.AddAsync(new NoneDicomStudyFile() { FileName = item.FileName, Path = item.FilePath, NoneDicomStudyId = noneDicomStudyId });
|
||||||
|
|
||||||
var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetNoneDicomFilePath(_hostEnvironment, fileName, sv.TrialId, sv.SiteId, sv.SubjectId, subjectVisitId);
|
}
|
||||||
|
|
||||||
await _repository.AddAsync(new NoneDicomStudyFile() { FileName = fileRealName, Path = relativePath, NoneDicomStudyId = noneDicomStudyId });
|
|
||||||
|
|
||||||
return serverFilePath;
|
|
||||||
});
|
|
||||||
|
|
||||||
var uploadFinishedTime = DateTime.Now;
|
var uploadFinishedTime = DateTime.Now;
|
||||||
|
|
||||||
|
|
||||||
//// 上传非Dicom 后 将状态改为待提交 分为普通上传 和QC后重传 普通上传时才改为待提交
|
|
||||||
//await _repository.UpdatePartialFromQueryAsync<SubjectVisit>(t => t.Id == subjectVisitId && t.SubmitState == SubmitStateEnum.None, u => new SubjectVisit() { SubmitState = SubmitStateEnum.ToSubmit });
|
|
||||||
|
|
||||||
var noneDicomStudy = await _noneDicomStudyRepository.FirstOrDefaultAsync((t => t.Id == noneDicomStudyId));
|
var noneDicomStudy = await _noneDicomStudyRepository.FirstOrDefaultAsync((t => t.Id == noneDicomStudyId));
|
||||||
|
|
||||||
noneDicomStudy.FileCount = noneDicomStudy.FileCount + formCollection.Files.Count;
|
noneDicomStudy.FileCount = noneDicomStudy.FileCount + incommand.UploadedFileList.Count;
|
||||||
|
|
||||||
studyMonitor.FileCount = formCollection.Files.Count;
|
studyMonitor.FileCount = incommand.UploadedFileList.Count;
|
||||||
studyMonitor.FileSize = formCollection.Files.Sum(t => t.Length);
|
studyMonitor.FileSize = incommand.UploadedFileList.Sum(t => t.FileFize);
|
||||||
studyMonitor.IsDicom = false;
|
studyMonitor.IsDicom = false;
|
||||||
studyMonitor.IsDicomReUpload = false;
|
studyMonitor.IsDicomReUpload = false;
|
||||||
studyMonitor.StudyId = noneDicomStudyId;
|
studyMonitor.StudyId = noneDicomStudyId;
|
||||||
studyMonitor.StudyCode = noneDicomStudy.StudyCode;
|
studyMonitor.StudyCode = noneDicomStudy.StudyCode;
|
||||||
studyMonitor.ArchiveFinishedTime = DateTime.Now;
|
studyMonitor.ArchiveFinishedTime = DateTime.Now;
|
||||||
studyMonitor.IP = _userInfo.IP;
|
studyMonitor.IP = _userInfo.IP;
|
||||||
|
|
||||||
await _repository.SaveChangesAsync();
|
await _repository.SaveChangesAsync();
|
||||||
|
@ -742,6 +509,7 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 一致性核查 excel上传 支持三种格式
|
/// 一致性核查 excel上传 支持三种格式
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -982,9 +750,6 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 上传文件( 不是医生个人的文件)[FileUpload]
|
/// 上传文件( 不是医生个人的文件)[FileUpload]
|
||||||
/// 例如:阅片章程等
|
/// 例如:阅片章程等
|
||||||
|
@ -1057,8 +822,6 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[HttpPost, Route("enroll/downloadResume/{trialId:guid}/{language}")]
|
[HttpPost, Route("enroll/downloadResume/{trialId:guid}/{language}")]
|
||||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
|
@ -1068,6 +831,7 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
|
|
||||||
return ResponseOutput.Ok(zipPath);
|
return ResponseOutput.Ok(zipPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -1084,8 +848,6 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
|
|
||||||
private readonly IWebHostEnvironment _hostEnvironment;
|
private readonly IWebHostEnvironment _hostEnvironment;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public UploadDownLoadController(IMapper mapper, IUserInfo userInfo, IMediator mediator, IWebHostEnvironment hostEnvironment)
|
public UploadDownLoadController(IMapper mapper, IUserInfo userInfo, IMediator mediator, IWebHostEnvironment hostEnvironment)
|
||||||
{
|
{
|
||||||
_hostEnvironment = hostEnvironment;
|
_hostEnvironment = hostEnvironment;
|
||||||
|
@ -1094,104 +856,6 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
_userInfo = userInfo;
|
_userInfo = userInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary> 缩略图 </summary>
|
|
||||||
[AllowAnonymous]
|
|
||||||
[HttpGet("Common/LocalFilePreview")]
|
|
||||||
public async Task<FileContentResult> LocalFilePreview(string relativePath)
|
|
||||||
{
|
|
||||||
|
|
||||||
var _fileStorePath = FileStoreHelper.GetPhysicalFilePath(_hostEnvironment, relativePath);
|
|
||||||
|
|
||||||
var storePreviewPath = _fileStorePath + ".preview.jpeg";
|
|
||||||
|
|
||||||
if (!System.IO.File.Exists(storePreviewPath))
|
|
||||||
{
|
|
||||||
ImageHelper.ResizeSave(_fileStorePath, storePreviewPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new FileContentResult(await System.IO.File.ReadAllBytesAsync(storePreviewPath), "image/jpeg");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary> 通用文件下载 </summary>
|
|
||||||
[AllowAnonymous]
|
|
||||||
[HttpGet("CommonDocument/DownloadCommonDoc")]
|
|
||||||
public async Task<IActionResult> DownloadCommonFile(string code, [FromServices] IRepository<CommonDocument> _commonDocumentRepository)
|
|
||||||
{
|
|
||||||
var (filePath, fileName) = await FileStoreHelper.GetCommonDocPhysicalFilePathAsync(_hostEnvironment, _commonDocumentRepository, code);
|
|
||||||
|
|
||||||
new FileExtensionContentTypeProvider().Mappings.TryGetValue(Path.GetExtension(filePath), out var contentType);
|
|
||||||
|
|
||||||
return File(System.IO.File.OpenRead(filePath), contentType ?? "application/octet-stream", fileName);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 下载项目临床数据文件
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="clinicalDataTrialSetId"></param>
|
|
||||||
/// <param name="_clinicalDataTrialSetRepository"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[AllowAnonymous]
|
|
||||||
[HttpGet("CommonDocument/DownloadTrialClinicalFile")]
|
|
||||||
public async Task<IActionResult> DownloadTrialClinicalFile(Guid clinicalDataTrialSetId, [FromServices] IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository)
|
|
||||||
{
|
|
||||||
var (filePath, fileName) = await FileStoreHelper.GetTrialClinicalPathAsync(_hostEnvironment, _clinicalDataTrialSetRepository, clinicalDataTrialSetId);
|
|
||||||
|
|
||||||
new FileExtensionContentTypeProvider().Mappings.TryGetValue(Path.GetExtension(filePath), out var contentType);
|
|
||||||
|
|
||||||
return File(System.IO.File.OpenRead(filePath), contentType ?? "application/octet-stream", fileName);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 下载系统临床数据文件
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="clinicalDataSystemSetId"></param>
|
|
||||||
/// <param name="_clinicalDataSystemSetRepository"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[AllowAnonymous]
|
|
||||||
[HttpGet("CommonDocument/DownloadSystemClinicalFile")]
|
|
||||||
public async Task<IActionResult> DownloadSystemClinicalFile(Guid clinicalDataSystemSetId, [FromServices] IRepository<ClinicalDataSystemSet> _clinicalDataSystemSetRepository)
|
|
||||||
{
|
|
||||||
var (filePath, fileName) = await FileStoreHelper.GetSystemClinicalPathAsync(_hostEnvironment, _clinicalDataSystemSetRepository, clinicalDataSystemSetId);
|
|
||||||
|
|
||||||
new FileExtensionContentTypeProvider().Mappings.TryGetValue(Path.GetExtension(filePath), out var contentType);
|
|
||||||
|
|
||||||
return File(System.IO.File.OpenRead(filePath), contentType ?? "application/octet-stream", fileName);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
///上传项目签名文档
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="trialId"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPost("TrialDocument/UploadTrialDoc/{trialId:guid}")]
|
|
||||||
[DisableRequestSizeLimit]
|
|
||||||
[DisableFormValueModelBinding]
|
|
||||||
public async Task<IResponseOutput> UploadTrialDoc(Guid trialId)
|
|
||||||
{
|
|
||||||
|
|
||||||
return await SingleFileUploadAsync((fileName) => FileStoreHelper.GetTrialSignDocPath(_hostEnvironment, trialId, fileName));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 上传系统签名文档
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPost("TrialDocument/UploadSystemDoc")]
|
|
||||||
[DisableRequestSizeLimit]
|
|
||||||
[DisableFormValueModelBinding]
|
|
||||||
public async Task<IResponseOutput> UploadSysTemDoc()
|
|
||||||
{
|
|
||||||
|
|
||||||
return await SingleFileUploadAsync((fileName) => FileStoreHelper.GetSystemSignDocPath(_hostEnvironment, fileName));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -1208,19 +872,6 @@ namespace IRaCIS.Core.API.Controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 上传系统通知文档
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPost("SystemNotice/UploadSystemNoticeDoc")]
|
|
||||||
[DisableRequestSizeLimit]
|
|
||||||
[DisableFormValueModelBinding]
|
|
||||||
public async Task<IResponseOutput> UploadSystemNoticeDoc()
|
|
||||||
{
|
|
||||||
|
|
||||||
return await SingleFileUploadAsync((fileName) => FileStoreHelper.GetSystemNoticePath(_hostEnvironment, fileName));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum UploadFileType
|
public enum UploadFileType
|
||||||
{
|
{
|
||||||
|
|
|
@ -159,7 +159,7 @@
|
||||||
<Folder Include="Properties\PublishProfiles\" />
|
<Folder Include="Properties\PublishProfiles\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ProjectExtensions><VisualStudio><UserProperties anonymizetagsetting_1json__JsonSchema="http://json.schemastore.org/jovo-language-model" properties_4launchsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>
|
<ProjectExtensions><VisualStudio><UserProperties properties_4launchsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>
|
||||||
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -17,9 +17,9 @@
|
||||||
"Endpoint": "https://oss-cn-shanghai.aliyuncs.com",
|
"Endpoint": "https://oss-cn-shanghai.aliyuncs.com",
|
||||||
"AccessKeyId": "LTAI5tKvzs7ed3UfSpNk3xwQ",
|
"AccessKeyId": "LTAI5tKvzs7ed3UfSpNk3xwQ",
|
||||||
"AccessKeySecret": "zTIceGEShlZDGnLrCFfIGFE7TXVRio",
|
"AccessKeySecret": "zTIceGEShlZDGnLrCFfIGFE7TXVRio",
|
||||||
"BucketName": "zy-sir-test-store",
|
"BucketName": "zyypacs",
|
||||||
"RoleArn": "acs:ram::1899121822495495:role/oss-upload",
|
"RoleArn": "acs:ram::1899121822495495:role/oss-upload",
|
||||||
"ViewEndpoint": "https://zy-sir-test-store.oss-cn-shanghai.aliyuncs.com",
|
"ViewEndpoint": "https://zyypacs.oss-cn-shanghai.aliyuncs.com",
|
||||||
"Region": "oss-cn-shanghai"
|
"Region": "oss-cn-shanghai"
|
||||||
},
|
},
|
||||||
"BasicSystemConfig": {
|
"BasicSystemConfig": {
|
||||||
|
|
Loading…
Reference in New Issue