From 674f69cb69429ddb425ec158745f21e425c256e2 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 21 Apr 2022 13:01:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/QC/DTO/QCListViewModel.cs | 3 + .../Service/QC/QCOperationService.cs | 61 +++++++++++++------ 2 files changed, 47 insertions(+), 17 deletions(-) diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs index ebed5042b..cfed590dd 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs @@ -321,6 +321,9 @@ namespace IRaCIS.Core.Application.Contracts public decimal VisitNum { get; set; } public string VisitName { get; set; } = string.Empty; + public Guid SubjectId { get; set; } + public Guid SiteId { get; set; } + //public string Modality { get; set; } public RequestBackStateEnum RequestBackState { get; set; } diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 50306bdb3..a248e1133 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -1480,15 +1480,7 @@ namespace IRaCIS.Core.Application.Image.QA [TypeFilter(typeof(TrialResourceFilter))] public async Task QCPassedOrFailed(Guid trialId, Guid subjectVisitId, [FromRoute] AuditStateEnum auditState) { - var DicomSeriesdatac = await _repository.GetQueryable().Where(x => x.SubjectVisitId == subjectVisitId).Select(x => new { - StudyCode = x.DicomStudy.StudyCode, - Modalities = x.DicomStudy.Modalities, - SeriesNumber = x.SeriesNumber, - InstanceCount = x.InstanceCount, - SeriesTime = x.SeriesTime, - IsReading = x.IsReading, - IsDeleted = x.IsDeleted, - }).ToListAsync(); + if (!await _repository.AnyAsync(t => t.TrialId == trialId && t.UserId == _userInfo.Id)) { @@ -1631,20 +1623,55 @@ namespace IRaCIS.Core.Application.Image.QA //删除 软删除的物理文件 + + var instanceIdList = await _repository.Where(t => t.DicomSerie.IsDeleted && t.SubjectVisitId == subjectVisitId) .Select(t => new { InstanceId = t.Id, t.SeriesId, t.StudyId, t.SubjectId, t.SiteId }).ToListAsync(); List datas = new List(); - var DicomSeriesdata = await _repository.GetQueryable().Where(x=>x.SubjectVisitId== subjectVisitId&&x.IsDeleted).Select(x => new { - StudyCode=x.DicomStudy.Code, - Modalities=x.DicomStudy.Modalities, - SeriesNumber=x.SeriesNumber, - InstanceCount=x.InstanceCount, - SeriesTime=x.SeriesTime, - IsReading=x.IsReading, - IsDeleted=x.IsDeleted, + var DicomSeriesdata = await _repository.GetQueryable().Where(x => x.SubjectVisitId == subjectVisitId).Select(x => new { + StudyCode = x.DicomStudy.StudyCode, + Modalities = x.DicomStudy.Modalities, + SeriesNumber = x.SeriesNumber, + InstanceCount = x.InstanceCount, + SeriesTime = x.SeriesTime, + TrialId=x.TrialId, + SiteId=x.SiteId, + x.SubjectId, + x.SubjectVisitId, + x.IsDeleted, + x.IsReading, + x.Id, + }).ToListAsync(); + DateTime time = DateTime.Now.AddMilliseconds(500); + DicomSeriesdata.ForEach(x => + { + datas.Add(new DataInspection() + { + TrialId = x.TrialId, + SiteId = x.SiteId, + SubjectId = x.SubjectId, + SubjectVisitId = x.SubjectVisitId, + GeneralId = x.Id, + CreateTime = time, + Identification = "Delete|DICOM Series|Data|Visit-Image Quanlity Control", + JsonDetail = JsonConvert.SerializeObject(new + { + StudyCode = x.StudyCode, + Modalities = x.Modalities, + SeriesNumber = x.SeriesNumber, + InstanceCount = x.InstanceCount, + SeriesTime = x.SeriesTime, + IsReading=x.IsReading, + IsDeleted=x.IsDeleted, + }) + + }); + + }); + await _inspectionService.AddListInspectionRecordAsync(datas); 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());