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, accessed through the hNet property, in which to maintain information about that specific SCU-SCP connection.

LEADTOOLS provides a number of properties, methods, and events for creating and initializing a DICOM Network and for transferring DICOM data and messages.

Before establishing a DICOM Network connection, specify the required security mode using the NetworkSecurityMode property.

Security can be further configured when working with TLS security by using the following methods, properties, and event:

UseSSLOptions property

SetClientCertificateTLS method

SetServerCertificateTLS method

SSLCreateFlags property

SSLMethodType property

SSLVerifyMode property

SSLCAFile property

SSLVerifyDepth property

SSLSuccess property

SSLOptions property

SSLPrivateKeyPassword property

SSLPrivateKeyPasswordEvent event

For creating a DICOM Network connection, use the following:

StartUp method

Connect method

Listen method

Accept method

NetAccept event

NetConnect event

NetworkTempPath property

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:

ShutDown method

Close method

NetClose event

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

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

SendAssociateRequest method

SendAssociateAccept method

SendAssociateReject method

SendData method

SendReleaseRequest method

SendReleaseResponse method

SendAbort method

NetReceiveAssociateRequest event

NetReceiveAssociateAccept event

NetReceiveAssociateReject event

NetReceiveReleaseRequest event

NetReceiveReleaseResponse event

NetReceiveAbort event

NetSend event

For sending data messages, LEADTOOLS provides the following:

SendCStoreRequest method

SendCStoreResponse method

SendCFindRequest method

SendCFindResponse method

SendCGetRequest method

SendCGetResponse method

SendCMoveRequest method

SendCMoveResponse method

SendCCancelRequest method

SendCEchoRequest method

SendCEchoResponse method

SendNReportRequest method

SendNReportResponse method

SendNGetRequest method

SendNGetResponse method

SendNSetRequest method

SendNSetResponse method

SendNActionRequest method

SendNActionResponse method

SendNCreateRequest method

SendNCreateResponse method

SendNDeleteRequest method

SendNDeleteResponse method

NetReceiveCStoreRequest event

NetReceiveCStoreResponse event

NetReceiveCFindRequest event

NetReceiveCFindResponse event

NetReceiveCGetRequest event

NetReceiveCGetResponse event

NetReceiveCMoveRequest event

NetReceiveCMoveResponse event

NetReceiveCCancelRequest event

NetReceiveCEchoRequest event

NetReceiveCEchoResponse event

NetReceiveData event

NetReceiveNReportRequest event

NetReceiveNReportResponse event

NetReceiveNGetrequest event

NetReceiveNGetResponse event

NetReceiveNSetRequest event

NetReceiveNSetResponse event

NetReceiveNActionRequest event

NetReceiveNActionResponse event

NetReceiveNCreateRequest event

NetReceiveNCreateResponse event

NetReceiveNDeleteRequest event

NetReceiveNDeleteResponse event

NetReceiveUnknown event

RequestAttributeCount property

RequestAttributes property

For detecting and controlling events, LEADTOOLS provides the following: EnableMethodErrors property, EnableProgressEvent property, ProgressStatus event.

Finally, you can retrieve information about a DICOM Network connection using the following:

IsActivated method

IsAssociated method

IsConnected method

GetSendQueueSize method

GetServer method

GetClient method

GetClientCount method

GetHostAddress method

GetHostPort method

GetPeerAddress method

GetPeerPort method

GetAssociate method

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