Is there a simple way to compute SUVs if patient weights are kept separate from the DICOM files?

My dataset has been anonymised rather rigorously and weights stripped. I have them separately and wish to enter them manually case-by-case. I have tried several plugins e.g., SUV factor calculator, PET image maker, but they all ask for DICOM files and do not let me input patient weight data. Is there a way around this ?


The easiest might be just to write a script with pydicom or command line tools to add the info back into the dicom files.

One option would be to fork and modify the dicom patcher with some custom code.

It might be easier to batch-fix the dataset by using the dcmodify tool of DCMTK. Here’s the command to modify the value in a single file in place (or with -i if PatientWeight tag was removed completely):

$ dcmodify -nb -m PatientWeight=200 pet001.dcm
1 Like

Thanks for the help. Unfortunately, even after fixing the weights with a script, Slicer was crashing in the SUV factor calculator CLI while running its PETDicom plugin(although Osirix SUV converter is able to convert SUVs if i manually enter the weights, hence confused why SUV factor calculator should crash). Ended up writing a script that takes in .nrrd volumes of uncorrected values and replaces them with SUVs using weights and relevant DICOM tags input separately.

Can you share a sample dataset?

Cc: @chribaue

I also submitted an issue to address this in the implementation:

That problem is solved. It was either due to the patient weights not being as ‘DS’ format (I chose ‘FL’ float in defining the dicom tag) or because there were some non-DICOM files in the folder. I believe SUV factor calculator expects the folder to contain only DICOM