Reputation: 21
I don't think I"m going to get the answer I want but I figured I would ask before giving up with GDCM.
I've built a tool using the GDCM library to do some Query/Retrieve on our local PACS. During testing, everything worked fine, but now that I've deployed it, we have one major issue.
When C-Move is transferring a study (with multiple series) and comes upon a series with a document or a report (IE patient protocol, dose report), it stops transferring any more images, even for the other series in the study. Using Wireshark, I can see that the C-Move requests are being sent, but no C-Store transfers are being sent back in return.
This will continue until the next Study, which will transfer normally until it gets to another series that has a document/report. We didn't catch this during early testing because we were testing on select studies that did not contain reports.
Is there a reason why GDCM doesn't play ball with non-images using C-Move? If I can't overcome this limitation of the library easily, is there a way to ignore series with reports, or series with only 1 image (which is how scout images and reports are stored and neither are necessary for me). Do I need to change the DCMTK library instead for my Q/R tool?
Cheers,
Shensmobile
Upvotes: 2
Views: 562
Reputation: 16409
Well to begin with:
GDCM is: QR SCU and CStore SCP.
PACS is: QR SCP and CStore SCU.
If above is reverse, it does not change the answer much, just reverse the roles.
I do not think problem is with your PACS or GDCM. I think the problem is while Association part of MOVE request.
Your CStore SCP does not support those SOP class because:
Please understand that most of the problems in DICOM network communication lies in Association part. Focus your debugging there.
What I can say for sure is that, this problem is not related to C-Find or C-Move Requests/Responses. This problem is related to C-Store operation and its Association part.
Please read following excellent articles from Roni:
http://dicomiseasy.blogspot.com/2012/01/dicom-queryretrieve-part-i.html
http://dicomiseasy.blogspot.com/2012/02/c-move.html
Using Wireshark, I can see that the C-Move requests are being sent, but no C-Store transfers are being sent back in return.
Assuming your are moving a Study, MOVE request is sent once to initiate MOVE operation. Then, MOVE SCP will become CStore SCU and will initiate another Association with CStore SCP. CStore SCP can be different from original MOVE SCU; but I do not think this is the case in your scenario. Then for each (optionally; do not rely on this. Read Roni's articles mentioned below) CStore operation, MOVE response is communicated. You did not mention about MOVE responses in your question.
Is there a reason why GDCM doesn't play ball with non-images using C-Move?
I do not think this is about "non-image" as mentioned above; but cannot bypass this possibility all together. May be that CStore SCP is accepting those SOP classes (incorrectly, even though it does not support those) but reject the instances for some reason (may be non-image instance) while C-Store. You need to check logs and configurations of your CStore SCP here.
If I can't overcome this limitation of the library easily, is there a way to ignore series with reports, or series with only 1 image
You may choose to bypass the Study level retrieve/MOVE and try Series level retrieve. To do this, you first need to fetch list (C-Find) of SeriesInstanceUIDs for that Study. Then MOVE each series independently. In C-Find response, you also get other attributes like image count where you can put your filters for further MOVE operation.
Do I need to change the DCMTK library instead for my Q/R tool?
As I said above, I do not think this problem is with library.
Upvotes: 1