Working with DICOM Network Connections

The DICOM Communication Protocol outlines the requirements for transferring DICOM data and messages across an associated network connection. For more information about the DICOM Communication Protocol, refer to LEADTOOLS DICOM Network Communication Support for Message Exchange, or the DICOM Standard.

In order to transfer DICOM data and messages from one Application Entity (AE) to another, a network connection must be established. Once this connection has been established, the connection must be associated (also referred to as establishing an Associate connection). When the Associate connection has been established, then DICOM data and messages can be transferred between AEs.

AEs can have the role of Service Class Provider (SCP), Service Class User (SCU), or both. An SCU makes requests for data or services, and may also receive data. An SCP listens for incoming connection requests from SCUs. Once these connections are established (and an associate connection created), the SCP processes requests and provides data or services requested by SCUs.

In this documentation the basic network connection will be referred to as a DICOM Network connection or a DICOM Network. Information concerning a DICOM Network connection will be maintained in and accessed through a DICOM Network handle.

When creating either an SCU or an SCP application, a DICOM Network connection (a handle to the connection) must be created. In addition, for every connection request accepted by an SCP, the SCP must create a DICOM Network handle in which to maintain information about that specific SCU-SCP connection.

LEADTOOLS provides a number of functions for creating and initializing a DICOM Network and for transferring DICOM data and messages.

For creating a DICOM Network connection, use the following functions:

L_DicomCreateNet

L_DicomCreateNetExt

L_DicomStartUp

L_DicomConnect

L_DicomConnectExt

L_DicomListen

L_DicomListenExt

L_DicomAccept

L_DicomSetCallback

L_DicomSetCallBackExt

ACCEPTCALLBACK

CONNECTCALLBACK

PRIVATEKEYPASSWORD

For configuring the DICOM Network connection socket options, use the following functions:

L_DicomSetSocketOptions

L_DicomGetSocketOptions

L_DicomGetDefaultSocketOptions

When a DICOM Network connection is no longer needed, it should be closed. The following functions may be used in closing the DICOM Network connection:

L_DicomFreeNet

L_DicomShutDown

L_DicomClose

CLOSECALLBACK

LEADTOOLS provides functions for sending DICOM messages. These include both low-level and high-level functions. The message sending functions can be divided into two groups.

For sending DICOM Connection messages, including messages used in establishing a DICOM Associate connection, use the following:

L_DicomSendAssociateRequest

L_DicomSendAssociateAccept

L_DicomSendAssociateReject

L_DicomSendData

L_DicomSendReleaseRequest

L_DicomSendReleaseResponse

L_DicomSendAbort

RECEIVEASSOCIATEREQUESTCALLBACK

RECEIVEASSOCIATEACCEPTCALLBACK

RECEIVEASSOCIATEREJECTCALLBACK

RECEIVERELEASEREQUESTCALLBACK

RECEIVERELEASERESPONSECALLBACK

RECEIVEABORTCALLBACK

SENDCALLBACK

For sending data messages, LEADTOOLS provides the following functions:

L_DicomSendCStoreRequest

L_DicomSendCStoreResponse

L_DicomSendCFindRequest

L_DicomSendCFindResponse

L_DicomSendCGetRequest

L_DicomSendCGetResponse

L_DicomSendCMoveRequest

L_DicomSendCMoveResponse

L_DicomSendCCancelRequest

L_DicomSendCEchoRequest

L_DicomSendCEchoResponse

L_DicomSendNReportRequest

L_DicomSendNReportResponse

L_DicomSendNGetRequest

L_DicomSendNGetResponse

L_DicomSendNSetRequest

L_DicomSendNSetResponse

L_DicomSendNActionRequest

L_DicomSendNActionResponse

L_DicomSendNCreateRequest

L_DicomSendNCreateResponse

L_DicomSendNDeleteRequest

L_DicomSendNDeleteResponse

RECEIVECSTOREREQUESTCALLBACK

RECEIVECSTORERESPONSECALLBACK

RECEIVECFINDREQUESTCALLBACK

RECEIVECFINDRESPONSECALLBACK

RECEIVECGETREQUESTCALLBACK

RECEIVECGETRESPONSECALLBACK

RECEIVECMOVEREQUESTCALLBACK

RECEIVECMOVERESPONSECALLBACK

RECEIVECCANCELREQUESTCALLBACK

RECEIVECECHOREQUESTCALLBACK

RECEIVECECHORESPONSECALLBACK

RECEIVENREPORTREQUESTCALLBACK

RECEIVENREPORTRESPONSECALLBACK

RECEIVENGETREQUESTCALLBACK

RECEIVENGETRESPONSECALLBACK

RECEIVENSETREQUESTCALLBACK

RECEIVENSETRESPONSECALLBACK

RECEIVENACTIONREQUESTCALLBACK

RECEIVENACTIONRESPONSECALLBACK

RECEIVENCREATEREQUESTCALLBACK

RECEIVENCREATERESPONSECALLBACK

RECEIVENDELETEREQUESTCALLBACK

RECEIVENDELETERESPONSECALLBACK

RECEIVEUNKNOWNCALLBACK

Finally, you can retrieve information about a DICOM Network connection using these functions:

L_DicomIsActivated

L_DicomIsAssociated

L_DicomIsConnected

L_DicomGetQueueSend

L_DicomGetServer

L_DicomGetClient

L_DicomGetClientCount

L_DicomGetHostInfo

L_DicomGetPeerInfo

L_DicomGetAssociate

For more information about the DICOM Associate connection, refer to Working with DICOM Associate Connections.