MATLAB: Troubles using dicomwrite() for the PET modality

dicomdicomwriteimage analysisimage preprocessingimage processing

I have many PET slices in the dicom format. I am trying to manipulate the metadata of each slice (specifically the ImagePositionPatient fieldname) in order to automatically center the image at the origin in an image viewer(Amide). To do this I must use the dicomread, dicominfo, and dicomwrite functions.
d=dicominfo(fid); % dicom object
V=dicomread(fid); % dicom volume
xdcm=-((double(d.Rows)*double(d.PixelSpacing(1)))/2); % reset the xy Image Position
% so that it will view at the origin for my image viewer
ydcm=-((double(d.Columns)*double(d.PixelSpacing(2)))/2);
d.ImagePositionPatient(:)=[xdcm,ydcm];
dicomwrite(V,fid,d); % write this new dicom object in the same file.
I have done this successfully for the 'CT' modality, but keep running into errors for the 'PT' modality. I believe this is because dicomwrite doesn't support usage of PET data. The error I'm getting looks something like this:
% Error using dicom_prep_metadata (line 92)
% Unsupported SOP class (1.2.840.10008.5.1.4.1.1.128) in full verification mode.
% Consider using 'CreateMode' with a value of 'Copy'.
I'm thinking of just changing the SOPclass to a 'CT' number in order to just "cheat the system", but surly their has to be away to write a dicom volume for a PET dicom object?
Any help is greatly appreciated.
Thanks,
Bryce

Best Answer

Hi,
Try using
dicomwrite(V,fid,d,'CreateMode','copy');
dicomwrite does not verify the metadata written to the file when CreateMode parameter is set to ‘copy'
Hope it helps