diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs index f309c1d57..91e3c1ede 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs @@ -8,7 +8,7 @@ using IRaCIS.Core.Application.ViewModel; namespace IRaCIS.Core.Application.Service.ReadingCalculate { [ApiExplorerSettings(GroupName = "Image")] - public class ReadingCalculateService: BaseService, IReadingCalculateService + public class ReadingCalculateService : BaseService, IReadingCalculateService { /// @@ -23,13 +23,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate {CriterionType.IRECIST1Point1,typeof(IRECIST1Point1CalculateService) } }; - + private readonly IEnumerable _criterionServices; private readonly IRepository _visitTaskRepository; private readonly IRepository _readingQuestionCriterionTrialRepository; - private ICriterionCalculateService _useCriterion; - + private ICriterionCalculateService _useCriterion; + public ReadingCalculateService(IEnumerable criterionServices, IRepository visitTaskRepository, @@ -39,7 +39,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { _criterionServices = criterionServices; - this._visitTaskRepository = visitTaskRepository; + this._visitTaskRepository = visitTaskRepository; this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository; } @@ -63,11 +63,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate try { - CriterionType thisCriterionType = criterionType; + CriterionType thisCriterionType = criterionType; Type thisServiceType = CalculateServiceDic[thisCriterionType]; _useCriterion = _criterionServices.FirstOrDefault(x => x.GetType().Name == thisServiceType.Name + "Proxy"); - + } catch (Exception) @@ -91,7 +91,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate /// /// /// - public async Task CalculateTask(CalculateTaskInDto inDto) + public async Task CalculateTask(CalculateTaskInDto inDto) { var service = await this.GetService(inDto.VisitTaskId); @@ -99,7 +99,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { await service.CalculateTask(inDto); } - + } /// @@ -114,7 +114,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { await service.VerifyVisitTaskQuestions(inDto); } - + } /// @@ -126,26 +126,26 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { var service = await this.GetService(inDto.VisitTaskId); var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync(); - if (service != null&& visitTaskInfo.SourceSubjectVisitId!=null) + if (service != null && visitTaskInfo.SourceSubjectVisitId != null) { var readingTaskState = visitTaskInfo.ReadingTaskState; var result = new AddTaskLesionAnswerFromLastTaskOutDto(); if (readingTaskState == ReadingTaskState.WaitReading) { - result= await service.AddTaskLesionAnswerFromLastTask(inDto); + result = await service.AddTaskLesionAnswerFromLastTask(inDto); await service.CalculateTask(new CalculateTaskInDto() { IsChangeOtherTask = false, VisitTaskId = inDto.VisitTaskId, }); - await _visitTaskRepository.BatchUpdateNoTrackingAsync(x=>x.Id==inDto.VisitTaskId, x => new VisitTask() + await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.Id == inDto.VisitTaskId, x => new VisitTask() { ReadingTaskState = ReadingTaskState.Reading, }); - + } return result; @@ -154,7 +154,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { return new AddTaskLesionAnswerFromLastTaskOutDto(); } - + } /// @@ -164,7 +164,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate /// public async Task GetReportVerify(GetReportVerifyInDto inDto) { - + var service = await this.GetService(inDto.VisitTaskId); if (service != null) @@ -175,7 +175,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { return new { }; } - + } /// @@ -191,7 +191,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync(); - if (taskInfo.ReadingTaskState != ReadingTaskState.HaveSigned&&inDto.IsCalculate) + if (taskInfo.ReadingTaskState != ReadingTaskState.HaveSigned && inDto.IsCalculate) { await service.CalculateTask(new CalculateTaskInDto() { @@ -199,29 +199,17 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate VisitTaskId = inDto.VisitTaskId }); } - - var result = await service.GetReadingReportEvaluation(inDto); + + var result = await service.GetReadingReportEvaluation(inDto); // 这里统一处理字典 - var dictionaryGroup = result.VisitTaskList.ToDictionary(x => x.VisitTaskId, x => x.CrterionDictionaryGroup); + Dictionary> dictionaryGroup = result.VisitTaskList.ToDictionary(x => x.VisitTaskId, x => x.CrterionDictionaryGroup); result.TaskQuestions.ForEach(y => { - - y.Answer.ForEach(z => - { - try - { - z.CrterionDictionaryGroup = dictionaryGroup[z.VisitTaskId]; - } - catch (Exception) - { - - - } - }); + SetCrterionDictionaryGroup(y, dictionaryGroup); }); @@ -234,6 +222,30 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate } + public void SetCrterionDictionaryGroup(ReadingReportDto item, Dictionary> dictionaryGroup) + { + item.Answer.ForEach(z => + { + try + { + z.CrterionDictionaryGroup = dictionaryGroup[z.VisitTaskId]; + } + catch (Exception) + { + + + } + }); + + item.Childrens.ForEach(x => { + + SetCrterionDictionaryGroup(x, dictionaryGroup); + }); + } + + + + /// /// 删除病灶获取起始病灶序号 ///