From 11455e6c78459179479c027d67d867eff7e90c0c Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Sat, 6 May 2023 14:02:38 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/Dto/ReadingImageTaskViewModel.cs | 20 +++++- .../IRECIST1Point1CalculateService.cs | 66 +++++++++++++------ 2 files changed, 63 insertions(+), 23 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index e2ed7b580..3174eec78 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -182,7 +182,19 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public List VisitTaskList { get; set; } public List TaskQuestions { get; set; } - } + + public List LesionList { get; set; } = new List(); + + } + + + public class LesionDto + { + public LesionType? LesionType { get; set; } + + public int Count { get; set; } + } + public class VisitTaskGroupAnswerDto { @@ -1644,7 +1656,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class GetReportVerifyInDto { public Guid VisitTaskId { get; set; } - } + + public bool IsConvertTask { get; set; } + + public Guid? BeforeConvertedTaskId { get; set; } + } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs index 55f7c6ee5..180e2792a 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs @@ -100,17 +100,20 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate public async Task GetReadingReportEvaluation(GetReadingReportEvaluationInDto indto) { GetReadingReportEvaluationOutDto result = new GetReadingReportEvaluationOutDto(); - - result.CalculateResult = await this.GetReportVerify(new GetReportVerifyInDto() + var isConvertTask = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).Select(x => x.IsConvertedTask).FirstNotNullAsync(); + var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).FirstNotNullAsync(); + result.CalculateResult = await this.GetReportVerify(new GetReportVerifyInDto() { - VisitTaskId = indto.VisitTaskId - }); + VisitTaskId = indto.VisitTaskId, + IsConvertTask= isConvertTask, + BeforeConvertedTaskId =visitTaskInfo.BeforeConvertedTaskId, + }); - var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).FirstNotNullAsync(); + - var isConvertTask= await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).Select(x=>x.IsConvertedTask).FirstNotNullAsync(); + result.ReadingTaskState = visitTaskInfo.ReadingTaskState; @@ -126,9 +129,15 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate .WhereIf(!isConvertTask, x => x.ConvertShowType == ConvertShowType.All || x.ConvertShowType == ConvertShowType.BeforeShow) .ToListAsync(); var tableQuestionList = await _readingTableQuestionTrialRepository.Where(x => x.TrialCriterionId == criterionId).OrderBy(x => x.ShowOrder).ToListAsync(); - var tableAnsweRowInfos = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == indto.VisitTaskId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var tableAnsweRowInfos = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == indto.VisitTaskId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); - var lesionsIndexs = await _readingTableAnswerRowInfoRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)).GroupBy(x => new { x.QuestionId }).Select(x => new lesionsIndexDto() + result.LesionList = tableAnsweRowInfos.GroupBy(x => x.LesionType).Select(x => new LesionDto + { + LesionType = x.Key.Value, + Count = x.ToList().Count() + }).ToList(); + + var lesionsIndexs = await _readingTableAnswerRowInfoRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)).GroupBy(x => new { x.QuestionId }).Select(x => new lesionsIndexDto() { QuestionId = x.Key.QuestionId, Rowindexs = x.Select(x => x.RowIndex).Distinct().OrderBy(x => x).ToList() @@ -401,9 +410,26 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate /// public async Task GetReportVerify(GetReportVerifyInDto inDto) { - return new + var tumorEvaluate = string.Empty; + var readingCalculateDto= await _generalCalculateService.GetReadingCalculateDto(inDto.VisitTaskId); + + if (!inDto.IsConvertTask) { - TumorEvaluate = await this.GetReportTumor(inDto.VisitTaskId), + tumorEvaluate = await GetTumor(readingCalculateDto); + + } + else if (inDto.BeforeConvertedTaskId != null) + { + tumorEvaluate = await GetConvertingTumor(readingCalculateDto); + } + else + { + tumorEvaluate = await GetIRECSITTargetLesionEvaluate(readingCalculateDto); + } + + return new + { + TumorEvaluate = tumorEvaluate, IsExistDisease = await this.GetReportIsExistDisease(inDto.VisitTaskId), }; @@ -509,8 +535,6 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate //整体肿瘤评估 new ReadingCalculateData (){QuestionType=QuestionType.Tumor,GetStringFun=GetTumor,IsConvertedTask=false}, - //IRECIST整体肿瘤评估 - new ReadingCalculateData (){QuestionType=QuestionType.Tumor,GetStringFun=GetIRECSITTargetLesionEvaluate,IsConvertedTask=true}, // 转化时整体肿瘤评估 new ReadingCalculateData (){QuestionType=QuestionType.Tumor,GetStringFun=GetConvertingTumor,IsConvertedTask=true,IsBeTransforming=true}, @@ -707,15 +731,15 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate } - /// - /// 获取报告整体整体评估 - /// - /// - /// - public async Task GetReportTumor(Guid visitTaskId) - { - return await GetTumor(await _generalCalculateService.GetReadingCalculateDto(visitTaskId)); - } + ///// + ///// 获取报告整体整体评估 + ///// + ///// + ///// + //public async Task GetReportTumor(Guid visitTaskId) + //{ + // return await GetTumor(await _generalCalculateService.GetReadingCalculateDto(visitTaskId)); + //} /// /// 获取报告是否存在疾病 From 63572942ea61244e7945fa6cce18a5118c50b851 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Sat, 6 May 2023 14:05:07 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/Dto/ReadingImageTaskViewModel.cs | 2 +- .../Service/ReadingCalculate/IRECIST1Point1CalculateService.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 3174eec78..fd7ba9523 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -183,7 +183,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public List TaskQuestions { get; set; } - public List LesionList { get; set; } = new List(); + public List LesionCountList { get; set; } = new List(); } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs index 180e2792a..8850ebf69 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs @@ -131,7 +131,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var tableQuestionList = await _readingTableQuestionTrialRepository.Where(x => x.TrialCriterionId == criterionId).OrderBy(x => x.ShowOrder).ToListAsync(); var tableAnsweRowInfos = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == indto.VisitTaskId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); - result.LesionList = tableAnsweRowInfos.GroupBy(x => x.LesionType).Select(x => new LesionDto + result.LesionCountList = tableAnsweRowInfos.GroupBy(x => x.LesionType).Select(x => new LesionDto { LesionType = x.Key.Value, Count = x.ToList().Count()