Skip to content

Move-Scu tool#658

Closed
knopkem wants to merge 26 commits intoEnet4:masterfrom
knopkem:master
Closed

Move-Scu tool#658
knopkem wants to merge 26 commits intoEnet4:masterfrom
knopkem:master

Conversation

@knopkem
Copy link
Copy Markdown

@knopkem knopkem commented Jul 1, 2025

Based on the existing c-find and c-store tools. Rust beginner here, don't hesitate to correct things.

@Enet4 Enet4 self-requested a review July 1, 2025 12:31
@Enet4 Enet4 added A-tool Area: tooling new This provides a new, mostly independent feature labels Jul 1, 2025
Copy link
Copy Markdown
Owner

@Enet4 Enet4 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much for the initiative! With the little tests I did so far this looks quite promising.

I left some suggestions inline. Consider also rebasing the branch to clear the errors reported in CI.

@@ -0,0 +1,153 @@
//! Module for parsing query text pieces into DICOM queries.
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're starting to see some repetition, but this can be improved later.

knopkem and others added 7 commits July 23, 2025 21:39
Co-authored-by: Eduardo Pinho <enet4mikeenet@gmail.com>
Co-authored-by: Eduardo Pinho <enet4mikeenet@gmail.com>
Co-authored-by: Eduardo Pinho <enet4mikeenet@gmail.com>
Co-authored-by: Eduardo Pinho <enet4mikeenet@gmail.com>
Co-authored-by: Eduardo Pinho <enet4mikeenet@gmail.com>
Co-authored-by: Eduardo Pinho <enet4mikeenet@gmail.com>
Copy link
Copy Markdown
Author

@knopkem knopkem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any chance that this gets merged?

Copy link
Copy Markdown
Owner

@Enet4 Enet4 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @knopkem! I was close to approving this pull request two weeks ago, but I encountered some oddities that called for further investigation. Can you please see the comments inline, especially the one about matches? Feel free to ask any follow-up questions.

};

println!(
"------------------------ Match #{i} ------------------------"
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder what constitutes a match here.
Per PS3.9 section 9.1.4.2, the responses from the Move SCP are not exactly "matches" but rather information about the situation with the move, so what we usually receive are "status pending" messages and a final response before closing. And some implementations only do the latter without waiting for the transfer to occur, so I've had this tool telling me that there were no matches, even though the request was processed successfully.

This match printing logic is probably a remnant of C-FIND, and it should be translated to the C-MOVE use case. My suggestion would be showing a progress indicator that ticks every time a status pending response emerges, and stopping depending on the response status.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this is a plain copy from the c-find tool and does not really apply here, although it's only for user output and not functionality. Anyway, will try to get a basic progress running.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seeing that this is the only blocker, what we can do here now is:

  • remove attempts at reading PData C-MOVE-Rsp IODs (since AFAIK C-MOVE responses only return DIMSE commands to the C-MOVE SCU)
  • dump command objects in verbose mode, calling them a status report rather than a match
  • change some of the logs to make more sense

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, sorry that there was no progress on this, but didn't find much time for it recently and also I'm not very proficient with rust (actually I wanted to base something on your lib to learn rust). So yes, would be good to get this merged but not sure when I find time for it, so maybe it would be better if you polish the rest of it. Thanks

knopkem and others added 2 commits August 7, 2025 15:21
Co-authored-by: Eduardo Pinho <enet4mikeenet@gmail.com>
Copy link
Copy Markdown
Owner

@Enet4 Enet4 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you be able to pick this up again, or would you prefer that I take over?

};

println!(
"------------------------ Match #{i} ------------------------"
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seeing that this is the only blocker, what we can do here now is:

  • remove attempts at reading PData C-MOVE-Rsp IODs (since AFAIK C-MOVE responses only return DIMSE commands to the C-MOVE SCU)
  • dump command objects in verbose mode, calling them a status report rather than a match
  • change some of the logs to make more sense

knopkem and others added 3 commits September 25, 2025 22:02
Co-authored-by: Eduardo Pinho <enet4mikeenet@gmail.com>
Co-authored-by: Eduardo Pinho <enet4mikeenet@gmail.com>
@Enet4
Copy link
Copy Markdown
Owner

Enet4 commented Oct 11, 2025

Hmm, this pull request is tied to your master branch, which makes it a bit more difficult to take over. I will create a new pull request with these contents rebased on v0.9.0 (#707).

@Enet4 Enet4 closed this Oct 11, 2025
@Enet4 Enet4 mentioned this pull request Oct 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-tool Area: tooling new This provides a new, mostly independent feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants