缩略图测试

This commit is contained in:
2022-05-20 10:14:01 +08:00
parent 04a24ea438
commit ca1f23ca4d
7 changed files with 144 additions and 42 deletions
@@ -20,6 +20,8 @@ namespace IRaCIS.Core.Application.Contracts
public string FullFilePath { get; set; } = string.Empty;
public string PreviewPath => "/Common/LocalFilePreview?relativePath=" + Path;
}
@@ -17,6 +17,8 @@ namespace IRaCIS.Core.Application.Contracts
public List<NoneDicomStudyFileView> NoneDicomStudyFileList { get; set; } = new List<NoneDicomStudyFileView>();
public List<string> NoneDicomStudyPreviewList=> NoneDicomStudyFileList.Select(t=> t.PreviewPath).ToList();
}
///<summary>NoneDicomStudyQuery 列表查询参数模型</summary>
@@ -14,10 +14,13 @@ using IRaCIS.Core.Application.Service.Inspection.DTO;
using Nito.AsyncEx;
using IRaCIS.Application.Interfaces;
using IRaCIS.Core.Infrastructure;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Authorization;
using System.Drawing;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp;
using IRaCIS.Core.Application.Helper;
namespace IRaCIS.Core.Application.Contracts
{
@@ -44,10 +47,10 @@ namespace IRaCIS.Core.Application.Contracts
IDictionaryService dictionaryService,
IInspectionService inspectionService,
IRepository<StudyMonitor> studyMonitorRepository,
IRepository<NoneDicomStudyFile> noneDicomStudyFileRepository,IRepository<SubjectVisit> subjectVisitRepository, ILogger<NoneDicomStudyService> logger)
IRepository<NoneDicomStudyFile> noneDicomStudyFileRepository, IRepository<SubjectVisit> subjectVisitRepository, ILogger<NoneDicomStudyService> logger)
{
_noneDicomStudyRepository = noneDicomStudyRepository;
this._httpContext = httpContext;
this._dictionaryService = dictionaryService;
this._inspectionService = inspectionService;
@@ -87,7 +90,7 @@ namespace IRaCIS.Core.Application.Contracts
[TypeFilter(typeof(TrialResourceFilter))]
public async Task<IResponseOutput<NoneDicomStudyAddReturnDto>> AddOrUpdateNoneDicomStudy(NoneDicomStudyAddOrEdit addOrEditNoneDicomStudy)
{
var visitList = await _subjectVisitRepository.Where(t => t.SubjectId == addOrEditNoneDicomStudy.SubjectId).Select(t => new { t.VisitNum, t.EarliestScanDate, t.LatestScanDate, t.Id }).ToListAsync();
var visitList = await _subjectVisitRepository.Where(t => t.SubjectId == addOrEditNoneDicomStudy.SubjectId).Select(t => new { t.VisitNum, t.EarliestScanDate, t.LatestScanDate, t.Id }).ToListAsync();
var currentVisitNum = await _subjectVisitRepository.Where(t => t.Id == addOrEditNoneDicomStudy.SubjectVisitId).Select(t => t.VisitNum).FirstOrDefaultAsync();
@@ -155,7 +158,7 @@ namespace IRaCIS.Core.Application.Contracts
[TypeFilter(typeof(TrialResourceFilter))]
[HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{noneDicomStudyId:guid}")]
public async Task<IResponseOutput> DeleteNoneDicomStudy(Guid noneDicomStudyId,Guid subjectVisitId)
public async Task<IResponseOutput> DeleteNoneDicomStudy(Guid noneDicomStudyId, Guid subjectVisitId)
{
//提交了 但是IQC同意的时候 是可以删除的 | 普通提交后也不能删除
if (await _subjectVisitRepository.AnyAsync(t => t.Id == subjectVisitId && t.SubmitState == SubmitStateEnum.Submitted &&
@@ -164,7 +167,7 @@ namespace IRaCIS.Core.Application.Contracts
return ResponseOutput.NotOk("CRC Has Submited Imagecan not delete");
}
await _noneDicomStudyRepository.DeleteFromQueryAsync( noneDicomStudyId);
await _noneDicomStudyRepository.DeleteFromQueryAsync(noneDicomStudyId);
await _noneDicomStudyFileRepository.DeleteFromQueryAsync(t => t.NoneDicomStudyId == noneDicomStudyId);
@@ -189,7 +192,7 @@ namespace IRaCIS.Core.Application.Contracts
}
//var subjectVisitId = await _noneDicomStudyFileRepository.Where(t => t.Id == noneDicomStudyFileId).Select(t => t.NoneDicomStudy.SubjectVisitId).FirstOrDefaultAsync();
var success = await _noneDicomStudyFileRepository.DeleteFromQueryAsync(t => t.Id == noneDicomStudyFileId,true);
var success = await _noneDicomStudyFileRepository.DeleteFromQueryAsync(t => t.Id == noneDicomStudyFileId, true);
return ResponseOutput.Ok();
}
@@ -212,37 +215,7 @@ namespace IRaCIS.Core.Application.Contracts
return await _repository.Where<NoneDicomStudyFile>(t => t.NoneDicomStudy.SubjectVisitId == subjectVisitId).ProjectTo<NoneDicomStudyFileView>(_mapper.ConfigurationProvider, new { token = _userInfo.UserToken }).ToListAsync();
}
[AllowAnonymous]
[HttpGet]
public async Task<FileContentResult> NoneDicomFilePreview(string relativePath)
{
var rootPath = Directory.GetParent(_hostEnvironment.ContentRootPath.TrimEnd('\\')).IfNullThrowException().FullName;
var _fileStorePath = Path.Combine(rootPath, relativePath.Replace('/', '\\').Trim('\\'));
//_logger.LogError(rootPath);
//_logger.LogError(_fileStorePath);
var storePreviewPath = _fileStorePath + ".preview.jpg";
//if (!File.Exists(storePreviewPath))
//{
using (var image = SixLabors.ImageSharp.Image.Load(await File.ReadAllBytesAsync(_fileStorePath)))
{
image.Mutate(x => x
.Resize(1000, 1000)
);
await image.SaveAsJpegAsync(storePreviewPath);
}
//}
return new FileContentResult(await File.ReadAllBytesAsync(storePreviewPath), "image/jpg");
}
/// <summary>
/// 上传非Dicom 文件 支持压缩包
@@ -308,7 +281,7 @@ namespace IRaCIS.Core.Application.Contracts
// 上传非Dicom 后 将状态改为待提交 分为普通上传 和QC后重传 普通上传时才改为待提交
await _subjectVisitRepository.UpdatePartialFromQueryAsync(t => t.Id == subjectVisitId && t.SubmitState == SubmitStateEnum.None, u => new SubjectVisit() { SubmitState = SubmitStateEnum.ToSubmit });
var studyCode= await _noneDicomStudyRepository.Where(t=>t.Id== noneDicomStudyId).Select(t => t.StudyCode).FirstOrDefaultAsync();
var studyCode = await _noneDicomStudyRepository.Where(t => t.Id == noneDicomStudyId).Select(t => t.StudyCode).FirstOrDefaultAsync();
await _studyMonitorRepository.AddAsync(new StudyMonitor()
{
@@ -317,7 +290,7 @@ namespace IRaCIS.Core.Application.Contracts
IsDicom = false,
IsDicomReUpload = false,
StudyId = noneDicomStudyId,
StudyCode= studyCode,
StudyCode = studyCode,
UploadStartTime = startTime,
UploadFinishedTime = DateTime.Now,
IP = _userInfo.IP,