Implementing DICOM Composite Instance Retrieve Without Bulk Data

DICOM Composite Instance Retrieve Without Bulk Data is supported by DicomObjects and it's not difficult to implment.

Client Side:

The following code demonstrates how to retrieve individual instances without bulk data:

            DicomAssociation cn = new DicomAssociation ();
            cn.RequestedContexts.Add("1.2.840.10008.5.1.4.1.2.5.3"); // CompositeInstanceRootRetrieveWithoutBulkData_GET
            cn.RequestedContexts.Add("1.2.840.10008.5.1.4.1.1.7");    // SOP Class UID of the instance we are getting

            cn.Open("dicomserver.co.uk", 104, "client", "server");
            
            DicomDataSet ds = new DicomDataSet ();
            ds.Add(8, 0x52, "IMAGE");
            ds.PatientID = "2011";
            ds.StudyUID = "1.2.276.0.7230010.3.1.2.669896852.2528.1325171276.917";
            ds.SeriesUID = "1.2.276.0.7230010.3.1.3.669896852.2528.1325171276.916";
            ds.InstanceUID = "1.2.276.0.7230010.3.1.4.669896852.2528.1325171276.918";

            cn.Get(QueryRoot.CompositeInstance, ds, true);
            cn.Close();

The same can be achieved using DicomQuery object, make sure the NoBulkData property is set to true:

            DicomQuery q = new DicomQuery();
            q.Node = "DicomServer.co.uk";
            q.Port = 104;
            q.CallingAE = "cilent";
            q.CalledAE = "server";

            q.Root = QueryRoot.CompositeInstance;
            q.Level = QueryLevel.INSTANCE;

            DicomDataSet ds = q.RetrieveDataSet();

            ds.Add(8, 0x52, "IMAGE");
            ds.PatientID = "2011";
            ds.StudyUID = "1.2.276.0.7230010.3.1.2.669896852.2528.1325171276.917";
            ds.SeriesUID = "1.2.276.0.7230010.3.1.3.669896852.2528.1325171276.916";
            ds.InstanceUID = "1.2.276.0.7230010.3.1.4.669896852.2528.1325171276.918";

            q.NoBulkData = true;   // This tells DicomObjects to perform "No Bulk Data C-Get"

            DicomDataSetCollection results = q.Get(ds);

Server Side:

There is no extra work required on the server side (as DicomObjects supports it intrinsically), as long as the Abstract Syntax (1.2.840.10008.5.1.4.1.2.5.3) for Composite Instance Retrieve Without Bulk Data is negotiated between SCU and SCP.

 

Relevance: