using DicomObjects;
using DicomObjects.DicomUIDs;
using DicomObjects.Enums;
using (var cn = new DicomAssociation())
{
// define your own list of DICOM transfer syntaxes to use in C-FIND request
var tsList = new string[] {TransferSyntaxes.ImplicitVRLittleEndian,
TransferSyntaxes.ExplicitVRLittleEndian };
cn.RequestedContexts.Add(SOPClasses.StudyRootQR_FIND, tsList);
cn.Open("localhost", 104, "callingAET", "calledAET");
// setting up the Query, this one is return all the studies
var queryDS = new DicomDataSet();
queryDS.Add(Keyword.PatientName, "");
queryDS.Add(Keyword.PatientID, "");
queryDS.Add(Keyword.PatientSex, "");
queryDS.Add(Keyword.PatientBirthDate, "");
queryDS.Add(Keyword.QueryRetrieveLevel, "STUDY");
cn.Find(QueryRoot.Study, queryDS);
// this holds the returned C-FIND results
DicomDataSetCollection results = cn.ReturnedIdentifiers;
// this holds the final C-FIND response, including the final status
DicomDataSet finalC_Find_Status = cn.LastCommand;
// the final C-FIND status, 0 means Success
int status = cn.LastStatus;
cn.Close();
}