Skip to content

Fails to anonymize instances when Mitra Global Patient ID VR is OB #175

@blairconrad

Description

@blairconrad

Sometimes instances have bad VRs for the Mitra Global Patient ID: OB.
In this case, dicognito fails to anonymize because it can't concatenate the seed value (a string) with the binary value:

…
  File "D:\Users\amidu\AppData\Roaming\uv\tools\dicognito\Lib\site-packages\dicognito\idanonymizer.py", line 69, in __call__
    if self._anonymize_mitra_global_patient_id(dataset, data_element):
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Users\amidu\AppData\Roaming\uv\tools\dicognito\Lib\site-packages\dicognito\idanonymizer.py", line 104, in _anonymize_mitra_global_patient_id
    self._replace_id(data_element)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "D:\Users\amidu\AppData\Roaming\uv\tools\dicognito\Lib\site-packages\dicognito\idanonymizer.py", line 112, in _replace_id
    data_element.value = self._new_id(data_element.value)
                         ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "D:\Users\amidu\AppData\Roaming\uv\tools\dicognito\Lib\site-packages\dicognito\idanonymizer.py", line 115, in _new_id
    indexes = self.randomizer.get_ints_from_ranges(original_value, *self._indices_for_randomizer)
  File "D:\Users\amidu\AppData\Roaming\uv\tools\dicognito\Lib\site-packages\dicognito\randomizer.py", line 68, in get_ints_from_ranges
    big_int = self.to_int(original_value)
  File "D:\Users\amidu\AppData\Roaming\uv\tools\dicognito\Lib\site-packages\dicognito\randomizer.py", line 43, in to_int
    message = self.seed + original_value
              ~~~~~~~~~~^~~~~~~~~~~~~~~~
TypeError: can only concatenate str (not "bytes") to str
module version
platform Windows-10-10.0.19045-SP0
Python 3.13.0 (main, Oct 7 2024, 23:43:56) [MSC v.1929 64 bit (AMD64)]
dicognito 0.18.0
pydicom 3.0.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions