Installs the DICOM service.
public Leadtools.Dicom.Server.Admin.DicomService InstallService(Leadtools.Dicom.Addin.Common.ServerSettings settings)
Public Function InstallService( _ByVal settings As Leadtools.Dicom.Addin.Common.ServerSettings _) As Leadtools.Dicom.Server.Admin.DicomService
public:Leadtools.Dicom.Server.Admin.DicomService^ InstallService(Leadtools.Dicom.Addin.Common.ServerSettings^ settings)
settings
The settings that describe the DICOM service.
A DicomService class that represents the installed service.
Shows how to install and perform some administrative tasks on a server.
Imports LeadtoolsImports Leadtools.Dicom.AddIn.CommonImports Leadtools.Dicom.AddIn.InterfacesPrivate statusEvent As AutoResetEvent = New AutoResetEvent(False)<TestMethod()> _Public Sub InstallServiceTest()Dim admin As ServiceAdministrator = New ServiceAdministrator("C:\LEADTOOLS 19\Bin\Dotnet\Win32")Dim settings As ServerSettings = New ServerSettings()Dim service As DicomServicesettings.AETitle = "DICOM_SERVER"settings.Port = 104settings.DisplayName = "Sample Dicom Server"settings.IpAddress = Dns.GetHostEntry(Environment.MachineName).AddressList(0).ToString()service = admin.InstallService(settings)If Not service Is Nothing AndAlso service.Settings.AETitle = "DICOM_SERVER" ThenAddHandler service.Message, AddressOf service_MessageAddHandler service.StatusChange, AddressOf service_StatusChangeConsole.WriteLine("Base Directory: {0}", admin.BaseDirectory)Console.WriteLine("Server Directory: {0}", service.ServiceDirectory)TryDim ae As AeInfo = New AeInfo()'' Start the service'service.Start()service.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(30))ProcessMessages()If service.IsAdminAvailable Then'' Add AE Title'ae.AETitle = "CLIENT"ae.Port = 1000ae.Address = String.Emptyservice.SendMessage(MessageNames.AddAeTitle, ae)End IfProcessMessages()'' Pause the service'service.Pause()service.WaitForStatus(ServiceControllerStatus.Paused, TimeSpan.FromSeconds(30))ProcessMessages()FinallyIf service.Status <> ServiceControllerStatus.Stopped Then'' Stop the service'service.Stop()service.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(30))End If'' UnInstall the service'admin.UnInstallService(service)End TryEnd IfEnd Sub'' Need to process messages so events get called in time. In a normal windows applications there is no need' to do this extra processing.'Private Sub ProcessMessages()Do While Not statusEvent.WaitOne(0)Application.DoEvents()LoopEnd SubPrivate Sub service_StatusChange(ByVal sender As Object, ByVal e As EventArgs)Dim service As DicomService = TryCast(sender, DicomService)Console.WriteLine(service.Status)If service.Status = ServiceControllerStatus.Running OrElse service.Status = ServiceControllerStatus.Stopped OrElse service.Status = ServiceControllerStatus.Paused ThenstatusEvent.Set()End IfEnd SubPrivate Sub service_Message(ByVal sender As Object, ByVal e As MessageEventArgs)If e.Message.Message = MessageNames.AddAeTitle ThenIf e.Message.Success ThenDim ae As AeInfo = TryCast(e.Message.Data(0), AeInfo)Console.WriteLine("AE Title: {0}", ae.AETitle)Console.WriteLine("IP Address: {0}", ae.Address)Console.WriteLine("Port: {0}", ae.Port)ElseConsole.WriteLine("Error Adding AETITLE: {0}", e.Message.Error)End IfEnd IfstatusEvent.Set()End Sub
using Leadtools;using Leadtools.Dicom.AddIn.Common;using Leadtools.Dicom.AddIn.Interfaces;AutoResetEvent statusEvent = new AutoResetEvent(false);public void InstallServiceTest(){ServiceAdministrator admin = new ServiceAdministrator(@"C:\LEADTOOLS 19\Bin\Dotnet\Win32");ServerSettings settings = new ServerSettings();DicomService service;settings.AETitle = "DICOM_SERVER";settings.Port = 104;settings.DisplayName = "Sample Dicom Server";settings.IpAddress = Dns.GetHostEntry(Environment.MachineName).AddressList[0].ToString();service = admin.InstallService(settings);if(service!=null && service.Settings.AETitle == "DICOM_SERVER"){service.Message += new EventHandler<MessageEventArgs>(service_Message);service.StatusChange += new EventHandler(service_StatusChange);Console.WriteLine("Base Directory: {0}", admin.BaseDirectory);Console.WriteLine("Server Directory: {0}", service.ServiceDirectory);try{AeInfo ae = new AeInfo();//// Start the service//service.Start();service.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(30));ProcessMessages();if (service.IsAdminAvailable){//// Add AE Title//ae.AETitle = "CLIENT";ae.Port = 1000;ae.Address = string.Empty;service.SendMessage(MessageNames.AddAeTitle, ae);}ProcessMessages();//// Pause the service//service.Pause();service.WaitForStatus(ServiceControllerStatus.Paused, TimeSpan.FromSeconds(30));ProcessMessages();}finally{if(service.Status!= ServiceControllerStatus.Stopped){//// Stop the service//service.Stop();service.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(30));}//// UnInstall the service//admin.UnInstallService(service);}}}//// Need to process messages so events get called in time. In a normal windows applications there is no need// to do this extra processing.//private void ProcessMessages(){while(!statusEvent.WaitOne(0)){Application.DoEvents();}}void service_StatusChange(object sender, EventArgs e){DicomService service = sender as DicomService;Console.WriteLine(service.Status);if(service.Status==ServiceControllerStatus.Running || service.Status == ServiceControllerStatus.Stopped ||service.Status == ServiceControllerStatus.Paused){statusEvent.Set();}}void service_Message(object sender, MessageEventArgs e){if(e.Message.Message == MessageNames.AddAeTitle){if (e.Message.Success){AeInfo ae = e.Message.Data[0] as AeInfo;Console.WriteLine("AE Title: {0}", ae.AETitle);Console.WriteLine("IP Address: {0}", ae.Address);Console.WriteLine("Port: {0}", ae.Port);}else{Console.WriteLine("Error Adding AETITLE: {0}", e.Message.Error);}}statusEvent.Set();}
|
Products |
Support |
Feedback: InstallService Method - Leadtools.Dicom.Server.Admin |
Introduction |
Help Version 19.0.2017.3.22
|

Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.