diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 131f107..52d023d 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -11,7 +11,7 @@ jobs: formatting: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup black environment run: conda create --quiet --name black black @@ -26,14 +26,13 @@ jobs: testing: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup conda environment run: | conda create --quiet --name testing export PATH="/usr/share/miniconda/bin:$PATH" source activate testing - pip install matplotlib pip install . - name: Test deid diff --git a/CHANGELOG.md b/CHANGELOG.md index 0117040..7bcb3b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and **Merged pull requests**. Critical items to know are: Referenced versions in headers are tagged on Github, in parentheses are for pypi. ## [vxx](https://github.com/pydicom/deid/tree/master) (master) +- Update to use pydicom 3 [#267](https://github.com/pydicom/deid/pull/267) (0.4.0) - Refactor INCLUDE_REQUIRES and provide max pydicom version [#267](https://github.com/pydicom/deid/pull/267) (0.3.25) - Support pydicom.Dataset objects created from BytesIO [#265](https://github.com/pydicom/deid/pull/265) (0.3.24) - Exception with missing filters for non-string VR [#256](https://github.com/pydicom/deid/issues/256) (0.3.23) diff --git a/deid/config/__init__.py b/deid/config/__init__.py index 53949a1..b949fe3 100644 --- a/deid/config/__init__.py +++ b/deid/config/__init__.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" from deid.config.standards import actions, formats, sections diff --git a/deid/config/standards.py b/deid/config/standards.py index 4ec1fff..da41237 100644 --- a/deid/config/standards.py +++ b/deid/config/standards.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" # Supported formats diff --git a/deid/config/utils.py b/deid/config/utils.py index 39fc38a..9572889 100644 --- a/deid/config/utils.py +++ b/deid/config/utils.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" # pylint: skip-file diff --git a/deid/data/__init__.py b/deid/data/__init__.py index c75daf5..000cd46 100644 --- a/deid/data/__init__.py +++ b/deid/data/__init__.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" import os diff --git a/deid/dicom/actions/jitter.py b/deid/dicom/actions/jitter.py index f93ca54..b231994 100644 --- a/deid/dicom/actions/jitter.py +++ b/deid/dicom/actions/jitter.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" from deid.logger import bot diff --git a/deid/dicom/actions/uids.py b/deid/dicom/actions/uids.py index e7ba9fb..e296235 100644 --- a/deid/dicom/actions/uids.py +++ b/deid/dicom/actions/uids.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" import uuid diff --git a/deid/dicom/fields.py b/deid/dicom/fields.py index 85e7a35..4fe74dd 100644 --- a/deid/dicom/fields.py +++ b/deid/dicom/fields.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" import re diff --git a/deid/dicom/filter.py b/deid/dicom/filter.py index f9c8cac..40336cd 100644 --- a/deid/dicom/filter.py +++ b/deid/dicom/filter.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" import re @@ -23,7 +23,7 @@ def apply_filter(dicom, field, filter_name, value): Parameters ========== - dicom: the pydicom.dataset Dataset (pydicom.read_file) + dicom: the pydicom.dataset Dataset field: the name of the field to apply the filter to, or the tag number as a string '0xGGGGEEEE' filer_name: the name of the filter to apply (e.g., contains) diff --git a/deid/dicom/groups.py b/deid/dicom/groups.py index 5fa5e69..a628cd4 100644 --- a/deid/dicom/groups.py +++ b/deid/dicom/groups.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" diff --git a/deid/dicom/header.py b/deid/dicom/header.py index 41e383a..f888c18 100644 --- a/deid/dicom/header.py +++ b/deid/dicom/header.py @@ -1,12 +1,11 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" import os -from pydicom import read_file - +import deid.dicom.utils as utils from deid.dicom.parser import DicomParser from deid.dicom.utils import save_dicom from deid.logger import bot @@ -68,7 +67,7 @@ def remove_private_identifiers( dicom_files = [dicom_files] for dicom_file in dicom_files: - dicom = read_file(dicom_file, force=force) + dicom = utils.dcmread(dicom_file, force=force) dicom.remove_private_tags() dicom_name = os.path.basename(dicom_file) bot.debug("Removed private identifiers for %s" % dicom_name) diff --git a/deid/dicom/parser.py b/deid/dicom/parser.py index fd7359e..ab2abcd 100644 --- a/deid/dicom/parser.py +++ b/deid/dicom/parser.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" import os @@ -7,11 +7,11 @@ from copy import deepcopy from io import BytesIO -from pydicom import read_file from pydicom.dataelem import DataElement from pydicom.dataset import Dataset from pydicom.tag import Tag +import deid.dicom.utils as utils from deid.config import DeidRecipe from deid.config.standards import actions as valid_actions from deid.dicom.actions import deid_funcs, jitter_timestamp @@ -99,7 +99,7 @@ def load(self, dicom_file, force=True): # If we must read the file, the path must exist if not os.path.exists(dicom_file): bot.exit("%s does not exist." % dicom_file) - self.dicom = read_file(dicom_file, force=force) + self.dicom = utils.dcmread(dicom_file, force=force) # Set class variables that might be helpful later df = self.dicom.get("filename") diff --git a/deid/dicom/pixels/clean.py b/deid/dicom/pixels/clean.py index a656237..9622a59 100644 --- a/deid/dicom/pixels/clean.py +++ b/deid/dicom/pixels/clean.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" @@ -13,7 +13,6 @@ import matplotlib import numpy from numpy.typing import NDArray -from pydicom import read_file from pydicom.pixel_data_handlers.util import get_expected_length from deid.config import DeidRecipe @@ -245,7 +244,7 @@ def save_dicom(self, output_folder=None, image_type="cleaned"): # Having clean also means has dicom image if hasattr(self, image_type): dicom_name = self._get_clean_name(output_folder) - dicom = read_file(self.dicom_file, force=True) + dicom = utils.dcmread(self.dicom_file, force=True) # If going from compressed, change TransferSyntax if dicom.file_meta.TransferSyntaxUID.is_compressed is True: dicom.decompress() diff --git a/deid/dicom/pixels/detect.py b/deid/dicom/pixels/detect.py index d4b83c2..081994a 100644 --- a/deid/dicom/pixels/detect.py +++ b/deid/dicom/pixels/detect.py @@ -1,13 +1,14 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" from typing import List, Optional, Union -from pydicom import FileDataset, read_file +from pydicom import FileDataset from pydicom.sequence import Sequence +import deid.dicom.utils as utils from deid.config import DeidRecipe from deid.dicom.filter import apply_filter from deid.logger import bot @@ -111,10 +112,7 @@ def _has_burned_pixels_single(dicom_file, force: bool, deid): ] } """ - if isinstance(dicom_file, FileDataset): - dicom = dicom_file - else: - dicom = read_file(dicom_file, force=force) + dicom = utils.load_dicom(dicom_file, force=force) # Return list with lookup as dicom_file results = [] diff --git a/deid/dicom/tags.py b/deid/dicom/tags.py index 4e3d79e..287c499 100644 --- a/deid/dicom/tags.py +++ b/deid/dicom/tags.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" import re @@ -123,7 +123,7 @@ def update_tag(dicom, field, value): Parameters ========== - dicom: the pydicom.dataset Dataset (pydicom.read_file) + dicom: the pydicom.dataset Dataset field: the name of the field to update value: the value to set, if name is a valid tag @@ -157,7 +157,7 @@ def get_private(dicom): Parameters ========== - dicom: the pydicom.dataset Dataset (pydicom.read_file) + dicom: the pydicom.dataset Dataset """ datasets = [dicom] private_tags = [] @@ -188,7 +188,7 @@ def has_private(dicom): Parameters ========== - dicom: the pydicom.dataset Dataset (pydicom.read_file) + dicom: the pydicom.dataset Dataset """ private_tags = len(get_private(dicom)) diff --git a/deid/dicom/utils.py b/deid/dicom/utils.py index afc9524..8e7fe71 100644 --- a/deid/dicom/utils.py +++ b/deid/dicom/utils.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" import os @@ -106,8 +106,12 @@ def save_dicom(dicom, dicom_file, output_folder=None, overwrite=False): return output_dicom -def load_dicom(dcm_file): +def load_dicom(dcm_file, force=True): if isinstance(dcm_file, FileDataset): return dcm_file else: - return pydicom.read_file(dcm_file, force=True) + return pydicom.dcmread(dcm_file, force=force) + + +def dcmread(filename, **kwargs): + return pydicom.dcmread(filename, **kwargs) diff --git a/deid/dicom/validate.py b/deid/dicom/validate.py index 2e298eb..c59c213 100644 --- a/deid/dicom/validate.py +++ b/deid/dicom/validate.py @@ -1,9 +1,8 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" -from pydicom import read_file - +import deid.dicom.utils as utils from deid.logger import bot @@ -28,7 +27,7 @@ def validate_dicoms(dcm_files, force=False): for dcm_file in dcm_files: try: with open(dcm_file, "rb") as filey: - read_file(filey, force=force) + utils.dcmread(filey, force=force) valids.append(dcm_file) except Exception: bot.warning("Cannot read input file {0!s}, skipping.".format(dcm_file)) diff --git a/deid/logger/message.py b/deid/logger/message.py index f7ce695..3dc4996 100644 --- a/deid/logger/message.py +++ b/deid/logger/message.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" diff --git a/deid/main/__init__.py b/deid/main/__init__.py index ac39852..bf6cc1a 100644 --- a/deid/main/__init__.py +++ b/deid/main/__init__.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" import argparse diff --git a/deid/main/identifiers.py b/deid/main/identifiers.py index 9fa00ec..00e3fe8 100644 --- a/deid/main/identifiers.py +++ b/deid/main/identifiers.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" diff --git a/deid/main/inspect.py b/deid/main/inspect.py index 427bc20..2ec0d14 100644 --- a/deid/main/inspect.py +++ b/deid/main/inspect.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" import datetime diff --git a/deid/tests/Xtest_dicom_header.py b/deid/tests/Xtest_dicom_header.py index 77260d3..841c60c 100644 --- a/deid/tests/Xtest_dicom_header.py +++ b/deid/tests/Xtest_dicom_header.py @@ -1,16 +1,12 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - - import os import shutil import tempfile import unittest from deid.data import get_dataset +from deid.dicom import utils from deid.utils import get_installdir @@ -47,7 +43,6 @@ def test_get_identifiers(self): def test_replace_identifiers(self): print("Testing deid.dicom replace_identifiers") - from pydicom import read_file from deid.dicom import get_identifiers, replace_identifiers @@ -55,7 +50,7 @@ def test_replace_identifiers(self): ids = get_identifiers(dicom_files) # Before blanking, 28 fields don't have blanks - notblanked = read_file(dicom_files[0]) + notblanked = utils.dcmread(dicom_files[0]) notblanked_fields = [ x for x in notblanked.dir() if notblanked.get(x) != "" ] # 28 @@ -64,21 +59,20 @@ def test_replace_identifiers(self): 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 = utils.dcmread(updated_files[0]) blanked_fields = [x for x in blanked.dir() if blanked.get(x) != ""] self.assertTrue(len(blanked_fields) == 9) 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)) + return utils.dcmread(next(dicom_files)) if __name__ == "__main__": diff --git a/deid/tests/common.py b/deid/tests/common.py index 86ab790..d30e72f 100644 --- a/deid/tests/common.py +++ b/deid/tests/common.py @@ -1,16 +1,13 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" +from deid.config import DeidRecipe +from deid.dicom import get_files, utils def create_recipe(actions, fields=None, values=None): """ Helper method to create a recipe file """ - from deid.config import DeidRecipe - recipe = DeidRecipe() # .clear() only supported Python 3.3 and after @@ -30,20 +27,14 @@ def get_dicom(dataset): """ helper function to load a dicom """ - from pydicom import read_file - - from deid.dicom import get_files - dicom_files = get_files(dataset) - return read_file(next(dicom_files)) + return utils.dcmread(next(dicom_files)) def get_same_file(dataset): """ get a consistent dicom file """ - from deid.dicom import get_files - dicom_files = list(get_files(dataset)) return dicom_files[0] @@ -52,7 +43,5 @@ def get_file(dataset): """ get a dicom file """ - from deid.dicom import get_files - dicom_files = get_files(dataset) return next(dicom_files) diff --git a/deid/tests/test_action_interaction.py b/deid/tests/test_action_interaction.py index f25f6f1..08d98c9 100644 --- a/deid/tests/test_action_interaction.py +++ b/deid/tests/test_action_interaction.py @@ -1,18 +1,12 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import os import shutil import tempfile import unittest -from pydicom import read_file - from deid.data import get_dataset -from deid.dicom import replace_identifiers +from deid.dicom import replace_identifiers, utils from deid.tests.common import create_recipe, get_file from deid.utils import get_installdir @@ -54,7 +48,7 @@ def test_add_add_should_have_second_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) with self.assertRaises(KeyError): inputfile[field].value @@ -66,7 +60,7 @@ def test_add_add_should_have_second_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(value2, outputfile[field].value) @@ -92,7 +86,7 @@ def test_add_blank_should_be_blank(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(1, currentValue) @@ -106,7 +100,7 @@ def test_add_blank_should_be_blank(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(None, outputfile[field].value) @@ -135,7 +129,7 @@ def test_add_jitter_should_combine(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(value1, currentValue) @@ -149,7 +143,7 @@ def test_add_jitter_should_combine(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -177,7 +171,7 @@ def test_add_keep_should_have_add_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(value1, currentValue) @@ -191,7 +185,7 @@ def test_add_keep_should_have_add_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -220,7 +214,7 @@ def test_add_replace_should_have_replace_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(value1, currentValue) @@ -234,7 +228,7 @@ def test_add_replace_should_have_replace_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -260,7 +254,7 @@ def test_add_remove_should_be_removed(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(value1, currentValue) @@ -273,7 +267,7 @@ def test_add_remove_should_be_removed(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) with self.assertRaises(KeyError): _ = outputfile[field].value @@ -302,7 +296,7 @@ def test_blank_add_should_have_add_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(None, currentValue) @@ -317,7 +311,7 @@ def test_blank_add_should_have_add_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -344,7 +338,7 @@ def test_blank_blank_should_be_blank(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(None, currentValue) @@ -359,7 +353,7 @@ def test_blank_blank_should_be_blank(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -387,7 +381,7 @@ def test_blank_jitter_should_be_blank(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(None, currentValue) @@ -402,7 +396,7 @@ def test_blank_jitter_should_be_blank(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -426,7 +420,7 @@ def test_blank_keep_should_be_original_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value valueexpected = currentValue @@ -442,7 +436,7 @@ def test_blank_keep_should_be_original_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -470,7 +464,7 @@ def test_blank_replace_should_be_replace_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(None, currentValue) @@ -485,7 +479,7 @@ def test_blank_replace_should_be_replace_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -509,7 +503,7 @@ def test_blank_remove_should_be_removed(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(None, currentValue) @@ -523,7 +517,7 @@ def test_blank_remove_should_be_removed(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) with self.assertRaises(KeyError): _ = outputfile[field].value @@ -553,7 +547,7 @@ def test_jitter_add_should_have_add_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(valueexpected, currentValue) @@ -567,7 +561,7 @@ def test_jitter_add_should_have_add_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -595,7 +589,7 @@ def test_jitter_blank_should_be_blank(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(None, currentValue) @@ -609,7 +603,7 @@ def test_jitter_blank_should_be_blank(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -638,7 +632,7 @@ def test_jitter_jitter_should_combine(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(valueexpected, currentValue) @@ -652,7 +646,7 @@ def test_jitter_jitter_should_combine(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -678,7 +672,7 @@ def test_jitter_keep_should_be_original_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value valueexpected = currentValue @@ -693,7 +687,7 @@ def test_jitter_keep_should_be_original_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -722,7 +716,7 @@ def test_jitter_replace_should_have_replace_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(valueexpected, currentValue) @@ -736,7 +730,7 @@ def test_jitter_replace_should_have_replace_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -763,7 +757,7 @@ def test_jitter_remove_should_ignore_remove(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertEqual("20230101", currentValue) @@ -776,7 +770,7 @@ def test_jitter_remove_should_ignore_remove(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -804,7 +798,7 @@ def test_keep_add_should_be_add_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(None, currentValue) @@ -819,7 +813,7 @@ def test_keep_add_should_be_add_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -843,7 +837,7 @@ def test_keep_blank_should_be_original_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value valueexpected = currentValue @@ -858,7 +852,7 @@ def test_keep_blank_should_be_original_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -884,7 +878,7 @@ def test_keep_jitter_should_be_original_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value valueexpected = currentValue @@ -899,7 +893,7 @@ def test_keep_jitter_should_be_original_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -924,7 +918,7 @@ def test_keep_keep_should_be_original_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value valueexpected = currentValue @@ -940,7 +934,7 @@ def test_keep_keep_should_be_original_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -966,7 +960,7 @@ def test_keep_replace_should_be_original_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value valueexpected = currentValue @@ -981,7 +975,7 @@ def test_keep_replace_should_be_original_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -1005,7 +999,7 @@ def test_keep_remove_should_be_original_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value valueexpected = currentValue @@ -1020,7 +1014,7 @@ def test_keep_remove_should_be_original_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -1049,7 +1043,7 @@ def test_replace_add_should_have_add_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(valueexpected, currentValue) @@ -1061,7 +1055,7 @@ def test_replace_add_should_have_add_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -1087,7 +1081,7 @@ def test_replace_blank_should_be_blank(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(value1, currentValue) @@ -1102,7 +1096,7 @@ def test_replace_blank_should_be_blank(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual("", outputfile[field].value) @@ -1131,7 +1125,7 @@ def test_replace_jitter_should_combine(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(value1, currentValue) @@ -1145,7 +1139,7 @@ def test_replace_jitter_should_combine(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -1171,7 +1165,7 @@ def test_replace_keep_should_have_original_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value valueexpected = currentValue @@ -1185,7 +1179,7 @@ def test_replace_keep_should_have_original_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -1214,7 +1208,7 @@ def test_replace_replace_should_have_second_replace_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(value1, currentValue) @@ -1228,7 +1222,7 @@ def test_replace_replace_should_have_second_replace_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -1254,7 +1248,7 @@ def test_replace_remove_should_be_replace_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(value1, currentValue) @@ -1267,7 +1261,7 @@ def test_replace_remove_should_be_replace_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(value1, outputfile[field].value) @@ -1295,7 +1289,7 @@ def test_remove_add_should_be_add_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(None, currentValue) @@ -1310,7 +1304,7 @@ def test_remove_add_should_be_add_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -1334,7 +1328,7 @@ def test_remove_blank_should_be_removed(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(None, currentValue) @@ -1348,7 +1342,7 @@ def test_remove_blank_should_be_removed(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) with self.assertRaises(KeyError): _ = outputfile[field].value @@ -1375,7 +1369,7 @@ def test_remove_jitter_should_jittered_date(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(None, currentValue) @@ -1389,7 +1383,7 @@ def test_remove_jitter_should_jittered_date(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual("20230102", outputfile[field].value) @@ -1413,7 +1407,7 @@ def test_remove_keep_should_be_original_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value valueexpected = currentValue @@ -1429,7 +1423,7 @@ def test_remove_keep_should_be_original_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -1456,7 +1450,7 @@ def test_remove_replace_should_be_replace_value(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(None, currentValue) @@ -1470,7 +1464,7 @@ def test_remove_replace_should_be_replace_value(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(valueexpected, outputfile[field].value) @@ -1495,7 +1489,7 @@ def test_remove_remove_should_remove(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertNotEqual(None, currentValue) @@ -1509,7 +1503,7 @@ def test_remove_remove_should_remove(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) with self.assertRaises(KeyError): _ = outputfile[field].value diff --git a/deid/tests/test_blank_action.py b/deid/tests/test_blank_action.py index 4b7639a..52b407d 100644 --- a/deid/tests/test_blank_action.py +++ b/deid/tests/test_blank_action.py @@ -1,18 +1,12 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import os import shutil import tempfile import unittest -from pydicom import read_file - from deid.data import get_dataset -from deid.dicom import replace_identifiers +from deid.dicom import replace_identifiers, utils from deid.tests.common import create_recipe, get_file from deid.utils import get_installdir @@ -40,7 +34,7 @@ def run_blank_test(self, VR, Field, Expected): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[Field].value currentVR = inputfile[Field].VR @@ -56,7 +50,7 @@ def run_blank_test(self, VR, Field, Expected): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(Expected, outputfile[Field].value) diff --git a/deid/tests/test_clean.py b/deid/tests/test_clean.py index 4795d86..7f4dd22 100644 --- a/deid/tests/test_clean.py +++ b/deid/tests/test_clean.py @@ -1,21 +1,14 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - - import os import shutil import tempfile import unittest from copy import deepcopy -import pydicom -from pydicom import read_file - from deid.config import DeidRecipe from deid.data import get_dataset +from deid.dicom import utils from deid.dicom.pixels import clean_pixel_data, has_burned_pixels from deid.tests.common import get_file from deid.utils import get_installdir @@ -49,10 +42,10 @@ def test_pixel_cleaner_remove_coordinates(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) @@ -63,7 +56,7 @@ def test_pixel_cleaner_remove_coordinates(self): def test_pixel_cleaner_remove_coordinates_dicom_file(self): """Test the pixel cleaner to ensure it appropriately clears specified pixels.""" - dicom_file_data = pydicom.read_file(get_file(self.dataset)) + dicom_file_data = utils.dcmread(get_file(self.dataset)) inputpixels = deepcopy(dicom_file_data.pixel_array) deid_path = os.path.join(self.deidpath, "remove_coordinates.dicom") @@ -95,10 +88,10 @@ def test_pixel_cleaner_remove_all(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) @@ -121,10 +114,10 @@ def test_pixel_cleaner_keepcoordinates_noaction(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertTrue(compare.all()) @@ -143,10 +136,10 @@ def test_pixel_cleaner_keepcoordinates(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) @@ -168,10 +161,10 @@ def test_pixel_cleaner_remove_multiple(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) @@ -195,10 +188,10 @@ def test_pixel_cleaner_remove_multiple_filters(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) @@ -222,10 +215,10 @@ def test_pixel_cleaner_keepcoordinates_from(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) diff --git a/deid/tests/test_clean_pixel_dimensions.py b/deid/tests/test_clean_pixel_dimensions.py index 9ddc975..2c7993a 100644 --- a/deid/tests/test_clean_pixel_dimensions.py +++ b/deid/tests/test_clean_pixel_dimensions.py @@ -1,18 +1,12 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - - import os import shutil import tempfile import unittest -from pydicom import read_file - from deid.data import get_dataset +from deid.dicom import utils from deid.utils import get_installdir @@ -45,10 +39,10 @@ def test_4d_RGB_cine_clip(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) @@ -74,10 +68,10 @@ def test_3d_Greyscale_cine_clip(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) @@ -103,10 +97,10 @@ def test_3d_RGB_image(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) @@ -132,10 +126,10 @@ def test_2d_Greyscale_image(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) @@ -161,10 +155,10 @@ def test_4d_RGB_cine_clip_all(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) @@ -190,10 +184,10 @@ def test_3d_Greyscale_cine_clip_all(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) @@ -219,10 +213,10 @@ def test_3d_RGB_image_all(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) @@ -248,10 +242,10 @@ def test_2d_Greyscale_image_all(self): client.clean() cleanedfile = client.save_dicom() - outputfile = read_file(cleanedfile) + outputfile = utils.dcmread(cleanedfile) outputpixels = outputfile.pixel_array - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) inputpixels = inputfile.pixel_array compare = inputpixels == outputpixels self.assertFalse(compare.all()) diff --git a/deid/tests/test_config.py b/deid/tests/test_config.py index 51dba8c..5c88851 100644 --- a/deid/tests/test_config.py +++ b/deid/tests/test_config.py @@ -1,9 +1,5 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import os import shutil import tempfile diff --git a/deid/tests/test_data.py b/deid/tests/test_data.py index dfb58c0..337558f 100644 --- a/deid/tests/test_data.py +++ b/deid/tests/test_data.py @@ -1,9 +1,5 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import os import unittest diff --git a/deid/tests/test_deid_recipe.py b/deid/tests/test_deid_recipe.py index 9a9c43f..49fa637 100644 --- a/deid/tests/test_deid_recipe.py +++ b/deid/tests/test_deid_recipe.py @@ -1,10 +1,5 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - - import os import shutil import tempfile diff --git a/deid/tests/test_dicom_fields.py b/deid/tests/test_dicom_fields.py index 7f2ff4b..91b1245 100644 --- a/deid/tests/test_dicom_fields.py +++ b/deid/tests/test_dicom_fields.py @@ -1,9 +1,5 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import os import shutil import tempfile diff --git a/deid/tests/test_dicom_funcs.py b/deid/tests/test_dicom_funcs.py index accb025..2ce00fb 100644 --- a/deid/tests/test_dicom_funcs.py +++ b/deid/tests/test_dicom_funcs.py @@ -1,10 +1,5 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - - import re import shutil import tempfile diff --git a/deid/tests/test_dicom_groups.py b/deid/tests/test_dicom_groups.py index 2e2b40d..a338751 100644 --- a/deid/tests/test_dicom_groups.py +++ b/deid/tests/test_dicom_groups.py @@ -1,10 +1,5 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - - import os import shutil import tempfile diff --git a/deid/tests/test_dicom_tags.py b/deid/tests/test_dicom_tags.py index e7ec023..b632f13 100644 --- a/deid/tests/test_dicom_tags.py +++ b/deid/tests/test_dicom_tags.py @@ -1,7 +1,3 @@ -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import os import shutil import tempfile diff --git a/deid/tests/test_dicom_utils.py b/deid/tests/test_dicom_utils.py index 2829e3a..e89d2a9 100644 --- a/deid/tests/test_dicom_utils.py +++ b/deid/tests/test_dicom_utils.py @@ -1,10 +1,5 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - - import os import shutil import tempfile diff --git a/deid/tests/test_file_meta.py b/deid/tests/test_file_meta.py index 4c46573..581ce91 100644 --- a/deid/tests/test_file_meta.py +++ b/deid/tests/test_file_meta.py @@ -1,9 +1,5 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import unittest from deid.data import get_dataset diff --git a/deid/tests/test_filter_detect.py b/deid/tests/test_filter_detect.py index 06a882a..ff8c5f8 100644 --- a/deid/tests/test_filter_detect.py +++ b/deid/tests/test_filter_detect.py @@ -1,7 +1,4 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" import os import shutil diff --git a/deid/tests/test_replace_action.py b/deid/tests/test_replace_action.py index 5ca74d1..c41e030 100644 --- a/deid/tests/test_replace_action.py +++ b/deid/tests/test_replace_action.py @@ -1,18 +1,12 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import os import shutil import tempfile import unittest -from pydicom import read_file - from deid.data import get_dataset -from deid.dicom import replace_identifiers +from deid.dicom import replace_identifiers, utils from deid.tests.common import create_recipe, get_file from deid.utils import get_installdir @@ -43,7 +37,7 @@ def run_replace_test(self, VR, Field, newValue, expected=None): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[Field].value currentVR = inputfile[Field].VR @@ -58,7 +52,7 @@ def run_replace_test(self, VR, Field, newValue, expected=None): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(expected, outputfile[Field].value) diff --git a/deid/tests/test_replace_identifiers.py b/deid/tests/test_replace_identifiers.py index e8717e3..03d7b48 100644 --- a/deid/tests/test_replace_identifiers.py +++ b/deid/tests/test_replace_identifiers.py @@ -1,20 +1,15 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import os import shutil import tempfile import unittest from collections import OrderedDict -from pydicom import read_file from pydicom.sequence import Sequence from deid.data import get_dataset -from deid.dicom import get_files, get_identifiers, replace_identifiers +from deid.dicom import get_files, get_identifiers, replace_identifiers, utils from deid.dicom.parser import DicomParser from deid.tests.common import create_recipe from deid.utils import get_installdir @@ -72,7 +67,7 @@ def test_add_private_constant_save_true(self): strip_sequences=False, output_folder=self.tmpdir, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual("SIMPSON", outputfile["11112221"].value) @@ -118,7 +113,7 @@ def test_replace_with_constant(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) field1 = inputfile[newfield1].value field2 = inputfile[newfield2].value @@ -155,7 +150,7 @@ def test_jitter_replace_compounding(self): ] recipe = create_recipe(actions) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[newfield1].value self.assertNotEqual(newvalue1, currentValue) @@ -168,7 +163,7 @@ def test_jitter_replace_compounding(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual(newvalue1, outputfile[newfield1].value) @@ -280,7 +275,7 @@ def test_add_tag_variable_save_true(self): strip_sequences=False, output_folder=self.tmpdir, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual("SIMPSON", outputfile["11112221"].value) self.assertEqual("SIMPSON", outputfile["PatientIdentityRemoved"].value) @@ -515,8 +510,8 @@ def test_fieldset_remove_private(self): parser = DicomParser(dicom_file, recipe=recipe) parser.parse() - self.assertTrue("(0009, 0010)" in parser.lookup["field_set2_private"]) - self.assertTrue("(0010, 0020)" in parser.lookup["field_set2_private"]) + self.assertTrue("(0009,0010)" in parser.lookup["field_set2_private"]) + self.assertTrue("(0010,0020)" in parser.lookup["field_set2_private"]) self.assertEqual(176, len(parser.dicom)) self.assertEqual("SIEMENS CT VA0 COAD", parser.dicom["00190010"].value) @@ -589,7 +584,7 @@ def test_tag_expanders_midtag(self): recipe = create_recipe(actions) # Ensure tag is present before removal - dicom = read_file(dicom_file) + dicom = utils.dcmread(dicom_file) assert "0008103e" in dicom result = replace_identifiers( diff --git a/deid/tests/test_sequence_blank.py b/deid/tests/test_sequence_blank.py index 06d1233..ab4086d 100644 --- a/deid/tests/test_sequence_blank.py +++ b/deid/tests/test_sequence_blank.py @@ -1,18 +1,12 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import os import shutil import tempfile import unittest -from pydicom import read_file - from deid.data import get_dataset -from deid.dicom import get_files, replace_identifiers +from deid.dicom import get_files, replace_identifiers, utils from deid.tests.common import create_recipe from deid.utils import get_installdir @@ -37,7 +31,7 @@ def test_blank_single_named_field(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "BLANK", "field": field}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertIsNotNone(currentValue) @@ -49,7 +43,7 @@ def test_blank_single_named_field(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual("", outputfile[field].value) @@ -59,7 +53,7 @@ def test_blank_single_tag_field(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "BLANK", "field": field}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertIsNotNone(currentValue) @@ -71,7 +65,7 @@ def test_blank_single_tag_field(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual("", outputfile[field].value) @@ -81,7 +75,7 @@ def test_blank_one_level_one_occurrence(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "BLANK", "field": field}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentparent = inputfile["00070001"] self.assertEqual(currentparent.VR, "SQ") @@ -99,7 +93,7 @@ def test_blank_one_level_one_occurrence(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["00070001"] @@ -114,7 +108,7 @@ def test_blank_one_level_multiple_occurrences(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "BLANK", "field": field}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentparent = inputfile["00070002"] self.assertEqual(currentparent.VR, "SQ") @@ -130,7 +124,7 @@ def test_blank_one_level_multiple_occurrences(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["00070002"] @@ -145,7 +139,7 @@ def test_blank_multiple_levels_multiple_occurrences(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "BLANK", "field": field}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) level1parent = inputfile["00070003"] self.assertEqual(level1parent.VR, "SQ") @@ -166,7 +160,7 @@ def test_blank_multiple_levels_multiple_occurrences(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["00070003"] @@ -187,7 +181,7 @@ def test_blank_nested_named_field(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "BLANK", "field": field}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertIsNotNone(currentValue) @@ -206,7 +200,7 @@ def test_blank_nested_named_field(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["RequestAttributesSequence"] diff --git a/deid/tests/test_sequence_jitter.py b/deid/tests/test_sequence_jitter.py index 8460ebd..458835a 100644 --- a/deid/tests/test_sequence_jitter.py +++ b/deid/tests/test_sequence_jitter.py @@ -1,18 +1,12 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import os import shutil import tempfile import unittest -from pydicom import read_file - from deid.data import get_dataset -from deid.dicom import get_files, replace_identifiers +from deid.dicom import get_files, replace_identifiers, utils from deid.tests.common import create_recipe from deid.utils import get_installdir @@ -37,7 +31,7 @@ def test_jitter_single_named_field(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "JITTER", "field": field, "value": "1"}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertIsNotNone(currentValue) @@ -49,7 +43,7 @@ def test_jitter_single_named_field(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual("20230102", outputfile[field].value) @@ -59,7 +53,7 @@ def test_jitter_single_tag_field(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "JITTER", "field": field, "value": "1"}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertIsNotNone(currentValue) @@ -71,7 +65,7 @@ def test_jitter_single_tag_field(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual("20260318", outputfile[field].value) @@ -81,7 +75,7 @@ def test_jitter_one_level_one_occurrence(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "JITTER", "field": field, "value": "1"}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentparent = inputfile["00070011"] self.assertEqual(currentparent.VR, "SQ") @@ -99,7 +93,7 @@ def test_jitter_one_level_one_occurrence(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["00070011"] @@ -114,7 +108,7 @@ def test_jitter_one_level_multiple_occurrences(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "JITTER", "field": field, "value": "1"}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentparent = inputfile["00070012"] self.assertEqual(currentparent.VR, "SQ") @@ -130,7 +124,7 @@ def test_jitter_one_level_multiple_occurrences(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["00070012"] @@ -145,7 +139,7 @@ def test_jitter_multiple_levels_multiple_occurrences(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "JITTER", "field": field, "value": "1"}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) level1parent = inputfile["00070013"] self.assertEqual(level1parent.VR, "SQ") @@ -166,7 +160,7 @@ def test_jitter_multiple_levels_multiple_occurrences(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["00070013"] diff --git a/deid/tests/test_sequence_remove.py b/deid/tests/test_sequence_remove.py index 9fc9f00..ee83021 100644 --- a/deid/tests/test_sequence_remove.py +++ b/deid/tests/test_sequence_remove.py @@ -1,18 +1,12 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import os import shutil import tempfile import unittest -from pydicom import read_file - from deid.data import get_dataset -from deid.dicom import get_files, replace_identifiers +from deid.dicom import get_files, replace_identifiers, utils from deid.tests.common import create_recipe from deid.utils import get_installdir @@ -37,7 +31,7 @@ def test_remove_single_named_field(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "REMOVE", "field": field}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertIsNotNone(currentValue) @@ -49,7 +43,7 @@ def test_remove_single_named_field(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) with self.assertRaises(KeyError): _ = outputfile[field].value @@ -60,7 +54,7 @@ def test_remove_single_tag_field(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "REMOVE", "field": field}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertIsNotNone(currentValue) @@ -72,7 +66,7 @@ def test_remove_single_tag_field(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) with self.assertRaises(KeyError): _ = outputfile[field].value @@ -83,7 +77,7 @@ def test_remove_one_level_one_occurrence(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "REMOVE", "field": field}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentparent = inputfile["00070001"] self.assertEqual(currentparent.VR, "SQ") @@ -101,7 +95,7 @@ def test_remove_one_level_one_occurrence(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["00070001"] @@ -117,7 +111,7 @@ def test_remove_one_level_multiple_occurrences(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "REMOVE", "field": field}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentparent = inputfile["00070002"] self.assertEqual(currentparent.VR, "SQ") @@ -133,7 +127,7 @@ def test_remove_one_level_multiple_occurrences(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["00070002"] @@ -149,7 +143,7 @@ def test_remove_multiple_levels_multiple_occurrences(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "REMOVE", "field": field}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) level1parent = inputfile["00070003"] self.assertEqual(level1parent.VR, "SQ") @@ -170,7 +164,7 @@ def test_remove_multiple_levels_multiple_occurrences(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["00070003"] @@ -192,7 +186,7 @@ def test_remove_nested_named_field(self): dicom_file = next(get_files(self.dataset, pattern="ctbrain2.dcm")) recipe = create_recipe([{"action": "REMOVE", "field": field}]) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertIsNotNone(currentValue) @@ -211,7 +205,7 @@ def test_remove_nested_named_field(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["RequestAttributesSequence"] diff --git a/deid/tests/test_sequence_replace.py b/deid/tests/test_sequence_replace.py index 09188a3..e9ff9ed 100644 --- a/deid/tests/test_sequence_replace.py +++ b/deid/tests/test_sequence_replace.py @@ -1,18 +1,12 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import os import shutil import tempfile import unittest -from pydicom import read_file - from deid.data import get_dataset -from deid.dicom import get_files, replace_identifiers +from deid.dicom import get_files, replace_identifiers, utils from deid.tests.common import create_recipe from deid.utils import get_installdir @@ -39,7 +33,7 @@ def test_replace_single_named_field(self): [{"action": "REPLACE", "field": field, "value": "ReplacementValue"}] ) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertIsNotNone(currentValue) @@ -51,7 +45,7 @@ def test_replace_single_named_field(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual("ReplacementValue", outputfile[field].value) @@ -63,7 +57,7 @@ def test_replace_single_tag_field(self): [{"action": "REPLACE", "field": field, "value": "ReplacementValue"}] ) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertIsNotNone(currentValue) @@ -75,7 +69,7 @@ def test_replace_single_tag_field(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) self.assertEqual("ReplacementValue", outputfile[field].value) @@ -87,7 +81,7 @@ def test_replace_one_level_one_occurrence(self): [{"action": "REPLACE", "field": field, "value": "ReplacementValue"}] ) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentparent = inputfile["00070001"] self.assertEqual(currentparent.VR, "SQ") @@ -105,7 +99,7 @@ def test_replace_one_level_one_occurrence(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["00070001"] @@ -122,7 +116,7 @@ def test_replace_one_level_multiple_occurrences(self): [{"action": "REPLACE", "field": field, "value": "ReplacementValue"}] ) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentparent = inputfile["00070002"] self.assertEqual(currentparent.VR, "SQ") @@ -138,7 +132,7 @@ def test_replace_one_level_multiple_occurrences(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["00070002"] @@ -155,7 +149,7 @@ def test_replace_multiple_levels_multiple_occurrences(self): [{"action": "REPLACE", "field": field, "value": "ReplacementValue"}] ) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) level1parent = inputfile["00070003"] self.assertEqual(level1parent.VR, "SQ") @@ -176,7 +170,7 @@ def test_replace_multiple_levels_multiple_occurrences(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["00070003"] @@ -199,7 +193,7 @@ def test_replace_nested_named_field(self): [{"action": "REPLACE", "field": field, "value": "ReplacementValue"}] ) - inputfile = read_file(dicom_file) + inputfile = utils.dcmread(dicom_file) currentValue = inputfile[field].value self.assertIsNotNone(currentValue) @@ -218,7 +212,7 @@ def test_replace_nested_named_field(self): strip_sequences=False, ) - outputfile = read_file(result[0]) + outputfile = utils.dcmread(result[0]) self.assertEqual(1, len(result)) outputparent = outputfile["RequestAttributesSequence"] diff --git a/deid/tests/test_utils.py b/deid/tests/test_utils.py index 9110bd4..20b26c1 100644 --- a/deid/tests/test_utils.py +++ b/deid/tests/test_utils.py @@ -1,9 +1,5 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import json import os import shutil diff --git a/deid/tests/test_utils_files.py b/deid/tests/test_utils_files.py index e9ad841..29af41f 100644 --- a/deid/tests/test_utils_files.py +++ b/deid/tests/test_utils_files.py @@ -1,9 +1,5 @@ #!/usr/bin/env python -__author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" -__license__ = "MIT" - import os import shutil import tempfile diff --git a/deid/utils/actions.py b/deid/utils/actions.py index 7fb38e8..0c642c0 100644 --- a/deid/utils/actions.py +++ b/deid/utils/actions.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" import re diff --git a/deid/utils/fileio.py b/deid/utils/fileio.py index 7ba4e98..32de4fd 100644 --- a/deid/utils/fileio.py +++ b/deid/utils/fileio.py @@ -1,5 +1,5 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" import fnmatch diff --git a/deid/version.py b/deid/version.py index 6cc800b..92c2309 100644 --- a/deid/version.py +++ b/deid/version.py @@ -1,8 +1,8 @@ __author__ = "Vanessa Sochat" -__copyright__ = "Copyright 2016-2023, Vanessa Sochat" +__copyright__ = "Copyright 2016-2025, Vanessa Sochat" __license__ = "MIT" -__version__ = "0.3.25" +__version__ = "0.4.0" AUTHOR = "Vanessa Sochat" AUTHOR_EMAIL = "vsoch@users.noreply.github.com" NAME = "deid" @@ -14,6 +14,6 @@ INSTALL_REQUIRES = ( "matplotlib", "numpy>=1.20", - "pydicom>=2.2.2,<3.0.0", + "pydicom>=3.0.0,<4.0.0", "python-dateutil", ) diff --git a/setup.py b/setup.py index 5d21d12..2191923 100644 --- a/setup.py +++ b/setup.py @@ -83,7 +83,7 @@ def get_requirements(lookup=None): "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "Topic :: Software Development", "Topic :: Scientific/Engineering", "Topic :: System :: Shells",