获取可融合的病灶
							parent
							
								
									f9ac64023a
								
							
						
					
					
						commit
						8b86bc6b3f
					
				| 
						 | 
				
			
			@ -1310,6 +1310,13 @@
 | 
			
		|||
            </summary>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.Interface.ILuganoCalculateService.CalculateTargetLesionStatus(IRaCIS.Core.Application.ViewModel.CalculateTargetLesionStatusInDto)">
 | 
			
		||||
            <summary>
 | 
			
		||||
            计算靶病灶状态
 | 
			
		||||
            </summary>
 | 
			
		||||
            <param name="inDto"></param>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="F:IRaCIS.Core.Application.Service.ReadingCalculate.IRECIST1Point1CalculateService.sODData">
 | 
			
		||||
            <summary>
 | 
			
		||||
            获取Sod的值
 | 
			
		||||
| 
						 | 
				
			
			@ -13413,6 +13420,13 @@
 | 
			
		|||
            </summary>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Application.Services.ReadingImageTaskService.GetCanMergeLesion(IRaCIS.Core.Application.Service.Reading.Dto.GetCanMergeLesionInDto)">
 | 
			
		||||
            <summary>
 | 
			
		||||
            获取可合并的病灶
 | 
			
		||||
            </summary>
 | 
			
		||||
            <param name="inDto"></param>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Application.Services.ReadingImageTaskService.SaveImageQuality(IRaCIS.Core.Application.Service.Reading.Dto.ChangeDicomReadingQuestionAnswerInDto)">
 | 
			
		||||
            <summary>
 | 
			
		||||
            保存影像质量
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -297,7 +297,27 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
 | 
			
		|||
        public List<CrterionDictionaryGroup> CrterionDictionaryGroup { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class MergeLesionInDto
 | 
			
		||||
 | 
			
		||||
	public class GetCanMergeLesionOutDto
 | 
			
		||||
	{
 | 
			
		||||
		public Guid RowId { get; set; }
 | 
			
		||||
 | 
			
		||||
        public string OrderMarkName { get; set; }
 | 
			
		||||
 | 
			
		||||
		public Guid? OrganInfoId { get; set; }
 | 
			
		||||
 | 
			
		||||
		public decimal RowIndex { get; set; }
 | 
			
		||||
 | 
			
		||||
        public string Part { get; set; }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	public class GetCanMergeLesionInDto
 | 
			
		||||
    {
 | 
			
		||||
		public Guid RowId { get; set; }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public class MergeLesionInDto
 | 
			
		||||
    {
 | 
			
		||||
        public Guid VisitTaskId { get; set; }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1515,19 +1515,77 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        #region 访视任务  - Dicom 阅片 提交、修改
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 保存影像质量
 | 
			
		||||
        /// 获取可合并的病灶
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="inDto"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        [HttpPost]
 | 
			
		||||
        public async Task<List<GetCanMergeLesionOutDto>> GetCanMergeLesion(GetCanMergeLesionInDto inDto)
 | 
			
		||||
        {
 | 
			
		||||
            var rowinfo = await _readingTableAnswerRowInfoRepository.Where(x => x.Id == inDto.RowId).Include(x=>x.ReadingQuestionTrial).FirstNotNullAsync();
 | 
			
		||||
 | 
			
		||||
            // 需要排除的状态
 | 
			
		||||
            var needFilterState = new List<string>();
 | 
			
		||||
 | 
			
		||||
            switch (rowinfo.ReadingQuestionTrial.LesionType)
 | 
			
		||||
            {
 | 
			
		||||
				//状态为“消失”、“无法评估”的靶病灶不可融合;
 | 
			
		||||
				case LesionType.TargetLesion:
 | 
			
		||||
                    needFilterState = new List<string>() {
 | 
			
		||||
                        TargetState.Loss.GetEnumInt(),
 | 
			
		||||
                        TargetState.UnableEvaluate.GetEnumInt(),
 | 
			
		||||
                    };
 | 
			
		||||
 | 
			
		||||
					break;
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var result = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == rowinfo.VisitTaskId && x.QuestionId == rowinfo.QuestionId && x.Id != rowinfo.Id)
 | 
			
		||||
                // 筛选状态
 | 
			
		||||
                .Where(x => x.LesionAnswerList.Any(y => y.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && !needFilterState.Contains(y.Answer)))
 | 
			
		||||
                .Select(x => new GetCanMergeLesionOutDto()
 | 
			
		||||
                {
 | 
			
		||||
                    RowId = x.Id,
 | 
			
		||||
                    RowIndex = x.RowIndex,
 | 
			
		||||
                    OrderMarkName = x.ReadingQuestionTrial.OrderMark + x.RowIndex.GetLesionMark(),
 | 
			
		||||
                    OrganInfoId = x.OrganInfoId
 | 
			
		||||
                }).OrderBy(x=>x.RowIndex).ToListAsync();
 | 
			
		||||
 | 
			
		||||
            var organIds = result.Where(x => x.OrganInfoId != null).Select(x => x.OrganInfoId).Distinct().ToList();
 | 
			
		||||
			var organList = await _organInfoRepository.Where(x => organIds.Contains(x.Id)).ToListAsync();
 | 
			
		||||
 | 
			
		||||
            result.ForEach(x =>
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
                if (_userInfo.IsEn_Us)
 | 
			
		||||
                {
 | 
			
		||||
                    x.Part = organList.Where(y => y.Id == x.OrganInfoId).Select(y => y.PartEN).FirstIsNullReturnEmpty();
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    x.Part = organList.Where(y => y.Id == x.OrganInfoId).Select(y => y.Part).FirstIsNullReturnEmpty();
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            return result;
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		#endregion
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		#region 访视任务  - Dicom 阅片 提交、修改
 | 
			
		||||
 | 
			
		||||
		/// <summary>
 | 
			
		||||
		/// 保存影像质量
 | 
			
		||||
		/// </summary>
 | 
			
		||||
		/// <param name="inDto"></param>
 | 
			
		||||
		/// <returns></returns>
 | 
			
		||||
		[HttpPost]
 | 
			
		||||
        [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
 | 
			
		||||
        public async Task<IResponseOutput> SaveImageQuality(ChangeDicomReadingQuestionAnswerInDto inDto)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue