SendCGetRequest Example for C#
//LEADDICOMNet1 is a predefined LEADDicomNet object
//LEADDICOM1 is a DICOM Dataset defined outside this method
//This example uses the predefined variable “gszGetFile” of type “string”
private void TestSendCGetRequest ( )
{
const string UID_SC_IMAGE_STORAGE = "1.2.840.10008.5.1.4.1.1.7";
// Secondary Capture Image Storage
short nRet = 0;
string szClassUID = null;
short nVR = 0;
int hPDU = 0;
short nID = 0;
//send a get request to the server
//gszGetFile will be used when this AE receives the NetReceiveCStoreRequest
//associated with this CGetRequest to save the data set
gszGetFile = "d:\\temp\\get_request.dic" ;
szClassUID = UID_SC_IMAGE_STORAGE ;
//create the data set that encodes the identifier to be matched
LEADDICOM1.InitDS((int)LTDICLib.DicomClassConstants.DICOM_CLASS_UNKNOWN,
0);
//add the required elements
LEADDICOM1.FindTag((int)LTDICLib.DicomDataSetTagConstants1.TAG_QUERY_RETRIEVE_LEVEL);
nVR = LEADDICOM1.get_CurrentTag().VR;
LEADDICOM1.InsertElement(false,
(int)LTDICLib.DicomDataSetTagConstants1.TAG_QUERY_RETRIEVE_LEVEL, nVR,
false, 0);
LEADDICOM1.StringValueCount
= 1;
LEADDICOM1.set_StringValues(0,
"PATIENT");
LEADDICOM1.SetStringValue(1);
LEADDICOM1.FindTag((int)LTDICLib.DicomDataSetTagConstants2.TAG_PATIENT_NAME);
LEADDICOM1.InsertElement(false,
(int)LTDICLib.DicomDataSetTagConstants2.TAG_PATIENT_NAME, LEADDICOM1.get_CurrentTag().VR,
false, 0);
LEADDICOM1.StringValueCount
= 1;
LEADDICOM1.set_StringValues(0,
"*");
//get all patients LEADDICOM1.SetStringValue(1);
//add the optional fields that we want returned
LEADDICOM1.FindTag((int)LTDICLib.DicomDataSetTagConstants2.TAG_PATIENT_ID);
LEADDICOM1.InsertElement(false,
(int)LTDICLib.DicomDataSetTagConstants2.TAG_PATIENT_ID, LEADDICOM1.get_CurrentTag().VR,
false, 0);
LEADDICOM1.FindTag((int)LTDICLib.DicomDataSetTagConstants2.TAG_PATIENT_BIRTH_DATE);
nVR = LEADDICOM1.get_CurrentTag().VR;
LEADDICOM1.InsertElement(false,
(int)LTDICLib.DicomDataSetTagConstants2.TAG_PATIENT_BIRTH_DATE, nVR, false,
0);
LEADDICOM1.FindTag((int)LTDICLib.DicomDataSetTagConstants2.TAG_PATIENT_SEX);
nVR = LEADDICOM1.get_CurrentTag().VR;
LEADDICOM1.InsertElement(false,
(int)LTDICLib.DicomDataSetTagConstants2.TAG_PATIENT_SEX, nVR, false, 0);
LEADDICOM1.FindTag((int)LTDICLib.DicomDataSetTagConstants5.TAG_NUMBER_OF_PATIENT_RELATED_INSTANCES);
nVR = LEADDICOM1.get_CurrentTag().VR;
LEADDICOM1.InsertElement(false,
(int)LTDICLib.DicomDataSetTagConstants5.TAG_NUMBER_OF_PATIENT_RELATED_INSTANCES,
nVR, false, 0);
hPDU = LEADDICOMNet1.GetAssociate(LEADDICOMNet1.hNet);
//now, send a request
nID = LEADDICOMNet1.FindPresentationAbstract(hPDU,
szClassUID);
if (nID == 0)
{
nRet = LEADDICOM1.FindUID(szClassUID);
if (nRet == 0)
MessageBox.Show("Abstract Syntax, " + LEADDICOM1.get_CurrentUID().Name
+ ", Not Supported by Association!");
else
MessageBox.Show("Abstract Syntax, " + szClassUID + ", Not
Supported by Association!");
return;
}
LEADDICOMNet1.SendCGetRequest(LEADDICOMNet1.hNet,
nID, 999, szClassUID, (short)LTDICLib.DicomCommandSetMessagePriorities.COMMAND_PRIORITY_MEDIUM,
LEADDICOM1.hDicomDS);
//we now must wait for the response and for the C-STORE sub-operations
}