06-24-2008, 19:45
|
artem
Joined on 06-25-2008
Posts 1
|
POOR performance of LDicomDir::InsertDicomDS and LDicomDir::InsertDicomFile
|
 
 
|
|
|
Medical DICOM toolkit v 15.
While working with typical medical dataset that includes about 5000 individual DICOM files I stumbled on the problem of very problematic performance during the construction of DICOMDIR (LDicomDir) object.
There are 2 ways to build the LDicomDir: InsertDicomDS and InsertDicomFile. Performance problem is present for both of them.
What I observe is that after inserting 1000 files or so, the time of inserting new file increases greatly. What i see is at least a quadratic increase : InsertionTime = O(N*N) where N is the number of files already inserted. However, it should be theoretically possible to achieve a log(N) complexity, if not linear one.
Example: on a high-end dual core PC, building DICOMDIR object takes about 190 sec (for 5000 files). This is measured when the files are memory files (to exclude HD performance from consideration). For comparison, if i do the same dataset but in groups of ~50 files (each group goes to a separate DICOMDIR object) it only takes 20 sec! It seems to me like an unacceptable situation.
Can something be done right now till this is addressed in future versions? Is there any way to combine several LDicomDir objects into one larger one? Plan would be to construct separate DICOMDIR for every SERIES and then merge them.
Btw, are functions LDicomDir::InsertDicomDS and LDicomDir::InsertDicomFile Thread-safe? I.e. it would be nice to use all cores to build the DICOMDIR.
Building DICOMDIR object is a very frequent procedure in our workflow and is very important to us.
Thank you in advance, Artem Mikheev NYU School of medicine, Radiology
|
|
|
|
|
Report
|
|
|
|