OtagoHarbour
OtagoHarbour

Reputation: 4183

Limiting DICOM tags

I am trying to limit the DICOM tags, which are retained, by using

for key in keys:
    if key.upper() not in {'0028|0010','0028|0011'}:
        image_slice.EraseMetaData(key)

in Python 3.6 where image_slice is of type SimpleITK.SimpleITK.Image

I then use

image_slice.GetMetaDataKeys()

to see what tags remain and they are the tags I selected. I then save the image with

writer.SetFileName(outputDir+os.path.basename(sliceFileNames[i]))
writer.Execute(image_slice)

where outputDir is the output directory name and os.path.basename(sliceFileNames[i]) is the DICOM image name. However, when I open the image, with Weasis or with MIPAV, I notice that there are a lot more tags than were in image_slice. For example, there is

(0002,0001) [OB] FileMetaInformationVersion: binary data
(0002,0002) [UI] MediaStorageSOPClassUID:
(0002,0003) [UI] MediaStorageSOPInstanceUID:
(0008,0020) [DA] StudyDate: (which is given the date that the file was created)

I was wondering how, and where these additional tags were added.

Upvotes: 1

Views: 243

Answers (1)

MrBean Bremen
MrBean Bremen

Reputation: 16805

The group 2 tags you are seeing are meta data tags, that are always written while writing the dataset. Unless "regular" tags, which start with group 8, these group 2 tags do not belong to the dataset itself, but contain information about the encoding/writing of the dataset, like the transfer syntax - more information can be found in the DICOM standard, part 10. They will be recreated on saving a dataset to a file, otherwise, the DICOM file would not be valid.

About the rest of the tags I can only guess, but they are probably written by the software because they are mandatory DICOM tags and have been missing in the dataset. StudyDate is certainly a mandatory tag, so adding it if it is missing is correct, if the data is seen as derived data (which it usually is if you are manipulating it with ITK). I guess the other tags that you didn't mention are also mandatory tags.

Someone with more SimpleITK knowledge can probably add more specific information.

Upvotes: 6

Related Questions