The issue is related to the fact that you are defining private data fields that are not part of the of the default DICOM standard. You will need to append the standard and define the way you want the data to be stored. See the following discussion in the DICOM documentation:
<http://www.mathworks.com/access/helpdesk/help/toolbox/images/index.html?/access/helpdesk/help/toolbox/images/f13-29508.html#bru8aw9-1>
Specifically, the phrase "...For example, if the file contained private metadata at group 0009 and element 0006, dicominfo creates the name:Private_0009_0006. dicominfo attempts to interpret the private metadata, if it can... If it can't interpret the data, dicominfo returns a sequence of bytes" is of relevance.
To use an example from your data, the field "Private_0009_1001" is not defined in the default data dictionary. The DICOMWRITE function therefore converts the string "CT_LIGHTSPEED" into the equivalent sequence of bytes, and stores that instead of a string. You see that as a sequence of UINT8 numbers.
According to the documentation, the following are the steps that you will need to take to fix this issue.
1) Create a copy of the "dicom-dict.txt" file that defines the DICOM data dictionary. You can access this file by typing the following at the MATLAB command prompt:
Then, save a copy of this file.
2) Add entries for all of the private fields that are not defined in the data dictionary. You can find those fields by running the following code:
fn=cell(1,4);
[fn{:}]=textread(dicomdict('get'),repmat('%s',1,4),'delimiter','\t','commentstyle','shell');
info=dicominfo('<your_dicom_file_here>'');% that is one of your output files
not_defined=setdiff(lower(fieldnames(info)),lower(fn{3}));
not_defined(cellfun(@(c) isempty(strfind(c,'private_')),not_defined))=[];
3) According to the DICOM spec, you will need to modify the copy of the "dicom-dict.txt" file for all the fields defined in the "not_defined" variable above. You can read the DICOM spec at the following websites:
<ftp://medical.nema.org/medical/dicom/2008/
ftp://medical.nema.org/medical/dicom/2008/>
<ftp://medical.nema.org/medical/dicom/2008/08_06pu.pdf>
4) Once you have done this you can set the modified dictionary to be used for future decoding using the following syntax:
dicomdict('set', 'dicom_dict_copy.txt');
Best Answer