修复bug
							parent
							
								
									febc651f61
								
							
						
					
					
						commit
						caab71f1a3
					
				| 
						 | 
				
			
			@ -73,7 +73,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
        [TypeFilter(typeof(TrialResourceFilter))]
 | 
			
		||||
        public async Task<IResponseOutput> VerifyQCCanAddChallenge(Guid subjectVisitId, [FromRoute] CurrentQC currentQCType)
 | 
			
		||||
        {
 | 
			
		||||
            VerifyIsCanQC(null, subjectVisitId);
 | 
			
		||||
            await VerifyIsCanQCAsync(null, subjectVisitId);
 | 
			
		||||
            if (!await _repository.AnyAsync<TrialQCQuestionAnswer>(t => t.SubjectVisitId == subjectVisitId && t.CurrentQCEnum == currentQCType))
 | 
			
		||||
            {
 | 
			
		||||
                return ResponseOutput.NotOk("请先核查图像,保存审核问题后,再发质疑。");
 | 
			
		||||
| 
						 | 
				
			
			@ -95,7 +95,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
        [Authorize(Policy = "ImageQCPolicy")]
 | 
			
		||||
        public async Task<QCChallenge> AddOrUpdateQCChallenge(QCChallengeCommand qaQuestionCommand, Guid trialId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType)
 | 
			
		||||
        {
 | 
			
		||||
            VerifyIsCanQC(null, qaQuestionCommand.SubjectVisitId);
 | 
			
		||||
            await VerifyIsCanQCAsync(null, qaQuestionCommand.SubjectVisitId);
 | 
			
		||||
 | 
			
		||||
            if (qaQuestionCommand.Id == null)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -156,7 +156,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
 | 
			
		||||
            if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IQC)
 | 
			
		||||
            {
 | 
			
		||||
                VerifyIsCanQC(null, subjectVisitId);
 | 
			
		||||
                await VerifyIsCanQCAsync(null, subjectVisitId);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var dbQCChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == qcChallengeId)).IfNullThrowException();
 | 
			
		||||
| 
						 | 
				
			
			@ -692,7 +692,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
        public async Task<IResponseOutput> AddOrUpdateQCQuestionAnswerList(QCQuestionAnswerCommand[] qcQuestionAnswerCommands, Guid trialId, Guid subjectVisitId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType)
 | 
			
		||||
        {
 | 
			
		||||
            //验证是否能操作
 | 
			
		||||
            VerifyIsCanQC(null, subjectVisitId);
 | 
			
		||||
            await VerifyIsCanQCAsync(null, subjectVisitId);
 | 
			
		||||
 | 
			
		||||
            //更新
 | 
			
		||||
            if (qcQuestionAnswerCommands.Any(t => t.Id != null))
 | 
			
		||||
| 
						 | 
				
			
			@ -762,7 +762,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
        public async Task<IResponseOutput> SetSeriesState(Guid subjectVisitId, Guid studyId, Guid seriesId, int state)
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
            VerifyIsCanQC(null, subjectVisitId);
 | 
			
		||||
            await VerifyIsCanQCAsync(null, subjectVisitId);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var series = await _repository.Where<DicomSeries>(t => t.Id == seriesId, true).IgnoreQueryFilters().FirstOrDefaultAsync();
 | 
			
		||||
| 
						 | 
				
			
			@ -838,7 +838,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
        public async Task<IResponseOutput> UpdateModality(Guid id, Guid subjectVisitId, int type, [FromQuery] string modality, [FromQuery] string bodyPart)
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
            VerifyIsCanQC(null, subjectVisitId);
 | 
			
		||||
            await VerifyIsCanQCAsync(null, subjectVisitId);
 | 
			
		||||
 | 
			
		||||
            var DicomSeriesdata = await _repository.GetQueryable<DicomSeries>().Where(x => x.StudyId == id).ToListAsync();
 | 
			
		||||
            var study = await _repository.FirstOrDefaultAsync<DicomStudy>(t => t.Id == id);
 | 
			
		||||
| 
						 | 
				
			
			@ -931,7 +931,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
        [HttpGet("{subjectVisitId:guid}")]
 | 
			
		||||
        public async Task<IResponseOutput> VerifyCanQCPassedOrFailed(Guid subjectVisitId)
 | 
			
		||||
        {
 | 
			
		||||
            VerifyIsCanQC(null, subjectVisitId);
 | 
			
		||||
            await VerifyIsCanQCAsync(null, subjectVisitId);
 | 
			
		||||
 | 
			
		||||
            if (await _repository.AnyAsync<QCChallenge>(t => t.SubjectVisitId == subjectVisitId && t.IsClosed == false))
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -965,13 +965,13 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
            }
 | 
			
		||||
            var waitDeleteStudyList = await _dicomStudyRepository.Where(x => ids.Contains(x.Id)).ToListAsync();
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
       
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
          
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            foreach (var study in waitDeleteStudyList)
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -997,7 +997,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
 | 
			
		||||
                }).ToListAsync();
 | 
			
		||||
 | 
			
		||||
             
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                var success3 = await _repository.BatchDeleteAsync<DicomSeries>(t => t.StudyId == id);
 | 
			
		||||
                var success4 = await _repository.BatchDeleteAsync<StudyMonitor>(t => t.StudyId == id);
 | 
			
		||||
| 
						 | 
				
			
			@ -1029,7 +1029,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
        #endregion
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public async void VerifyIsCanQC(SubjectVisit? subjectVisit, Guid? sujectVisitId = null)
 | 
			
		||||
        public async Task VerifyIsCanQCAsync(SubjectVisit? subjectVisit, Guid? sujectVisitId = null)
 | 
			
		||||
        {
 | 
			
		||||
            if (sujectVisitId != null)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -1406,7 +1406,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
 | 
			
		||||
            var dbSubjectVisit = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException();
 | 
			
		||||
 | 
			
		||||
            VerifyIsCanQC(dbSubjectVisit);
 | 
			
		||||
            await VerifyIsCanQCAsync(dbSubjectVisit);
 | 
			
		||||
 | 
			
		||||
            //有人QC Passed
 | 
			
		||||
            if (auditState == AuditStateEnum.QCPassed)
 | 
			
		||||
| 
						 | 
				
			
			@ -1534,7 +1534,7 @@ namespace IRaCIS.Core.Application.Image.QA
 | 
			
		|||
            var instanceIdList = await _repository.Where<DicomInstance>(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId)
 | 
			
		||||
                .Select(t => new { InstanceId = t.Id, t.SeriesId, t.StudyId, t.SubjectId, t.SiteId }).ToListAsync();
 | 
			
		||||
 | 
			
		||||
           
 | 
			
		||||
 | 
			
		||||
            instanceIdList.ForEach(t =>
 | 
			
		||||
            {
 | 
			
		||||
                var path = _dicomFileStoreHelper.GetInstanceFilePath(new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId }, t.SeriesId, t.InstanceId.ToString());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -104,11 +104,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        [HttpDelete("{id:guid}/{trialId:guid}")]
 | 
			
		||||
 | 
			
		||||
        [TrialAudit(AuditType.SubjectAudit, AuditOptType.DeleteSubject)]
 | 
			
		||||
        [TypeFilter(typeof(TrialResourceFilter))]
 | 
			
		||||
        public async Task<IResponseOutput> DeleteSubject(Guid id)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue