<div dir="ltr">Hi Jonathan,<div><br></div><div>Here's a short example of getting values from meta data:</div><div><br></div><div># get the meta data from the reader</div><div>metadata = readerSPECT.GetMetaData()</div><div># tags are in hexadecimal, so "0x" must be used</div><div>positionTag = vtkDICOMPython.<span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">vtkDICOMTag(0x0020,0x0032)</span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"># GetAttributeValue has an optional index argument, to select one file in the series,</span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"># each file will have a different position</span></div><div>positionValue = metadata.GetAttributeValue(0, positionTag)</div><div># you can get tags by name, instead, by using the DC namespace</div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">positionValue = metadata.GetAttributeValue(0, vtkDICOMPython.DC.ImagePositionPatient)</span><br></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"># use GetDouble() to extract the x,y,z position values (use list comprehension)</span></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">position = [positionValue.GetDouble(i) for i in range(positionValue.GetNumberOfValues())]</span></div><div><br></div><div>More info is here (though all the examples are C++):</div><div><a href="http://dgobbi.github.io/vtk-dicom/doc/api/attributes.html">http://dgobbi.github.io/vtk-dicom/doc/api/attributes.html</a><br></div><div><br></div><div>Also, since you're interested in position, here is info on position, orientation:</div><div><a href="http://dgobbi.github.io/vtk-dicom/doc/api/image_orientation.html">http://dgobbi.github.io/vtk-dicom/doc/api/image_orientation.html</a><br></div><div><br></div><div>I recommend using "reader.GetPatientMatrix()" to get the position info.</div><div><br></div><div>Make sure that you read the documentation for the vtkDICOMReader.SetMemoryRowOrderToFileNative() method.  It controls whether the data is re-ordered when it is read.</div><div><br></div><div>Cheers,</div><div> - David</div><div><br></div><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 8, 2018 at 2:35 AM, Jojobus <span dir="ltr"><<a href="mailto:jojotranel@hotmail.com" target="_blank">jojotranel@hotmail.com</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">Hello vtk(-dicom) users,<br>
<br>
I am attempting to extract the ImagePatientPosition tag (0020,0032) from a<br>
SPECT DICOM image using vtk-dicom library and python. However, I am<br>
encountering some trouble to find the right combinaison between the<br>
vtkDICOMTag and vtkDICOMReader. My written code so far is below:<br>
<br>
directory = vtkDICOMPython.<wbr>vtkDICOMDirectory()<br>
directory.SetDirectoryName(<wbr>PathDicomSPECT)<br>
directory.Update()<br>
readerSPECT = vtkDICOMPython.vtkDICOMReader(<wbr>)<br>
readerSPECT.SetFileNames(<wbr>directory.<wbr>GetFileNamesForSeries(0))<br>
readerSPECT.Update()<br>
<br>
# No encountered troubles so far but for the next step...<br>
<br>
TagPatientPosition=<wbr>vtkDICOMPython.vtkDICOMTag(20,<wbr>32)<br>
MetaPatientPosition=<wbr>vtkDICOMPython.<wbr>vtkDICOMMetaData()<br>
MetaPatientPosition.<wbr>GetAttributeValue(<wbr>TagPatientPosition)<br>
<br>
#What is the right thing to code in order to be linked with readerSPECT?<br>
<br>
How can code the vtkDICOMImageReader equivalent of GetImagePositionPatient<br>
()  ?<br>
<br>
Many thanks in advance !<br>
<br>
Jonathan<br></blockquote></div></div></div></div>