<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div style="font-size: 14px; font-family: Calibri, sans-serif;">
<div>
<div>Hello Peter,</div>
</div>
</div>
<div style="font-size: 14px; font-family: Calibri, sans-serif;"><br>
</div>
<div><font face="Calibri,sans-serif" style="font-size: 14px;">We are actually working on adding the set method for the upcoming release, which will be out shortly. One issue that we do want to point out, which likely you are aware of but just in case, you have
 to indicate in the I</font><font face="Calibri">mage Type tag ( (0008,0008) that this is a derived image. Please see the DICOM standard (</font>http://dicom.nema.org/medical/dicom/current/ou<font face="Calibri">tput/pdf/part03.pdf), section  C.7.6.1.1.2 for
 the details.</font></div>
<div style="font-size: 14px; font-family: Calibri, sans-serif;"><br>
</div>
<div style="font-size: 14px; font-family: Calibri, sans-serif;">        regards</div>
<div style="font-size: 14px; font-family: Calibri, sans-serif;">             Ziv</div>
<div style="font-size: 14px; font-family: Calibri, sans-serif;"> </div>
<div style="font-size: 14px; font-family: Calibri, sans-serif;"><br>
</div>
<span id="OLK_SRC_BODY_SECTION" style="font-size: 14px; font-family: Calibri, sans-serif;">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Piotr Piasecki <<a href="mailto:piotpia124@student.polsl.pl">piotpia124@student.polsl.pl</a>><br>
<span style="font-weight:bold">Date: </span>Thursday, July 7, 2016 at 9:49 AM<br>
<span style="font-weight:bold">To: </span>Dženan Zukić <<a href="mailto:dzenanz@gmail.com">dzenanz@gmail.com</a>>, Bradley Lowekamp <<a href="mailto:brad@lowekamp.net">brad@lowekamp.net</a>>, "<a href="mailto:insight-users@itk.org">insight-users@itk.org</a>"
 <<a href="mailto:insight-users@itk.org">insight-users@itk.org</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [ITK-users] Lost Patient, Study and Series DICOM tags<br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr">
<div>
<div>Hello Again<br>
<br>
I found the information, that in SimpleITK the MetaDataDictionary interface is only part of the Image class. Currently it provides a read only interface, with the GetMetaDataKeys(), and GetMetaData(key) methods. This get method only returns the type of data
 in the dictionary converted to a string.<br>
<br>
The required method would be Image::SetMetaData(key,value). But unfortunately I do not see this method, so I think that this is still not implemented. The only what I need is to keep information that my files belong to one series of images, which belongs to
 one patient and study ( not necessarily the same study or series as the original).<br>
<br>
</div>
Regards.<br>
<br>
</div>
Peter.<br>
<div>
<div><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">2016-07-07 14:45 GMT+02:00 Dženan Zukić <span dir="ltr">
<<a href="mailto:dzenanz@gmail.com" target="_blank">dzenanz@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div style="font-family:verdana,sans-serif;font-size:small">Hi Piotr,</div>
<div style="font-family:verdana,sans-serif;font-size:small"><br>
</div>
<div style="font-family:verdana,sans-serif;font-size:small">instead of ImageReader->GetMetaDataDictionary() call ImageSeriesReader->GetMetaDataDictionary(). Also, the image format you are writing to needs to be able to support metadata (e.g. .mha, .nrrd, DICOM),
 otherwise the metadata is lost (.nii, .jpg, .bmp etc).</div>
<div style="font-family:verdana,sans-serif;font-size:small"><br>
</div>
<div style="font-family:verdana,sans-serif;font-size:small">But for writing DICOM, the process might be somewhat different from what I described in the first email. Definitely different if you want metadata copied slice for slice from input to output - in this
 case some metadata needs to be changed anyway, such as flag that this is a derived image and not an original image coming out of a scanner.</div>
<div style="font-family:verdana,sans-serif;font-size:small"><br>
</div>
<div style="font-family:verdana,sans-serif;font-size:small">I suppose that MetaDataDictionary class is not wrapped. You can then loop through all the keys and copy them and their content one by one.</div>
<div style="font-family:verdana,sans-serif;font-size:small"><br>
</div>
<div style="font-family:verdana,sans-serif;font-size:small">Regards</div>
</div>
<div class="">
<div class="h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Jul 7, 2016 at 8:35 AM, Piotr Piasecki <span dir="ltr">
<<a href="mailto:piotpia124@student.polsl.pl" target="_blank">piotpia124@student.polsl.pl</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>
<div>Hi Dženan,<br>
<br>
thank you for your help and for this example. Unfortunately, I have not found method GetMetaDataDictionary() in SimpleITK in C# (I found only GetMetaDataKeys() and GetMetaData(string key)). Also, I have not found a method SetMetaDataDictionary or any other
 that allows me to assign DICOM tags.<br>
<br>
My short piece of code looks like this:<br>
<br>
static public void ReadImage()<br>
        {<br>
            sitk.ImageFileReader reader = new sitk.ImageFileReader();<br>
            reader.SetFileName(@".\DICOM_TEST\original.dcm");<br>
            var image = reader.Execute();<br>
<br>
            sitk.ImageFileWriter writer = new sitk.ImageFileWriter();<br>
            writer.SetFileName(@".\DICOM_TEST\modified.dcm");<br>
            writer.Execute(image);<br>
        }<br>
<br>
<span lang="en"><span>Another problem is</span> <span>that your</span> <span>example describes</span><span>only</span><span> loading and</span>
<span>saving</span> <span>a single .dcm file</span><span>.</span><span>What</span>
<span>if</span> <span>I have to</span> <span>process a</span> <span>whole</span> <span>
series of files</span><span> using sitk.ImageSeriesReader and sitk.ImageSeriesWriter?<br>
<br>
</span></span></div>
<span lang="en"><span>Regards,<br>
<br>
</span></span></div>
<span lang="en"><span>Peter.<br>
</span></span>
<div>
<div>
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2016-07-05 15:45 GMT+02:00 Dženan Zukić <span dir="ltr">
<<a href="mailto:dzenanz@gmail.com" target="_blank">dzenanz@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div style="font-family:verdana,sans-serif;font-size:small">Hi Piotr,</div>
<div style="font-family:verdana,sans-serif;font-size:small"><br>
</div>
<div style="font-family:verdana,sans-serif;font-size:small">if you want to carry over metadata from input image to output image, you should save the metadata dictionary in a way similar to this:</div>
<div style="font-family:verdana,sans-serif;font-size:small"><br>
</div>
<div>
<div><font face="monospace,monospace">itk::MetaDataDictionary metadata;</font></div>
<div><font face="monospace,monospace"><br>
</font></div>
<div><font face="monospace,monospace">template< typename TImage ></font></div>
<div><font face="monospace,monospace">itk::SmartPointer<TImage> readImage(std::string fileName)</font></div>
<div><font face="monospace,monospace">{</font></div>
<div><font face="monospace,monospace">    typedef itk::ImageFileReader<TImage> ReaderType;</font></div>
<div><font face="monospace,monospace">    typename ReaderType::Pointer reader = ReaderType::New();</font></div>
<div><font face="monospace,monospace">    reader->SetFileName(fileName.c_str());</font></div>
<div><font face="monospace,monospace">    try</font></div>
<div><font face="monospace,monospace">    {</font></div>
<div><font face="monospace,monospace">        reader->Update();</font></div>
<div><font face="monospace,monospace">        metadata = reader->GetMetaDataDictionary();</font></div>
<div><font face="monospace,monospace">        return reader->GetOutput();</font></div>
<div><font face="monospace,monospace">    }</font></div>
<div><font face="monospace,monospace">    catch (itk::ExceptionObject & error)</font></div>
<div><font face="monospace,monospace">    {</font></div>
<div><font face="monospace,monospace">        std::cerr << "Error: " << error << std::endl;</font></div>
<div><font face="monospace,monospace">        return NULL;</font></div>
<div><font face="monospace,monospace">    }</font></div>
<div><font face="monospace,monospace">}</font></div>
<div><font face="monospace,monospace"><br>
</font></div>
<div><font face="monospace,monospace">template< typename TImage ></font></div>
<div><font face="monospace,monospace">void writeImage(itk::SmartPointer<TImage> image, std::string fileName)</font></div>
<div><font face="monospace,monospace">{</font></div>
<div><font face="monospace,monospace">    image->SetMetaDataDictionary(metadata); //full metadata</font></div>
<div><font face="monospace,monospace">    typedef itk::ImageFileWriter<TImage> WriterType;</font></div>
<div><font face="monospace,monospace">    typename WriterType::Pointer writer = WriterType::New();</font></div>
<div><font face="monospace,monospace">    writer->SetFileName(fileName.c_str());</font></div>
<div><font face="monospace,monospace">    writer->SetInput(image);</font></div>
<div><font face="monospace,monospace">    try</font></div>
<div><font face="monospace,monospace">    {</font></div>
<div><font face="monospace,monospace">        writer->Update();</font></div>
<div><font face="monospace,monospace">    }</font></div>
<div><font face="monospace,monospace">    catch (itk::ExceptionObject & error)</font></div>
<div><font face="monospace,monospace">    {</font></div>
<div><font face="monospace,monospace">        std::cerr << "Error: " << error << std::endl;</font></div>
<div><font face="monospace,monospace">    }</font></div>
<div><font face="monospace,monospace">}</font></div>
</div>
</div>
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Jul 5, 2016 at 2:46 AM, Piotr Piasecki <span dir="ltr">
<<a href="mailto:piotpia124@student.polsl.pl" target="_blank">piotpia124@student.polsl.pl</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Dear Sir or Madam.<br>
<br>
I am a student in Biomedical Engineering at the Silesian University of Technology. During my studies I worked with ITK and SimpleITK in C#. I want to use them in my current project, but I have an important question. After loading and processing a series of
 .dcm files I lost information about the patient and study to which they belong, and that they belong to one series. How can I keep this information?<br>
<br>
I will be very grateful for any answer.<br>
<br>
Best regards.<br>
<br>
Peter.<br>
_____________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Kitware offers ITK Training Courses, for more information visit:<br>
<a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/insight-users</a><br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</span>
</body>
</html>