LDicomNet::SendNGetRequest

#include "ltdic.h"

L_INT LDicomNet::SendNGetRequest(nPresentationID, nMessageID, pszClass, pszInstance, pnAttribute, nCount)

Sends an N-GET-REQ message to a peer member of a connection. This function is available in the Medical Imaging Suite Toolkit.

Parameters

L_UCHAR nPresentationID

Presentation ID. The presentation ID provides information about both the class type of the data and the transfer syntax to use when transferring the data.

L_UINT16 nMessageID

Message ID. Each message sent by a member of a connection should have a unique ID. Since a member of a connection may send several messages, this ID allows that member to identify when a specific request has been completed.

L_TCHAR * pszClass

Class affected by the request. This will be an SOP Class or an SOP MetaClass.

L_TCHAR * pszInstance

The instance of the class. A server may, for example, have three instances of the Nuclear Medicine Class. This value identifies the data with a specific instance.

L_UINT32 *pnAttribute

An array of the attributes to get. The attributes must be specified using the Data Element Tags. For a list of available Data Element Tags, refer to Data Element Tag Constants.

L_UINT16 nCount

Number of attributes being requested.

Returns

Value Meaning
0 SUCCESS
>0 An error occurred. Refer to Return Codes.

Comments

Calling this function generates a call to LDicomNet::OnReceiveNGetRequest on the SCP. The SCP should respond by calling LDicomNet::SendNGetResponse which will generate a call to LDicomNet::OnReceiveNGetResponse.

Required DLLs and Libraries

Platforms

Win32, x64

See Also

Functions

Topics

Example

This example sends an N-Get Request to a server
In this example:

  1. LMyDicomNet is a class derived from LDicomNet
  2. LMyDicomNet has the following member variables:
    m_nClientOrServer: can be (STATUS_NONE, STATUS_SERVER, STATUS_CLIENT)
    identifies the LMyDicomNet object as a server or a client
    m_nDataCommand: can be (COMMAND_C_MOVE,COMMAND_C_GET)
    set so the server knows how a C-Store Response was generated
  3. m_pDicomNet points to a valid LMyDicomNet object
    LMyDicomNet *m_pDicomNet

  4. A connection exists between client and server

  5. An association exists between the client and server
    L_INT LDicomNet__SendNGetRequestExample(LMyDicomNet *m_pDicomNet) 
    { 
       L_INT nRet; 
       CString strMsg = TEXT("N-Get\n"); 
        
       //Get the associate object 
       LDicomAssociate *pDicomAssociate = m_pDicomNet->GetAssociate(); 
        
       //Choose an SOP Class to find 
       CString strClassUID = UID_SC_IMAGE_STORAGE; 
        
       //Is class supported in the assocation? 
       L_UCHAR nPresentationID = pDicomAssociate->FindAbstract((L_TCHAR *)(LPCTSTR)strClassUID); 
        
       //nPresentationID must be odd--0 indicates failure 
       if (nPresentationID==0) 
       { 
          CString strTmp; 
          strTmp.Format(TEXT("Abstract Syntax[%s] Not Included in the Association"), strClassUID); 
          strMsg = strMsg + strTmp; 
       } 
       else //success 
       {       
          //Create a list of the identifiers that you wish to get from the server 
          CString  strGetFile = MAKE_IMAGE_PATH(TEXT("IMAGE1.dcm")); 
          CString strInstanceUID = TEXT("1.1.1.1"); 
           
          L_UINT16 uUniqueID = 99; 
          L_UINT32 Attributes[] = {  TAG_PATIENT_NAME,  
                                     TAG_PATIENT_ID,  
                                     TAG_PATIENT_SEX, 
                                     TAG_NUMBER_OF_STUDY_RELATED_INSTANCES }; 
           
          L_UINT16 uNumAttributes = sizeof(Attributes) / sizeof(L_UINT32); 
     
          //global variable to count results 
          m_pDicomNet->m_FileCount = 0; 
          nRet =m_pDicomNet->SendNGetRequest( nPresentationID,  
                                        uUniqueID,  
                                        (L_TCHAR *)(LPCTSTR)strClassUID,  
                                        (L_TCHAR *)(LPCTSTR)strInstanceUID,   
                                        Attributes,  
                                        uNumAttributes); 
          if(nRet > 0) 
             return nRet; 
           
          strMsg += TEXT("SendNGetRequest\n"); 
       } 
       AfxMessageBox(strMsg); 
     
       return DICOM_SUCCESS; 
    } 
Help Version 21.0.2021.4.7
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS DICOM C++ Class Library Help