diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 7c533384..90e23482 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -527,15 +527,25 @@ - 整体肿瘤评估 多个标准一个接口 Excel 列是一样的 + 整体肿瘤评估 (目前仅仅 RECIST1.1 多个标准一个接口 Excel 列是一样的 ) - + + + 肿瘤疗效评估表 ( 目前仅仅 RECIST1.1) + + + + + + + + - 评估病灶明细表 ( 目前 RECIST1.1 PGW3 表都是不同的) + 评估病灶明细表 (目前仅仅 RECIST1.1 RECIST1.1 PGW3 表都是不同的) @@ -6974,6 +6984,16 @@ 无效的 为True无效 + + + 组件一致性和原Arm1是否有差异 + + + + + 组件一致性和原Arm2是否有差异 + + diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index 5edd1180..59371f6d 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -471,6 +471,12 @@ namespace IRaCIS.Core.Application.Service.Common [FromServices] IRepository _trialRepository) { + var criterionType = await _repository.Where(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => t.CriterionType).FirstOrDefaultAsync(); + + if (criterionType != CriterionType.RECIST1Pointt1) + { + throw new Exception("当前标准导出还未支持"); + } //产生一致性分析的Subject var subjectQuerybal = _repository.Where(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && t.IsSelfAnalysis == true).Select(t => t.SubjectId).Distinct(); @@ -541,6 +547,12 @@ namespace IRaCIS.Core.Application.Service.Common [FromServices] IDictionaryService _dictionaryService, [FromServices] IRepository _trialRepository) { + var criterionType = await _repository.Where(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => t.CriterionType).FirstOrDefaultAsync(); + + if (criterionType != CriterionType.RECIST1Pointt1) + { + throw new Exception("当前标准导出还未支持"); + } //产生组间一致性分析的Subject @@ -574,7 +586,7 @@ namespace IRaCIS.Core.Application.Service.Common var list = allList.Where(t => t.IsSelfAnalysis == null).OrderBy(t => t.TrialSiteCode).ThenBy(t => t.SubjectCode).ThenBy(t => t.VisitTaskNum).ToList(); - var newList=new List(); + var newList = new List(); // 每个subject访视进行分组 @@ -587,7 +599,7 @@ namespace IRaCIS.Core.Application.Service.Common var subjectVisitGroupList = group.ToList(); - //找到当前访视组件一致性分析的任务结果 + //找到当前访视组间一致性分析的任务结果 var groupTaskList = allList.Where(t => t.IsSelfAnalysis == false && t.SubjectCode == group.Key.SubjectCode && t.VisitTaskNum == group.Key.VisitTaskNum && t.TaskName == group.Key.TaskName).ToList(); @@ -599,19 +611,20 @@ namespace IRaCIS.Core.Application.Service.Common var cloneObj = subjectVisitTaskArm.Clone(); - cloneObj.AgainUserName= item.UserName; + cloneObj.AgainUserName = item.UserName; cloneObj.AgainEvaluateResult = item.EvaluateResult; cloneObj.ArmEnum = item.ArmEnum; - //cloneObj.IsGroupAnalysisDiffToOriginalData = item.ArmEnum; + + cloneObj.IsGroupAnalysisDiffToOriginalData = cloneObj.ArmEnum == Arm.DoubleReadingArm1 ? item.IsGroupDiffArm1 : item.IsGroupDiffArm2; newList.Add(cloneObj); } } - + } - + var exportInfo = (await _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).IgnoreQueryFilters().ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException(); @@ -625,7 +638,7 @@ namespace IRaCIS.Core.Application.Service.Common /// - /// 整体肿瘤评估 多个标准一个接口 Excel 列是一样的 + /// 整体肿瘤评估 (目前仅仅 RECIST1.1 多个标准一个接口 Excel 列是一样的 ) /// /// /// @@ -636,9 +649,17 @@ namespace IRaCIS.Core.Application.Service.Common [FromServices] IRepository _trialRepository) { + + + //每次查询必须是单标准的 var criterionType = await _repository.Where(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => t.CriterionType).FirstOrDefaultAsync(); + if (criterionType != CriterionType.RECIST1Pointt1) + { + throw new Exception("当前标准导出还未支持"); + } + var list = await _repository.Where(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned) //.WhereIf(queryVisitTask.SubjectId != null, t => t.SubjectId == queryVisitTask.SubjectId) @@ -672,11 +693,14 @@ namespace IRaCIS.Core.Application.Service.Common } /// - /// 肿瘤疗效评估表 ( 目前 RECIST1.1) - /// /// + /// + /// + /// /// - [HttpPost] + /// public async Task GetEvaluationOfTumorEfficacy_Export(VisitTaskQuery queryVisitTask, [FromServices] IRepository _commonDocumentRepository, [FromServices] IDictionaryService _dictionaryService, @@ -716,7 +740,7 @@ namespace IRaCIS.Core.Application.Service.Common exportInfo.List = list; - return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialMedicalReviewList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1EvaluationOfTumorEfficacyExport), criterionType); + return await ExcelExportHelper.DataExportAsync(StaticData.Export.RECIST1Point1EvaluationOfTumorEfficacy_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1EvaluationOfTumorEfficacyExport), criterionType); } else @@ -729,7 +753,7 @@ namespace IRaCIS.Core.Application.Service.Common /// - /// 评估病灶明细表 ( 目前 RECIST1.1 PGW3 表都是不同的) + /// 评估病灶明细表 (目前仅仅 RECIST1.1 RECIST1.1 PGW3 表都是不同的) /// /// /// @@ -797,7 +821,7 @@ namespace IRaCIS.Core.Application.Service.Common }).ToList(); exportInfo.List = exportList; - return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialMedicalReviewList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1DetailedOfEvaluatedLesionExport), criterionType); + return await ExcelExportHelper.DataExportAsync(StaticData.Export.RECIST1Point1DetailedOfEvaluatedLesion_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1DetailedOfEvaluatedLesionExport), criterionType); } diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs index 325d8a1e..59444cbb 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs @@ -630,6 +630,16 @@ namespace IRaCIS.Core.Application.Contracts public string AgainUserName { get; set; } + /// + /// 组件一致性和原Arm1是否有差异 + /// + public bool? IsGroupDiffArm1 { get; set; } + + /// + /// 组件一致性和原Arm2是否有差异 + /// + public bool? IsGroupDiffArm2 { get; set; } + public bool? IsGroupAnalysisDiffToOriginalData { get; set; } } diff --git a/IRaCIS.Core.Application/_MediatR/Handlers/ConsistencyVerificationHandler.cs b/IRaCIS.Core.Application/_MediatR/Handlers/ConsistencyVerificationHandler.cs index 958acf92..55b056bc 100644 --- a/IRaCIS.Core.Application/_MediatR/Handlers/ConsistencyVerificationHandler.cs +++ b/IRaCIS.Core.Application/_MediatR/Handlers/ConsistencyVerificationHandler.cs @@ -128,7 +128,7 @@ namespace IRaCIS.Core.Application.MediatR.Handlers dialogMsg.AppendLine($"
"); dialogMsg.AppendLine(@$"
说明:为高效解决/处理以上全部质疑问题,麻烦您准确核实实际影像检查情况。请注意影像日期与实际检查的日期可能会不一致,部分检查(如PET -CT)可能同时存在多种模态影像。准确核实后,请回复该访视正确的影像检查情况。"); - dbSV.CheckResult = "当前访视在EDC表中未找到数据,请核对 SubjectCode、 SiteCode 、VisitName 是否和ETC系统保持一致"; + dbSV.CheckResult = "当前访视在EDC表中未找到数据,请核对 SubjectCode、 SiteCode 、VisitName 是否和EDC系统保持一致"; dbSV.CheckState = CheckStateEnum.CVIng; dbSV.ForwardState = ForwardStateEnum.ToForward; dbSV.CheckChallengeState = CheckChanllengeTypeEnum.PMWaitCRCReply; @@ -171,7 +171,7 @@ namespace IRaCIS.Core.Application.MediatR.Handlers else { dialogMsg.AppendLine($"
"); - dialogMsg.AppendLine($"
当前访视在IRChe:"); + dialogMsg.AppendLine($"
存在问题如下:"); num = 0; foreach (var item in dbExceptExcel)