修改导表

Test.EIImageViewer
hang 2023-02-22 16:22:49 +08:00
parent 75f806ce80
commit e3519d47a6
4 changed files with 113 additions and 6 deletions

View File

@ -831,6 +831,12 @@ namespace IRaCIS.Core.Application.Service.Common
list.Add(new ExportDocumentDes() { Code = StaticData.Export.RECIST1Point1DetailedOfEvaluatedLesion_Export, ExportCatogory = ExportCatogory.DetailedOfEvaluatedLesion });
}
if(criterion.CriterionType == CriterionType.PCWG3)
{
list.Add(new ExportDocumentDes() { Code = StaticData.Export.OverallTumorEvaluation_Export, ExportCatogory = ExportCatogory.OverallTumorEvaluation });
list.Add(new ExportDocumentDes() { Code = StaticData.Export.PCWG3Point1DetailedOfEvaluatedLesion_Export, ExportCatogory = ExportCatogory.DetailedOfEvaluatedLesion });
}
var result = _repository.Where<CommonDocument>(t => list.Select(c => c.Code).Contains(t.Code)).Select(c => new ExportDocumentDes() { Code = c.Code, FileName = c.Name }).ToList();
foreach (var item in list)
@ -862,7 +868,7 @@ namespace IRaCIS.Core.Application.Service.Common
//每次查询必须是单标准的
var criterion = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName }).FirstOrDefaultAsync();
if (criterion.CriterionType != CriterionType.RECIST1Pointt1)
if (criterion.CriterionType != CriterionType.RECIST1Pointt1 || criterion.CriterionType != CriterionType.PCWG3)
{
throw new Exception("当前标准导出还未支持");
}
@ -892,7 +898,7 @@ namespace IRaCIS.Core.Application.Service.Common
var exportInfo = (await _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
exportInfo.CriterionName = await _repository.Where<ReadingQuestionCriterionTrial>(u => u.TrialId == queryVisitTask.TrialId && u.IsConfirm && u.Id == queryVisitTask.TrialReadingCriterionId).Select(t => t.CriterionName).FirstOrDefaultAsync();
exportInfo.CriterionName = criterion.CriterionName;
exportInfo.List = list;
@ -1028,11 +1034,41 @@ namespace IRaCIS.Core.Application.Service.Common
return clone;
});
}).ToList();
exportInfo.List = exportList;
return await ExcelExportHelper.DataExportAsync(StaticData.Export.RECIST1Point1DetailedOfEvaluatedLesion_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1DetailedOfEvaluatedLesionExport), criterion.CriterionType);
}
else if (criterion.CriterionType == CriterionType.PCWG3)
{
var list = await query.ProjectTo<PCWG3DetailedOfEvaluatedLesionExport>(_mapper.ConfigurationProvider, new { criterionType = criterion.CriterionType, 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.LessionLocation = u.LessionLocation;
clone.BodyPartDescription = u.BodyPartDescription;
clone.LessionState = u.LessionState;
return clone;
});
}).ToList();
exportInfo.List = exportList;
return await ExcelExportHelper.DataExportAsync(StaticData.Export.PCWG3Point1DetailedOfEvaluatedLesion_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(PCWG3DetailedOfEvaluatedLesionExport), criterion.CriterionType);
}
else

View File

