LDicomNet::OnReceiveAssociateRequest
#include "ltdic.h"
virtual L_VOID LDicomNet::OnReceiveAssociateRequest(pPDU)
LDicomAssociate *pPDU; |
/* a DICOM Association object */ |
Notifies a connection that an Associate Request message was received. This function is available in the Medical Suite Toolkit.
Parameter |
Description |
pPDU |
A DICOM Associate object. |
Returns
None.
Comments
A call to this function is generated on an SCP when an SCU calls LDicomNet::SendAssociateRequest. For more information on DICOM Associate connections, refer to Creating a DICOM Associate Connection.
To customize this function, you must derive a class from LDicomNet and override this function.
When the DICOM Association is no longer needed, it should be ended. For more information, refer to Closing a DICOM Associate Connection.
Required DLLs and Libraries
LTDIC For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application |
See Also
Functions: |
LDicomNet::SendAssociateReject, LDicomNet::SendAssociateAccept, LDicomNet::SendAssociateRequest, LDicomNet::OnReceiveAssociateAccept, LDicomNet::OnReceiveAssociateRequest |
Topics: |
|
|
|
|
|
|
|
|
Example
//LMyDicomNet is a class derived from LDicomNet
//In class LMyDicomNet, all events (virtual functions OnXXX()) have been
//overridden so that they can be processed. Each event displays a MessageBox
//identifying the event, the IP that generated the event, the IP that received the event, and
//any other relevant data.
//For the entire derived class, see (hyperlink)LMyDicomNet class
L_VOID LMyDicomNetExt::OnReceiveAssociateRequest(LDicomAssociate *pPDU) { CString strMsg; int i; L_UCHAR uId; L_UCHAR nResult; CString strAbstract; CString strTransfer; strMsg = TEXT("*** OnReceiveAssociateRequest ***\n"); //check the version, if not 1, reject it if (pPDU->GetVersion() != 1) { SendAssociateReject( PDU_REJECT_RESULT_PERMANENT, PDU_REJECT_SOURCE_USER, PDU_REJECT_REASON_UNKNOWN ); } else { //send associate accept class back LDicomAssociate DicomAssociate(FALSE); //copy all presentation objects from received //Reply that we only support the first Transfer Syntax from the received hPDU L_INT iPresentationCount = pPDU->GetPresentationCount(); L_TCHAR szTransfer[PDU_MAX_UID_SIZE+1]; L_TCHAR szAbstract[PDU_MAX_UID_SIZE+1]; for (i = 0; i<iPresentationCount; i++) { uId = pPDU->GetPresentation(i); pPDU->GetTransfer(uId, 0, szTransfer, PDU_MAX_UID_SIZE+1 ); strTransfer = szTransfer; nResult = PDU_ACCEPT_RESULT_SUCCESS; pPDU->GetAbstract(uId, szAbstract, PDU_MAX_UID_SIZE+1); strAbstract = szAbstract; DicomAssociate.AddPresentation( uId,nResult, (L_TCHAR *)(LPCTSTR)strAbstract); DicomAssociate.AddTransfer( uId, (L_TCHAR *)(LPCTSTR)strTransfer); } SendAssociateAccept(&DicomAssociate); } AfxMessageBox(strMsg); }