非Dicom检查时间校验
							parent
							
								
									4eecbe1095
								
							
						
					
					
						commit
						8f504f5f04
					
				| 
						 | 
				
			
			@ -228,13 +228,14 @@ namespace IRaCIS.Api.Controllers
 | 
			
		|||
            {
 | 
			
		||||
 | 
			
		||||
                _logger.LogError(e.Message + e.StackTrace);
 | 
			
		||||
 | 
			
		||||
                _provider.Remove("StudyUid_" + archiveStudyCommand.StudyInstanceUid);
 | 
			
		||||
 | 
			
		||||
                return ResponseOutput.NotOk(e.Message, ApiResponseCodeEnum.ProgramException);
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
         
 | 
			
		||||
       
 | 
			
		||||
 | 
			
		||||
             
 | 
			
		||||
            return ResponseOutput.Ok(archiveResult);
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -393,18 +393,18 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
 | 
			
		|||
                    //小于当前访视 最近的最早拍片日期
 | 
			
		||||
                    var before = visitList.Where(u => u.VisitNum < verifyInfo.VisitNum).Max(k => k.EarliestScanDate);
 | 
			
		||||
 | 
			
		||||
                    if (before != null && before > waitUploadItem.StudyDate)
 | 
			
		||||
                    if (before != null  && waitUploadItem.StudyDate !=null && before > waitUploadItem.StudyDate)
 | 
			
		||||
                    {
 | 
			
		||||
                        result.Add(new VerifyStudyUploadResult() { ErrorMesseage = "当前访视检查时间不能小于该访视之前检查的时间,请核对检查数据是否有误", StudyInstanceUid = waitUploadItem.StudyInstanceUid });
 | 
			
		||||
                        result.Add(new VerifyStudyUploadResult() { ErrorMesseage = $"当前访视检查时间{waitUploadItem.StudyDate?.ToString("yyyy-MM-dd")}不能早于前序访视检查时间{before?.ToString("yyyy-MM-dd")},请核对检查数据是否有误", StudyInstanceUid = waitUploadItem.StudyInstanceUid });
 | 
			
		||||
                        return;
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    //大于当前访视 最近的最晚拍片日期  
 | 
			
		||||
                    var after = visitList.Where(u => u.VisitNum > verifyInfo.VisitNum).Min(k => k.LatestScanDate);
 | 
			
		||||
 | 
			
		||||
                    if (after != null && after < waitUploadItem.StudyDate)
 | 
			
		||||
                    if (after != null  && waitUploadItem.StudyDate != null && after < waitUploadItem.StudyDate)
 | 
			
		||||
                    {
 | 
			
		||||
                        result.Add(new VerifyStudyUploadResult() { ErrorMesseage = "当前访视检查时间不能大于该访视之后的检查时间,请核对检查数据是否有误", StudyInstanceUid = waitUploadItem.StudyInstanceUid });
 | 
			
		||||
                        result.Add(new VerifyStudyUploadResult() { ErrorMesseage = $"当前访视检查时间{waitUploadItem.StudyDate?.ToString("yyyy-MM-dd")}不能晚于该访视之后的检查时间{after?.ToString("yyyy-MM-dd")},请核对检查数据是否有误", StudyInstanceUid = waitUploadItem.StudyInstanceUid });
 | 
			
		||||
                        return;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,6 +79,33 @@ namespace IRaCIS.Core.Application.Contracts
 | 
			
		|||
        [TypeFilter(typeof(TrialResourceFilter))]
 | 
			
		||||
        public async Task<IResponseOutput<NoneDicomStudyAddReturnDto>> AddOrUpdateNoneDicomStudy(NoneDicomStudyAddOrEdit addOrEditNoneDicomStudy)
 | 
			
		||||
        {
 | 
			
		||||
            var visitList =  await _subjectVisitRepository.Where(t => t.SubjectId == addOrEditNoneDicomStudy.SubjectId).Select(t => new { t.VisitNum, t.EarliestScanDate, t.LatestScanDate, t.Id }).ToListAsync();
 | 
			
		||||
 | 
			
		||||
            var currentVisitNum = await _subjectVisitRepository.Where(t => t.Id == addOrEditNoneDicomStudy.SubjectVisitId).Select(t => t.VisitNum).FirstOrDefaultAsync();
 | 
			
		||||
 | 
			
		||||
            if (addOrEditNoneDicomStudy.Id == null)
 | 
			
		||||
            {
 | 
			
		||||
                //更新验证的时候,排除自己
 | 
			
		||||
                visitList = visitList.Where(t => t.Id != addOrEditNoneDicomStudy.Id).ToList();
 | 
			
		||||
            }
 | 
			
		||||
   
 | 
			
		||||
            //小于当前访视 最近的最早拍片日期
 | 
			
		||||
            var before = visitList.Where(u => u.VisitNum < currentVisitNum).Max(k => k.EarliestScanDate);
 | 
			
		||||
 | 
			
		||||
            if (before != null && before > addOrEditNoneDicomStudy.ImageDate)
 | 
			
		||||
            {
 | 
			
		||||
                throw new BusinessValidationFailedException($"当前访视检查时间{addOrEditNoneDicomStudy.ImageDate.ToString("yyyy-MM-dd")}不能早于前序访视检查时间{before?.ToString("yyyy-MM-dd")},请核对检查数据是否有误");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            //大于当前访视 最近的最晚拍片日期  
 | 
			
		||||
            var after = visitList.Where(u => u.VisitNum > currentVisitNum).Min(k => k.LatestScanDate);
 | 
			
		||||
 | 
			
		||||
            if (after != null && after < addOrEditNoneDicomStudy.ImageDate)
 | 
			
		||||
            {
 | 
			
		||||
                throw new BusinessValidationFailedException($"当前访视检查时间{addOrEditNoneDicomStudy.ImageDate.ToString("yyyy-MM-dd")}不能晚于该访视之后的检查时间{after?.ToString("yyyy-MM-dd")},请核对检查数据是否有误");
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            NoneDicomStudy? optEntity = null;
 | 
			
		||||
            using (await _mutex.LockAsync())
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -318,7 +318,7 @@ namespace IRaCIS.Core.Application.Contracts
 | 
			
		|||
    {
 | 
			
		||||
        public string StudyInstanceUid { get; set; } = String.Empty;
 | 
			
		||||
 | 
			
		||||
        public DateTime StudyDate { get; set; }  
 | 
			
		||||
        public DateTime? StudyDate { get; set; }  
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue