Source code for deid.tests.Xtest_dicom_header

#!/usr/bin/env python

__author__ = "Vanessa Sochat"
__copyright__ = "Copyright 2016-2022, Vanessa Sochat"
__license__ = "MIT"


import os
import shutil
import tempfile
import unittest

from deid.data import get_dataset
from deid.utils import get_installdir


[docs]class TestDicomHeader(unittest.TestCase):
[docs] def setUp(self): self.pwd = get_installdir() self.deid = os.path.abspath("%s/../examples/deid/deid.dicom" % self.pwd) self.dataset = get_dataset("dicom-cookies") self.tmpdir = tempfile.mkdtemp() print("\n######################START######################")
[docs] def tearDown(self): shutil.rmtree(self.tmpdir) print("\n######################END########################")
[docs] def test_get_fields(self): print("Case 1: Test get fields from dataset") from deid.dicom.header import get_fields dicom = get_dicom(self.dataset) fields = get_fields(dicom) self.assertEqual(len(fields), 28) self.assertTrue("PatientID" in fields)
[docs] def test_get_identifiers(self): print("Testing deid.dicom get_identifiers") from deid.dicom import get_identifiers dicom_files = get_dicom(self.dataset, return_dir=True) ids = get_identifiers(dicom_files) self.assertTrue(len(ids) == 1) self.assertTrue(isinstance(ids, dict)) self.assertEqual(len(ids["cookie-47"]), 7)
[docs] def test_replace_identifiers(self): print("Testing deid.dicom replace_identifiers") from pydicom import read_file from deid.dicom import get_identifiers, replace_identifiers dicom_files = get_dicom(self.dataset, return_dir=True) ids = get_identifiers(dicom_files) # Before blanking, 28 fields don't have blanks notblanked = read_file(dicom_files[0]) notblanked_fields = [ x for x in notblanked.dir() if notblanked.get(x) != "" ] # 28 self.assertTrue(len(notblanked_fields) == 28) updated_files = replace_identifiers(dicom_files, ids, output_folder=self.tmpdir) # After replacing only 9 don't have blanks blanked = read_file(updated_files[0]) blanked_fields = [x for x in blanked.dir() if blanked.get(x) != ""] self.assertTrue(len(blanked_fields) == 9)
[docs]def get_dicom(dataset, return_dir=False): """helper function to load a dicom""" from pydicom import read_file from deid.dicom import get_files dicom_files = get_files(dataset) if return_dir: return list(dicom_files) return read_file(next(dicom_files))
if __name__ == "__main__": unittest.main()