修改数据表导出逻辑

Uat_Study
hang 2023-05-16 13:22:24 +08:00
parent 070b99d6ef
commit 8f4cd8a447
5 changed files with 155 additions and 36 deletions

View File

@ -1,4 +1,5 @@
using DocumentFormat.OpenXml.Office2010.ExcelAc; using DocumentFormat.OpenXml.Office2010.ExcelAc;
using DocumentFormat.OpenXml.Presentation;
using DocumentFormat.OpenXml.Spreadsheet; using DocumentFormat.OpenXml.Spreadsheet;
using IRaCIS.Application.Contracts; using IRaCIS.Application.Contracts;
using IRaCIS.Application.Interfaces; using IRaCIS.Application.Interfaces;
@ -159,7 +160,7 @@ namespace IRaCIS.Core.Application.Service.Common
exportInfo.List = list; exportInfo.List = list;
return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSubjectList_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository , _hostEnvironment, _dictionaryService, typeof(SubjectExportDTO)); return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSubjectList_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(SubjectExportDTO));
} }
@ -235,15 +236,15 @@ namespace IRaCIS.Core.Application.Service.Common
IsFinalVisit = t.IsFinalVisit, IsFinalVisit = t.IsFinalVisit,
IsLostVisit = t.IsLostVisit, IsLostVisit = t.IsLostVisit,
ReadingStatus = ReadingStatus =
t.VisitTaskList.Where(t => t.TaskState == TaskState.Effect && t.TrialReadingCriterionId==dto.TrialReadingCriterionId && t.TaskAllocationState == TaskAllocationState.Allocated && t.IsAnalysisCreate == false && t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState == ReadingTaskState.HaveSigned).Count() == (int)trialReadingCriterion.ReadingType ? t.VisitTaskList.Where(t => t.TaskState == TaskState.Effect && t.TrialReadingCriterionId == dto.TrialReadingCriterionId && t.TaskAllocationState == TaskAllocationState.Allocated && t.IsAnalysisCreate == false && t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState == ReadingTaskState.HaveSigned).Count() == (int)trialReadingCriterion.ReadingType ?
ReadingStatusEnum.ReadCompleted : t.VisitTaskList.Where(t => t.TaskState == TaskState.Effect && t.TrialReadingCriterionId == dto.TrialReadingCriterionId && t.IsAnalysisCreate == false && t.ReadingCategory == ReadingCategory.Visit && t.TaskAllocationState == TaskAllocationState.Allocated).Count() == (int)trialReadingCriterion.ReadingType ? ReadingStatusEnum.ImageReading : ReadingStatusEnum.ReadCompleted : t.VisitTaskList.Where(t => t.TaskState == TaskState.Effect && t.TrialReadingCriterionId == dto.TrialReadingCriterionId && t.IsAnalysisCreate == false && t.ReadingCategory == ReadingCategory.Visit && t.TaskAllocationState == TaskAllocationState.Allocated).Count() == (int)trialReadingCriterion.ReadingType ? ReadingStatusEnum.ImageReading :
t.ReadingStatus t.ReadingStatus
}).ToList(), }).ToList(),
ModuleList = subject.ReadModuleList.Where(t=>t.TrialReadingCriterionId==dto.TrialReadingCriterionId).Select(t => new SubjectProgressDto.MouduleProgress() ModuleList = subject.ReadModuleList.Where(t => t.TrialReadingCriterionId == dto.TrialReadingCriterionId).Select(t => new SubjectProgressDto.MouduleProgress()
{ {
TaskName = t.ModuleName, TaskName = t.ModuleName,
VisitTaskNum = (t.ReadingSetType == ReadingSetType.ImageReading ? ReadingCommon.TaskNumDic[ReadingCategory.Global] : ReadingCommon.TaskNumDic[ReadingCategory.Oncology]) + t.SubjectVisit.VisitNum, VisitTaskNum = (t.ReadingSetType == ReadingSetType.ImageReading ? ReadingCommon.TaskNumDic[ReadingCategory.Global] : ReadingCommon.TaskNumDic[ReadingCategory.Oncology]) + t.SubjectVisit.VisitNum,
ReadingSetType = t.ReadingSetType, ReadingSetType = t.ReadingSetType,
ReadingStatus = t.ModuleTaskList.Where(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && (t.ReadingCategory == ReadingCategory.Oncology || t.ReadingCategory == ReadingCategory.Global) && t.ReadingTaskState == ReadingTaskState.HaveSigned).Count() == (int)trialReadingCriterion.ReadingType ? ReadingStatus = t.ModuleTaskList.Where(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && (t.ReadingCategory == ReadingCategory.Oncology || t.ReadingCategory == ReadingCategory.Global) && t.ReadingTaskState == ReadingTaskState.HaveSigned).Count() == (int)trialReadingCriterion.ReadingType ?
ReadingStatusEnum.ReadCompleted : t.ModuleTaskList.Where(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && (t.ReadingCategory == ReadingCategory.Oncology || t.ReadingCategory == ReadingCategory.Global) && t.TaskAllocationState == TaskAllocationState.Allocated).Count() == (int)trialReadingCriterion.ReadingType ? ReadingStatusEnum.ReadCompleted : t.ModuleTaskList.Where(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && (t.ReadingCategory == ReadingCategory.Oncology || t.ReadingCategory == ReadingCategory.Global) && t.TaskAllocationState == TaskAllocationState.Allocated).Count() == (int)trialReadingCriterion.ReadingType ?
@ -262,7 +263,7 @@ namespace IRaCIS.Core.Application.Service.Common
var exportInfo = (await _trialRepository.Where(t => t.Id == dto.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException(); var exportInfo = (await _trialRepository.Where(t => t.Id == dto.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
exportInfo.CriterionName = await _repository.Where<ReadingQuestionCriterionTrial>(u => u.TrialId == dto.TrialId && u.IsConfirm && u.Id == dto.TrialReadingCriterionId).Select(t=>t.CriterionName).FirstOrDefaultAsync(); exportInfo.CriterionName = await _repository.Where<ReadingQuestionCriterionTrial>(u => u.TrialId == dto.TrialId && u.IsConfirm && u.Id == dto.TrialReadingCriterionId).Select(t => t.CriterionName).FirstOrDefaultAsync();
exportInfo.List = list; exportInfo.List = list;
@ -385,7 +386,7 @@ namespace IRaCIS.Core.Application.Service.Common
UploadFinishedTime = t.UploadFinishedTime, UploadFinishedTime = t.UploadFinishedTime,
ArchiveFinishedTime=t.ArchiveFinishedTime, ArchiveFinishedTime = t.ArchiveFinishedTime,
UploadTime = t.CreateTime, UploadTime = t.CreateTime,
@ -738,7 +739,7 @@ namespace IRaCIS.Core.Application.Service.Common
var subjectQuerybal = _repository.Where<VisitTask>(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && t.IsSelfAnalysis == true).Select(t => t.SubjectId).Distinct(); var subjectQuerybal = _repository.Where<VisitTask>(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && t.IsSelfAnalysis == true).Select(t => t.SubjectId).Distinct();
var allList = await _repository.Where<VisitTask>(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && subjectQuerybal.Contains(t.SubjectId) && t.ReadingCategory == ReadingCategory.Visit) var allList = await _repository.Where<VisitTask>(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && subjectQuerybal.Contains(t.SubjectId) && t.ReadingCategory == ReadingCategory.Visit)
.Where(t => (t.IsSelfAnalysis == true || t.IsSelfAnalysis == null)&& t.VisitTaskNum>0) //一致性分析的结果 + 正常任务的结果 + 仅仅访视的结果 +去除基线 .Where(t => (t.IsSelfAnalysis == true || t.IsSelfAnalysis == null) && t.VisitTaskNum > 0) //一致性分析的结果 + 正常任务的结果 + 仅仅访视的结果 +去除基线
//.WhereIf(queryVisitTask.SubjectId != null, t => t.SubjectId == queryVisitTask.SubjectId) //.WhereIf(queryVisitTask.SubjectId != null, t => t.SubjectId == queryVisitTask.SubjectId)
//.WhereIf(queryVisitTask.TaskState != null, t => t.TaskState == queryVisitTask.TaskState) //.WhereIf(queryVisitTask.TaskState != null, t => t.TaskState == queryVisitTask.TaskState)
@ -812,7 +813,7 @@ namespace IRaCIS.Core.Application.Service.Common
if (criterion.CriterionType != CriterionType.RECIST1Point1) if (criterion.CriterionType != CriterionType.RECIST1Point1)
{ {
//---当前标准导出还未支持 //---当前标准导出还未支持
throw new Exception(_localizer["ExcelExport_UnsupportedExport"]); throw new Exception(_localizer["ExcelExport_UnsupportedExport"]);
} }
@ -938,7 +939,7 @@ namespace IRaCIS.Core.Application.Service.Common
list.Add(new ExportDocumentDes() { Code = StaticData.Export.RECIST1Point1DetailedOfEvaluatedLesion_Export, ExportCatogory = ExportCatogory.DetailedOfEvaluatedLesion }); list.Add(new ExportDocumentDes() { Code = StaticData.Export.RECIST1Point1DetailedOfEvaluatedLesion_Export, ExportCatogory = ExportCatogory.DetailedOfEvaluatedLesion });
} }
if(criterion.CriterionType == CriterionType.PCWG3) if (criterion.CriterionType == CriterionType.PCWG3)
{ {
list.Add(new ExportDocumentDes() { Code = StaticData.Export.OverallTumorEvaluation_Export, ExportCatogory = ExportCatogory.OverallTumorEvaluation }); list.Add(new ExportDocumentDes() { Code = StaticData.Export.OverallTumorEvaluation_Export, ExportCatogory = ExportCatogory.OverallTumorEvaluation });
list.Add(new ExportDocumentDes() { Code = StaticData.Export.PCWG3Point1DetailedOfEvaluatedLesion_Export, ExportCatogory = ExportCatogory.DetailedOfEvaluatedLesion }); list.Add(new ExportDocumentDes() { Code = StaticData.Export.PCWG3Point1DetailedOfEvaluatedLesion_Export, ExportCatogory = ExportCatogory.DetailedOfEvaluatedLesion });
@ -950,9 +951,37 @@ namespace IRaCIS.Core.Application.Service.Common
{ {
item.FileName = result.Where(t => t.Code == item.Code).FirstOrDefault()?.FileName; item.FileName = result.Where(t => t.Code == item.Code).FirstOrDefault()?.FileName;
} }
return list; return list;
}
public List<T> DealJudgeMark<T>(ArbitrationRule arbitrationRule, IEnumerable<T> list) where T : OverallTumorEvaluationExport
{
//处理裁判标记
{
var resultList = list.Where(t => t.ReadingCategory != ReadingCategory.Judge).ToList();
if (arbitrationRule == ArbitrationRule.Visit)
{
foreach (var item in resultList)
{
item.IsGenerateJudge = list.FirstOrDefault(t => t.ReadingCategory == ReadingCategory.Judge && t.SubjectCode == item.SubjectCode
&& (t.VisitTaskNum - ReadingCommon.TaskNumDic[ReadingCategory.Judge]) == item.VisitTaskNum)?.JudgeArmEnum == item.ArmEnum ? true : false;
}
}
if (arbitrationRule == ArbitrationRule.Reading)
{
foreach (var item in resultList)
{
item.IsGenerateJudge = list.Where(t => t.ReadingCategory == ReadingCategory.Judge && t.SubjectCode == item.SubjectCode
).OrderByDescending(t => t.VisitTaskNum).FirstOrDefault()?.JudgeArmEnum == item.ArmEnum ? true : false;
}
}
return resultList;
}
} }
@ -976,11 +1005,11 @@ namespace IRaCIS.Core.Application.Service.Common
//每次查询必须是单标准的 //每次查询必须是单标准的
var criterion = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName }).FirstNotNullAsync(); var criterion = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName, t.ArbitrationRule }).FirstNotNullAsync();
if (criterion.CriterionType != CriterionType.RECIST1Point1 && criterion.CriterionType != CriterionType.PCWG3) if (criterion.CriterionType != CriterionType.RECIST1Point1 && criterion.CriterionType != CriterionType.PCWG3)
{ {
//---当前标准导出还未支持 //---当前标准导出还未支持
throw new Exception(_localizer["ExcelExport_UnsupportedExport"]); throw new Exception(_localizer["ExcelExport_UnsupportedExport"]);
} }
@ -1006,11 +1035,14 @@ namespace IRaCIS.Core.Application.Service.Common
.WhereIf(queryVisitTask.EndAllocateDate != null, t => t.AllocateTime < queryVisitTask.EndAllocateDate!.Value.AddDays(1)) .WhereIf(queryVisitTask.EndAllocateDate != null, t => t.AllocateTime < queryVisitTask.EndAllocateDate!.Value.AddDays(1))
.ProjectTo<OverallTumorEvaluationExport>(_mapper.ConfigurationProvider, new { criterionType = criterion.CriterionType }).ToListAsync(); .ProjectTo<OverallTumorEvaluationExport>(_mapper.ConfigurationProvider, new { criterionType = criterion.CriterionType }).ToListAsync();
list= list.OrderBy(t=>t.SubjectCode).ThenBy(t=>t.VisitTaskNum).ToList(); list = list.OrderBy(t => t.SubjectCode).ThenBy(t => t.VisitTaskNum).ToList();
var exportInfo = (await _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException(); var exportInfo = (await _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
exportInfo.CriterionName = criterion.CriterionName; exportInfo.CriterionName = criterion.CriterionName;
//处理裁判标记
list = DealJudgeMark(criterion.ArbitrationRule, list);
exportInfo.List = list; exportInfo.List = list;
@ -1034,7 +1066,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(); var criterion = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName, t.ArbitrationRule }).FirstOrDefaultAsync();
var query = _repository.Where<VisitTask>(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned) var query = _repository.Where<VisitTask>(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned)
@ -1064,14 +1096,18 @@ namespace IRaCIS.Core.Application.Service.Common
{ {
var list = await query.ProjectTo<RECIST1Point1EvaluationOfTumorEfficacyExport>(_mapper.ConfigurationProvider, new { criterionType = criterion.CriterionType }).ToListAsync(); var list = await query.ProjectTo<RECIST1Point1EvaluationOfTumorEfficacyExport>(_mapper.ConfigurationProvider, new { criterionType = criterion.CriterionType }).ToListAsync();
//处理裁判标记
list = DealJudgeMark(criterion.ArbitrationRule, list);
exportInfo.List = list; exportInfo.List = list;
return await ExcelExportHelper.DataExportAsync(StaticData.Export.RECIST1Point1EvaluationOfTumorEfficacy_Export, exportInfo, $"{exportInfo.ResearchProgramNo}_{exportInfo.CriterionName}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1EvaluationOfTumorEfficacyExport), criterion.CriterionType); return await ExcelExportHelper.DataExportAsync(StaticData.Export.RECIST1Point1EvaluationOfTumorEfficacy_Export, exportInfo, $"{exportInfo.ResearchProgramNo}_{exportInfo.CriterionName}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1EvaluationOfTumorEfficacyExport), criterion.CriterionType);
} }
else else
{ {
//---当前标准导出还未支持 //---当前标准导出还未支持
throw new Exception(_localizer["ExcelExport_UnsupportedExport"]); throw new Exception(_localizer["ExcelExport_UnsupportedExport"]);
} }
@ -1095,7 +1131,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(); var criterion = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName,t.ArbitrationRule }).FirstOrDefaultAsync();
var query = _repository.Where<VisitTask>(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned) var query = _repository.Where<VisitTask>(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned)
@ -1150,6 +1186,8 @@ namespace IRaCIS.Core.Application.Service.Common
}); });
}).ToList(); }).ToList();
//处理裁判标记
list = DealJudgeMark(criterion.ArbitrationRule, list);
exportInfo.List = exportList; exportInfo.List = exportList;
return await ExcelExportHelper.DataExportAsync(StaticData.Export.RECIST1Point1DetailedOfEvaluatedLesion_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1DetailedOfEvaluatedLesionExport), criterion.CriterionType); return await ExcelExportHelper.DataExportAsync(StaticData.Export.RECIST1Point1DetailedOfEvaluatedLesion_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1DetailedOfEvaluatedLesionExport), criterion.CriterionType);
@ -1180,6 +1218,8 @@ namespace IRaCIS.Core.Application.Service.Common
}); });
}).ToList(); }).ToList();
//处理裁判标记
list = DealJudgeMark(criterion.ArbitrationRule, list);
exportInfo.List = exportList; exportInfo.List = exportList;
return await ExcelExportHelper.DataExportAsync(StaticData.Export.PCWG3Point1DetailedOfEvaluatedLesion_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(PCWG3DetailedOfEvaluatedLesionExport), criterion.CriterionType); return await ExcelExportHelper.DataExportAsync(StaticData.Export.PCWG3Point1DetailedOfEvaluatedLesion_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(PCWG3DetailedOfEvaluatedLesionExport), criterion.CriterionType);
@ -1188,7 +1228,7 @@ namespace IRaCIS.Core.Application.Service.Common
else else
{ {
//---当前标准导出还未支持 //---当前标准导出还未支持
throw new Exception(_localizer["ExcelExport_UnsupportedExport"]); throw new Exception(_localizer["ExcelExport_UnsupportedExport"]);
} }

