diff --git a/IRC.Core.SCP/Service/CStoreSCPService.cs b/IRC.Core.SCP/Service/CStoreSCPService.cs index 1fdecfc21..bb9d2571f 100644 --- a/IRC.Core.SCP/Service/CStoreSCPService.cs +++ b/IRC.Core.SCP/Service/CStoreSCPService.cs @@ -21,6 +21,7 @@ using FellowOakDicom.Imaging; using SharpCompress.Common; using SixLabors.ImageSharp.Formats.Jpeg; using IRaCIS.Core.Infrastructure; +using IRaCIS.Core.Infrastructure.Extention; namespace IRaCIS.Core.SCP.Service { @@ -258,9 +259,16 @@ namespace IRaCIS.Core.SCP.Service public async Task OnCStoreRequestAsync(DicomCStoreRequest request) { - string studyInstanceUid = request.Dataset.GetString(DicomTag.StudyInstanceUID); - string seriesInstanceUid = request.Dataset.GetString(DicomTag.SeriesInstanceUID); - string sopInstanceUid = request.Dataset.GetString(DicomTag.SOPInstanceUID); + string studyInstanceUid = request.Dataset.GetSingleValueOrDefault(DicomTag.StudyInstanceUID,string.Empty); + string seriesInstanceUid = request.Dataset.GetSingleValueOrDefault(DicomTag.SeriesInstanceUID, string.Empty); + string sopInstanceUid = request.Dataset.GetSingleValueOrDefault(DicomTag.SOPInstanceUID, string.Empty); + + if(studyInstanceUid.IsNullOrEmpty() || seriesInstanceUid.IsNullOrEmpty() || sopInstanceUid.IsNullOrEmpty()) + { + Log.Logger.Error($"接收数据读取StudyInstanceUID:{studyInstanceUid}、SeriesInstanceUID:{seriesInstanceUid}、SOPInstanceUID:{sopInstanceUid}有空 "); + + return new DicomCStoreResponse(request, DicomStatus.Success); + } //Guid studyId = IdentifierHelper.CreateGuid(studyInstanceUid, trialId.ToString()); Guid seriesId = IdentifierHelper.CreateGuid(studyInstanceUid, seriesInstanceUid, _trialId.ToString()); diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs index 747214ce8..73ff52173 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs @@ -194,6 +194,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc InstanceCount = t.InstanceCount, Modalities = t.Modalities, SeriesCount = t.SeriesCount, + + ReadingInstanceCount=t.InstanceList.Where(t=>t.IsReading && t.DicomSerie.IsReading).Count(), + ReadingSeriesCount= t.SeriesList.Where(t => t.IsReading).Count(), }).ToList(), UploadStudyList = u.TaskStudyList.Select(t => new StudyBasicInfo() @@ -213,6 +216,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc SopInstanceUidList = t.InstanceList.Select(t => t.SopInstanceUid).ToList(), + ReadingInstanceCount = t.InstanceCount, + ReadingSeriesCount = t.SeriesCount, + }).ToList() }) ; @@ -723,7 +729,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc FileName = t.FileName, FileSize = t.FileSize, Path = t.Path - }).ToList() + }).ToList(), + + ReadingFileCount= ns.FileCount, };