diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index b4f414753..27dcd74ab 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -2437,11 +2437,17 @@ namespace IRaCIS.Core.Application.Service.Common //处理裁判标记 list = DealJudgeMark(criterion.ArbitrationRule, criterion.IsGlobalReading, list); - ////合并之前获取翻译的字典名,否则有的没法翻译 - //var translateDicNameList = list.SelectMany(t => t.QuestionAnswerList).Where(t => t.TranslateDicName.IsNotNullOrEmpty()).Select(t => t.TranslateDicName).Distinct().ToList(); + + if (export_Template == StaticData.Export.CommonJudgeReadingDetail_Export) + { + //裁判产生标记为空的数据过滤掉 + list = list.Where(t => t.IsTrigerJudge != null).ToList(); + } - if (inQuery.ReadingExportType != ExportResult.CDISC) + #region 肿瘤评估标准,并且非 CDISC 需要合并列 + + if (criterion.CriterionGroup == CriterionGroup.Tumor && inQuery.ReadingExportType != ExportResult.CDISC) { #region 系统标准处理整体肿瘤评估合并 @@ -2503,17 +2509,15 @@ namespace IRaCIS.Core.Application.Service.Common } - - if (export_Template == StaticData.Export.CommonJudgeReadingDetail_Export) - { - //裁判产生标记为空的数据过滤掉 - list = list.Where(t => t.IsTrigerJudge != null).ToList(); - } - #endregion } + #endregion + + + + @@ -2537,30 +2541,32 @@ namespace IRaCIS.Core.Application.Service.Common t.CDISCCode, TranslateDicName = t.DictionaryCode }).ToList(); - var trialConfigTableQuestionList = _trialReadingTableQuestionRepository.Where(t => t.TrialId == trialId).Where(t => t.ExportResultStr.Contains(((int)inQuery.ReadingExportType).ToString())).OrderBy(t => t.ShowOrder).Select(t => new - { - QuestionId = t.Id, - QuestionName = _userInfo.IsEn_Us ? t.QuestionEnName : t.QuestionName, - t.CDISCCode, - TranslateDicName = t.DictionaryCode - }).ToList(); - - - var totalCoumNameList = trialConfigQuestionList.Union(trialConfigTableQuestionList).ToList(); - - var columNameList = totalCoumNameList.Select(t => t.QuestionName).ToList(); - - var translateDicList = totalCoumNameList.Where(t => t.TranslateDicName.IsNotNullOrEmpty()).Select(t => t.TranslateDicName).Distinct().ToList(); - #endregion if (inQuery.ReadingExportType != ExportResult.CDISC) { + //表格全问题名 + var trialConfigTableQuestionList = _trialReadingTableQuestionRepository.Where(t => t.TrialId == trialId).Where(t => t.ExportResultStr.Contains(((int)inQuery.ReadingExportType).ToString())) + .OrderBy(t => t.ShowOrder).Select(t => new + { + QuestionId = t.Id, + QuestionName = _userInfo.IsEn_Us ? t.QuestionEnName : t.QuestionName, + t.CDISCCode, + TranslateDicName = t.DictionaryCode + }).ToList(); + + var totalConfigCoumNameList = trialConfigQuestionList.Union(trialConfigTableQuestionList).ToList(); + + var translateDicList = totalConfigCoumNameList.Where(t => t.TranslateDicName.IsNotNullOrEmpty()).Select(t => t.TranslateDicName).Distinct().ToList(); + + //暂时不用,因为肿瘤标准添加了列,同时多表格的,列名会加上表格名,这里还没有最终确认 + var configCoumNameList = totalConfigCoumNameList.Select(t => t.QuestionName).ToList(); + //之前从问题答案取 合并之后获取最后的列名 - //var columNameList = list.SelectMany(t => t.QuestionAnswerList).Where(t => t.QuestionName.IsNotNullOrEmpty()).Select(t => t.QuestionName).Distinct().ToList(); + var columNameList = list.SelectMany(t => t.QuestionAnswerList).Where(t => t.QuestionName.IsNotNullOrEmpty()).Select(t => t.QuestionName).Distinct().ToList(); dynamicColumnConfig = new DynamicColumnConfig() { @@ -2584,10 +2590,18 @@ namespace IRaCIS.Core.Application.Service.Common }; } + else { + //CDISC 导出 只到外层问题级别 - var cdiscCodeList = totalCoumNameList.Select(t => t.CDISCCode).ToList(); + var totalConfigCoumNameList = trialConfigQuestionList.ToList(); + + var configCoumNameList = totalConfigCoumNameList.Select(t => t.QuestionName).ToList(); + + var translateDicList = totalConfigCoumNameList.Where(t => t.TranslateDicName.IsNotNullOrEmpty()).Select(t => t.TranslateDicName).Distinct().ToList(); + + var cdiscCodeList = totalConfigCoumNameList.Select(t => t.CDISCCode).ToList(); #region 之前从问题答案取 @@ -2606,7 +2620,7 @@ namespace IRaCIS.Core.Application.Service.Common DynamicItemTitleName = "QuestionName", DynamicListName = "QuestionAnswerList", RemoveColunmIndexList = removeColumnIndexList, - ColumnNameList = columNameList, + ColumnNameList = configCoumNameList, CDISCList = cdiscCodeList, TranslateDicNameList = translateDicList };