@ -383,7 +383,7 @@ namespace IRaCIS.Core.Application.Contracts
public List<MouduleProgress> ModuleList { get; set; }
public List<MouduleProgress> TotalList => VisitList .OrderByDescending(t=>t.Inplan).Union(ModuleList.OrderBy(t=>t.ReadingSetType).ThenBy(t=>t.VisitTaskNum)).ToList();
public List<MouduleProgress> TotalList => VisitList.OrderByDescending(t => t.Inplan).Union(ModuleList.OrderBy(t => t.ReadingSetType).ThenBy(t => t.VisitTaskNum)).ToList();
public class MouduleProgress
@ -408,7 +408,7 @@ namespace IRaCIS.Core.Application.Contracts
//阅片期会有
public ReadingSetType? ReadingSetType { get; set; }
}
}
}
@ -686,7 +686,7 @@ namespace IRaCIS.Core.Application.Contracts
public string AgainEvaluateResult { get; set; } = String.Empty;
}
public class GroupAnalysisExport: AnalysisExortCommon
public class GroupAnalysisExport : AnalysisExortCommon
{
[DictionaryTranslateAttribute("ArmEnum")]
@ -708,7 +708,7 @@ namespace IRaCIS.Core.Application.Contracts
}
public class SelftAnalysisExport: AnalysisExortCommon
public class SelftAnalysisExport : AnalysisExortCommon
{
//自身一致性分析任务特有
@ -771,8 +771,56 @@ namespace IRaCIS.Core.Application.Contracts
}
public class PCWG3LessionInfo
{
//病灶编号
public string LessionCode { get; set; }
[DictionaryTranslateAttribute("LesionType")]
//病灶类型
public string LessionType { get; set; }
//所在部位
public string LessionLocation { get; set; }
//部位描述
public string BodyPartDescription { get; set; }
[DictionaryTranslateAttribute("TargetState")]
//病灶状态
public string LessionState { get; set; }
}
public class PCWG3DetailedOfEvaluatedLesionExport : OverallTumorEvaluationExport
{
[JsonIgnore]
public List<PCWG3LessionInfo> LesionList = new List<PCWG3LessionInfo>();
//病灶编号
public string LessionCode { get; set; }
[DictionaryTranslateAttribute("LesionType")]
//病灶类型
public string LessionType { get; set; }
//所在部位
public string LessionLocation { get; set; }
//部位描述
public string BodyPartDescription { get; set; }
[DictionaryTranslateAttribute("EvaluationOfState")]
//病灶状态
public string LessionState { get; set; }
}
//RECIST1.1评估病灶明细表

View File

@ -219,6 +219,27 @@ namespace IRaCIS.Core.Application.Service
.ForMember(o => o.LessionState, t => t.MapFrom(u => u.LesionAnswerList.Where(c => c.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State).FirstOrDefault().Answer));
CreateMap<VisitTask, PCWG3DetailedOfEvaluatedLesionExport>().IncludeBase<VisitTask, OverallTumorEvaluationExport>()
.ForMember(o => o.LesionList, t => t.MapFrom(u => u.LesionList));
CreateMap<ReadingTableAnswerRowInfo, PCWG3LessionInfo>()
.ForMember(o => o.LessionCode, t => t.MapFrom(u => u.RowMark))
.ForMember(o => o.LessionType, t => t.MapFrom(u => (int?)u.ReadingQuestionTrial.LesionType))
//位置可能是自己填写的
.ForMember(o => o.LessionLocation, t =>
//t.MapFrom(u => u.LesionAnswerList.Where(c => c.ReadingTableQuestionTrial.QuestionMark == QuestionMark.Location).FirstOrDefault().Answer)
t.MapFrom(u => u.OrganInfo.IsCanEditPosition ?
u.LesionAnswerList.Where(c => c.ReadingTableQuestionTrial.QuestionMark == QuestionMark.Location).FirstOrDefault().Answer : isEn_Us ? u.OrganInfo.TULATEN : u.OrganInfo.TULAT)
)
.ForMember(o => o.BodyPartDescription, t =>
//t.MapFrom(u => u.LesionAnswerList.Where(c => c.ReadingTableQuestionTrial.QuestionMark == QuestionMark.Part).FirstOrDefault().Answer)
t.MapFrom(u => isEn_Us ? u.OrganInfo.PartEN : u.OrganInfo.Part)
)
.ForMember(o => o.LessionState, t => t.MapFrom(u => u.LesionAnswerList.Where(c => c.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State).FirstOrDefault().Answer));
#endregion

View File

@ -175,6 +175,8 @@ public static class StaticData
public const string RECIST1Point1DetailedOfEvaluatedLesion_Export = "RECIST1Point1DetailedOfEvaluatedLesion_Export";
public const string PCWG3Point1DetailedOfEvaluatedLesion_Export = "PCWG3Point1DetailedOfEvaluatedLesion_Export";