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 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:

L_DicomCreateAssociate

L_DicomDefaultAssociate

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

L_DicomSendAssociateRequest

L_DicomSendAssociateAccept

L_DicomSendAssociateReject

L_DicomSendData

RECEIVEASSOCIATEREQUESTCALLBACK

RECEIVEASSOCIATEACCEPTCALLBACK

RECEIVEASSOCIATEREJECTCALLBACK

SENDCALLBACK

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

L_DicomSendReleaseRequest

L_DicomSendReleaseResponse

L_DicomSendAbort

RECEIVERELEASEREQUESTCALLBACK

RECEIVERELEASERESPONSECALLBACK

RECEIVEABORTCALLBACK

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

L_DicomResetAssociate

L_DicomSetRequest

L_DicomSetVersion

L_DicomSetCalled

L_DicomSetCalling

L_DicomSetApplication

L_DicomSetPresentation

L_DicomAddPresentation

L_DicomDelPresentation

L_DicomSetResult

L_DicomSetAbstract

L_DicomSetTransfer

L_DicomAddTransfer

L_DicomDelTransfer

L_DicomSetMaxLength

L_DicomSetImplementClass

L_DicomSetAsyncOperations

L_DicomSetRoleSelect

L_DicomSetImplementVersion

L_DicomSetUserInfo

L_DicomAddUserInfo

L_DicomDelUserInfo

L_DicomSetExtended

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

L_DicomIsAsyncOperations

L_DicomIsRequest

L_DicomGetVersion

L_DicomGetCalled

L_DicomGetCalling

L_DicomGetApplication

L_DicomGetPresentationCount

L_DicomGetPresentation

L_DicomGetResult

L_DicomGetAbstract

L_DicomFindAbstract

L_DicomGetTransferCount

L_DicomGetTransfer

L_DicomIsMaxLength

L_DicomGetMaxLength

L_DicomIsImplementClass

L_DicomGetImplementClass

L_DicomGetInvokedOperations

L_DicomGetPerformedOperations

L_DicomGetUserRole

L_DicomGetProviderRole

L_DicomIsRoleSelect

L_DicomIsImplementVersion

L_DicomGetImplementVersion

L_DicomGetUserInfoCount

L_DicomGetTypeUserInfo

L_DicomGetLengthUserInfo

L_DicomGetDataUserInfo

L_DicomGetLengthExtended

L_DicomGetExtended