diff --git a/IRaCIS.Core.API/wwwroot/ReadReoprtTemplate/ReportTemplate_IRECIST_CN_V1.docx b/IRaCIS.Core.API/wwwroot/ReadReoprtTemplate/ReportTemplate_IRECIST_CN_V1.docx index 97cf20af8..ecebae91e 100644 Binary files a/IRaCIS.Core.API/wwwroot/ReadReoprtTemplate/ReportTemplate_IRECIST_CN_V1.docx and b/IRaCIS.Core.API/wwwroot/ReadReoprtTemplate/ReportTemplate_IRECIST_CN_V1.docx differ diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs index b03d5f3b6..18de31f8c 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs @@ -530,7 +530,25 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { if (item2.Value.ToString() == string.Empty || item.Value == null) { - column[item2.Key] = "-"; + bool isOrgan = false; + try + { + if (item2.Key == "Organ" && column["RowMark"] == string.Empty || column["RowMark"] == "-") + { + column[item2.Key] = string.Empty; + isOrgan = true; + } + } + catch (Exception) + { + + + } + if (!isOrgan) + { + column[item2.Key] = "-"; + } + }; } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs index 947bd6a25..70b06f09f 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs @@ -411,6 +411,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate taskIds.Add(relatedVisitTask.Item1[count - 1].VisitTaskId); } + + var isConvertedTaskList = await _visitTaskRepository.Where(x => taskIds.Contains(x.Id)).Select(x => new { x.Id, x.IsConvertedTask }).ToListAsync(); + relatedVisitTask.Item1 = relatedVisitTask.Item1.Where(x => taskIds.Contains(x.VisitTaskId)).ToList(); // 所有访视问题的答案 var answerList = await _readingTaskQuestionAnswerRepository.Where(x => taskIds.Contains(x.VisitTaskId)).Include(x => x.ReadingQuestionTrial).ToListAsync(); @@ -455,11 +458,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { Dictionary target = new Dictionary() { - { "RowMark","-"}, - { "Organ","-"}, - { "FirstVisit","-" }, - { "SecondVisit", "-" }, - { "ThirdlyVisit", "-" }, + { "RowMark",string.Empty}, + { "Organ",string.Empty}, + { "FirstVisit",string.Empty }, + { "SecondVisit", string.Empty }, + { "ThirdlyVisit", string.Empty }, }; targetInfo.Add(target); } @@ -509,18 +512,53 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate foreach (var item in exports) { item.QuestionName = _generalCalculateService.GetTrialQuestionName(trialQuestion, item.QuestionType); + Dictionary questionAnswer = new Dictionary() { {"Name", item.QuestionName}, - {"FirstVisit", _generalCalculateService.GetTaskanswer(answerList,dictionList,unitDictionary,taskIds[0],item.QuestionType)}, - {"SecondVisit", relatedCount>=2? _generalCalculateService.GetTaskanswer(answerList,dictionList,unitDictionary,taskIds[1],item.QuestionType):string.Empty }, - {"ThirdlyVisit", relatedCount>=3? _generalCalculateService.GetTaskanswer(answerList,dictionList,unitDictionary,taskIds[2],item.QuestionType):string.Empty }, + {"FirstVisit", GetAnswerWithFallback(taskIds[0],item) }, + {"SecondVisit", relatedCount>=2? GetAnswerWithFallback(taskIds[1],item):string.Empty }, + {"ThirdlyVisit", relatedCount>=3? GetAnswerWithFallback(taskIds[2],item):string.Empty }, }; + + + + + questionAnswerList.Add(questionAnswer); } return questionAnswerList; } + string GetAnswerWithFallback(Guid taskId, ExportReportQuestion item) + { + + var answer=string.Empty; + + List questionTypes = new List() { + QuestionType.ComparedTriggeringSODChange, + QuestionType.ISOD, + QuestionType.ComparedTriggeringiSODChange, + QuestionType.NewTargetLesion, + QuestionType.NewNoTargetLesion, + QuestionType.OtherNewTargetLesion, + QuestionType.IRECISTNewTargetLesion, + QuestionType.NewLesionEvaluation, + + }; + + if (questionTypes.Contains(item.QuestionType) && !isConvertedTaskList.Any(x => x.IsConvertedTask && x.Id == taskId)) + { + answer= "NA"; + } + else + { + answer = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, taskId, item.QuestionType); + } + + return answer; + } + #endregion var studyInfo = (await _dicomStudyRepository.Where(x => x.SubjectVisitId == taskinfo.SourceSubjectVisitId).Select(x => new diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/MRECISTHCCCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/MRECISTHCCCalculateService.cs index 09576976c..6889112b8 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/MRECISTHCCCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/MRECISTHCCCalculateService.cs @@ -376,11 +376,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { Dictionary target = new Dictionary() { - { "RowMark","-"}, - { "Organ","-"}, - { "FirstVisit","-" }, - { "SecondVisit", "-" }, - { "ThirdlyVisit", "-" }, + { "RowMark",string.Empty}, + { "Organ",string.Empty}, + { "FirstVisit",string.Empty }, + { "SecondVisit", string.Empty }, + { "ThirdlyVisit", string.Empty }, }; targetInfo.Add(target); } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs index b11ca7854..825861e56 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs @@ -170,11 +170,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { Dictionary target = new Dictionary() { - { "RowMark","-"}, - { "Organ","-"}, - { "FirstVisit","-" }, - { "SecondVisit", "-" }, - { "ThirdlyVisit", "-" }, + { "RowMark",string.Empty}, + { "Organ",string.Empty}, + { "FirstVisit",string.Empty }, + { "SecondVisit", string.Empty }, + { "ThirdlyVisit", string.Empty }, }; targetInfo.Add(target); } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs index aca03d84c..db653d1c6 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs @@ -373,11 +373,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { Dictionary target = new Dictionary() { - { "RowMark","-"}, - { "Organ","-"}, - { "FirstVisit","-" }, - { "SecondVisit", "-" }, - { "ThirdlyVisit", "-" }, + { "RowMark",string.Empty}, + { "Organ",string.Empty}, + { "FirstVisit",string.Empty }, + { "SecondVisit", string.Empty }, + { "ThirdlyVisit", string.Empty }, }; targetInfo.Add(target); } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs index bf9f3504d..0412fc796 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs @@ -366,11 +366,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { Dictionary target = new Dictionary() { - { "RowMark","-"}, - { "Organ","-"}, - { "FirstVisit","-" }, - { "SecondVisit", "-" }, - { "ThirdlyVisit", "-" }, + { "RowMark",string.Empty}, + { "Organ",string.Empty}, + { "FirstVisit",string.Empty }, + { "SecondVisit", string.Empty }, + { "ThirdlyVisit", string.Empty }, }; targetInfo.Add(target); }