[BitBucket user: Miklós Espák] [BitBucket date: 2019-10-18.08:18:16] The DICOM standard allows matching against a list of UIDs in Q/R requests. http://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_C.2.2.2.2.html E.g. to retrieve two specific studies, one could perform a study root query and put something like "<first study instance UID>\\\\<second study instance UID>" 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. With other words, the VM \(value multiplicity\) of the attributes in the identifier data set in the Q/R operations can be higher than 1. I attached two DICOM files to demonstrate the issue. They only contain the ID-s. To store them: ``` storescu localhost 4242 d1.dcm storescu localhost 4242 d2.dcm ``` I can retrieve the series one after the other: ``` movescu -v -aet TEST +P 2000 localhost 4242 --study -k QueryRetrieveLevel="SERIES" -k StudyInstanceUID="1.2.826.0.1.3680043.8.498.35214236271657363033644818354280454731" -k SeriesInstanceUID="1.2.826.0.1.3680043.8.498.12243321927795467590791662266352305113" movescu -v -aet TEST +P 2000 localhost 4242 --study -k QueryRetrieveLevel="SERIES" -k StudyInstanceUID="1.2.826.0.1.3680043.8.498.35214236271657363033644818354280454731" -k SeriesInstanceUID="1.2.826.0.1.3680043.8.498.43769499931624584079690260699536473555" ``` But I cannot retrieve them in one go passing ``` movescu -v -aet TEST +P 2000 localhost 4242 --study -k QueryRetrieveLevel="SERIES" -k StudyInstanceUID="1.2.826.0.1.3680043.8.498.35214236271657363033644818354280454731" -k SeriesInstanceUID="1.2.826.0.1.3680043.8.498.12243321927795467590791662266352305113\\1.2.826.0.1.3680043.8.498.43769499931624584079690260699536473555" ``` Note that I can as well combine the two C-MOVE operations into a single movescu command, as it has been pointed it out on the mailing list. ``` movescu -v -aet TEST +P 2000 localhost 4242 --study -k QueryRetrieveLevel="SERIES" -k StudyInstanceUID="1.2.826.0.1.3680043.8.498.35214236271657363033644818354280454731" -k SeriesInstanceUID="1.2.826.0.1.3680043.8.498.12243321927795467590791662266352305113" -k StudyInstanceUID="1.2.826.0.1.3680043.8.498.43769499931624584079690260699536473555" ``` However, this sends two C-MOVE operations, not a single one. This issue focuses on C-MOVE, but matching against list of UID-s are relevant for other Q/R operations as well, so I would also check if this is supported by C-FIND now and if work has started about C-GET support then there, too.
Created attachment 25 [details] d2.dcm
Created attachment 26 [details] d1.dcm
[BitBucket user: Sébastien Jodogne] [BitBucket date: 2020-02-26.10:58:06] Fix issue #154 (Matching against list of UID-s by C-MOVE) → https://hg.orthanc-server.com/orthanc/changeset/5331918773e7
[BitBucket user: Sébastien Jodogne] [BitBucket date: 2020-02-26.10:59:53] Thanks for the report! This is now fixed in the mainline of Orthanc \(will be part of forthcoming 1.6.0 release\). An integration test is also available: https://hg.orthanc-server.com/orthanc-tests/changeset/c8d79d8258cd442f576a08c2214df4ad2998086d