We are using Orthanc job API to keep track of the different “in progress” tasks. There is a “Prgoress” property in the Job payload. We are polling the Job API to check for progress.
On an ArchiveJob, we have a valid computed progression which move from 0 to 100%. However on a DicomMoveScu job, the progress is stuck at 0 during the whole job execution then it moves to 100% whenever the transfer is done.
Is it a normal behavior ? Maybe it’s not possible to compute progress for such transfer ?
Without digging into the code, I’m not surprised that the C-Move progress is not reported.
The C-Move is actually an order for another modality to perform a C-Store and I don’t think there are any mechanisms to report the progress to the C-Move initiator.
Thank you for your quick answer !
Seems legit if Orthanc hasn’t the ability to compute the progress. In such case, is it relevant to have a “Progress” indicator in the job ? I mean that maybe the API can “omit” this field whenever the progress can’t be computed to let the final user know that we haven’t any indication ? Do you know if there are others jobs that can encounter the same limitation ?
I viewed that Orthanc doesn’t support C-Get as SCU (only as SCP). However, do you think using C-Get might help computing a progress ? Is there any plan to implement C-Get as SCU ?
I have never really played with C-Get but as I read it in the doc, the C-Get simply triggers a C-Store inside the same TCP connection and therefore, we are back to C-Store and its lack of progress report so I’m not expecting any improvements from there.
To me, to get a progress report, the only “option” would be to perform a C-Find to list the instances that are available for transfer and then, trigger the transfer. But still, new instances might have been received by the PACS in the meantime … so it’s really not ideal.
Note that it might be better to discuss these low level topics on the DICOM users group, they sure have deeper knowledge there.
And yes, the C-Get SCU is in the TODO list with no current plan for the implementation.
Just noticed that DCMTK provides callbacks that we could use to report progress in the future. I have added a TODO in Orthanc to look into it. Not sure it would work in all cases but it’s probably worth to try.
Question related to DCMTK. Is it possible to call DCMTK (the one baked into the Orthanc Build) from a Python Plug-in, either via the executable in an Osimis Docker Build or via an SDK to Orthanc ? I don’t recall seeing the executable in an OSIMIS Docker build and presumed you had to use the SDK to call the DCMTK that is packaged in Orthanc ?