From 880847659f26b1ce73152391c71b9c19dcdb0c35 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Fri, 24 Mar 2023 11:43:43 +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 --- .../Service/Reading/Dto/ReadingImageTaskViewModel.cs | 7 +++++++ .../Reading/ReadingImageTask/ReadingImageTaskService.cs | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index d863fd555..d6bb61c8b 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -1329,6 +1329,13 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid TrialReadingCriterionId { get; set; } + public bool IsFirstChangeTask { get; set; } = false; + + /// + /// 是否是转变的任务(转为IRECIST) + /// + public bool IsConvertedTask { get; set; } = false; + } public class GetReadingImgInDto diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 0cd00e6ee..bbf3f9be1 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -2270,7 +2270,8 @@ namespace IRaCIS.Application.Services task.DigitPlaces = criterionInfo.DigitPlaces; task.CriterionType = criterionInfo.CriterionType; task.IseCRFShowInDicomReading = criterionInfo.IseCRFShowInDicomReading; - + task.IsFirstChangeTask = visitTaskInfo.IsConvertedTask && visitTaskInfo.BeforeConvertedTaskId != null; + task.IsConvertedTask = visitTaskInfo.IsConvertedTask; var blindSubjectCode = await _visitTaskRepository.Where(x => x.Id == task.VisitTaskId).Select(x => x.BlindSubjectCode).FirstNotNullAsync(); task.SubjectCode = blindSubjectCode.IsNullOrEmpty() ? task.SubjectCode : blindSubjectCode; return task; From 6be7076bcef46189789004ade82d5e3daa086182 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Fri, 24 Mar 2023 13:21:09 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/Dto/ReadingImageTaskViewModel.cs | 2 + .../ReadingImageTaskService.cs | 142 +++++++++--------- 2 files changed, 75 insertions(+), 69 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index d6bb61c8b..f6ed2ea07 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -400,6 +400,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid QuestionId { get; set; } public Guid RowId { get; set; } + + public bool IsNeedSort { get; set; } = true; } public class GetDicomReadingQuestionAnswerInDto diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index bbf3f9be1..8f7581e3c 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -1402,96 +1402,100 @@ namespace IRaCIS.Application.Services await _readingTableAnswerRowInfoRepository.SaveChangesAsync(); - var rowInfoList = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.QuestionId == inDto.QuestionId, true).Include(x => x.ReadingQuestionTrial).OrderBy(x => x.RowIndex).ToListAsync(); - - var answerlist = await _readingTableQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.QuestionId == inDto.QuestionId, true).ToListAsync(); - - - - foreach (var item in rowInfoList.Where(x => x.RowIndex % 1 == 0)) + if (inDto.IsNeedSort) { - string measureDataStr = string.Empty; - if (item.MeasureData != null && item.MeasureData != string.Empty) + var rowInfoList = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.QuestionId == inDto.QuestionId, true).Include(x => x.ReadingQuestionTrial).OrderBy(x => x.RowIndex).ToListAsync(); + + var answerlist = await _readingTableQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.QuestionId == inDto.QuestionId, true).ToListAsync(); + + + + foreach (var item in rowInfoList.Where(x => x.RowIndex % 1 == 0)) { - dynamic measureData = JObject.Parse(item.MeasureData); - measureData.data.remark = item.ReadingQuestionTrial.OrderMark + ((decimal)index).GetLesionMark(); - measureDataStr = JsonConvert.SerializeObject(measureData); - } - - - - foreach (var answerItem in answerlist.Where(x => x.RowIndex == item.RowIndex)) - { - - answerItem.RowIndex = index; - - } - - - foreach (var rowAnswerItem in rowInfoList.Where(x => x.RowIndex == item.RowIndex)) - { - - rowAnswerItem.RowIndex = index; - rowAnswerItem.MeasureData = measureDataStr; - - } - - //await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == item.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableQuestionAnswer() - //{ - // RowIndex = index - //}); - - //await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == item.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableAnswerRowInfo() - //{ - // RowIndex = index, - // MeasureData = measureDataStr, - //}); - var spiltList = rowInfoList.Where(x => x.RowIndex % 1 != 0 && x.RowIndex > item.RowIndex && x.RowIndex < Math.Floor(item.RowIndex + 1)).OrderBy(x => x.RowIndex).ToList(); - decimal spiltindex = 0.01M; - foreach (var spiltitem in spiltList) - { - string spiltmeasureDataStr = string.Empty; - if (spiltitem.MeasureData != null && spiltitem.MeasureData != string.Empty) + string measureDataStr = string.Empty; + if (item.MeasureData != null && item.MeasureData != string.Empty) { - dynamic spiltmeasureData = JObject.Parse(spiltitem.MeasureData); - spiltmeasureData.data.remark = item.ReadingQuestionTrial.OrderMark + ((decimal)index + spiltindex).GetLesionMark(); - spiltmeasureDataStr = JsonConvert.SerializeObject(spiltmeasureData); + dynamic measureData = JObject.Parse(item.MeasureData); + measureData.data.remark = item.ReadingQuestionTrial.OrderMark + ((decimal)index).GetLesionMark(); + measureDataStr = JsonConvert.SerializeObject(measureData); } - foreach (var answerItem in answerlist.Where(x => x.RowIndex == spiltitem.RowIndex)) + + foreach (var answerItem in answerlist.Where(x => x.RowIndex == item.RowIndex)) { - answerItem.RowIndex = index + spiltindex; + + answerItem.RowIndex = index; } - foreach (var rowAnswerItem in rowInfoList.Where(x => x.RowIndex == spiltitem.RowIndex)) + foreach (var rowAnswerItem in rowInfoList.Where(x => x.RowIndex == item.RowIndex)) { - rowAnswerItem.RowIndex = index + spiltindex; - rowAnswerItem.MeasureData = spiltmeasureDataStr; - + rowAnswerItem.RowIndex = index; + rowAnswerItem.MeasureData = measureDataStr; } - - //await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == spiltitem.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableQuestionAnswer() + //await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == item.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableQuestionAnswer() //{ - // RowIndex = index + spiltindex - //}); - //await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == spiltitem.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableAnswerRowInfo() - //{ - // RowIndex = index + spiltindex, - // MeasureData = spiltmeasureDataStr, + // RowIndex = index //}); - spiltindex += 0.01M; + //await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == item.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableAnswerRowInfo() + //{ + // RowIndex = index, + // MeasureData = measureDataStr, + //}); + var spiltList = rowInfoList.Where(x => x.RowIndex % 1 != 0 && x.RowIndex > item.RowIndex && x.RowIndex < Math.Floor(item.RowIndex + 1)).OrderBy(x => x.RowIndex).ToList(); + decimal spiltindex = 0.01M; + foreach (var spiltitem in spiltList) + { + string spiltmeasureDataStr = string.Empty; + if (spiltitem.MeasureData != null && spiltitem.MeasureData != string.Empty) + { + dynamic spiltmeasureData = JObject.Parse(spiltitem.MeasureData); + spiltmeasureData.data.remark = item.ReadingQuestionTrial.OrderMark + ((decimal)index + spiltindex).GetLesionMark(); + spiltmeasureDataStr = JsonConvert.SerializeObject(spiltmeasureData); + } + + + foreach (var answerItem in answerlist.Where(x => x.RowIndex == spiltitem.RowIndex)) + { + answerItem.RowIndex = index + spiltindex; + + } + + + foreach (var rowAnswerItem in rowInfoList.Where(x => x.RowIndex == spiltitem.RowIndex)) + { + + rowAnswerItem.RowIndex = index + spiltindex; + rowAnswerItem.MeasureData = spiltmeasureDataStr; + + + } + + + //await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == spiltitem.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableQuestionAnswer() + //{ + // RowIndex = index + spiltindex + //}); + //await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == spiltitem.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableAnswerRowInfo() + //{ + // RowIndex = index + spiltindex, + // MeasureData = spiltmeasureDataStr, + //}); + + spiltindex += 0.01M; + } + index++; } - index++; + + await _readingTableAnswerRowInfoRepository.SaveChangesAsync(); } - - await _readingTableAnswerRowInfoRepository.SaveChangesAsync(); + // 自动计算 await this._readingCalculateService.CalculateTask(new CalculateTaskInDto() {