Uat_Study
			
			
		
		
							parent
							
								
									fcaa0f1cfd
								
							
						
					
					
						commit
						87a4b3f58d
					
				| 
						 | 
				
			
			@ -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
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
| 
						 | 
				
			
			@ -23,13 +23,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
 | 
			
		|||
            {CriterionType.IRECIST1Point1,typeof(IRECIST1Point1CalculateService) }
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
       
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        private readonly IEnumerable<ICriterionCalculateService> _criterionServices;
 | 
			
		||||
        private readonly IRepository<VisitTask> _visitTaskRepository;
 | 
			
		||||
        private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository;
 | 
			
		||||
        private  ICriterionCalculateService _useCriterion;
 | 
			
		||||
       
 | 
			
		||||
        private ICriterionCalculateService _useCriterion;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public ReadingCalculateService(IEnumerable<ICriterionCalculateService> criterionServices,
 | 
			
		||||
                IRepository<VisitTask> 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
 | 
			
		|||
        /// </summary>
 | 
			
		||||
        /// <param name="inDto"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        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);
 | 
			
		||||
            }
 | 
			
		||||
          
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
| 
						 | 
				
			
			@ -114,7 +114,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
 | 
			
		|||
            {
 | 
			
		||||
                await service.VerifyVisitTaskQuestions(inDto);
 | 
			
		||||
            }
 | 
			
		||||
           
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
| 
						 | 
				
			
			@ -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();
 | 
			
		||||
            }
 | 
			
		||||
           
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
| 
						 | 
				
			
			@ -164,7 +164,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
 | 
			
		|||
        /// <returns></returns>
 | 
			
		||||
        public async Task<object> 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 { };
 | 
			
		||||
            }
 | 
			
		||||
          
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
| 
						 | 
				
			
			@ -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<Guid,List<CrterionDictionaryGroup>> 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<Guid, List<CrterionDictionaryGroup>> dictionaryGroup)
 | 
			
		||||
        {
 | 
			
		||||
            item.Answer.ForEach(z =>
 | 
			
		||||
            {
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    z.CrterionDictionaryGroup = dictionaryGroup[z.VisitTaskId];
 | 
			
		||||
                }
 | 
			
		||||
                catch (Exception)
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            item.Childrens.ForEach(x => {
 | 
			
		||||
 | 
			
		||||
                SetCrterionDictionaryGroup(x, dictionaryGroup);
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
           
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 删除病灶获取起始病灶序号
 | 
			
		||||
        /// </summary>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue