From 21acd1639a6af0ce8ae21216d77e52c3a6e901bd Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Mon, 7 Nov 2022 18:07:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 7 +++ .../Document/TrialEmailNoticeConfigService.cs | 46 +++++++++++++------ .../Service/QC/DTO/QCListViewModel.cs | 37 +++++++++++++++ .../Service/QC/QCListService.cs | 27 ++++++++++- .../Service/QC/_MapConfig.cs | 15 ++++++ .../Reading/ReadingPeriod/ReadModule.cs | 16 ++++--- 6 files changed, 126 insertions(+), 22 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index df0cb8e0..f4e8c551 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -7010,6 +7010,13 @@ + + + 阅片期信息表 + + + + CRC 访视上传列表 diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs index cbd10fed..e153f41f 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs @@ -633,7 +633,19 @@ namespace IRaCIS.Core.Application.Service throw new BusinessValidationFailedException("不应有 除访视、裁判、全局其他类型的任务进行发送邮件,请核查业务逻辑"); } - break; + if (answer == OverallAssessment.PD.GetEnumInt()) + { + return "是"; + } + if (answer == OverallAssessment.NA.GetEnumInt()) + { + return "NA"; + } + else + { + return "否"; + } + case CriterionType.PCWG3: if (readingCategory == ReadingCategory.Visit) { @@ -661,7 +673,23 @@ namespace IRaCIS.Core.Application.Service { throw new BusinessValidationFailedException("不应有 除访视、裁判、全局其他类型的任务进行发送邮件,请核查业务逻辑"); } - break; + + if (answer == VisitTumorEvaluation.PD.GetEnumInt()) + { + return "是"; + } + if (answer == VisitTumorEvaluation.ND.GetEnumInt()) + { + return "ND"; + } + if (answer == VisitTumorEvaluation.NE.GetEnumInt()) + { + return "NE"; + } + else + { + return "否"; + } case CriterionType.SelfDefine: case CriterionType.mRECISTMesothelioma: case CriterionType.RECIL: @@ -680,7 +708,6 @@ namespace IRaCIS.Core.Application.Service default: throw new BusinessValidationFailedException("该标准任务还未定义PD获取逻辑,联系业务和后台开发协商后补充"); - break; } @@ -689,18 +716,7 @@ namespace IRaCIS.Core.Application.Service - if (answer == OverallAssessment.PD.GetEnumInt()) - { - return "是"; - } - if (answer == OverallAssessment.NA.GetEnumInt()) - { - return "NA"; - } - else - { - return "否"; - } + } diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs index 227e8f94..c3eb9369 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs @@ -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 diff --git a/IRaCIS.Core.Application/Service/QC/QCListService.cs b/IRaCIS.Core.Application/Service/QC/QCListService.cs index 79898013..c1f59bc1 100644 --- a/IRaCIS.Core.Application/Service/QC/QCListService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCListService.cs @@ -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)); + + } + + + + /// + /// 阅片期信息表 + /// + /// + /// + public async Task GetReadingPeriodList_Export(ReadPeriodQuery param, + [FromServices] IRepository _commonDocumentRepository, + [FromServices] IDictionaryService _dictionaryService) + { + + var list = await _repository.Where(u => u.TrialId == param.TrialId) + + .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + + + var exportInfo = (await _trialRepository.Where(t => t.Id == param.TrialId).IgnoreQueryFilters().ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException(); + + exportInfo.List = list; + + return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSubjectList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(ReadPeriodExportDto)); } diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs index fcee0adb..82106404 100644 --- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs @@ -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() + .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 diff --git a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs index 202022b1..3996e483 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs @@ -14,6 +14,10 @@ namespace IRaCIS.Core.Domain.Models public class ReadModule : Entity, IAuditAdd { + [JsonIgnore] + public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; } + + /// /// 受试者ID /// @@ -68,12 +72,12 @@ namespace IRaCIS.Core.Domain.Models ///// //public decimal VisitNum { get; set; } - [JsonIgnore] - /// - /// 对应 - /// - [ForeignKey("ReadModuleId")] - public ReadModule ReadModuleModel { get; set; } + // [JsonIgnore] + ///// + ///// 对应 + ///// + //[ForeignKey("ReadModuleId")] + //public ReadModule ReadModuleModel { get; set; } [JsonIgnore] ///