增加影像统计导出
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
90cd6ad0eb
commit
0c4bd680dd
|
@ -48,6 +48,54 @@ namespace IRaCIS.Core.Application.Service.Common
|
|||
{
|
||||
|
||||
|
||||
[HttpPost]
|
||||
public async Task<IActionResult> GetTrialVisitImageStatList_Export(TrialVisitImageQuery inQuery,
|
||||
[FromServices] IRepository<SubjectVisit> _subjectVisitRepository,
|
||||
[FromServices] IRepository<Trial> _trialRepository,
|
||||
[FromServices] IDictionaryService _dictionaryService)
|
||||
{
|
||||
var query = _subjectVisitRepository.Where(t => t.TrialId == inQuery.TrialId)
|
||||
.WhereIf(inQuery.TrialSiteId != null, t => t.TrialSiteId == inQuery.TrialSiteId)
|
||||
.WhereIf(inQuery.SubjectCode.IsNotNullOrEmpty(), t => t.Subject.Code.Contains(inQuery.SubjectCode))
|
||||
.WhereIf(inQuery.BeginScanDate != null, t => t.LatestScanDate >= inQuery.BeginScanDate)
|
||||
.WhereIf(inQuery.EndScanDate != null, t => t.LatestScanDate == inQuery.EndScanDate)
|
||||
.Select(t => new TrialVisitImageStatView()
|
||||
{
|
||||
TrialId = t.TrialId,
|
||||
SubjectVisitId = t.Id,
|
||||
SubjectCode = t.Subject.Code,
|
||||
TrialSiteCode = t.TrialSite.TrialSiteCode,
|
||||
TrialSiteId = t.TrialSiteId,
|
||||
VisitName = t.VisitName,
|
||||
VisitNum = t.VisitNum,
|
||||
EarliestScanDate = t.EarliestScanDate,
|
||||
LatestScanDate = t.LatestScanDate,
|
||||
|
||||
IsHaveDicom = t.StudyList.Any(),
|
||||
|
||||
IsHaveNoneDicom = t.NoneDicomStudyList.Any(),
|
||||
|
||||
|
||||
TotalStudyCount = t.StudyList.Count() + t.NoneDicomStudyList.Count(),
|
||||
|
||||
TotalImageCount = t.StudyList.Sum(t => t.InstanceCount) + t.NoneDicomStudyList.Sum(t => t.FileCount),
|
||||
|
||||
TotalImageSize = t.StudyList.SelectMany(t => t.InstanceList).Sum(t => t.FileSize) + t.NoneDicomStudyList.SelectMany(t => t.NoneDicomFileList).Sum(t => t.FileSize),
|
||||
|
||||
});
|
||||
|
||||
|
||||
var list = await query.Where(t => t.TotalImageCount > 0).SortToListAsync(inQuery);
|
||||
|
||||
var exportInfo = (await _trialRepository.Where(t => t.Id == inQuery.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
exportInfo.List = ExportExcelConverterDate.ConvertToClientTimeInObject(list, _userInfo.TimeZoneId);
|
||||
exportInfo.CurrentTime = ExportExcelConverterDate.DateTimeInternationalToString(DateTime.Now, _userInfo.TimeZoneId);
|
||||
|
||||
return await ExcelExportHelper.DataExportAsync(StaticData.Export.TriaVisitImageStat_Export, exportInfo, exportInfo.TrialCode, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(TrialMaintenanceDTO));
|
||||
|
||||
}
|
||||
|
||||
#region 后续需要移动过来
|
||||
|
||||
|
||||
|
|
|
@ -602,6 +602,8 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
? $"{TotalImageSize.Value / 1024d / 1024d:F3} MB"
|
||||
: "0.000 MB";
|
||||
|
||||
public string ImageTypeStr => $"{(IsHaveDicom ? "DICOM," : "")}{(IsHaveNoneDicom ? "Non-DICOM" : "")}";
|
||||
|
||||
public bool IsHaveDicom { get; set; }
|
||||
|
||||
public bool IsHaveNoneDicom { get; set; }
|
||||
|
|
|
@ -298,6 +298,8 @@ public static class StaticData
|
|||
|
||||
public const string OCT_LipidAngle_Template = "OCT_LipidAngle_Template";
|
||||
|
||||
public const string TriaVisitImageStat_Export = "TriaVisitImageStat_Export";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue