[Dcmlib] Re : GDCM Library

Jean-Pierre Roux jpr at creatis.insa-lyon.fr
Thu Jan 27 13:57:22 CET 2005


Mülleder Ilona wrote:

--> Copie de ma reponse

> Hello GDCM developer team,
>
> I am an Austrian student and I am in my final year of "Software 
> Engineering for Medical Purposes". It is part of my studies to do an 
> internship in the last year, which means that I had to do a project 
> over at least 15 weeks. My project was to implement a DicomReader to 
> import Dicom files (images), etc.
>  
>
Hello !
Version 0.4 was a very temporary version we put on the server just 
because some friends asked us...
We are now finishing (well ... polishing) the future version 1.0, and we 
don't expect to modify neither the classes nor the methods.
(I attached a little pdf file with the UML class diagram, if you are 
familiar with that)

Between version 0.4 and 0.6, we deeply modified the class diagram, to be 
able to 'go inside' the Dicom Sequences (where Value Representation =  
"SQ"), and to deal with DICOMDIR.

We consider now that :
- any dicom related file is a gdcm::Document.
- a gdcm::Document can be a gdcm::File, if it contains pixel data, or a 
gdcm::DicomDir, if it contains only informations on the files in a given 
directory
- in a gdcm::Document, there are gdcm::DocEntry, that can be :
     - gdcm::ValEntry (whose value is std::string representable i.e. 
character values, or integers),
     - gdcm::BinEntry (whose value is not std::string representable i.e. 
color palettes, overlays, icons , ...)
     -gdcm::Sequence (no proper 'value', but a set of gdcm::SQItems, 
composed of a set of gdc::DocEntry, recursively)

If you only deal with Dicom files holding images (not with DICOMDIR 
file), you we have to use the classes

gdcm::File (not gdcmHeader + gdcmHeaderHelper)
gdcm::FileHelper (not gdcmFile)
gdcm:SerieHeader (not gdcmSerieHeaderHelper)
gdcm::BinEntry and gdcm::ValEntry to get the values


We use now valgrind to check the memory leaks -and we had a lot of work. 
It's 99 % OK, now-
I do agree with your supervisor : the best you have to do is use the CVS 
version.

I hope this help.
If you have any more question, feel free to contact us.

Jean-Pierre Roux



> After some research in the internet, I came across the library GDCM 
> which you and some other people programmed. Effectively, your library 
> was very useful for my project as it offers a wide range of functions 
> dealing with Dicom.
> I downloaded GDCM in September 2004, so I use version 0.4 for my 
> project. Just recently there was the rollout of my project 
> (DicomReader) and a few problems concerning usage of memory occurred. 
> I checked for possible memory leaks in my code. After doing that there 
> was still some unfreed memory. Then I read on your website that there 
> was a new version and that "A huge number of memory leaks was removed".
> As the memory leaks I have in my project are quite critical, my 
> supervisor suggested to rewrite the code and to use the current 
> version of gdcm (from CVS).
> But before I start I should estimate the amount of work compared to 
> the benefits of the newest version. That is why I would have a few 
> questions concerning the new version. It would be really great if you 
> could help me out:
>
> 1. You wrote that you solved a huge number of memory leaks. It would 
> be interesting to know roughly where the memory leaks were? The 
> classes I used for my project are       gdcmDict,       gdcmDictEntry,
>       gdcmHeader,       gdcmHeaderHelper,
>       gdcmSerieHeaderHelper,       gdcmFile (mainly for getting the 
> image data).
> It would be very helpful if you could remember if there were any 
> (major) memory leaks in one of those classes. 
>
> 2. The class structure of the newest version compared to version 0.4 
> (the one I have) is quite different. Also some of the classes I used 
> are not part of GDCM any more. So my question is, in future, are you 
> planning to implement newer versions in a way that one could easily 
> upgrade to the newer version without changing a lot of GDCM-related 
> code, or is there not much guarantee that the class diagram (names and 
> hierarchy) will stay more or less the same? This is good to know in 
> order to estimate if it is worth upgrading to the newer version.
>
>
> Maybe these questions have been answered before, if so, could you 
> please point at the mailing list archive or the web resources?
> If the questions sound very new to you, then it would be very nice 
> from you all, if you could provide answers for my important questions 
> and I am looking forward to hearing from you.
>
> Many thanks in advance.
>
> Best regards,
>
> Ilona Muelleder
>
>  
>



More information about the Dcmlib mailing list