View File

@ -20,25 +20,26 @@ namespace IRaCIS.Core.Application.Service
public AdditionalAssessmentType AdditionalAssessmentType { get; set; } public AdditionalAssessmentType AdditionalAssessmentType { get; set; }
//附加评估问题 //附加评估问题
public List<ReadingQuestionTrial> AdditionalQuestionList { get; set; }=new List<ReadingQuestionTrial>(); public List<ReadingQuestionTrial> AdditionalQuestionList { get; set; } = new List<ReadingQuestionTrial>();
} }
public class AdditionalAssessment public class AdditionalAssessment
{ {
public List<CriterionAdditionalAssessment> SystemDefeaultAdditionalAssessmentList { get; set; } = new List<CriterionAdditionalAssessment>(); public List<CriterionAdditionalAssessment> SystemDefeaultAdditionalAssessmentList { get; set; } = new List<CriterionAdditionalAssessment>();
public AdditionalAssessment() public AdditionalAssessment()
{ {
var gropId = NewId.NextGuid();
//Resist1.1 脑转移 默认评估问题 //Resist1.1 脑转移 默认评估问题
SystemDefeaultAdditionalAssessmentList.Add(new CriterionAdditionalAssessment()
{ {
CriterionType = CriterionType.RECIST1Point1, var gropId = NewId.NextGuid();
AdditionalAssessmentType = AdditionalAssessmentType.BrainMetastasis,
AdditionalQuestionList = new List<ReadingQuestionTrial>(){ SystemDefeaultAdditionalAssessmentList.Add(new CriterionAdditionalAssessment()
{
CriterionType = CriterionType.RECIST1Point1,
AdditionalAssessmentType = AdditionalAssessmentType.BrainMetastasis,
AdditionalQuestionList = new List<ReadingQuestionTrial>(){
new ReadingQuestionTrial() new ReadingQuestionTrial()
{ {
@ -47,7 +48,7 @@ namespace IRaCIS.Core.Application.Service
IsJudgeQuestion=false, IsJudgeQuestion=false,
IsShowInDicom=false, IsShowInDicom=false,
GlobalReadingShowType=GlobalReadingShowType.NotShow, GlobalReadingShowType=GlobalReadingShowType.NotShow,
QuestionName="脑转移评估", QuestionName="脑转移评估",
QuestionEnName="Brain Metastasis Assessment", QuestionEnName="Brain Metastasis Assessment",
GroupName="脑转移评估", GroupName="脑转移评估",
@ -76,20 +77,79 @@ namespace IRaCIS.Core.Application.Service
DataSource=DataSources.ManualEntry, DataSource=DataSources.ManualEntry,
ShowQuestion=ShowQuestion.Show, ShowQuestion=ShowQuestion.Show,
IsAdditional=true IsAdditional=true
} , } ,
} }
}); });
}
//Resist1.1 TNM分期
{
var gropId = NewId.NextGuid();
SystemDefeaultAdditionalAssessmentList.Add(new CriterionAdditionalAssessment()
{
CriterionType = CriterionType.RECIST1Point1,
AdditionalAssessmentType = AdditionalAssessmentType.TNMStage,
AdditionalQuestionList = new List<ReadingQuestionTrial>(){
new ReadingQuestionTrial()
{
LimitEdit=LimitEdit.OnlyBaseLine,
Id=gropId,
IsJudgeQuestion=false,
IsShowInDicom=false,
GlobalReadingShowType=GlobalReadingShowType.NotShow,
QuestionName="TNM分期评估",
QuestionEnName="TNM Stage Assessment",
GroupName="TNM分期评估",
GroupEnName="TNM Stage Assessment",
Type="group",
QuestionGenre=TableQuestionType.Customize,
DataSource=DataSources.ManualEntry,
ShowQuestion=ShowQuestion.Show,
IsAdditional=true
} ,
new ReadingQuestionTrial()
{
GroupId=gropId,
LimitEdit=LimitEdit.OnlyBaseLine,
DictionaryCode="YesOrNoOrNa",
IsJudgeQuestion=false,
IsShowInDicom=false,
GlobalReadingShowType=GlobalReadingShowType.NotShow,
QuestionEnName="Brain metastases present",
QuestionName="存在脑转移",
Type="radio",
QuestionGenre=TableQuestionType.Dictionary,
DataSource=DataSources.ManualEntry,
ShowQuestion=ShowQuestion.Show,
IsAdditional=true
} ,
}
});
}
} }
public List<CriterionAdditionalAssessment> GetSystemDefeaultAdditionalAssessmentList(CriterionType criterionType, AdditionalAssessmentType? additionalAssessmentType=null) public List<CriterionAdditionalAssessment> GetSystemDefeaultAdditionalAssessmentList(CriterionType criterionType, AdditionalAssessmentType? additionalAssessmentType = null)
{ {
return SystemDefeaultAdditionalAssessmentList.Where(t => t.CriterionType == criterionType) return SystemDefeaultAdditionalAssessmentList.Where(t => t.CriterionType == criterionType)
.WhereIf(additionalAssessmentType!=null,t=>t.AdditionalAssessmentType==additionalAssessmentType).ToList(); .WhereIf(additionalAssessmentType != null, t => t.AdditionalAssessmentType == additionalAssessmentType).ToList();
} }
} }

View File

@ -836,6 +836,7 @@ namespace IRaCIS.Core.Application.Contracts
public Arm ArmEnum { get; set; } public Arm ArmEnum { get; set; }
public string UserName { get; set; } public string UserName { get; set; }
public ReadingCategory ReadingCategory { get; set; }
[DictionaryTranslateAttribute("ExistDisease", CriterionType.RECIST1Point1, nameof(OverallTumorEvaluationExport.IsBaseline), "true")] [DictionaryTranslateAttribute("ExistDisease", CriterionType.RECIST1Point1, nameof(OverallTumorEvaluationExport.IsBaseline), "true")]
[DictionaryTranslateAttribute("OverallAssessment", CriterionType.RECIST1Point1, nameof(OverallTumorEvaluationExport.IsBaseline), "false")] [DictionaryTranslateAttribute("OverallAssessment", CriterionType.RECIST1Point1, nameof(OverallTumorEvaluationExport.IsBaseline), "false")]
@ -844,11 +845,22 @@ namespace IRaCIS.Core.Application.Contracts
//整体肿瘤评估结果 需要翻译 //整体肿瘤评估结果 需要翻译
public string OverallTumorEvaluationResult { get; set; } public string OverallTumorEvaluationResult { get; set; }
public Guid? JudgeResultTaskId { get; set; }
#region old 废弃
//public Guid? JudgeResultTaskId { get; set; }
//[DictionaryTranslateAttribute("YesOrNo")]
//public bool IsGenerateJudge => JudgeResultTaskId != null;
#endregion
public Arm? JudgeArmEnum { get; set; }
//根据裁判的任务结果 设置访视任务的这个字段 该字段表示 裁判认同该任务的结果
[DictionaryTranslateAttribute("YesOrNo")] [DictionaryTranslateAttribute("YesOrNo")]
public bool IsGenerateJudge => JudgeResultTaskId != null; public bool IsGenerateJudge { get; set; }
} }

