This commit is contained in:
he
2023-02-14 15:09:34 +08:00
4 changed files with 69 additions and 16 deletions
@@ -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
/// <summary>
/// 自身一致性分析
/// 自身一致性分析(仅做了resist1.1)
/// </summary>
/// <param name="queryVisitTask"></param>
/// <returns></returns>
@@ -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));
}
/// <summary>
/// 组件一致性分析
/// 组件一致性分析(仅做了resist1.1)
/// </summary>
/// <param name="inQuery"></param>
/// <returns></returns>
@@ -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<GroupAnalysisExport>();
// 每个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<ExcelExportInfo>(_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);
}
/// <summary>
@@ -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
@@ -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