代码修改
							parent
							
								
									473dafbb58
								
							
						
					
					
						commit
						5dab6ef30b
					
				| 
						 | 
				
			
			@ -263,6 +263,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
 | 
			
		|||
        /// </summary>
 | 
			
		||||
        public LesionType? LesionType { get; set; }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 序号标记
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public string OrderMark { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
        public QuestionType? QuestionType { get; set; }
 | 
			
		||||
 | 
			
		||||
        public List<TableRowInfo> TableRowInfoList = new List<TableRowInfo>();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -122,6 +122,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
 | 
			
		|||
                LesionType = x.LesionType,
 | 
			
		||||
                QuestionId = x.Id,
 | 
			
		||||
                QuesionName = x.QuestionName.LanguageName(x.QuestionEnName, _userInfo.IsEn_Us),
 | 
			
		||||
                OrderMark=x.OrderMark,
 | 
			
		||||
                QuestionType = x.QuestionType,
 | 
			
		||||
                ValueType = x.ValueType,
 | 
			
		||||
            }).ToListAsync();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -505,6 +505,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
 | 
			
		|||
 | 
			
		||||
                 // 影像学整体肿瘤评估
 | 
			
		||||
                 new ReadingCalculateData (){QuestionType=QuestionType.ImgOncology,GetStringFun=GetImgOncology},
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                     //SUVmax
 | 
			
		||||
                 new ReadingCalculateData (){QuestionType=QuestionType.SUVmax,GetDecimalFun=GetSuvMax},
 | 
			
		||||
 | 
			
		||||
                 // SUVmax所在病灶
 | 
			
		||||
                 new ReadingCalculateData (){QuestionType=QuestionType.SUVmaxLesion,GetStringFun=GetSuvMaxFocus},
 | 
			
		||||
				////靶病灶径线之和(SOD)
 | 
			
		||||
				//new ReadingCalculateData (){QuestionType=QuestionType.SOD,GetDecimalNullFun=GetSODData},
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -549,38 +556,38 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
 | 
			
		|||
            };
 | 
			
		||||
 | 
			
		||||
            // 没有靶病灶只计算最后几个
 | 
			
		||||
            if (inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).Sum(x => x.TableRowInfoList.Count()) == 0)
 | 
			
		||||
            {
 | 
			
		||||
            //if (inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).Sum(x => x.TableRowInfoList.Count()) == 0)
 | 
			
		||||
            //{
 | 
			
		||||
 | 
			
		||||
                List<QuestionType> questionTypes = new List<QuestionType>()
 | 
			
		||||
                {
 | 
			
		||||
                    QuestionType.TargetLesion,
 | 
			
		||||
                    QuestionType.NoTargetLesion,
 | 
			
		||||
                    QuestionType.NewLesions,
 | 
			
		||||
                    QuestionType.Tumor,
 | 
			
		||||
                    QuestionType.ExistDisease,
 | 
			
		||||
                };
 | 
			
		||||
            //    List<QuestionType> questionTypes = new List<QuestionType>()
 | 
			
		||||
            //    {
 | 
			
		||||
            //        QuestionType.TargetLesion,
 | 
			
		||||
            //        QuestionType.NoTargetLesion,
 | 
			
		||||
            //        QuestionType.NewLesions,
 | 
			
		||||
            //        QuestionType.Tumor,
 | 
			
		||||
            //        QuestionType.ExistDisease,
 | 
			
		||||
            //    };
 | 
			
		||||
 | 
			
		||||
                // 没有靶病灶就删除其他几个答案的值
 | 
			
		||||
                var isNeedDeleteTypes = calculateList.Where(x => !questionTypes.Contains(x.QuestionType)).Select(x => x.QuestionType).ToList();
 | 
			
		||||
            //    // 没有靶病灶就删除其他几个答案的值
 | 
			
		||||
            //    var isNeedDeleteTypes = calculateList.Where(x => !questionTypes.Contains(x.QuestionType)).Select(x => x.QuestionType).ToList();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                var isNeedDeleteIds = inDto.QuestionInfo.Where(x => x.QuestionType != null && isNeedDeleteTypes.Contains(x.QuestionType.Value)).Select(x => x.QuestionId).ToList();
 | 
			
		||||
            //    var isNeedDeleteIds = inDto.QuestionInfo.Where(x => x.QuestionType != null && isNeedDeleteTypes.Contains(x.QuestionType.Value)).Select(x => x.QuestionId).ToList();
 | 
			
		||||
 | 
			
		||||
                await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId && isNeedDeleteIds.Contains(x.ReadingQuestionTrialId), x => new ReadingTaskQuestionAnswer
 | 
			
		||||
                {
 | 
			
		||||
                    Answer = string.Empty
 | 
			
		||||
                });
 | 
			
		||||
            //    await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId && isNeedDeleteIds.Contains(x.ReadingQuestionTrialId), x => new ReadingTaskQuestionAnswer
 | 
			
		||||
            //    {
 | 
			
		||||
            //        Answer = string.Empty
 | 
			
		||||
            //    });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                calculateList = calculateList.Where(x => questionTypes.Contains(x.QuestionType)).ToList();
 | 
			
		||||
            //    calculateList = calculateList.Where(x => questionTypes.Contains(x.QuestionType)).ToList();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            //}
 | 
			
		||||
 | 
			
		||||
            if (calculateType != null)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -1952,6 +1959,57 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
 | 
			
		|||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #region SuvMax所在病灶
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// SuvMax所在病灶
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="inDto"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        public async Task<string> GetSuvMaxFocus(ReadingCalculateDto inDto)
 | 
			
		||||
        {
 | 
			
		||||
            var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList();
 | 
			
		||||
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
            var tableQuestions = rowInfo.SelectMany(x => x.TableQuestionList).ToList();
 | 
			
		||||
 | 
			
		||||
            var maxSuv = tableQuestions.Where(x => x.QuestionMark == QuestionMark.SUVmax).Select(x =>new { 
 | 
			
		||||
            x.RowIndex,
 | 
			
		||||
             Answer=  x.Answer.IsNullOrEmptyReturn0(),
 | 
			
		||||
            
 | 
			
		||||
            
 | 
			
		||||
            }).OrderByDescending(x=>x.Answer).FirstOrDefault();
 | 
			
		||||
            if (maxSuv == null)
 | 
			
		||||
            {
 | 
			
		||||
                return string.Empty;
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                var orderMark = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).FirstOrDefault().OrderMark;
 | 
			
		||||
                return orderMark+ maxSuv.RowIndex.GetLesionMark();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
           
 | 
			
		||||
        }
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #region SuvMax
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 最大sum
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="inDto"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        public async Task<decimal> GetSuvMax(ReadingCalculateDto inDto)
 | 
			
		||||
        {
 | 
			
		||||
            var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList();
 | 
			
		||||
            var tableQuestions = rowInfo.SelectMany(x => x.TableQuestionList).ToList();
 | 
			
		||||
 | 
			
		||||
            var maxSuv = tableQuestions.Where(x => x.QuestionMark == QuestionMark.SUVmax).Select(x => x.Answer.IsNullOrEmptyReturn0()).MaxOrDefault();
 | 
			
		||||
            return maxSuv;
 | 
			
		||||
        }
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #region 影像学整体肿瘤评估
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 影像学整体肿瘤评估
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue