diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index b1cd307ed..9193531bf 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -735,6 +735,15 @@ + + + 重传申请导表 + + + + + + getSysDocumentConfirmList 系统文档培训查询 @@ -2169,7 +2178,7 @@ - + 指定资源Id,获取Dicom检查信息 Dicom检查的Id @@ -17582,7 +17591,7 @@ - + 指定资源Id,获取Dicom检查所属序列信息列表 Dicom检查的Id @@ -17981,7 +17990,7 @@ - + 获取下一个质控任务 diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index bf90ddaae..a0d720659 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -37,6 +37,7 @@ namespace IRaCIS.Core.Application.Service.Common IRepository _dicomStudyRepository, IRepository _qcChallengeRepository, IRepository _readModuleRepository, + IRepository _trialRepository, IRepository _noneDicomStudyRepository, IRepository _studyMonitorRepository, IRepository _commonDocumentRepository, @@ -398,6 +399,46 @@ namespace IRaCIS.Core.Application.Service.Common #region 导表查询 + /// + /// 重传申请导表 + /// + /// + /// + /// + /// + [HttpPost] + public async Task GetImageBackList_Export(ImageBackQueryDto inQuery, + [FromServices] IRepository _subjectVisitImageBackRecordReposiotry, [FromServices] IDictionaryService _dictionaryService) + { + var svExpression = QCCommon.GetSubjectVisitImageBackRecordFilter(inQuery.VisitPlanArray); + + var query = _subjectVisitImageBackRecordReposiotry.Where(t => t.SubjectVisit.TrialId == inQuery.TrialId) + .WhereIf(inQuery.TrialSiteId != null, t => t.SubjectVisit.TrialSiteId == inQuery.TrialSiteId) + .WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.SubjectVisit.Subject.Code.Contains(inQuery.SubjectCode)) + .WhereIf(!string.IsNullOrEmpty(inQuery.VisitName), t => t.SubjectVisit.VisitName.Contains(inQuery.VisitName)) + .WhereIf(inQuery.VisitPlanArray != null && inQuery.VisitPlanArray?.Length > 0, svExpression) + .WhereIf(inQuery.CreateUserId != null, t => t.CreateUserId == inQuery.CreateUserId) + .WhereIf(inQuery.ApplyUserRole != null, t => t.ApplyUserRole == inQuery.ApplyUserRole) + .WhereIf(inQuery.ApplyBeginTime != null, t => t.CreateTime >= inQuery.ApplyBeginTime) + .WhereIf(inQuery.ApplyEndTime != null, t => t.CreateTime <= inQuery.ApplyEndTime) + .WhereIf(inQuery.ImageBackState != null, t => t.ImageBackState == inQuery.ImageBackState) + .WhereIf(inQuery.AuditBeginTime != null, t => t.AuditTime >= inQuery.AuditBeginTime) + .WhereIf(inQuery.AuditEndTime != null, t => t.AuditTime <= inQuery.AuditEndTime) + .ProjectTo(_mapper.ConfigurationProvider); + + var defalutSortArray = new string[] { nameof(ImageBackViewModel.IsUrgent) + " desc", nameof(ImageBackViewModel.SubjectCode), nameof(ImageBackViewModel.VisitNum) }; + + var list = await query.OrderByDescending(t=>t.IsUrgent).ThenBy(t=>t.SubjectCode).ThenBy(t=>t.VisitNum).ToListAsync(); + + var exportInfo = (await _trialRepository.Where(t => t.Id == inQuery.TrialId).IgnoreQueryFilters().ProjectTo(_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.TrialImageBackRecordList_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(ImageBackViewModel)); + + } + ///getSysDocumentConfirmList 系统文档培训查询 /// [HttpPost] diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs index 040431e29..73dba46fb 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs @@ -1775,12 +1775,15 @@ namespace IRaCIS.Core.Application.Contracts public DateTime? AuditTime { get; set; } public Guid SubjectVisitId { get; set; } + [DictionaryTranslateAttribute("ImageBackApplyEnum")] public ImageBackApplyEnum ApplyUserRole { get; set; } + [DictionaryTranslateAttribute("ImageBackApplyEnum")] public ImageBackStateEnum ImageBackState { get; set; } public DateTime? SubmitTime { get; set; } + [DictionaryTranslateAttribute("YesOrNo")] public bool IsUrgent { get; set; } public string VisitName { get; set; } = string.Empty; @@ -1789,8 +1792,8 @@ namespace IRaCIS.Core.Application.Contracts public DateTime? LatestScanDate { get; set; } public decimal VisitNum { get; set; } - - + [DictionaryTranslateAttribute("Subject_Visit_Status")] + public SubjectStatus SubjectStatus { get; set; } public string SubjectCode { get; set; } = String.Empty; public String TrialSiteCode { get; set; } = String.Empty; diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs index 2754f2f4e..c0be11513 100644 --- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs @@ -756,6 +756,7 @@ namespace IRaCIS.Core.Application.Service CreateMap() .ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.SubjectVisit.Subject.Code)) + .ForMember(d => d.SubjectStatus, u => u.MapFrom(s => s.SubjectVisit.Subject.Status)) .ForMember(d => d.IsSubjectQuit, u => u.MapFrom(s => s.SubjectVisit.Subject.IsSubjectQuit)) .ForMember(d => d.VisitNum, u => u.MapFrom(t => t.SubjectVisit.VisitNum)) .ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.SubjectVisit.TrialSite.TrialSiteCode)) diff --git a/IRaCIS.Core.Infrastructure/_IRaCIS/_Config/_StaticData.cs b/IRaCIS.Core.Infrastructure/_IRaCIS/_Config/_StaticData.cs index 3cb388af0..b63956c40 100644 --- a/IRaCIS.Core.Infrastructure/_IRaCIS/_Config/_StaticData.cs +++ b/IRaCIS.Core.Infrastructure/_IRaCIS/_Config/_StaticData.cs @@ -302,6 +302,8 @@ public static class StaticData public const string TrialQCResult_Export = "TrialQCResult_Export"; + public const string TrialImageBackRecordList_Export = "TrialImageBackRecordList_Export"; + }