This commit is contained in:
2022-11-07 18:07:31 +08:00
parent c9bb0f677c
commit 21acd1639a
6 changed files with 126 additions and 22 deletions
@@ -275,6 +275,10 @@ namespace IRaCIS.Core.Application.Contracts
public bool IsMissingImages => MissingSubmmitCount > 0;
public bool IsEnrollmentConfirmed { get; set; }
public bool IsPDProgress { get; set; }
public int? RadiologyClinicalDataCount { get; set; }
public bool IsHaveRadiologyClinicalData => RadiologyClinicalDataCount != null && RadiologyClinicalDataCount > 0;
@@ -284,6 +288,39 @@ namespace IRaCIS.Core.Application.Contracts
public bool IsHaveOncologyClinicalData => OncologyClinicalDataCount != null && OncologyClinicalDataCount > 0;
}
public class ReadPeriodQuery
{
public Guid TrialId { get; set; }
}
public class ReadPeriodExportDto
{
public string SubjectCode { get; set; }
public string TrialSiteCode { get; set; }
public SubjectStatus SubjectStatus { get; set; }
public DateTime? FirstGiveMedicineTime { get; set; }
public string ModuleName { get; set; }
public string TrialReadingCriterionName { get; set; }
public string DeadlineVisitName { get; set; }
public DateTime? EarliestScanDate { get; set; }
public DateTime? LatestScanDate { get; set; }
}
#endregion
@@ -149,7 +149,32 @@ namespace IRaCIS.Core.Application.Image.QA
exportInfo.List = list;
return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSubjectList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(QCChanllengeExportDto));
return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSubjectList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(SubjectExportDTO));
}
/// <summary>
/// 阅片期信息表
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public async Task<IActionResult> GetReadingPeriodList_Export(ReadPeriodQuery param,
[FromServices] IRepository<CommonDocument> _commonDocumentRepository,
[FromServices] IDictionaryService _dictionaryService)
{
var list = await _repository.Where<ReadModule>(u => u.TrialId == param.TrialId)
.ProjectTo<ReadPeriodExportDto>(_mapper.ConfigurationProvider).ToListAsync();
var exportInfo = (await _trialRepository.Where(t => t.Id == param.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
exportInfo.List = list;
return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSubjectList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(ReadPeriodExportDto));
}
@@ -53,8 +53,23 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.LostVisitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.IsLostVisit)))
.ForMember(d => d.OutPlanVisitSubmmitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.SubmitState == SubmitStateEnum.Submitted && t.InPlan == false)))
.ForMember(d => d.IsPDProgress, u => u.MapFrom(s => s.SubjectVisitList.Any(t=>t.IsEnrollmentConfirm==true)))
.ForMember(d => d.IsEnrollmentConfirmed, u => u.MapFrom(s => s.SubjectVisitList.Any(t => t.PDState == PDStateEnum.PDProgress)))
.ForMember(d => d.RadiologyClinicalDataCount, u => u.MapFrom(s => s.ClinicalDataList.Count(t => t.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.ImageRead)))
.ForMember(d => d.OncologyClinicalDataCount, u => u.MapFrom(s => s.ClinicalDataList.Count(t => t.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.OncologyRead)));
CreateMap<ReadModule, ReadPeriodExportDto>()
.ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.Subject.TrialSite.TrialSiteCode))
.ForMember(d => d.DeadlineVisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName))
.ForMember(d => d.EarliestScanDate, u => u.MapFrom(s => s.SubjectVisit.EarliestScanDate))
.ForMember(d => d.LatestScanDate, u => u.MapFrom(s => s.SubjectVisit.LatestScanDate))
.ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.Subject.Code))
.ForMember(d => d.SubjectStatus, u => u.MapFrom(s => s.Subject.Status))
.ForMember(d => d.FirstGiveMedicineTime, u => u.MapFrom(s => s.Subject.FirstGiveMedicineTime))
.ForMember(d => d.TrialReadingCriterionName, u => u.MapFrom(s => s.TrialReadingCriterion.CriterionName));
#endregion