diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 44bab361..2f7d1f7a 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -594,65 +594,7 @@ namespace IRaCIS.Core.Application.Image.QA [HttpPut("{trialId:guid}/{subjectVisitId:guid}/{studyId:guid}/{seriesId:guid}/{state:int}")] [TypeFilter(typeof(TrialResourceFilter))] [Authorize(Policy = IRaCISPolicy.IQC)] - public async Task SetSeriesState(Guid subjectVisitId, Guid studyId, Guid seriesId, int state) - { - - await VerifyIsCanQCAsync(null, subjectVisitId); - - var series = (await _repository.Where(t => t.Id == seriesId, true).IgnoreQueryFilters().FirstOrDefaultAsync()).IfNullThrowException(); - - - if (state == 1) - { - series.IsReading = false; - } - else if (state == 2) - { - series.IsReading = true; - } - else if (state == 4) - { - series.IsDeleted = true; - - var study = (await _repository.Where(t => t.Id == studyId, true).IgnoreQueryFilters().FirstOrDefaultAsync()).IfNullThrowException(); - - var instanceIdList = await _repository.Where(t => t.SeriesId == seriesId).Select(t => t.Id).ToListAsync(); - - //instanceIdList.ForEach(t => - //{ - // var path = _dicomFileStoreHelper.GetInstanceFilePath(study, seriesId, t.ToString()); - - // if (System.IO.File.Exists(path)) - // { - // File.Delete(path); - // } - - //}); - - study.InstanceCount = study.InstanceCount - instanceIdList.Count; - study.SeriesCount = study.SeriesCount - 1; - - study.IsDeleted = study.SeriesCount == 0; - - } - else if (state == 5) - { - series.IsDeleted = false; - - var study = (await _repository.Where(t => t.Id == studyId, true).IgnoreQueryFilters().FirstOrDefaultAsync()).IfNullThrowException(); - - - var instanceIdList = await _repository.Where(t => t.SeriesId == seriesId).Select(t => t.Id).ToListAsync(); - - study.InstanceCount = study.InstanceCount + instanceIdList.Count; - - study.SeriesCount = study.SeriesCount + 1; - - study.IsDeleted = study.SeriesCount == 0; - } - - return ResponseOutput.Ok(await _repository.SaveChangesAsync()); - } + public async Task SetSeriesState(Guid subjectVisitId, Guid studyId, Guid seriesId, int state /// @@ -661,11 +603,21 @@ namespace IRaCIS.Core.Application.Image.QA /// [HttpPost("{trialId:guid}")] [TypeFilter(typeof(TrialResourceFilter))] - [Authorize(Policy = IRaCISPolicy.IQC)] + [Authorize(Policy = IRaCISPolicy.CRC_IQC)] public async Task UpdateModality(UpdateModalityCommand updateModalityCommand) { + if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IQC) + { + await VerifyIsCanQCAsync(null, updateModalityCommand.SubjectVisitId); - await VerifyIsCanQCAsync(null, updateModalityCommand.SubjectVisitId); + } + else + { + if(await _subjectVisitRepository.AnyAsync(t=>t.Id==updateModalityCommand.SubjectVisitId && t.SubmitState == SubmitStateEnum.Submitted)) + { + throw new BusinessValidationFailedException("提交之后,不允许修改!"); + } + } DateTime time = DateTime.Now.AddMilliseconds(500);