|
|
|
@@ -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 后续需要移动过来
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|