I'm trying to extract the value of a private DICOM tag of a PHILIPS PET/CT scan file in Matlab.
The specific tag is 7053,1000.
I've created a custom dicom-dict and added the line:
(7053,1000) UN SUVScalefactor 1
But all I get in return when reading the dicom file in Matlab is a vector with bytes and not the correct value which is decimal value like (0.001817).
What am I doing wrong here?
John
|
|
0
|
|
|
|
Reply
|
john.ly (1)
|
2/25/2010 2:53:03 PM |
|
John,
You were so close! The private value is returned as a vector of bytes
because of the "UN" in your dicom-dict file. That value means
"unknown," so we just return the bytes without any translation.
You'll need to get the two-character code for the destination type.
Likely choices are "DS" for "decimal string" (a string that gets
converted to a floating point number), "FL" for single-precision
floating point numbers, or "FD" for double-precision floats. You can
see the full set of possible values in Part 5, section 6.2.2 of the
DICOM standard... or just look in dicominfo.m at the convertRawAttr()
function, which is probably easier.
The final arbiter of the value that you should use is the scanner's
DICOM conformance statement. Often these are available online, but they
don't always give all of the details of private attributes. Maybe
that's where you got the values for your data dictionary.
Good luck!
Jeff
John Ly wrote:
> I'm trying to extract the value of a private DICOM tag of a PHILIPS
> PET/CT scan file in Matlab.
>
> The specific tag is 7053,1000.
>
> I've created a custom dicom-dict and added the line:
> (7053,1000) UN SUVScalefactor 1
>
> But all I get in return when reading the dicom file in Matlab is a
> vector with bytes and not the correct value which is decimal value like
> (0.001817).
>
> What am I doing wrong here?
>
> John
|
|
0
|
|
|
|
Reply
|
jeff.mather (70)
|
2/25/2010 6:49:15 PM
|
|