From a24c6775e8c7fa4b8852787e04a6f3335ad456fe Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 12 Mar 2024 09:32:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=20dicom=20=E6=B3=A8=E5=85=A5?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/Progranm.cs | 6 +++++- .../Service/ImageAndDoc/CStoreSCPService.cs | 12 ++++++++++-- .../Service/TrialSiteUser/PersonalWorkstation.cs | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/IRaCIS.Core.API/Progranm.cs b/IRaCIS.Core.API/Progranm.cs index 8062420c5..8798ea688 100644 --- a/IRaCIS.Core.API/Progranm.cs +++ b/IRaCIS.Core.API/Progranm.cs @@ -257,6 +257,7 @@ var hangfireJobService = app.Services.GetRequiredService(); await hangfireJobService.InitHangfireJobTaskAsync(); + #endregion try @@ -292,7 +293,10 @@ try //Log.Logger.Warning($"ContentRootPath——GetParent:{Directory.GetParent(env.ContentRootPath).Parent.FullName}"); //Log.Logger.Warning($"ContentRootPath——xx:{Path.GetDirectoryName(Path.GetDirectoryName(env.ContentRootPath))}"); - //DicomServerFactory.Create(11112); + + + + var server = DicomServerFactory.Create(11112,userState: app.Services); app.Run(); diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/CStoreSCPService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/CStoreSCPService.cs index 934d2de1f..53ea5547e 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/CStoreSCPService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/CStoreSCPService.cs @@ -7,13 +7,14 @@ using System.Text; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using IRaCIS.Core.Application.Contracts.Dicom; +using Microsoft.Extensions.DependencyInjection; namespace IRaCIS.Core.Application.Service.ImageAndDoc { public class CStoreSCPService : DicomService, IDicomServiceProvider, IDicomCStoreProvider, IDicomCEchoProvider { - public readonly IDicomArchiveService _dicomArchiveService; + private IServiceProvider _serviceProvider { get; set; } private static readonly DicomTransferSyntax[] _acceptedTransferSyntaxes = new DicomTransferSyntax[] @@ -43,15 +44,20 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc }; - public CStoreSCPService(INetworkStream stream, Encoding fallbackEncoding, ILogger log, DicomServiceDependencies dependencies/*, IDicomArchiveService dicomArchiveService*/) + public CStoreSCPService(INetworkStream stream, Encoding fallbackEncoding, ILogger log, DicomServiceDependencies dependencies) : base(stream, fallbackEncoding, log, dependencies) { + var tt = base.UserState; //_dicomArchiveService = dicomArchiveService; } + + public Task OnReceiveAssociationRequestAsync(DicomAssociation association) { + _serviceProvider =(IServiceProvider) this.UserState; + if (association.CalledAE != "STORESCP") { return SendAssociationRejectAsync( @@ -96,6 +102,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc public async Task OnCStoreRequestAsync(DicomCStoreRequest request) { + var tt= _serviceProvider.GetService(); + var studyUid = request.Dataset.GetSingleValue(DicomTag.StudyInstanceUID).Trim(); var instUid = request.SOPInstanceUID.UID; diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs index 9f4c79733..67523f2fd 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs @@ -1266,7 +1266,7 @@ namespace IRaCIS.Core.Application .Where(t => t.EndDate == null || t.EndDate != null && t.EndDate > DateTime.Now) .CountAsync(), - #region PM + #region PM PM_SiteSurveryCount = isPM ? siteSurveyCount : 0,