Loading DICOM volume got significantly slower

Here are the logs when loading the same DICOM volume with the ‘Add data’ menu on Linux :

On 2019-11-11 (don’t know the revision tag) :

 There is more than one file, use the vtkITKArchetypeImageSeriesReader instead
Loaded volume from file: /home/user/tmp/mscans/fsg_2019-10-23/images/pat00000/st000000/se000000/ct000027. Dimensions: 512x512x2167. Number of components: 1. Pixel type: int.
"Volume" Reader has successfully read the file "/home/user/tmp/mscans/fsg_2019-10-23/images/pat00000/st000000/se000000/ct000027" "[89.89s]"

Today 2019-12-24 (6e48df6) :

There is more than one file, use the vtkITKArchetypeImageSeriesReader instead
Loaded volume from file: /home/user/tmp/mscans/fsg_2019-10-23/images/pat00000/st000000/se000000/ct000027. Dimensions: 512x512x2167. Number of components: 1. Pixel type: int.
"Volume" Reader has successfully read the file "/home/user/tmp/mscans/fsg_2019-10-23/images/pat00000/st000000/se000000/ct000027" "[389.11s]"

That’s 5 minutes more, and 4.4 times slower.

Loaded the same volume with the DICOM module : time parameter is not logged, I would say about 5 minutes.

Switch to module:  "DICOM"
QXcbConnection: XCB error: 3 (BadWindow), sequence: 8822, resource id: 42099390, major code: 40 (TranslateCoords), minor code: 0
"DICOM indexer has successfully inserted 2167 files [2.38s]"
"DICOM indexer has successfully processed 2167 files [6.13s]"
"DICOM indexer has updated display fields for 2167 files [0.66s]"
Imported a DICOM directory, checking for extensions
Loading with imageIOName: GDCM
Window/level found in DICOM tags (center=40.0, width=400.0) has been applied to volume 2: Aorte Membre Inf

Can it be improved ?

Thanks.

I don’t see any difference between DICOM loading speed between Slicer-2019-11-03 and Slicer-2019-12-19 versions on Windows when using Add data module (a CT consisting of 2600 files, 340MB in total in 22-23sec). I don’t see any code change in this time period that could affect DICOM loading speed.

  • Have you repeated the measurements several times? First loading of a file after may be much slower than loading the file again.
  • What kind of series you are reading? What device generated it (manufacturer, model, year)? What is the total size of the series?
  • Did you build Slicer with the same optimization options?
  • Could you try the official build Slicer builds (you can download them by specifying “offset” value for the download page, for example https://download.slicer.org/?offset=-30).
  • Can you try more Slicer versions to find the exact version number between 2019-11-11 and 2019-12-24 to check where exactly you start to see the difference?

After a few tests, I think the problem is related to fuse on that particular machine.

I tried a 512x512x1935 volume on another machine, my laptop. I usually copy the image of CT angioscan DVDs as an ISO file, then mount these with fuseiso. The load time is ‘normal’ on my laptop :

ISO mounted with fuseiso : 68 secs (evaluated twice)
ISO mounted as root : 9 seconds
DICOM files copied in a directory on disk from the ISO : 8 seconds

During the loading, fuseiso consumes about 70% of 1 CPU core, while on my work PC where loading got slow, fuseiso consumes about 95% of 1 CPU core.

Using 6e48df6 here.

I’ll perform further tests on the problematic PC ASAP.

Thanks.

1 Like