修改阅片结果导出
continuous-integration/drone/push Build is passing Details

Uat_IRC_Net8
hang 2025-01-14 10:45:12 +08:00
parent 538cfa279a
commit 3d791d2e41
3 changed files with 60 additions and 19 deletions

View File

@ -2369,16 +2369,15 @@ namespace IRaCIS.Core.Application.Service.Common
list.Add(item);
}
}
}
// CDISC 导出 和自定义导出 都会配置到表格问题层级,随意配置,所见即所得
else /*if (inQuery.ReadingExportType == ExportResult.CDISC)*/
// 非肿瘤标准 包括自定义,以及系统非肿瘤 会配置到表格层级 问题名称是 表格名称_表格子问题名
else if (
criterion.CriterionGroup == CriterionGroup.Nontumorous && inQuery.ReadingExportType != ExportResult.CDISC
)
{
// 配置在外层问题 或者表格问题上
var taskList = await query.ProjectTo<CommonLessionExport>(_mapper.ConfigurationProvider,
new
@ -2402,18 +2401,31 @@ namespace IRaCIS.Core.Application.Service.Common
foreach (var item in taskList.OrderBy(t => t.SubjectCode).ThenBy(t => t.ArmEnum).ThenBy(t => t.VisitTaskNum))
{
if (item.LesionList.Count > 0)
//有病灶,并且至少配置了一个病灶问题
if (item.LesionList.Count > 0 && item.LesionList.SelectMany(t => t.LessionAnswerList).Any())
{
foreach (var lession in item.LesionList.OrderBy(t => t.LessionType).ThenBy(t => t.LessionCode))
{
var dynamicPartialLessionInfoList = lession.LessionAnswerList.Select(t => new CommonQuesionInfo() { QuestionName = t.QuestionName, QuestionValue = t.QuestionValue, TranslateDicName = t.TranslateDicName, CDISCCode = t.CDISCCode });
//病灶配置了问题 才进行导出
if (lession.LessionAnswerList.Count > 0)
{
var firstLessionAnser = lession.LessionAnswerList.FirstOrDefault();
var addLessionInfoList = new List<CommonQuesionInfo>();
addLessionInfoList.Add(new CommonQuesionInfo() { QuestionName = _userInfo.IsEn_Us ? "Table Name" : "表格名称", QuestionValue = firstLessionAnser.TableQuestionName });
var dynamicPartialLessionInfoList = lession.LessionAnswerList.Select(t => new CommonQuesionInfo() { QuestionName = t.TableQuestionName + "_" + t.QuestionName, QuestionValue = t.QuestionValue, TranslateDicName = t.TranslateDicName, CDISCCode = t.CDISCCode });
//有三部分组成 外层问题+ 固定列表格名称 + 动态的表格问题
var dynamicLessionInfoList = item.QuestionAnswerList.Union(addLessionInfoList).Union(dynamicPartialLessionInfoList).ToList();
var cloneItem = item.Clone();
cloneItem.QuestionAnswerList = dynamicLessionInfoList;
list.Add(cloneItem);
}
//有三部分组成 外层问题+ 没有配置病灶编号和类型+ 动态的表格问题
var dynamicLessionInfoList = item.QuestionAnswerList.Union(dynamicPartialLessionInfoList).ToList();
var cloneItem = item.Clone();
cloneItem.QuestionAnswerList = dynamicLessionInfoList;
list.Add(cloneItem);
}
}
else
@ -2425,6 +2437,20 @@ namespace IRaCIS.Core.Application.Service.Common
}
}
// CDISC 导出 只管到 外层问题层级 和阅片结果表是保持一致
else if (inQuery.ReadingExportType == ExportResult.CDISC)
{
list = await query.ProjectTo<CommonEvaluationExport>(_mapper.ConfigurationProvider,
new
{
readingExportType = inQuery.ReadingExportType,
criterionType = criterion.CriterionType,
arbitrationRule = criterion.ArbitrationRule,
trialReadingCriterionId = inQuery.TrialReadingCriterionId,
isEn_Us = _userInfo.IsEn_Us
}).ToListAsync();
}
#endregion

View File

@ -1269,20 +1269,34 @@ namespace IRaCIS.Core.Application.Contracts
public class CommonLessionQuestionAnswerInfo
{
#region 肿瘤评估标准的时候需要
public string LessionCode { get; set; }
public string LessionType { get; set; }
public QuestionMark? QuestionMark { get; set; }
#endregion
#region CDISC导出
public string CDISCCode { get; set; }
#endregion
#region 自定义表格名 特殊处理
public string TableQuestionName { get; set; }
#endregion
public string QuestionName { get; set; }
public string QuestionValue { get; set; }
public string TranslateDicName { get; set; }
public string CDISCCode { get; set; }
}

View File

@ -266,7 +266,7 @@ namespace IRaCIS.Core.Application.Service
u.Subject.ReadModuleList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.ReadingSetType == ReadingSetType.ImageReading).Select(c => c.SubjectVisit.VisitNum)))
.ForMember(o => o.ResearchProgramNo, t => t.MapFrom(u => u.Trial.ResearchProgramNo))
.ForMember(o => o.VisitName, t => t.MapFrom(u => u.SourceSubjectVisit.VisitName))
.ForMember(o => o.VisitName, t => t.MapFrom(u => u.SourceSubjectVisit.VisitName))
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
.ForMember(o => o.LatestScanDate, t => t.MapFrom(u => u.SourceSubjectVisit.LatestScanDate))
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
@ -286,7 +286,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap<VisitTask, CommonLessionExport>()
.IncludeBase<VisitTask, CommonEvaluationExport>()
.ForMember(o => o.LesionList, t => t.MapFrom(u => u.LesionList.Where(c => c.ReadingQuestionTrial.ExportResultStr.Contains(((int)readingExportType).ToString()))));
.ForMember(o => o.LesionList, t => t.MapFrom(u => u.LesionList/*.Where(c => c.ReadingQuestionTrial.ExportResultStr.Contains(((int)readingExportType).ToString()))*/ ));
CreateMap<ReadingTableAnswerRowInfo, CommonLessionInfo>()
.ForMember(o => o.LessionCode, t => t.MapFrom(u => u.RowMark))
@ -299,7 +299,8 @@ namespace IRaCIS.Core.Application.Service
.ForMember(o => o.QuestionMark, t => t.MapFrom(u => u.ReadingTableQuestionTrial.QuestionMark))
.ForMember(o => o.QuestionName, t => t.MapFrom(u => isEn_Us ? u.ReadingTableQuestionTrial.QuestionEnName : u.ReadingTableQuestionTrial.QuestionName))
.ForMember(o => o.QuestionValue, t => t.MapFrom(u => u.Answer))
.ForMember(o => o.CDISCCode, t => t.MapFrom(u => u.ReadingTableQuestionTrial.CDISCCode))
.ForMember(o => o.CDISCCode, t => t.MapFrom(u => u.ReadingTableQuestionTrial.CDISCCode))
.ForMember(o => o.TableQuestionName, t => t.MapFrom(u => isEn_Us ? u.ReadingQuestionTrial.QuestionEnName : u.ReadingQuestionTrial.QuestionName))
.ForMember(o => o.TranslateDicName, t => t.MapFrom(u => u.ReadingTableQuestionTrial.DictionaryCode))
;