Closed cpinter closed 4 years ago
The main reason why it take so much time, is the ImportExportLogic try to update (redraw) each beam when a new beam was added into the scene.
Thank you for the quick answer! I appreciate you taking a look.
You're right, we did discuss the control points. Maybe they should be grouped to folders or somehow made easier to manage, because this very long list is not useful at all unfortunately. @gregsharp do you have any idea for this?
It sounds like the most appropriate would be to store these control points in Sequence nodes. You can store thousands of nodes in one sequence node with small overhead. You can browse between sequence items using a slider or even replay them. You can expose one or more items from a sequence, and of course you have full access to all the nodes from code.
Sequences are now part of Slicer core (in Slicer-4.11) before that it was a separate extension.
As a temporary fix i can disable loading of multiple control points, so it will be only one control point per beam, as it was previously.
If batch processing is activated the loading is fast, but for the each beam one must manually invoke BeamTransformModified and BeamGeometryModified events (using Beams module) for proper visualization. For some reason BeamTransformModified event takes quite amount of time.
Thanks @lassoan and @MichaelColonel! Let me take a closer look at the options before any quick fixes are made.
In the latest version the loading time is similar to what we had before, and with the sequences change the beam nodes are not overwhelming with the one node per control point, but there is one item for each beam.
It takes around 10 minutes to load the Eclipse ENT test dataset. It only happens if I load the RT plan as well. It seems an unreasonably long time even if the plan is complex. In addition, it created dozens of beam nodes, with one MLC table in each, see below.
@MichaelColonel