C-MOVE list matching


the DICOM standard allows matching against a list of UIDs in Q/R requests.


E.g. to retrieve two specific studies, one could perform a study root query and put something like “\” in the data set that is passed to C-MOVE.

This works with dcmqrscp for both C-GET and C-MOVE, but does not seem to work with Orthanc with C-MOVE.

Is there an issue open for this?


Hi Miklos,

There’s no issue yet for that topic.

If you file the issue please provide all steps to reproduce it including i.e: 2 anonymized DCM files from 2 studies and the exact movescu command to trigger the problem; that would help us a lot !

Best regards,


Hi Alvin,

thanks for your response. I am answering to the list, I hope that’s fine.

That’s interesting. Does this send only one C-MOVE request or two?

I was using pynetdicom to send the C-MOVE request with the StudyInstanceUID-s concatenated with a backslash separator.

identifier = Dataset()
identifier.QueryRetrieveLevel = 'STUDY'
identifier.StudyInstanceUID = self.first_patient_first_study_uid + '\\' + self.first_patient_second_study_uid

results = self.c_get(identifier, 'S')

And the self.c_get() function sends the C-GET with this identifier data set. It is then turned to a C-MOVE with the same parameters.

I check movescu in the way you used it but I suspect, it sends two requests. I will let you know.


Hi Alain,

sure, happy to do that.

I already attempted to do this on this page:


but I don’t seem to have the right to do that. Shall I make the report to this list?


You probably need to create a bitbucket account. But, you can include the report here in the list and I’ll file the issue.

movescu suggested by Alvin might indeed issue two commands. However, you might probably also use the “A\B” syntax with movescu.

My bad, I was looking for a login button everywhere but the bottom left corner. I make the report there.

Hi Miklos,

As per the movescu help document from dcmtk, if more than one query parameters are provided, movescu will send multiple C-MOVE request to the SCP.
Here is a sample movescu used for testing (for the group):

movescu -v -d localOrthanchost 4242 -k StudyInstanceUID=“” -k StudyInstanceUID=“” -aet OSIRIX +P 10 -k QueryRetrieveLevel=“STUDY”


Thank you!

With “list of UID matching” this should also work:

movescu -v -d localOrthanchost 4242 -k StudyInstanceUID=“\” -aet OSIRIX +P 10 -k QueryRetrieveLevel=“STUDY”

At least an equivalent code worked with a pynetdicom client and dcmqrscp.

I will raise an issue on bitbucket and provide a test.


Issue #154 raised.