Example for a query retrieve scu

2,349 views
Skip to first unread message

Mackey Kinard

unread,
Aug 3, 2012, 2:11:47 AM8/3/12
to fo-d...@googlegroups.com
What classes do I use to do a cfind and cmove or cget... Basically a query and retrieve scu example
Or at least a few lines on how to use the dicom request classes...

Please... Any help would be Awsome ...


The cstore scp and image rendering features are the some of the cleanest .net implementations I have seen... I've used dye medical connections dicomobject ocx and the .net version..". But I love the fellow dicom .net library better so far... Just don't see any kind of info on how to do other scu to request.

Colby Dillion

unread,
Aug 3, 2012, 11:08:59 AM8/3/12
to fo-d...@googlegroups.com
I'm currently working on a C-Find/C-Move SCU example and hope to have it up in the next few days. If you need something sooner than that you might look at Dicom.Network.DicomCFindRequest. I believe that the API should be clean enough to be self explanatory.

Colby

Mackey Kinard

unread,
Aug 14, 2012, 10:06:43 AM8/14/12
to fo-d...@googlegroups.com
Any word on any examples... Scu or scp

bulkmai...@gmail.com

unread,
Mar 28, 2013, 2:08:37 PM3/28/13
to fo-d...@googlegroups.com
Any update?  I didn't see any examples or documentation related to query/retrieve.

Keats Robison

unread,
May 29, 2013, 7:58:57 PM5/29/13
to fo-d...@googlegroups.com
Hi Mackey,

I am not a programmer or all that knowledgeable about dicom but maybe this will help.

No sure if this is what you are looking for but its a very rough Query/Retrieve SCP/SCU test program.

I am having trouble sending a "Pending" status response back to the server on my cStore SCU (Store Pat Button),
which works but is very slow sending images (datasets) to the SCP.

Again it very rough as it is a test program for learning the fo-dicom library.

Hope its helpful.

Keats


Query Retrieve Tool.zip

DeLe

unread,
Jun 1, 2013, 11:36:35 PM6/1/13
to fo-d...@googlegroups.com

Something like this... use send or beginsend.


CFIND -->

DicomCFindRequest request DicomCFindRequest.CreateStudyQuery(patientID, name, new DicomDateRange(startDate, endDate), accession, studyID, modality, studyUID);

request.OnResponseReceived = delegate(DicomCFindRequest req, DicomCFindResponse response)

{

    if (response.HasDataset)

    {

        Console.WriteLine("CFind response ({0}) {1} : Status={2}, TransferSyntax ({3}) {4}\n{5}",

            response.SOPClassUID.Name, response.SOPClassUID.UID, response.Status.Description, response.Command.InternalTransferSyntax,

            response.Command.InternalTransferSyntax.UID.UID, Static.DumpDicom(response.Dataset));

    }

};


DicomClient client = new DicomClient();

client.AddRequest(request);

client.Send(destination.HostName, destination.Port, destination.IsTLS, callingAE, destination.CalledAE);

<---


CMove -->

DicomCMoveRequest request = new DicomCMoveRequest(destinationAE, studyUID);

request.OnResponseReceived = delegate(DicomCMoveRequest req, DicomCMoveResponse response)

{

    Console.WriteLine("CMove response ({0}) {1} : Status={2}, TransferSyntax ({3}) {4}",

    response.SOPClassUID.Name, response.SOPClassUID.UID, response.Status.Description,

    response.Command.InternalTransferSyntax, response.Command.InternalTransferSyntax.UID.UID);

};

DicomClient client = new DicomClient();

client.AddRequest(request);

client.Send(destination.HostName, destination.Port, destination.IsTLS, callingAE, destination.CalledAE);
<---

Keats Robison

unread,
Jun 3, 2013, 4:30:25 PM6/3/13
to fo-d...@googlegroups.com
Thanks, I'll give this a try.

Keats
Message has been deleted

Alejandro Acosta

unread,
Oct 12, 2016, 2:01:53 PM10/12/16
to Fellow Oak DICOM
Hi Keats Robison, you exmaple is good, but i would like add range date for study, some way of make this, regards.
Reply all
Reply to author
Forward
0 new messages