Hi Andy

I had a look at why dicominfo doesn't store/dump sequence elements (VR=SQ).
It turns out that this is very easy to fix. In element2value, you have near
the beginning

        // skip "Group Length" tags. note: these are deprecated in DICOM
2008
        if(tag.GetElement() == (uint16_t)0 || elem->GetByteValue() == NULL)
return DICOM_NOTHING_ASSIGNED;

However, sequence elements do have NULL GetByteValue(), so they never get
processed by the rest of the function. Modifying this statement to take this
into account fixes this:

        if(tag.GetElement() == (uint16_t)0 || (elem->GetByteValue() == NULL
&& vr != gdcm::VR::SQ)) 
                   return DICOM_NOTHING_ASSIGNED;

With this tiny tweak, the rest of your code works fine. I now get e.g.
RadioPharmaceutical info back which is MATLAB compatible. Great! Shall I
commit this? (Also removing 3 include files that we're not using)

After this commit, I don't know of any problems with this code anymore. My
application (which was developed for matlab) works fine (but it doesn't use
a lot of dicom fields admittedly). There's presumably a need for some
changes to make this into a real package, but I have no idea about that.


Kris Thielemans
Algorithms and Software Consulting Ltd (http://asc.uk.com)
Honorary Lecturer at Imperial College London




------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Octave-dev mailing list
Octave-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/octave-dev

Reply via email to