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

image\sqrblit.gif The organization of the data – Little Endian vs Big Endian, Implicit VR vs Explicit VR.

image\sqrblit.gif Compression type.

image\sqrblit.gif The type of data that will be transferred – CT Image Storage Class, Printer Class, or Patient Study Query Find Class

image\sqrblit.gif The role of a connection member – SCU, SCP, or both.

image\sqrblit.gif Maximum size of the data "chunk" to be sent, if a maximum exists.

image\sqrblit.gif Whether or not asynchronous operations are allowed.

image\sqrblit.gif 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 the 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 handle.

LEADTOOLS provides a number of functions for creating a DICOM Associate connection, modifying a DICOM Associate handle and retrieving information about a DICOM Associate connection.

Creating a DICOM Associate connection consists of creating the DICOM Associate handle, accessed through the hPDU property, that outlines the characteristics of the transfer and sending messages to request, accept or reject a DICOM Associate connection.

To create a DICOM Associate handle, use the following functions:

CreateAssociate method

DefaultAssociate method

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

SendAssociateRequest method

SendAssociateAccept method

SendAssociateReject method

SendData method

NetReceiveAssociateRequest event

NetReceiveAssociateAccept event

NetReceiveAssociateReject event

NetSend event

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

SendReleaseRequest method

SendReleaseResponse method

SendAbort method

NetReceiveReleaseRequest event

NetReceiveReleaseResponse event

NetReceiveAbort event

When modifying a DICOM Associate handle, use the following functions:

ResetAssociate method

SetRequest method

SetVersion method

SetCalled method

SetCalling method

SetApplication method

SetPresentationID method

SetPresentationAbstract method

SetPresentationResult method

AddPresentation method

DeletePresentation method

SetTransferSyntax method

AddTransferSyntax method

DeleteTransferSyntax method

SetMaxLength method

SetImplementClass method

SetAsyncOperations method

SetRoleSelect method

SetImplementVersion method

SetUserInfo method

AddUserInfo method

DeleteUserInfo method

SetExtendedData method

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

IsRequest method

GetVersion method

GetCalled method

GetCalling method

GetApplication method

GetPresentationCount method

GetPresentationID method

GetPresentationAbstract method

GetPresentationResult method

FindPresentationAbstract method

GetTransferCount method

GetTransferSyntax method

IsMaxLengthEnabled method

GetMaxLength method

IsImplementClass method

GetImplementClass method

IsAsyncOperations method

GetInvokedOperationsCount method

GetPerformedOperationsCount method

GetUserRole method

GetProviderRole method

IsRoleSelect method

IsImplementVersion method

GetImplementVersion method

GetUserInfoCount method

GetUserInfoType method

GetUserInfoLength method

GetUserInfoData method

GetExtendedDataLength method

GetExtendedData method

To destroy the DICOM Associate handle and free the associated memory, use the FreeAssociate method.