View File

@ -172,6 +172,8 @@ namespace IRaCIS.Core.Application.Service
// .ForMember(o => o.TrialReadingCriterionName, t => t.MapFrom(u => u.TrialReadingCriterion.CriterionName)) // .ForMember(o => o.TrialReadingCriterionName, t => t.MapFrom(u => u.TrialReadingCriterion.CriterionName))
.ForMember(o => o.IsBaseline, t => t.MapFrom(u => u.SourceSubjectVisit.IsBaseLine)) .ForMember(o => o.IsBaseline, t => t.MapFrom(u => u.SourceSubjectVisit.IsBaseLine))
.ForMember(o => o.JudgeArmEnum, t => t.MapFrom(u => u.JudgeResultTask.ArmEnum))
.ForMember(o => o.OverallTumorEvaluationResult, t => t.MapFrom(u => .ForMember(o => o.OverallTumorEvaluationResult, t => t.MapFrom(u =>
criterionType == CriterionType.RECIST1Point1 ?( u.SourceSubjectVisit.IsBaseLine==true ? u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.ExistDisease).FirstOrDefault().Answer: criterionType == CriterionType.RECIST1Point1 ?( u.SourceSubjectVisit.IsBaseLine==true ? u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.ExistDisease).FirstOrDefault().Answer:
u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.Tumor).FirstOrDefault().Answer) u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.Tumor).FirstOrDefault().Answer)

View File

@ -33,8 +33,13 @@ namespace IRaCIS.Core.Domain.Share.Reading
//TNM分期 //TNM分期
TNM = 2 TNMStage = 2,
//骨转移
BoneMetastasis = 3,
//手术期
SurgicalPeriod = 4,
} }
/// <summary> /// <summary>