diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 45bc1bd04..bf7fece1d 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -803,16 +803,6 @@ - - - 评估病灶明细表 (目前仅仅 RECIST1.1 RECIST1.1 PGW3 表都是不同的) - - - - - - - 获取阅片标准可以导出的列表 @@ -14869,6 +14859,21 @@ 组件一致性和原Arm2是否有差异 + + + 自身一致性分析任务上会有这个值 + + + + + 组件一致性和原Arm1是否有差异 + + + + + 组件一致性和原Arm2是否有差异 + + 最终导出的病灶信息 diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index 2b8188b01..232f08837 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -1572,8 +1572,10 @@ namespace IRaCIS.Core.Application.Service.Common return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialGroupAnalysisList_Export, exportInfo, $"{exportInfo.ResearchProgramNo}_{exportInfo.CriterionName}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(GroupAnalysisExport)); + } + #region 导表公用 public class ExportDocumentDes { @@ -1727,10 +1729,15 @@ namespace IRaCIS.Core.Application.Service.Common return resultExceptJudgeList; } + #endregion + + + #endregion + + #region 通用阅片结果导出 - #region 历史单独导出废弃 /// - /// 评估病灶明细表 (目前仅仅 RECIST1.1 RECIST1.1 PGW3 表都是不同的) + /// 一致性分析结果导出 9 10 分别是自身 和组件一致性 /// /// /// @@ -1738,131 +1745,225 @@ namespace IRaCIS.Core.Application.Service.Common /// /// [HttpPost] - public async Task GetDetailedOfEvaluatedLesion_Export(VisitTaskQuery inQuery, - [FromServices] IRepository _commonDocumentRepository, - [FromServices] IDictionaryService _dictionaryService, - [FromServices] IRepository _trialRepository) + public async Task GetAnalysisTaskList_Export(VisitTaskQuery inQuery, + [FromServices] IRepository _commonDocumentRepository, + [FromServices] IDictionaryService _dictionaryService, + [FromServices] IRepository _trialRepository) { - //每次查询必须是单标准的 - var criterion = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName, t.ArbitrationRule }).FirstOrDefaultAsync(); + var criterion = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName, t.ArbitrationRule }).FirstNotNullAsync(); - var query = _visitTaskRepository.Where(t => t.TrialId == inQuery.TrialId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned) + var query = _visitTaskRepository.Where(t => t.TrialId == inQuery.TrialId && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze)) + + //自身一致性分析 + .WhereIf(inQuery.ReadingExportType == ExportResult.SelfAnalysis, t => t.IsSelfAnalysis == true || t.IsSelfAnalysis == null) + .WhereIf(inQuery.ReadingExportType == ExportResult.GroupAnalysis, t => t.IsSelfAnalysis == false || t.IsSelfAnalysis == null) + + //访视和全局查询已签名完成的,裁判可以是未签名,未完成的 + .Where(t => (t.ReadingTaskState == ReadingTaskState.HaveSigned && (t.ReadingCategory == ReadingCategory.Visit || t.ReadingCategory == ReadingCategory.Global)) || t.ReadingCategory == ReadingCategory.Judge) .WhereIf(inQuery.TrialReadingCriterionId != null, t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) .WhereIf(inQuery.TrialSiteId != null, t => t.Subject.TrialSiteId == inQuery.TrialSiteId) .WhereIf(inQuery.IsUrgent != null, t => t.IsUrgent == inQuery.IsUrgent) .WhereIf(inQuery.DoctorUserId != null, t => t.DoctorUserId == inQuery.DoctorUserId) .WhereIf(inQuery.ReadingCategory != null, t => t.ReadingCategory == inQuery.ReadingCategory) - .WhereIf(inQuery.ReadingTaskState != null, t => t.ReadingTaskState == inQuery.ReadingTaskState) + //.WhereIf(inQuery.ReadingTaskState != null, t => t.ReadingTaskState == inQuery.ReadingTaskState) .WhereIf(inQuery.TaskAllocationState != null, t => t.TaskAllocationState == inQuery.TaskAllocationState) .WhereIf(inQuery.ArmEnum != null, t => t.ArmEnum == inQuery.ArmEnum) .WhereIf(!string.IsNullOrEmpty(inQuery.TrialSiteCode), t => (t.BlindTrialSiteCode.Contains(inQuery.TrialSiteCode!) && t.IsAnalysisCreate) || (t.Subject.TrialSite.TrialSiteCode.Contains(inQuery.TrialSiteCode!) && t.IsAnalysisCreate == false)) .WhereIf(!string.IsNullOrEmpty(inQuery.TaskName), t => t.TaskName.Contains(inQuery.TaskName) || t.TaskBlindName.Contains(inQuery.TaskName)) .WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.Subject.Code.Contains(inQuery.SubjectCode)) .WhereIf(inQuery.BeginAllocateDate != null, t => t.AllocateTime > inQuery.BeginAllocateDate) - .WhereIf(inQuery.EndAllocateDate != null, t => t.AllocateTime < inQuery.EndAllocateDate!.Value.AddDays(1)); + .WhereIf(inQuery.EndAllocateDate != null, t => t.AllocateTime < inQuery.EndAllocateDate); + + var list = await query.ProjectTo(_mapper.ConfigurationProvider, + new + { + readingExportType = inQuery.ReadingExportType, + criterionType = criterion.CriterionType, + trialReadingCriterionId = inQuery.TrialReadingCriterionId, + isEn_Us = _userInfo.IsEn_Us + }).ToListAsync(); + + list = list.OrderBy(t => t.SubjectCode).ThenBy(t => t.ArmEnum).ThenBy(t => t.VisitTaskNum).ToList(); + var exportInfo = (await _trialRepository.Where(t => t.Id == inQuery.TrialId).IgnoreQueryFilters().ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException(); exportInfo.CriterionName = criterion.CriterionName; - if (criterion.CriterionType == CriterionType.RECIST1Point1 || criterion.CriterionType == CriterionType.RECIST1Pointt1_MB) + #region 处理系统标准存在疾病和整体肿瘤合并 + + //如果是以合并后的找翻译字典,会少,所以必须放在前面 + var translateDicNameList = list.SelectMany(t => t.QuestionAnswerList).Where(t => t.TranslateDicName.IsNotNullOrEmpty()).Select(t => t.TranslateDicName).Distinct().ToList(); + + //针对1.1 整体肿瘤评估 有的两列要合并一列 + if (criterion.CriterionType == CriterionType.RECIST1Point1 || criterion.CriterionType == CriterionType.RECIST1Pointt1_MB || criterion.CriterionType == CriterionType.IRECIST1Point1) { - var list = await query.ProjectTo(_mapper.ConfigurationProvider, new { criterionType = criterion.CriterionType, arbitrationRule = criterion.ArbitrationRule, trialReadingCriterionId = inQuery.TrialReadingCriterionId, isEn_Us = _userInfo.IsEn_Us }).ToListAsync(); - - list = list.OrderBy(t => t.SubjectCode).ThenBy(t => t.ArmEnum).ThenBy(t => t.VisitTaskNum).ToList(); - - var exportList = list.SelectMany(c => + foreach (var item in list) { + //处理合并表头 - return c.LesionList.Select(u => + var questionType = item.IsBaseline == true ? QuestionType.ExistDisease : QuestionType.Tumor; + + var findItem = item.QuestionAnswerList.Where(t => t.QuestionType == questionType).FirstOrDefault(); + + if (findItem != null) { - var clone = c.Clone(); - clone.LessionCode = u.LessionCode; - clone.LessionType = u.LessionType; - clone.BeforeTranslateLessionTypeValue = u.LessionType; - - clone.IsLymph = u.IsLymph; - - clone.LessionLocation = u.LessionLocation; - clone.LessionOrgan = u.LessionOrgan; - clone.BodyPartDescription = u.BodyPartDescription; - - //clone.MeasurementResult = u.MeasurementResult; - clone.LongDiameter = u.LongDiameter; - clone.ShortDiameter = u.ShortDiameter; - clone.LessionState = u.LessionState; - - return clone; - }); - }).ToList(); - - //处理裁判标记 - //list = DealJudgeMark(criterion.ArbitrationRule, list); - exportInfo.List = ExportExcelConverterDate.ConvertToClientTimeInObject(exportList, _userInfo.TimeZoneId); - exportInfo.CurrentTime = ExportExcelConverterDate.DateTimeInternationalToString(DateTime.Now, _userInfo.TimeZoneId); + findItem.QuestionName = _userInfo.IsEn_Us ? "Overall Response" : "整体肿瘤评估"; + } - return await ExcelExportHelper.DataExportAsync(StaticData.Export.RECIST1Point1DetailedOfEvaluatedLesion_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1DetailedOfEvaluatedLesionExport), criterion.CriterionType); + if (item.IsBaseline == true) + { + item.QuestionAnswerList = item.QuestionAnswerList.Where(t => t.QuestionType != QuestionType.Tumor).ToList(); + } + else + { + item.QuestionAnswerList = item.QuestionAnswerList.Where(t => t.QuestionType != QuestionType.ExistDisease).ToList(); + } + } + } + else if (criterion.CriterionType == CriterionType.Lugano2014 || criterion.CriterionType == CriterionType.Lugano2014WithoutPET) + { + foreach (var item in list) + { + //处理合并表头 + var questionType = item.IsBaseline == true ? QuestionType.ExistDisease : QuestionType.ImgOncology; + + var findItem = item.QuestionAnswerList.Where(t => t.QuestionType == questionType).FirstOrDefault(); + + if (findItem != null) + { + findItem.QuestionName = _userInfo.IsEn_Us ? "Overall Response" : "整体肿瘤评估"; + } + + if (item.IsBaseline == true) + { + item.QuestionAnswerList = item.QuestionAnswerList.Where(t => t.QuestionType != QuestionType.ImgOncology).ToList(); + } + else + { + item.QuestionAnswerList = item.QuestionAnswerList.Where(t => t.QuestionType != QuestionType.ExistDisease).ToList(); + } + } } else if (criterion.CriterionType == CriterionType.PCWG3) { - var list = await query.ProjectTo(_mapper.ConfigurationProvider, new { criterionType = criterion.CriterionType, arbitrationRule = criterion.ArbitrationRule, trialReadingCriterionId = inQuery.TrialReadingCriterionId, isEn_Us = _userInfo.IsEn_Us }).ToListAsync(); - - - var exportList = list.SelectMany(c => - { - - return c.LesionList.Select(u => - { - var clone = c.Clone(); - clone.LessionCode = u.LessionCode; - clone.LessionType = u.LessionType; - - clone.LessionOrgan = u.LessionOrgan; - clone.LessionLocation = u.LessionLocation; - clone.BodyPartDescription = u.BodyPartDescription; - - clone.LessionState = u.LessionState; - - return clone; - }); - }).ToList(); - - //处理裁判标记 - //list = DealJudgeMark(criterion.ArbitrationRule, list); - - exportInfo.List = ExportExcelConverterDate.ConvertToClientTimeInObject(exportList, _userInfo.TimeZoneId); ; - exportInfo.CurrentTime = ExportExcelConverterDate.DateTimeInternationalToString(DateTime.Now, _userInfo.TimeZoneId); - - - return await ExcelExportHelper.DataExportAsync(StaticData.Export.PCWG3Point1DetailedOfEvaluatedLesion_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(PCWG3DetailedOfEvaluatedLesionExport), criterion.CriterionType); } + #endregion + + var export_Template = StaticData.Export.TrialSelfAnalysisList_Export; + + if (inQuery.ReadingExportType == ExportResult.SelfAnalysis) + { + //找到非一致性分析的任务 + var selfExportList = list.Where(t => t.IsSelfAnalysis == null).ToList(); + + //处理一致性分析结果是否和原始阅片是否一致 + foreach (var item in selfExportList) + { + //找到一致性分析的结果 + var selfAnalysisTask = list.Where(t => t.IsSelfAnalysis == true && t.SubjectCode == item.SubjectCode && t.VisitTaskNum == item.VisitTaskNum && t.TaskName == t.TaskName && t.UserName == item.UserName).FirstOrDefault(); + + //将自身一致性分析的字段 赋值到访视任务这个字段 + item.IsAnalysisDiffToOriginalData = selfAnalysisTask?.IsAnalysisDiffToOriginalData; + + //处理再次阅片人的结果 + if (selfAnalysisTask != null) + { + foreach (var qItem in selfAnalysisTask.QuestionAnswerList) + { + qItem.QuestionName = qItem.QuestionName + $"{(_userInfo.IsEn_Us ? "(Again)" : "再次")}"; + } + + item.QuestionAnswerList = item.QuestionAnswerList.Union(selfAnalysisTask?.QuestionAnswerList).ToList(); + } + } + + list = selfExportList; + } else { - //---当前标准导出还未支持 - throw new Exception(_localizer["ExcelExport_UnsupportedExport"]); + export_Template = StaticData.Export.TrialGroupAnalysisList_Export; + + var newList = new List(); + + foreach (var group in list.GroupBy(t => new { t.SubjectCode, t.VisitTaskNum, t.TaskName }).OrderBy(g => g.Key.SubjectCode).ThenBy(g => g.Key.VisitTaskNum)) + { + var subjectVisitGroupList = group.ToList(); + + + //找到当前访视组间一致性分析的任务结果 + + var groupOtherTaskList = subjectVisitGroupList.Where(t => t.IsSelfAnalysis == false).ToList(); + + foreach (var subjectVisitTaskArm in subjectVisitGroupList.Where(t => t.IsSelfAnalysis == null).OrderBy(t => t.ArmEnum)) + { + foreach (var otherTask in groupOtherTaskList) + { + //非一致性分析任务 + var cloneObj = subjectVisitTaskArm.Clone(); + + + foreach (var qItem in otherTask.QuestionAnswerList) + { + qItem.QuestionName = qItem.QuestionName + $"{(_userInfo.IsEn_Us ? "(Again)" : "(再次)")}"; + } + + //处理 再次阅片人,再次阅片人角色 两列 + var addQuestionList = new List(); + + addQuestionList.Add(new CommonQuesionInfo() { QuestionName = _userInfo.IsEn_Us ? "Reviwer(Again)" : "阅片人(再次)", QuestionValue = otherTask.UserName }); + addQuestionList.Add(new CommonQuesionInfo() { QuestionName = _userInfo.IsEn_Us ? "Reviwer Role(Again)" : "阅片人角色(再次)", QuestionValue = ((int)otherTask.ArmEnum).ToString(), TranslateDicName = "ArmEnum" }); + + + cloneObj.QuestionAnswerList = cloneObj.QuestionAnswerList.Union(otherTask.QuestionAnswerList).ToList(); + + + cloneObj.IsGroupAnalysisDiffToOriginalData = cloneObj.ArmEnum == Arm.DoubleReadingArm1 ? otherTask.IsGroupDiffArm1 : otherTask.IsGroupDiffArm2; + + newList.Add(cloneObj); + } + } + } + + list = newList; + } + var columNameList = list.SelectMany(t => t.QuestionAnswerList).Where(t => t.QuestionName.IsNotNullOrEmpty()).Select(t => t.QuestionName).Distinct().ToList(); + + exportInfo.List = ExportExcelConverterDate.ConvertToClientTimeInObject(list, _userInfo.TimeZoneId); + exportInfo.CurrentTime = ExportExcelConverterDate.DateTimeInternationalToString(DateTime.Now, _userInfo.TimeZoneId); + + var dynamicColumnConfig = new DynamicColumnConfig() + { + AutoColumnTitleRowIndex = 2, + AutoColumnStartIndex = 5, + TempalteLastColumnIndex = 4, + DynamicItemDicName = "TranslateDicName", + DynamicItemValueName = "QuestionValue", + DynamicItemTitleName = "QuestionName", + DynamicListName = "QuestionAnswerList", + RemoveColunmIndexList = new List() { }, + ColumnNameList = columNameList ?? new List(), + TranslateDicNameList = translateDicNameList ?? new List() + }; + + + var (memoryStream, fileName) = await ExcelExportHelper.DataExport_NpoiTestAsync(export_Template, exportInfo, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(CommonEvaluationExport), criterion.CriterionType, dynamicColumnConfig); + + return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") + { + FileDownloadName = $"{exportInfo.ResearchProgramNo}_{exportInfo.CriterionName}_{fileName}_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx" + }; } - #endregion - - - - - - - - - #endregion - - #region 通用阅片结果导出 /// @@ -2009,6 +2110,7 @@ namespace IRaCIS.Core.Application.Service.Common export_Template = StaticData.Export.ReadingLession_Export; } + //病灶明细表 需要单独处理 if (inQuery.ReadingExportType != ExportResult.DetailedTableOfLesions) { list = await query.ProjectTo(_mapper.ConfigurationProvider, @@ -2023,6 +2125,7 @@ namespace IRaCIS.Core.Application.Service.Common } else { + //其他可以统一处理 var taskList = await query.ProjectTo(_mapper.ConfigurationProvider, new { @@ -2091,7 +2194,7 @@ namespace IRaCIS.Core.Application.Service.Common var dynamicPartialLessionInfoList = lession.LessionAnswerList.Select(t => new CommonQuesionInfo() { QuestionName = t.QuestionName, QuestionValue = t.QuestionValue, TranslateDicName = t.TranslateDicName }); - //有三部分组成 外层问题+ 没有配置的编号和类型+ 动态的表格问题 + //有三部分组成 外层问题+ 没有配置病灶编号和类型+ 动态的表格问题 var dynamicLessionInfoList = addLessionInfoList.Union(dynamicPartialLessionInfoList).Union(item.QuestionAnswerList).ToList(); var cloneItem = item.Clone(); @@ -2102,7 +2205,7 @@ namespace IRaCIS.Core.Application.Service.Common } else { - //要把裁判任务加进去 + //要把裁判任务加进去 裁判任务上没有病灶 list.Add(item); } @@ -2354,7 +2457,7 @@ namespace IRaCIS.Core.Application.Service.Common FullName = g.Key.FullName, //触发裁判的阅片期的数量 - TotalJudgeCount = g.Where(t => t.ReadingCategory == ReadingCategory.Global && t.SouceReadModuleId != null && t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState==ReadingTaskState.HaveSigned).Select(t => t.SouceReadModuleId).Distinct().Count(), + TotalJudgeCount = g.Where(t => t.ReadingCategory == ReadingCategory.Global && t.SouceReadModuleId != null && t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned).Select(t => t.SouceReadModuleId).Distinct().Count(), JudgeAgreeCount = g.Where(t => t.ReadingCategory == ReadingCategory.Global && t.JudgeVisitTaskId != null && t.JudgeVisitTask.JudgeResultTaskId == t.Id) .Select(t => t.SouceReadModuleId).Distinct().Count(), diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs index cd297db15..5c387a97f 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs @@ -995,6 +995,9 @@ namespace IRaCIS.Core.Application.Contracts public string ImageSizeStr => (FileSize / Math.Pow(1024, 2)).ToString("F3") + 'M'; } + + + public class AnalysisExortCommon { public Guid Id { get; set; } @@ -1062,6 +1065,68 @@ namespace IRaCIS.Core.Application.Contracts } + public class AnalysisDynamicCommonExport + { + public Guid Id { get; set; } + public string TaskName { get; set; } + public string TaskBlindName { get; set; } + + public decimal VisitTaskNum { get; set; } + public bool? IsSelfAnalysis { get; set; } + + public string TrialReadingCriterionName { get; set; } + + public CriterionType CriterionType { get; set; } + + public String TrialSiteCode { get; set; } = String.Empty; + public string SubjectCode { get; set; } = String.Empty; + + [DictionaryTranslateAttribute("ArmEnum")] + public Arm ArmEnum { get; set; } + public string UserName { get; set; } + public bool? IsBaseline { get; set; } + + + /// + /// 自身一致性分析任务上会有这个值 + /// + [DictionaryTranslateAttribute("YesOrNo")] + public bool? IsAnalysisDiffToOriginalData { get; set; } + + + public List QuestionAnswerList { get; set; } + + #region 组件一致性额外加的 + public bool? IsGroupAnalysisDiffToOriginalData { get; set; } + + /// + /// 组件一致性和原Arm1是否有差异 + /// + public bool? IsGroupDiffArm1 { get; set; } + + /// + /// 组件一致性和原Arm2是否有差异 + /// + public bool? IsGroupDiffArm2 { get; set; } + #endregion + } + + + //public class GroupAnalysisDynamicCommonExport: AnalysisDynamicCommonExport + //{ + // public bool? IsGroupAnalysisDiffToOriginalData { get; set; } + + // /// + // /// 组件一致性和原Arm1是否有差异 + // /// + // public bool? IsGroupDiffArm1 { get; set; } + + // /// + // /// 组件一致性和原Arm2是否有差异 + // /// + // public bool? IsGroupDiffArm2 { get; set; } + + //} public class DymamicQuestionInfo { public QuestionMark? QuestionMark { get; set; } diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs index 3b61b3061..186f8fdf0 100644 --- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs @@ -227,6 +227,23 @@ namespace IRaCIS.Core.Application.Service .ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code)) .ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName)); + CreateMap() + .ForMember(o => o.IsBaseline, t => t.MapFrom(u => u.SourceSubjectVisit.IsBaseLine)) + .ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode)) + .ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code)) + .ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName)) + .ForMember(o => o.QuestionAnswerList, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList + .Where(c => c.ReadingQuestionTrial.ExportResultStr.Contains(((int)readingExportType).ToString())) + .OrderBy(k => k.ReadingQuestionTrial.ShowOrder) + .Select(c => new CommonQuesionInfo() + { + QuestionType = c.ReadingQuestionTrial.QuestionType, + QuestionName = isEn_Us ? c.ReadingQuestionTrial.QuestionEnName : c.ReadingQuestionTrial.QuestionName, + QuestionValue = c.IsGlobalChange ? c.GlobalChangeAnswer : c.Answer, + TranslateDicName = c.ReadingQuestionTrial.DictionaryCode + }))) + ; + CreateMap() diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs index 5625bfa4f..af24099b9 100644 --- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -449,6 +449,10 @@ namespace IRaCIS.Core.Domain.Share //阅片期一致率 ReadingPeriodJudgeRatio_Export = 8, + SelfAnalysis = 9, + + GroupAnalysis = 10 + }