Download DICOM images via DICOM protocol

Dear all,

Firstly, thanks to the developers of Orthanc for an excellent software package. I would like to know how to download DICOM images via the DICOM protocol to my local machine. I realise there is a very nice REST interface to Orthanc but I would like my approach to generalise to other DICOM servers if possible. Here is what I have tried so far (I am using the GDCM tools http://gdcm.sourceforge.net/html/gdcmscu.html):

First, I check that I can query the server using C-Find (the server is version 1.2.0 running on my own Linux machine):

findscu -aet NAME -S -k QueryRetrieveLevel=SERIES -k SeriesInstanceUID=“itnvwca4ji-4ch_228” localhost 4242

I: ---------------------------
I: Find Response: 1 (Pending)
I:
I: # Dicom-Data-Set
I: # Used TransferSyntax: Little Endian Explicit
I: (0008,0005) CS [ISO_IR 100] # 10, 1 SpecificCharacterSet
I: (0008,0052) CS [SERIES] # 6, 1 QueryRetrieveLevel
I: (0020,000e) UI [itnvwca4ji-4ch_228] # 18, 1 SeriesInstanceUID
I:

which works well. Then I use the C-Move query with the same parameters:

movescu -aet NAME -S -k QueryRetrieveLevel=SERIES -k SeriesInstanceUID=“itnvwca4ji-4ch_228” localhost 4242

and here is the output from Orthanc:

I0106 11:00:12.178144 CommandDispatcher.cpp:490] Association Received from AET NAME on IP 127.0.0.1
I0106 11:00:12.178990 CommandDispatcher.cpp:688] Association Acknowledged (Max Send PDV: 16372)
W0106 11:00:12.179856 OrthancMoveRequestHandler.cpp:178] Move-SCU request received for AET “NAME”
I0106 11:00:12.179956 OrthancMoveRequestHandler.cpp:186] (0008,0052) QueryRetrieveLevel = SERIES
I0106 11:00:12.180045 OrthancMoveRequestHandler.cpp:186] (0020,000e) SeriesInstanceUID = itnvwca4ji-4ch_228
I0106 11:00:12.180772 OrthancMoveRequestHandler.cpp:70] Sending resource fac0a739-d007ee54-5e71e27c-b336c319-2578fca0 to modality “NAME”
I0106 11:00:12.183525 FilesystemStorage.cpp:154] Reading attachment “355cb2d3-d600-45a9-a6be-9695c3041b2b” of “DICOM” content type
I0106 11:00:12.183890 ReusableDicomUserConnection.cpp:57] Reusing the previous SCU connection
E0106 11:00:12.185579 MoveScp.cpp:221] IMoveRequestHandler Failed: DicomUserConnection: No acceptable presentation context for modality
I0106 11:00:12.186071 CommandDispatcher.cpp:891] DUL Peer Requested Release
I0106 11:00:12.186133 CommandDispatcher.cpp:898] Association Release
I0106 11:00:17.185951 ReusableDicomUserConnection.cpp:94] Closing the global SCU connection after timeout

If I understood correctly, it fails to establish a connection to the client? I read the information on C-Move here http://book.orthanc-server.com/dicom-guide.html#dicom-move and I am not sure how I can make the “target” my own machine, or if this is even possible without another DICOM server as the target. All I would like to do is download all the DICOM images from the given series. Any help is greatly appreciated.

Thank you in advance,

Charanpal

Hello,

Firstly, thanks to the developers of Orthanc for an excellent software package. I would like to know how to download DICOM images via the DICOM protocol to my local machine. I realise there is a very nice REST interface to Orthanc but I would like my approach to generalise to other DICOM servers if possible. Here is what I have tried so far (I am using the GDCM tools http://gdcm.sourceforge.net/html/gdcmscu.html):

Yes, the Orthanc server can send its data to other modalities through the DICOM protocol (aka. query/retrieve)

[…] here is the output from Orthanc: […]
E0106 11:00:12.185579 MoveScp.cpp:221] IMoveRequestHandler Failed: DicomUserConnection: No acceptable presentation context for modality

This error indicates that the receiving DICOM modality (is it “storescp” from DCMTK?) is not able to receive the transfer syntax of the DICOM file stored by Orthanc.

This is for instance the case if the DICOM file is JPEG- or JPEG2k-encoded, but “storescp” is not run with the “+xa” command-line option to accept all the supported transfer syntaxes.

If I understood correctly, it fails to establish a connection to the client?

According to the log, no, the connection was properly established. However, this connection was not negotiated to accept the transfer syntax of your DICOM files.

HTH,
Sébastien-

Thanks, Sébastien. I didn’t realise that the receiving DICOM modality could be storescp (although I just noticed this was written as a comment in Configuration.json).

For anyone with a similar problem, here is how I managed to download the files:

  1. First run storescp and get it to listen to a port (the same one as specified in DicomModalities in the Configuration.json file)

storescp 8888

  1. Then use the movescu command:

movescu -aet NAME -S -k QueryRetrieveLevel=SERIES -k SeriesInstanceUID=“itnvwca4ji-
4ch_228” localhost 4242

All the files are written to the current working directory.

Best regards,

Charanpal