Skip to content

Commit 03e98dc

Browse files
ReeceStevensvsoch
authored andcommitted
Add unit test exercising saving with compression
1 parent 86e7b68 commit 03e98dc

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

deid/tests/test_clean.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import unittest
77
from copy import deepcopy
88

9+
from pydicom.uid import RLELossless
10+
911
from deid.config import DeidRecipe
1012
from deid.data import get_dataset
1113
from deid.dicom import utils
@@ -229,6 +231,34 @@ def test_pixel_cleaner_keepcoordinates_from(self):
229231
compare = inputpixels[0:2000, 0:2000] == outputpixels[0:2000, 0:2000]
230232
self.assertTrue(compare.all())
231233

234+
def test_pixel_cleaner_save_compressed(self):
235+
"""Test the pixel cleaner to ensure that saving as compressed works as expected."""
236+
from deid.dicom import DicomCleaner
237+
238+
dicom_file = get_file(self.dataset)
239+
deid = os.path.join(self.deidpath, "remove_coordinates.dicom")
240+
241+
client = DicomCleaner(output_folder=self.tmpdir, deid=deid)
242+
out = client.detect(dicom_file)
243+
self.assertTrue(out["flagged"])
244+
245+
client.clean()
246+
# Explicitly save as a RLELossless compressed transfer syntax
247+
cleanedfile = client.save_dicom(compression=RLELossless)
248+
249+
outputfile = utils.dcmread(cleanedfile)
250+
outputpixels = outputfile.pixel_array
251+
252+
# Assert the pixel values have changed after compression
253+
inputfile = utils.dcmread(dicom_file)
254+
inputpixels = inputfile.pixel_array
255+
compare = inputpixels == outputpixels
256+
self.assertFalse(compare.all())
257+
258+
# Assert the transfer syntax has changed
259+
self.assertEqual(outputfile.file_meta.TransferSyntaxUID, RLELossless)
260+
self.assertNotEqual(inputfile.file_meta.TransferSyntaxUID, RLELossless)
261+
232262

233263
if __name__ == "__main__":
234264
unittest.main()

0 commit comments

Comments
 (0)