def test_remove(self): """ RECIPE RULE REMOVE InstitutionName REMOVE 00190010 """ print("Test remove of public and private tags") dicom_file = get_file(self.dataset) field1name = "InstitutionName" field2name = "00190010" actions = [ { "action": "REMOVE", "field": field1name }, { "action": "REMOVE", "field": field2name }, ] recipe = create_recipe(actions) dicom = read_file(dicom_file) # Create a DicomParser to easily find fields parser = DicomParser(dicom_file) parser.parse() # The first in the list is the highest level field1 = list(parser.find_by_name(field1name).values())[0] field2 = list(parser.find_by_name(field2name).values())[0] self.assertIsNotNone(field1.element.value) self.assertIsNotNone(field2.element.value) result = replace_identifiers( dicom_files=dicom_file, deid=recipe, save=False, remove_private=False, strip_sequences=False, ) # Create a DicomParser to easily find fields parser = DicomParser(result[0]) parser.parse() # Removed means we don't find them assert not parser.find_by_name(field1name) assert not parser.find_by_name(field2name) self.assertEqual(1, len(result)) with self.assertRaises(KeyError): check1 = result[0][field1name].value with self.assertRaises(KeyError): check2 = result[0][field2name].value
def test_replace_with_constant(self): """ RECIPE RULE REPLACE AccessionNumber 987654321 REPLACE 00190010 NEWVALUE! """ print("Test replace tags with constant values") dicom_file = get_file(self.dataset) newfield1 = "AccessionNumber" newvalue1 = "987654321" newfield2 = "00190010" newvalue2 = "NEWVALUE!" actions = [ { "action": "REPLACE", "field": newfield1, "value": newvalue1 }, { "action": "REPLACE", "field": newfield2, "value": newvalue2 }, ] recipe = create_recipe(actions) # Create a DicomParser to easily find fields parser = DicomParser(dicom_file) parser.parse() # The first in the list is the highest level field1 = list(parser.find_by_name(newfield1).values())[0] field2 = list(parser.find_by_name(newfield2).values())[0] self.assertNotEqual(newvalue1, field1.element.value) self.assertNotEqual(newvalue2, field2.element.value) result = replace_identifiers( dicom_files=dicom_file, deid=recipe, save=False, remove_private=False, strip_sequences=False, ) self.assertEqual(1, len(result)) self.assertEqual(newvalue1, result[0][newfield1].value) self.assertEqual(newvalue2, result[0][newfield2].value)