Send comments on this topic. | Back to Introduction - All Topics | Help Version 15.12.21
Working with DICOM Associate Connections

Once a DICOM Network has been established, the Network connection must be associated. This is also referred to as establishing a DICOM Associate connection. The DICOM Associate connection serves to establish how the two AEs will communicate and the nature of the data that will be transferred. For example, the DICOM Associate connection can establish the following:

  • The organization of the data – Little Endian vs Big Endian, Implicit VR vs Explicit VR.

  • Compression type.

  • The type of data that will be transferred – CT Image Storage Class, Printer Class, Patient Study Query Find Class, etc.

  • The role of a connection member – SCU, SCP, or both.

  • Maximum size of the data "chunk" to be sent, if a maximum exists.

  • Whether or not asynchronous operations are allowed.

  • The presence of some user-defined information.

An SCU requests the creation of an Associate connection with an SCP with which it has established a DICOM Network connection (not yet associated). The SCU sends the SCP an Associate Request message outlining the data it wishes to transfer, and how the transfer can occur. The SCP can accept or reject the Associate connection request, based on whether or not the SCP supports the data and communication characteristics outlined by the SCU. If the connection is accepted, the DICOM Associate connection is established and the two AEs can begin transferring messages and data.

In this documentation a DICOM connection which has been associated will be referred to as a DICOM Associate connection or a DICOM Associate. Information concerning the nature of the DICOM Associate Network will be maintained in and accessed through a DICOM Associate object.

LEADTOOLS provides a number of class members for creating a DICOM Associate connection, modifying a DICOM Associate object and retrieving information about a DICOM Associate connection.

Creating a DICOM Associate connection consists of creating the DICOM Associate object that outlines the characteristics of the transfer and sending messages to request, accept or reject a DICOM Associate connection.

The method DicomAssociate.Default can be used to set the default values for the DICOM Associate object.

LEADTOOLS provides the following methods for sending messages to establish a DICOM Associate connection:

DicomNet.SendAssociateRequest

DicomNet.SendAssociateAccept

DicomNet.SendAssociateReject

DicomNet.SendData

DicomNet.OnReceiveAssociateRequest

DicomNet.OnReceiveAssociateAccept

DicomNet.OnReceiveAssociateReject

DicomNet.OnSend

If a DICOM Associate connection does not support Asynchronous Operations, then an Application Entity must wait for the response from one message before sending another. Use the DicomAssociate.IsAsynchronousOperations property to determine whether asynchronous operations are supported. If Asynchronous Operations are supported, multiple messages may be sent without waiting for a response. The number of messages that may be sent is set using DicomAssociate.SetAsynchronousOperations.

To determine the number of Asynchronous Operations that may be invoked without a response, check the DicomAssociate.InvokedOperationsCount property. To determine the number of operations that have been completed, check the DicomAssociate.PerformedOperationsCount property.

To close a DICOM Associate connection, use the following message sending methods:

DicomNet.SendReleaseRequest

DicomNet.SendReleaseResponse

DicomNet.SendAbort

DicomNet.OnReceiveReleaseRequest

DicomNet.OnReceiveReleaseResponse

DicomNet.OnReceiveAbort

When modifying a DICOM Associate object, use the following class members:

DicomAssociate.Reset

DicomAssociate.Version

DicomAssociate.Called

DicomAssociate.Calling

DicomAssociate.ApplicationContextName

DicomAssociate.SetPresentationContextID

DicomAssociate.AddPresentationContext

DicomAssociate.DeletePresentation

DicomAssociate.SetResult

DicomAssociate.SetAbstract

DicomAssociate.SetTransfer

DicomAssociate.AddTransfer

DicomAssociate.DelTransfer

DicomAssociate.MaxLength

DicomAssociate.ImplementClass

DicomAssociate.SetAsynchronousOperations

DicomAssociate.SetRoleSelect

DicomAssociate.ImplementationVersionName

DicomAssociate.SetUserInformation

DicomAssociate.AddUserInformation

DicomAssociate.DeleteUserInformation

DicomAssociate.SetExtendedData

To retrieve information about a DICOM Associate object, use the following:

DicomAssociate.IsRequest

DicomAssociate.Version

DicomAssociate.Called

DicomAssociate.Calling

DicomAssociate.ApplicationContextName

DicomAssociate.PresentationContextCount

DicomAssociate.GetPresentationContextID

DicomAssociate.GetResult

DicomAssociate.GetAbstract

DicomAssociate.FindAbstract

DicomAssociate.GetTransferCount

DicomAssociate.GetTransfer

DicomAssociate.MaxLength

DicomAssociate.IsAsynchronousOperations

DicomAssociate.ImplementClass

DicomAssociate.InvokedOperationsCount

DicomAssociate.PerformedOperationsCount

DicomAssociate.GetUserRole

DicomAssociate.GetProviderRole

DicomAssociate.IsRoleSelect

DicomAssociate.ImplementationVersionName

DicomAssociate.UserInformationCount

DicomAssociate.GetUserInformationType

DicomAssociate.GetUserInformationDataLength

DicomAssociate.GetUserInformationData

DicomAssociate.GetUserInformationDataPtr

DicomAssociate.GetExtendedDataLength

DicomAssociate.GetExtendedData

DicomAssociate.GetExtendedDataPtr