Diagram of an SCU-SCP Set-Up

The diagram given below shows a simple example of an SCU-SCP connection and a series of function calls used to transfer messages and data.

 

SCU

 

SCP

 

 

 

L_DicomCreateNet

Create a DICOM Network handle.

L_DicomCreateNet

L_DicomStartUp

Initialize the DICOM Network handle.

L_DicomStartUp

L_DicomSetCallback

Set the callbacks to be used.

L_DicomSetCallback

 

The SCP listens for incoming connection requests.

L_DicomListen

L_DicomConnect

-------------------------------------------------->
The SCU calls this function to connect to an SCP. This generates a call to this callback function on the SCP

ACCEPTCALLBACK

CONNECTCALLBACK

<--------------------------------------------------
The SCP calls L_DicomCreateNet and L_DicomSetCallback for each connection it accepts. This provided the SCP memory to store information about this specific connection. L_DicomAccept is called to accept the connection. This generates a call to this callback function on the SCU.

L_DicomCreateNet
L_DicomSetCallback

L_DicomAccept

 

DICOM Network Connection established

 

L_DicomSendAssociateRequest

-------------------------------------------------->
The SCU calls this function to request a DICOM Associate connection. This generates calls to these callback functions on the SCP.

RECEIVECALLBACK
RECEIVEASSOCIATEREQUESTCALLBACK

RECEIVECALLBACK
RECEIVEASSOCIATEACCEPTCALLBACK

or
RECEIVECALLBACK

RECEIVEASSOCIATEREJECTCALLBACK

<--------------------------------------------------
The SCP calls L_DicomSendAssociateAccept to accept the DICOM Associate connection. This generates calls to RECEIVECALLBACK and RECEIVEASSOCIATEACCEPTCALLBACK on the SCU. L_DicomSendAssociateReject is sent to reject the DICOM Associate connection. This generates calls to RECEIVECALLBACK and RECEIVEASSOCIATEREJECTCALLBACK on the SCU.

L_DicomSendAssociateAccept
or
L_DicomSendAssociateReject

 

DICOM Associate Connection established

 

L_DicomSendCStoreRequest

-------------------------------------------------->
The SCU calls this function to request the storage of data. This generates calls to these callback functions on the SCP.

RECEIVECALLBACK
RECEIVEDATACALLBACK

RECEIVECSTOREREQUESTCALLBACK

RECEIVECALLBACK
RECEIVEDATACALLBACK

RECEIVECSTORERESPONSECALLBACK

<--------------------------------------------------
The SCP calls this function to respond to the storage request. This generates calls to these callback functions on the SCU.

L_DicomSendCStoreResponse

L_DicomSendReleaseRequest
or
L_DicomSendAbort

-------------------------------------------------->
The SCP calls L_DicomSendReleaseRequest to request a release from the DICOM Associate connection. This generates calls to RECEIVECALLBACK and RECEIVERELEASEREQUESTCALLBACK on the SCP. This is the preferred method of closing a connection. L_DicomSendAbort can also be sent to close a connection. This generates calls to RECEIVECALLBACK and RECEIVEABORTCALLBACK on the SCP.

RECEIVECALLBACK
RECEIVERELEASEREQUESTCALLBACK

or
RECEIVECALLBACK

RECEIVEABORTCALLBACK

RECEIVECALLBACK
RECEIVERELEASERESPONSECALLBACK

<--------------------------------------------------
The SCP calls this function to respond to the release request. This generates calls to the following callback functions on the SCU.

L_DicomSendReleaseResponse

L_DicomClose

--------------------------------------------------->
The SCU calls this function to close the DICOM Associate connection. This generates a call to this callback function on the SCP.

CLOSECALLBACK