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 object.

When creating either an SCU or an SCP application, a DICOM Network connection (a DICOM network object) must be created. In addition, for every connection request accepted by an SCP, the SCP must create a DICOM Network object 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:

LDicomNet::LDicomNet

LDicomNet::StartUp

LDicomNet::Initialize

LDicomNet::Connect

LDicomNet::Listen

LDicomNet::Accept

LDicomNet::OnAccept

LDicomNet::OnConnect

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

LDicomNet::SetSocketOptions

LDicomNet::GetSocketOptions

LDicomNet::GetDefaultSocketOptions

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:

LDicomNet::~LDicomNet

LDicomNet::ShutDown

LDicomNet::Close

LDicomNet::OnClose

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:

LDicomNet::SendAssociateRequest

LDicomNet::SendAssociateAccept

LDicomNet::SendAssociateReject

LDicomNet::SendData

LDicomNet::SendReleaseRequest

LDicomNet::SendReleaseResponse

LDicomNet::SendAbort

LDicomNet::OnReceiveAssociateRequest

LDicomNet::OnReceiveAssociateAccept

LDicomNet::OnReceiveAssociateReject

LDicomNet::OnReceiveReleaseRequest

LDicomNet::OnReceiveReleaseResponse

LDicomNet::OnReceiveAbort

LDicomNet::OnSend

For sending data messages, LEADTOOLS provides the following functions:

LDicomNet::SendCStoreRequest

LDicomNet::SendCStoreResponse

LDicomNet::SendCFindRequest

LDicomNet::SendCFindResponse

LDicomNet::SendCGetRequest

LDicomNet::SendCGetResponse

LDicomNet::SendCMoveRequest

LDicomNet::SendCMoveResponse

LDicomNet::SendCCancelRequest

LDicomNet::SendCEchoRequest

LDicomNet::SendCEchoResponse

LDicomNet::SendNReportRequest

LDicomNet::SendNReportResponse

LDicomNet::SendNGetRequest

LDicomNet::SendNGetResponse

LDicomNet::SendNSetRequest

LDicomNet::SendNSetResponse

LDicomNet::SendNActionRequest

LDicomNet::SendNActionResponse

LDicomNet::SendNCreateRequest

LDicomNet::SendNCreateResponse

LDicomNet::SendNDeleteRequest

LDicomNet::SendNDeleteResponse

LDicomNet::OnReceiveCStoreRequest

LDicomNet::OnReceiveCStoreResponse

LDicomNet::OnReceiveCFindRequest

LDicomNet::OnReceiveCFindResponse

LDicomNet::OnReceiveCGetRequest

LDicomNet::OnReceiveCGetResponse

LDicomNet::OnReceiveCMoveRequest

LDicomNet::OnReceiveCMoveResponse

LDicomNet::OnReceiveCCancelRequest

LDicomNet::OnReceiveCEchoRequest

LDicomNet::OnReceiveCEchoResponse

LDicomNet::OnReceiveNReportRequest

LDicomNet::OnReceiveNReportResponse

LDicomNet::OnReceiveNGetRequest

LDicomNet::OnReceiveNGetResponse

LDicomNet::OnReceiveNSetRequest

LDicomNet::OnReceiveNSetResponse

LDicomNet::OnReceiveNActionRequest

LDicomNet::OnReceiveNActionResponse

LDicomNet::OnReceiveNCreateRequest

LDicomNet::OnReceiveNCreateResponse

LDicomNet::OnReceiveNDeleteRequest

LDicomNet::OnReceiveNDeleteResponse

LDicomNet::OnReceiveUnknown

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

LDicomNet::IsActivated

LDicomNet::IsAssociated

LDicomNet::IsConnected

LDicomNet::GetQueueSend

LDicomNet::GetServer

LDicomNet::GetClient

LDicomNet::GetClientCount

LDicomNet::GetHostInfo

LDicomNet::GetPeerInfo

LDicomNet::GetAssociate

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