How to perform a C-MOVE-CANCEL?

762 views
Skip to first unread message

Zsolt Zimmermann

unread,
Oct 19, 2012, 12:13:33 PM10/19/12
to fo-d...@googlegroups.com
Hi!

Is there a way to execute a C-MOVE-CANCEL request during C-MOVE operations to the SCP? If yes, how?
Thank you.

Cina

Colby Dillion

unread,
Oct 19, 2012, 3:37:12 PM10/19/12
to fo-d...@googlegroups.com
The library does not currently support C-Cancel requests. This has been looked at in the past, but until we come up with a clean and easy way to implement and use this functionality it will not be implemented in the library.

Colby

Zsolt Zimmermann

unread,
Oct 20, 2012, 2:10:44 AM10/20/12
to fo-d...@googlegroups.com
Hi!

Thank you for the answer. The reason I asked this is that I have very large XA angiographic sequences usually 10 or more in a study which takes up 100-200 MB in whole or more. If user wants to cancel the transfer in action I would like to use a clean solution of your library. Is it a reasonable workaround to shut down the C-STORE SCP class to stop the transfer and wait till the timeout elapsed to bring back it online?
Thank you.

Mahesh Dubey

unread,
Oct 20, 2012, 2:54:03 AM10/20/12
to fo-d...@googlegroups.com
I had not heard anyone using C-Cancel to cancel the C-Store operation. C-Cancel  mostly used in query retrieve, to cancel the Find and Move. But also it is no where written that you cannot use it with other  services. 
As a quick solution you can issue abort command to abort the association with that particular client at any instance.

Thanks And Regards
Mahesh Dubey

Zsolt Zimmermann

unread,
Oct 20, 2012, 3:27:57 AM10/20/12
to fo-d...@googlegroups.com
Maybe I didn't phrase my question correctly as I was talking about a C-MOVE operation. On the client part (SCU) it is a C-STORE suboperation but the MOVE is issued by the SCU and performed by the SCP. To cancel the operation according to standard I need to issue a C-MOVE-CANCEL to the SCP. Never mind I solved this with your suggestion to create a AAbort class and send it to the SCP with DicomService.SendAbort method. This is great!

According to the DICOM standard:

C.4.2.2.1 Baseline Behavior of SCU
An SCU conveys the following semantics with a C-MOVE request:

The SCU may cancel the C-MOVE service by issuing a C-MOVE-CANCEL request at any time during the processing of the C-MOVE. The SCU shall interpret a C-MOVE response with a status of Canceled to indicate the transfer was canceled. The C-MOVE response with a status of Canceled shall contain the number of Completed, Failed, and Warning C-STORE sub-operations. If present, the Remaining sub-operations count shall contain the number of C-STORE sub-operations which were not initiated due to the C-MOVE-CANCEL request.

Hagay Lupesko

unread,
Apr 18, 2013, 6:42:47 PM4/18/13
to fo-d...@googlegroups.com
Hi Zsolt,

I have encountered a similar problem to what you described...
Can you provide more details as to how you resolved the issue, and specifically how did you setup and sent the abort?

Thanks!
Hagay

Zsolt Zimmermann

unread,
Apr 22, 2013, 5:00:04 AM4/22/13
to fo-d...@googlegroups.com
Hi.

I did this inside my SCP class, AbortButtonClick is connected to a form button event in my SCP constructor.

public void SendMoveAbort(DicomAbortSource Source, DicomAbortReason Reason)
 
{ if (Associated) { SendAbort(Source, Reason);
                     
Associated = false;
                   
}
 
}

private void AbortButtonClick(object sender, EventArgs e)
 
{ SendMoveAbort(DicomAbortSource.ServiceUser, DicomAbortReason.NotSpecified);
 
}

Reply all
Reply to author
Forward
0 new messages