diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 18df0703..7c533384 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -513,14 +513,14 @@ - 自身一致性分析 + 自身一致性分析(仅做了resist1.1) - 组件一致性分析 + 组件一致性分析(仅做了resist1.1) @@ -532,13 +532,7 @@ - - - 肿瘤疗效评估表 ( 目前 RECIST1.1) - - - - + 评估病灶明细表 ( 目前 RECIST1.1 PGW3 表都是不同的) diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index e3246e4d..4868b3d1 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -14,6 +14,8 @@ using System.Threading.Tasks; namespace IRaCIS.Core.Application.Service.Common { + + [ApiExplorerSettings(GroupName = "Common")] public class ExcelExportService : BaseService { @@ -458,7 +460,7 @@ namespace IRaCIS.Core.Application.Service.Common /// - /// 自身一致性分析 + /// 自身一致性分析(仅做了resist1.1) /// /// /// @@ -524,12 +526,12 @@ namespace IRaCIS.Core.Application.Service.Common exportInfo.List = list; - return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialMedicalReviewList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(SelftAnalysisExport)); + return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSelfAnalysisList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(SelftAnalysisExport)); } /// - /// 组件一致性分析 + /// 组件一致性分析(仅做了resist1.1) /// /// /// @@ -571,25 +573,51 @@ 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(); - //To do 根据任务Id 找对评估结果,这里需要考虑标准 以及对应的翻译 + var newList=new List(); + // 每个subject访视进行分组 - foreach (var item in list) + foreach (var group in list.GroupBy(t => new { t.SubjectCode, t.VisitTaskNum, t.TaskName, t.ArmEnum }) + .OrderBy(g => g.Key.SubjectCode) + .ThenBy(g => g.Key.VisitTaskNum) + //.ThenBy(g => g.Key.ArmEnum) + ) { - //找到一致性分析的结果 - var groupAnalysisTask = allList.Where(t => t.IsSelfAnalysis == false && t.SubjectCode == item.SubjectCode && t.VisitTaskNum == item.VisitTaskNum && t.TaskName == t.TaskName).FirstOrDefault(); + var subjectVisitGroupList = group.ToList(); - item.AgainEvaluateResult = groupAnalysisTask?.EvaluateResult ?? String.Empty; + + //找到当前访视组件一致性分析的任务结果 + + var groupTaskList = allList.Where(t => t.IsSelfAnalysis == false && t.SubjectCode == group.Key.SubjectCode && t.VisitTaskNum == group.Key.VisitTaskNum && t.TaskName == group.Key.TaskName).ToList(); + + foreach (var subjectVisitTaskArm in subjectVisitGroupList.OrderBy(t => t.ArmEnum)) + { + + foreach (var item in groupTaskList) + { + var cloneObj = subjectVisitTaskArm.Clone(); + + + cloneObj.AgainUserName= item.UserName; + cloneObj.AgainEvaluateResult = item.EvaluateResult; + cloneObj.ArmEnum = item.ArmEnum; + //cloneObj.IsGroupAnalysisDiffToOriginalData = item.ArmEnum; + + newList.Add(cloneObj); + } + } } + + var exportInfo = (await _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).IgnoreQueryFilters().ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException(); - exportInfo.List = list; + exportInfo.List = newList; - return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialMedicalReviewList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(TaskMedicalReviewExportDto)); + return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialGroupAnalysisList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(GroupAnalysisExport)); } @@ -640,7 +668,7 @@ namespace IRaCIS.Core.Application.Service.Common exportInfo.List = list; - return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialMedicalReviewList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(OverallTumorEvaluationExport), criterionType); + return await ExcelExportHelper.DataExportAsync(StaticData.Export.OverallTumorEvaluation_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(OverallTumorEvaluationExport), criterionType); } /// @@ -689,8 +717,6 @@ namespace IRaCIS.Core.Application.Service.Common exportInfo.List = list; return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialMedicalReviewList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1EvaluationOfTumorEfficacyExport), criterionType); - - } else diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs index 6e474003..325d8a1e 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs @@ -625,6 +625,13 @@ namespace IRaCIS.Core.Application.Contracts public class GroupAnalysisExport: AnalysisExortCommon { + [DictionaryTranslateAttribute("ArmEnum")] + public Arm AgainArmEnum { get; set; } + + public string AgainUserName { get; set; } + + public bool? IsGroupAnalysisDiffToOriginalData { get; set; } + } public class SelftAnalysisExport: AnalysisExortCommon diff --git a/IRaCIS.Core.Domain/_Config/_StaticData.cs b/IRaCIS.Core.Domain/_Config/_StaticData.cs index faa55e36..fa3b327b 100644 --- a/IRaCIS.Core.Domain/_Config/_StaticData.cs +++ b/IRaCIS.Core.Domain/_Config/_StaticData.cs @@ -155,7 +155,27 @@ public static class StaticData public const string TrialMedicalReviewList_Export = "TrialMedicalReviewList_Export"; - + + //public const string TrialRECIST1Point1SelfAnalysisList_Export = "TrialRECIST1Point1SelfAnalysisList_Export"; + + //public const string TrialRECIST1Point1GroupAnalysisList_Export = "TrialRECIST1Point1GroupAnalysisList_Export"; + + + public const string TrialSelfAnalysisList_Export = "TrialSelfAnalysisList_Export"; + + public const string TrialGroupAnalysisList_Export = "TrialGroupAnalysisList_Export"; + + + public const string OverallTumorEvaluation_Export = "OverallTumorEvaluation_Export"; + + + public const string RECIST1Point1EvaluationOfTumorEfficacy_Export = "RECIST1Point1EvaluationOfTumorEfficacy_Export"; + + public const string RECIST1Point1DetailedOfEvaluatedLesion_Export = "RECIST1Point1DetailedOfEvaluatedLesion_Export"; + + + + }