Hi John,<br><br><br>I had the same problem a few days ago.<br>I used gdcm to do what I want.<br><br>The following program print all the DICOM header information you want. You just have to specify the [Group,Element] of the tags.<br>
<br><br><span style="font-family: courier new,monospace;">#include &lt;string.h&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">#include &quot;gdcmStringFilter.h&quot;</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">#include &quot;gdcmReader.h&quot;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">#include &quot;gdcmSequenceOfItems.h&quot;</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">#include &quot;gdcmTesting.h&quot;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">#include &quot;gdcmTag.h&quot;</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">int main(int argc, char *argv[])</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">{</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp; if( argc == 2 )</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; {</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; const char *filename = argv[1];</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; gdcm::StringFilter sf;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp; gdcm::Reader r;</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp; r.SetFileName( filename );</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp; if( !r.Read() )</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; {</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; return 1;</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; }</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp; gdcm::DataSet const&amp; ds = r.GetFile().GetDataSet();</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp; sf.SetFile( r.GetFile() );</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp; </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp; int ret = 0;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp; gdcm::DataSet::ConstIterator it = ds.Begin();</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp; for( ; it != ds.End(); ++it)</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; {</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; const gdcm::DataElement &amp;ref = *it;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; std::pair&lt;std::string, std::string&gt; s = sf.ToStringPair( ref.GetTag() );</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; gdcm::Tag tag = ref.GetTag();&nbsp;&nbsp;&nbsp; </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; // HERE you select de tags you want....<br><br style="font-family: courier new,monospace;"></span><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; gdcm::Tag seriesDesc(0x0008,0x103e); //&nbsp; =tag of &quot;Series description&quot; =&gt; [0008,103E]</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; gdcm::Tag seriesInstUID(0x0020,0x000e); //&nbsp; =tag of &quot;Series Instance UID&quot; =&gt; [0020,000E]</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; gdcm::Tag nbSlices(0x0054,0x0081); //&nbsp; =tag of &quot;Number of Slices&quot; =&gt; [0054,0081]&nbsp;&nbsp;&nbsp; </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; if(tag == seriesDesc || tag == seriesInstUID || tag == nbSlices){</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; if( !s.second.empty() == 0)</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp; </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; &nbsp; std::cout &lt;&lt; /*s.first &lt;&lt; &quot; -&gt; &quot;*/ tag &lt;&lt; &quot; &quot; &lt;&lt; s.second &lt;&lt; std::endl;&nbsp;&nbsp;&nbsp; &nbsp; </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }}</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; }</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp; return ret;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; }</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp; return 0;</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">}</span><br style="font-family: courier new,monospace;"><br><br><br>But to use this program it is necessary to install gdcm (in the same way as ITK)<br><br><br><br>Regards,<br>
<br><br>Stéphane<br style="font-family: courier new,monospace;"><br><br><br><br><div class="gmail_quote">2008/11/5 John Smith <span dir="ltr">&lt;<a href="mailto:af3113@yahoo.com">af3113@yahoo.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><div>Hi,<br><br>Is there a way to retrieve DICOM header information like: Time point (in case of 4D), Patient position, Study description, Protocol, etc. I use for the moment &quot;itkGDCMImageIO&quot;, but it looks like I cannot do this job or may be I don&#39;t know how to do it. Is there a way to retrieve all of this information via that mentioned class, or do you recommend another class? or there no such a class which does that job at all?<br>
<br>Thanks,<br><br>J.<br></div></div><br>

      </div><br>_______________________________________________<br>
Insight-users mailing list<br>
<a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
<br></blockquote></div><br>