dicom-dre 1.1.0.dev2__tar.gz → 1.1.1.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (586) hide show
  1. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.github/dependabot.yml +1 -1
  2. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.github/workflows/ci.yml +3 -0
  3. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.github/workflows/deploy.yml +11 -2
  4. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.github/workflows/docs.yml +3 -1
  5. dicom_dre-1.1.1.dev1/.github/workflows/fuzz.yml +84 -0
  6. dicom_dre-1.1.1.dev1/.github/workflows/scorecard-analysis.yml +56 -0
  7. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.github/workflows/tests.yml +12 -0
  8. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.gitignore +6 -0
  9. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/CHANGELOG.md +6 -1
  10. dicom_dre-1.1.1.dev1/PKG-INFO +214 -0
  11. dicom_dre-1.1.1.dev1/README.md +189 -0
  12. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/index.md +0 -7
  13. dicom_dre-1.1.1.dev1/fuzz/corpus/fuzz_catalog_match/seed_regex.txt +1 -0
  14. dicom_dre-1.1.1.dev1/fuzz/corpus/fuzz_jpeg_dct/baseline.jpg +0 -0
  15. dicom_dre-1.1.1.dev1/fuzz/corpus/fuzz_jpeg_dct/crash-ac-runsize-infloop-e827ebbe +0 -0
  16. dicom_dre-1.1.1.dev1/fuzz/corpus/fuzz_jpeg_dct/crash-huffman-table-oob-c1bb2643 +0 -0
  17. dicom_dre-1.1.1.dev1/fuzz/corpus/fuzz_text_redactor/output.csv +3 -0
  18. dicom_dre-1.1.1.dev1/fuzz/corpus/fuzz_text_redactor/seed_pii.txt +3 -0
  19. dicom_dre-1.1.1.dev1/fuzz/fuzz_catalog_match.py +42 -0
  20. dicom_dre-1.1.1.dev1/fuzz/fuzz_jpeg_dct.py +47 -0
  21. dicom_dre-1.1.1.dev1/fuzz/fuzz_text_redactor.py +53 -0
  22. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/justfile +10 -0
  23. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/pyproject.toml +6 -1
  24. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/_jpeg_dct_accel_build.py +24 -3
  25. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/_version.py +2 -2
  26. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/jpeg_dct_scrubber.py +38 -6
  27. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/uid_utils.py +1 -1
  28. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_jpeg_dct_scrubber.py +166 -0
  29. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_scrub_region.py +28 -0
  30. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_text_redactor.py +38 -0
  31. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_uid_utils.py +46 -24
  32. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/uv.lock +42 -0
  33. dicom_dre-1.1.0.dev2/PKG-INFO +0 -290
  34. dicom_dre-1.1.0.dev2/README.md +0 -265
  35. dicom_dre-1.1.0.dev2/docs/notes/iso-2022-specific-character-set.md +0 -173
  36. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.devcontainer/devcontainer-lock.json +0 -0
  37. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.devcontainer/devcontainer.json +0 -0
  38. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.devcontainer/post-create.sh +0 -0
  39. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.gitattributes +0 -0
  40. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.github/copilot-instructions.md +0 -0
  41. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.github/instructions/dicom-io.instructions.md +0 -0
  42. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.github/instructions/docs.instructions.md +0 -0
  43. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.github/instructions/tests.instructions.md +0 -0
  44. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.github/skills/pr-template/SKILL.md +0 -0
  45. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.pre-commit-config.yaml +0 -0
  46. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.vscode/extensions.json +0 -0
  47. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/.vscode/settings.json +0 -0
  48. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/LICENSE +0 -0
  49. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/NOTICE +0 -0
  50. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/SECURITY.md +0 -0
  51. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/Makefile +0 -0
  52. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/_static/.gitkeep +0 -0
  53. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/about/changelog.md +0 -0
  54. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/about/history.md +0 -0
  55. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/about/limitations.md +0 -0
  56. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/about/testing.md +0 -0
  57. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/concepts/architecture.md +0 -0
  58. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/concepts/device-catalog.md +0 -0
  59. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/concepts/jpeg-dct.md +0 -0
  60. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/concepts/profiles.md +0 -0
  61. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/concepts/reproducibility.md +0 -0
  62. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/concepts/text-redaction.md +0 -0
  63. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/conf.py +0 -0
  64. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/getting-started/installation.md +0 -0
  65. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/getting-started/quickstart.md +0 -0
  66. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/guides/cli.md +0 -0
  67. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/guides/extending-the-catalog.md +0 -0
  68. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/guides/local-validation.md +0 -0
  69. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/guides/redactor.md +0 -0
  70. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/make.bat +0 -0
  71. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/docs/reference/api.md +0 -0
  72. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/hatch_build.py +0 -0
  73. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/__init__.py +0 -0
  74. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/actions.py +0 -0
  75. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/attributes.py +0 -0
  76. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/batch.py +0 -0
  77. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/catalog.py +0 -0
  78. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/cli.py +0 -0
  79. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/default_catalog.py +0 -0
  80. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/parameters.py +0 -0
  81. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/pipeline.py +0 -0
  82. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/pixel_blanker.py +0 -0
  83. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/profile.py +0 -0
  84. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/profiles/__init__.py +0 -0
  85. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/profiles/builder.py +0 -0
  86. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/profiles/config.py +0 -0
  87. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/profiles/default.py +0 -0
  88. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/profiles/lds.py +0 -0
  89. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/profiles/lds_no_dob.py +0 -0
  90. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/profiles/strict.py +0 -0
  91. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/py.typed +0 -0
  92. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/pydicom_config.py +0 -0
  93. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/resources/__init__.py +0 -0
  94. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/resources/allow_lists/__init__.py +0 -0
  95. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/resources/allow_lists/default.csv +0 -0
  96. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/result.py +0 -0
  97. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/salt.py +0 -0
  98. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/scrub_region.py +0 -0
  99. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/src/dicom_dre/text_redactor.py +0 -0
  100. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/conftest.py +0 -0
  101. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/__init__.py +0 -0
  102. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/cr/agfa/dxd40_1000c.json +0 -0
  103. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/ct/ge_medical_systems/discovery_ls.json +0 -0
  104. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/ct/ge_medical_systems/qx_i.json +0 -0
  105. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/ct/ge_medical_systems_ct/discovery_qx_i.json +0 -0
  106. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/ct/ge_medical_systems_mimvista/discovery_st.json +0 -0
  107. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/ct/mimvista_corp/unknown.json +0 -0
  108. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/ct/neurologica/ceretom.json +0 -0
  109. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/ct/neusoft/unknown.json +0 -0
  110. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/ct/philips/gemini.json +0 -0
  111. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/ct/siemens_mimvista/emotion_duo.json +0 -0
  112. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/dx/agfa/dx_g.json +0 -0
  113. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/ko/key_object_selection.json +0 -0
  114. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/carestream/classic_cr.json +0 -0
  115. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/fischer_imaging_corporation/senoscan_trueview.json +0 -0
  116. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/fujifilm_corporation/clearview_csm.json +0 -0
  117. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/fujifilm_corporation/fdr_1000aws.json +0 -0
  118. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/fujifilm_corporation/fdr_2000aws.json +0 -0
  119. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/ge_healthcare/senographe_pristina.json +0 -0
  120. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/ge_medical_systems/ads_1_0.json +0 -0
  121. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/ge_medical_systems/senograph_2000d_ads_17_2_3.json +0 -0
  122. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/ge_medical_systems/senographe_essential_ads_43_10_1.json +0 -0
  123. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/ge_medical_systems/senographe_essential_ads_56_21_3.json +0 -0
  124. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/ge_medical_systems/senographe_essential_dbt_reconstruction_box_01_10_3.json +0 -0
  125. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/ge_medical_systems/senographe_essential_dbt_reconstruction_box_01_10_4.json +0 -0
  126. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/hologic_inc/lorad_selenia.json +0 -0
  127. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/hologic_inc/selenia_dimensions.json +0 -0
  128. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/ims_s_r_l/giotto_image_3dl.json +0 -0
  129. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/kodak/classic_cr.json +0 -0
  130. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/kodak/elite_cr.json +0 -0
  131. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/lorad/hologic_selenia.json +0 -0
  132. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/lorad/lorad_selenia.json +0 -0
  133. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/lorad_a_hologic_company/dsm.json +0 -0
  134. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/mptronic_software/senographe_essential_ads_43_10_1.json +0 -0
  135. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/philips_digital_mammography_sweden_ab/l30.json +0 -0
  136. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/siemens/mammomat_inspiration.json +0 -0
  137. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/siemens/mammomat_novation_dr.json +0 -0
  138. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/siemens/mammomat_revelation.json +0 -0
  139. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mg/tmsc_fujitsu_ltd/mgu_1000d.json +0 -0
  140. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mr/ge_medical_systems/discovery_mr750.json +0 -0
  141. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mr/ge_medical_systems/signa_architect.json +0 -0
  142. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mr/ge_medical_systems/signa_hdxt.json +0 -0
  143. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mr/ge_medical_systems/signa_pet_mr.json +0 -0
  144. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mr/ge_medical_systems/signa_premier.json +0 -0
  145. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mr/hitachi_medical_corporation/oasis.json +0 -0
  146. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mr/merge_healthcare/cadstream_5_2_7_563.json +0 -0
  147. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mr/philips_medical_systems/ingenia.json +0 -0
  148. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mr/philips_medical_systems/intera.json +0 -0
  149. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mr/siemens/avanto.json +0 -0
  150. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mr/toshiba/titan.json +0 -0
  151. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/mr/toshiba_mec/mrt200pp3.json +0 -0
  152. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/nm/adac/atlantis.json +0 -0
  153. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/nm/segami/mirage.json +0 -0
  154. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/pr/gsps_annotated.json +0 -0
  155. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/pt/ge_medical_systems/qx_i.json +0 -0
  156. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/pt/ge_medical_systems/signa_pet_mr.json +0 -0
  157. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/pt/ge_medical_systems_pet/discovery_qx_i.json +0 -0
  158. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/pt/gems/advance.json +0 -0
  159. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/pt/gems/unknown.json +0 -0
  160. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/pt/hmsa_mim_software/927.json +0 -0
  161. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/pt/philips_medical_systems/gemini_tf_base_c.json +0 -0
  162. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/pt/philips_medical_systems/guardian_body_c.json +0 -0
  163. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/pt/philips_medical_systems_mimvista/allegro_body_c.json +0 -0
  164. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/pt/siemens/1094.json +0 -0
  165. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/b_k_medical/1202.json +0 -0
  166. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/invenia.json +0 -0
  167. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/invenia_abus_2_0.json +0 -0
  168. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiq7.json +0 -0
  169. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqbook.json +0 -0
  170. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqe.json +0 -0
  171. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqe9.json +0 -0
  172. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqi.json +0 -0
  173. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqp5.json +0 -0
  174. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqp6.json +0 -0
  175. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqs7.json +0 -0
  176. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqs8.json +0 -0
  177. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqworkse9.json +0 -0
  178. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_medical_systems/logiq9.json +0 -0
  179. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_vingmed_ultrasound/echopac_pc.json +0 -0
  180. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_vingmed_ultrasound/vivid7.json +0 -0
  181. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/ge_vingmed_ultrasound/vivid_e9.json +0 -0
  182. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/philips_medical_systems/lumify.json +0 -0
  183. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/siemens/s2000.json +0 -0
  184. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/allow/us/siemens_medical_systems_ultrasound_division/antares.json +0 -0
  185. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/cannon/dr_2050c.json +0 -0
  186. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/canon/dr_2010c.json +0 -0
  187. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/canon/dr_2050c.json +0 -0
  188. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/canon/dr_c125.json +0 -0
  189. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/eastman_kodak_company/ls_75.json +0 -0
  190. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/efilm_medical/unknown.json +0 -0
  191. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/fujitsu/fi_6140z.json +0 -0
  192. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/g_e_medical_systems/prodigy.json +0 -0
  193. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/ge_healthcare_it_radiology/centricity_radiology_ra_600.json +0 -0
  194. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/general_electric/centricity_ra_600.json +0 -0
  195. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/hologic/discovery_a_s_n80111.json +0 -0
  196. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/hologic/discovery_a_s_n_85108.json +0 -0
  197. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/infinitt/infinitt_pacs.json +0 -0
  198. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/lexmark/unknown.json +0 -0
  199. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/lifeimagenomination/unknown.json +0 -0
  200. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/lifeimagenotify/unknown.json +0 -0
  201. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/lifeimagereport/unknown.json +0 -0
  202. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/lumisys/unknown.json +0 -0
  203. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/medweb/none.json +0 -0
  204. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/meridian_technique_limited/orthoview_isd.json +0 -0
  205. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/nai_tech_products_inc/the_dicom_box.json +0 -0
  206. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/neurostar_solutions_inc/unknown.json +0 -0
  207. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/north_american_imaging_inc/the_dicom_box.json +0 -0
  208. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/pacs/dr_c125.json +0 -0
  209. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/pacsgear/pacsscan.json +0 -0
  210. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/pacsgear/print2pacs.json +0 -0
  211. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/pacsgear/unknown.json +0 -0
  212. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/pacsgear_inc/the_dicom_box.json +0 -0
  213. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/pacsgear_rii2/unknown.json +0 -0
  214. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/pacslogic/unknown.json +0 -0
  215. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/pacsmatt/unknown.json +0 -0
  216. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/panasonic/kv_s2026c.json +0 -0
  217. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/philips/easydiagnost_super80_cp.json +0 -0
  218. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/philips_medical_systems/unknown.json +0 -0
  219. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/siemens_health_services/unknown.json +0 -0
  220. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/sorna_corporation/unknown.json +0 -0
  221. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/vidar/diagnosticpro_advantage.json +0 -0
  222. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/vidar/unknown.json +0 -0
  223. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/vidar/vidar_digitizer.json +0 -0
  224. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/cr/viztek/unknown.json +0 -0
  225. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/brightspeed.json +0 -0
  226. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/brightspeed_qx_i.json +0 -0
  227. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/brightspeed_s.json +0 -0
  228. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_600.json +0 -0
  229. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_610.json +0 -0
  230. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_690.json +0 -0
  231. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_710.json +0 -0
  232. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_ct.json +0 -0
  233. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_ct590_rt.json +0 -0
  234. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_ct750_hd.json +0 -0
  235. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_iq.json +0 -0
  236. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_mi.json +0 -0
  237. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_rx.json +0 -0
  238. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_st.json +0 -0
  239. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_ste.json +0 -0
  240. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_xr.json +0 -0
  241. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/hispeed_qx_i.json +0 -0
  242. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed.json +0 -0
  243. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed16.json +0 -0
  244. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_plus.json +0 -0
  245. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_pro_16.json +0 -0
  246. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_pro_32.json +0 -0
  247. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_qx_i.json +0 -0
  248. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_rt.json +0 -0
  249. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_rt16.json +0 -0
  250. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_ultra.json +0 -0
  251. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_vct.json +0 -0
  252. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_xtra.json +0 -0
  253. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/optima_560.json +0 -0
  254. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/optima_ct520_series.json +0 -0
  255. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/optima_ct540.json +0 -0
  256. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/optima_ct580.json +0 -0
  257. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/optima_ct660.json +0 -0
  258. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/revolution_ct.json +0 -0
  259. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/revolution_evo.json +0 -0
  260. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/revolution_gsi.json +0 -0
  261. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/revolution_hd.json +0 -0
  262. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/medrad_inc/certegra.json +0 -0
  263. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/philips/brilliance_64.json +0 -0
  264. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/philips/gemini_tf_big_bore.json +0 -0
  265. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/philips/precedence_16p.json +0 -0
  266. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/siemens/sensation_64.json +0 -0
  267. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ct/toshiba/aquilion.json +0 -0
  268. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/bioptics_inc/pathvision.json +0 -0
  269. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/efilm_medical/unknown.json +0 -0
  270. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/faxitron_x_ray_llc/dx_50.json +0 -0
  271. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/ge_healthcare/lunar_prodigy.json +0 -0
  272. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/ge_healthcare/lunar_prodigy_advance.json +0 -0
  273. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/hologic/discovery_a_s_n87685.json +0 -0
  274. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/hologic/discovery_c_s_n81330.json +0 -0
  275. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/hologic/discovery_c_s_n84951.json +0 -0
  276. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/hologic/discovery_sl_s_n82250.json +0 -0
  277. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/hologic/horizon_w_s_n_200112.json +0 -0
  278. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/lexmark/unknown.json +0 -0
  279. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/lifeimagenomination/unknown.json +0 -0
  280. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/lifeimagenotify/unknown.json +0 -0
  281. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/lifeimagereport/unknown.json +0 -0
  282. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/pacsgear/unknown.json +0 -0
  283. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/pacslogic/unknown.json +0 -0
  284. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/pacsmatt/unknown.json +0 -0
  285. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/dx/philips_medical_systems/unknown.json +0 -0
  286. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ko/ge_healthcare_it_radiology/centricity_radiology_ra_1000.json +0 -0
  287. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ko/key_object_selection.json +0 -0
  288. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/bioptics_inc/biovision.json +0 -0
  289. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/bioptics_inc/corevision.json +0 -0
  290. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/bioptics_inc/pixarray100.json +0 -0
  291. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/cadx/cad1.json +0 -0
  292. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/cadx/mmhwdcad.json +0 -0
  293. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/cadx/ohmac2cad.json +0 -0
  294. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/canon/2050c.json +0 -0
  295. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/canon/dr_2010c.json +0 -0
  296. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/confirma_inc/cadstream_4_1_3_985.json +0 -0
  297. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/connect_imaging/unknown.json +0 -0
  298. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/di/document_scanner.json +0 -0
  299. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/eastman_kodak_company/carestream_digitized_priors_input_station_1_1_5_38679_vidar.json +0 -0
  300. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/faxitron_bioptics_llc/biovision.json +0 -0
  301. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/faxitron_x_ray_corporation/dx_50.json +0 -0
  302. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/faxitron_x_ray_llc/dx_50.json +0 -0
  303. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/ge_healthcare/lunar_prodigy_advance.json +0 -0
  304. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/ge_healthcare_it_digital_hardcopy/centricity_digital_hardcopy.json +0 -0
  305. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/ge_healthcare_it_radiology/centricity_radiology_ra_600.json +0 -0
  306. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/hologic/discovery_a_s_n83038.json +0 -0
  307. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/hologic_inc/securview.json +0 -0
  308. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/hologic_inc/trident.json +0 -0
  309. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/icad_inc/7_2_h.json +0 -0
  310. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/icad_inc/icad_powerlook_amp_8_0_1.json +0 -0
  311. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/icad_inc/unknown.json +0 -0
  312. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/kubtec/xpert.json +0 -0
  313. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/kubtec/xpert_20.json +0 -0
  314. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/lexmark/unknown.json +0 -0
  315. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/matakina_technology/unknown.json +0 -0
  316. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/matakina_technology/volpara_server.json +0 -0
  317. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/primordial/unknown.json +0 -0
  318. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/r2_technology_inc/cenova.json +0 -0
  319. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/r2_technology_inc/digitalnow_enhanced.json +0 -0
  320. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/r2_technology_inc/digitalnow_tm.json +0 -0
  321. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/ramsoft_inc/castle_powerreader.json +0 -0
  322. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/siemens_healthcare/syngo_via_va30a.json +0 -0
  323. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/three_palm_software/workstationone.json +0 -0
  324. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/vidar/cad_pro_advantage.json +0 -0
  325. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/vidar/cadpro.json +0 -0
  326. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/vidar/diagnosticpro_advantage.json +0 -0
  327. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/vidar/vidar_digitizer.json +0 -0
  328. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/visage_imaging/senograph_ds_ads_43_10_1.json +0 -0
  329. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/visage_imaging/unknown.json +0 -0
  330. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mg/volpara_limited/unknown.json +0 -0
  331. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/agfa/clinapps.json +0 -0
  332. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/aze/unknown.json +0 -0
  333. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/bammergroup_stanford/rapid_2_0.json +0 -0
  334. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/barco/voxar_3d.json +0 -0
  335. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/cannon/dr_2050c.json +0 -0
  336. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/canon/2050c.json +0 -0
  337. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/circlecvi/unknown.json +0 -0
  338. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/confirma_inc/cadstream_4_1_2_613.json +0 -0
  339. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/dcad/unknown.json +0 -0
  340. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/desacc_inc/health_data_explorer.json +0 -0
  341. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/fujitsu/unknown.json +0 -0
  342. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/ge/signa_1_5t.json +0 -0
  343. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/ge_healthcare_it_radiology/centricity_radiology_ra_600.json +0 -0
  344. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/ge_medical_systems/signa_hdxt.json +0 -0
  345. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/icad/unknown.json +0 -0
  346. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/image_information_systems/unknown.json +0 -0
  347. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/imagenow/unknown.json +0 -0
  348. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/lexmark/unknown.json +0 -0
  349. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/lifeimagenomination/unknown.json +0 -0
  350. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/lifeimagenotify/unknown.json +0 -0
  351. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/lifeimagereport/unknown.json +0 -0
  352. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/lumisys/unknown.json +0 -0
  353. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/medweb/none.json +0 -0
  354. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/merge_healthcare/cadstream_5_2_7_563.json +0 -0
  355. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/merge_healthcare/cadstream_5_2_9_711.json +0 -0
  356. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/merge_healthcare_inc/unknown.json +0 -0
  357. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/neurostar_solutions_inc/unknown.json +0 -0
  358. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/pacsgear/pacsscan.json +0 -0
  359. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/pacsgear/unknown.json +0 -0
  360. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/pacsgear_riipscan/unknown.json +0 -0
  361. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/pacsmatt/unknown.json +0 -0
  362. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/pacsscan/dr_2080c.json +0 -0
  363. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/pacsscan_4_0/unknown.json +0 -0
  364. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/panasonic/kv_s2028c.json +0 -0
  365. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/philips/unknown.json +0 -0
  366. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/philips_medical_systems/unknown.json +0 -0
  367. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/primordial/unknown.json +0 -0
  368. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/radiology_research/hfh.json +0 -0
  369. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/siemens_healthcare/syngo_via_va20a.json +0 -0
  370. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/siemens_healthcare/syngo_via_vb10a.json +0 -0
  371. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/sorna_corporation/unknown.json +0 -0
  372. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/statrad_llc/push2pacs.json +0 -0
  373. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/toshiba_mec/mrt200pp3.json +0 -0
  374. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/toshiba_mec/unknown.json +0 -0
  375. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/urlj/unknown.json +0 -0
  376. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/vassol/unknown.json +0 -0
  377. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/vidar/unknown.json +0 -0
  378. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/vital_images_inc/vitrea_2.json +0 -0
  379. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/mr/viztek/unknown.json +0 -0
  380. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/nm/adac/unknown.json +0 -0
  381. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/nm/ge_medical_systems/discovery_st.json +0 -0
  382. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/nm/segami/mirage.json +0 -0
  383. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ot/ge_medical_systems/qx_i.json +0 -0
  384. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/ot/philips_medical_systems/alluraxper.json +0 -0
  385. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/pct/ge_medical_systems/discovery_ste.json +0 -0
  386. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/pr/presentation_state.json +0 -0
  387. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/pt/ge_medical_systems/discovery_690.json +0 -0
  388. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/pt/ge_medical_systems/discovery_st.json +0 -0
  389. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/pt/ge_medical_systems/discovery_ste.json +0 -0
  390. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/pt/ge_medical_systems/qx_i.json +0 -0
  391. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/pt/philips_medical_systems/allegro_body_c.json +0 -0
  392. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/sc/sante_dicom/unknown.json +0 -0
  393. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/sr/philips_medical_systems/ie33.json +0 -0
  394. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/sr/siemens/biograph128.json +0 -0
  395. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/sr/siemens/sensation_16.json +0 -0
  396. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/sr/siemens/sensation_64.json +0 -0
  397. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/sr/siemens/somatom_definition.json +0 -0
  398. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/sr/siemens/somatom_definition_as.json +0 -0
  399. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/sr/siemens/somatom_definition_edge.json +0 -0
  400. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/sr/siemens/somatom_definition_flash.json +0 -0
  401. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/sr/siemens/somatom_force.json +0 -0
  402. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/sr/sonosite_inc/turbo.json +0 -0
  403. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/acuson/cypress.json +0 -0
  404. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/acuson/sequoia.json +0 -0
  405. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/aloka_co_ltd/ssd_5500.json +0 -0
  406. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/atl/hdi_5000.json +0 -0
  407. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/g_e_medical_systems/logiq_700.json +0 -0
  408. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiq_s6.json +0 -0
  409. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqe.json +0 -0
  410. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqe9.json +0 -0
  411. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqi.json +0 -0
  412. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqp5.json +0 -0
  413. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqp6.json +0 -0
  414. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqp9.json +0 -0
  415. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqs7.json +0 -0
  416. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqs8.json +0 -0
  417. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/venue_40.json +0 -0
  418. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/viewpoint.json +0 -0
  419. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_healthcare_it_radiology/centricity_radiology_ra_600.json +0 -0
  420. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_healthcare_viewpoint/viewpoint.json +0 -0
  421. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_medical_systems/logiq5.json +0 -0
  422. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_medical_systems/logiq9.json +0 -0
  423. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_medical_systems/logiqworks.json +0 -0
  424. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/ge_vingmed_ultrasound/vivid7.json +0 -0
  425. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/gems_ultrasound/vivid_i.json +0 -0
  426. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/gems_ultrasound/vivid_s5.json +0 -0
  427. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/gems_ultrasound/vivid_s6.json +0 -0
  428. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/medison/accuvix.json +0 -0
  429. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/medison/accuvix_xg.json +0 -0
  430. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/philips_medical_systems/affiniti_50g.json +0 -0
  431. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/philips_medical_systems/epiq_5g.json +0 -0
  432. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/philips_medical_systems/epiq_7g.json +0 -0
  433. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/philips_medical_systems/hd15.json +0 -0
  434. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/philips_medical_systems/iu22.json +0 -0
  435. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/samsung_medison_co_ltd/rs80a.json +0 -0
  436. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/samsung_medison_co_ltd/sonoace_r7.json +0 -0
  437. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/siemens/acuson_p500.json +0 -0
  438. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/siemens/acuson_sc2000.json +0 -0
  439. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/siemens/acuson_x300.json +0 -0
  440. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/siemens/acuson_x700.json +0 -0
  441. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/siemens/s2000.json +0 -0
  442. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/siemens_medical_systems_ultrasound_division/antares.json +0 -0
  443. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/siemens_ultrasound/g50_s.json +0 -0
  444. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/sonosite_inc/micromaxx.json +0 -0
  445. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/sonosite_inc/nano.json +0 -0
  446. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/sonosite_inc/x_porte.json +0 -0
  447. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/supersonic_imagine_sa/aixplorer.json +0 -0
  448. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/toshiba_mec/ssa_580a.json +0 -0
  449. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/toshiba_mec_us/tus_a500.json +0 -0
  450. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/u_systems/somoviewer.json +0 -0
  451. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/unknown/unknown.json +0 -0
  452. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/zonare/z_one.json +0 -0
  453. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/us/zonare/zs3.json +0 -0
  454. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/xa/philips/allura_clarity.json +0 -0
  455. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/filter/xa/philips_medical_systems/alluraxper.json +0 -0
  456. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/cr/canon_inc/axiom_multix_m.json +0 -0
  457. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/cr/canon_inc/cxdi.json +0 -0
  458. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/cr/konica/0402.json +0 -0
  459. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/cr/medicatechusa/krystalrad_660vsi.json +0 -0
  460. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/cr/shimadzu/cxdi_control_software_ne.json +0 -0
  461. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/ct/siemens/s1000.json +0 -0
  462. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/dx/canon_inc/cxdi.json +0 -0
  463. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/dx/cuattro_llc/clouddr_medical.json +0 -0
  464. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/dx/medicatechusa/krystalrad_660_vxi.json +0 -0
  465. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/dx/medlink_imaging/altodr.json +0 -0
  466. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/nm/ge_medical_systems_nuclear/unknown.json +0 -0
  467. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/ot/ge_medical_systems/discovery_690.json +0 -0
  468. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/ot/ge_medical_systems/discovery_mi.json +0 -0
  469. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/ot/ge_medical_systems/discovery_st.json +0 -0
  470. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/ot/ge_medical_systems/discovery_ste.json +0 -0
  471. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/ot/ge_medical_systems/signa_pet_mr.json +0 -0
  472. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/pt/ge_medical_systems/discovery_600.json +0 -0
  473. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/pt/ge_medical_systems/discovery_mi.json +0 -0
  474. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/pt/ge_medical_systems/signa_pet_mr.json +0 -0
  475. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/pt/philips_medical_systems/guardian_body_c.json +0 -0
  476. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/acuson/cypress.json +0 -0
  477. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/acuson/sequoia.json +0 -0
  478. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/aloka_co_ltd/ssd_5500.json +0 -0
  479. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/aloka_co_ltd/ssd_alpha10.json +0 -0
  480. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/aloka_co_ltd/ssd_alpha5.json +0 -0
  481. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/aloka_co_ltd/ssd_alpha6.json +0 -0
  482. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/aloka_co_ltd/ssd_alpha7.json +0 -0
  483. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/b_k_medical/1202.json +0 -0
  484. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/b_k_medical/2202.json +0 -0
  485. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/bk_medical/2300.json +0 -0
  486. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/g_e_medical_systems/logiq_700.json +0 -0
  487. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiq7.json +0 -0
  488. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiq_s6.json +0 -0
  489. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqe.json +0 -0
  490. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqe9.json +0 -0
  491. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqi.json +0 -0
  492. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqp5.json +0 -0
  493. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqp6.json +0 -0
  494. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqp9.json +0 -0
  495. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqs7.json +0 -0
  496. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqs8.json +0 -0
  497. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/vivide.json +0 -0
  498. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/voluson_p.json +0 -0
  499. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/voluson_s.json +0 -0
  500. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare_austria_gmbh_co_og/v830.json +0 -0
  501. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare_austria_gmbh_co_og/voluson_e8.json +0 -0
  502. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_medical_systems/logiq5.json +0 -0
  503. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_medical_systems/logiq9.json +0 -0
  504. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_medical_systems_kretztechnik_gmbh_co_ohg/v830.json +0 -0
  505. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_ultrasound/vivid_3.json +0 -0
  506. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_vingmed_ultrasound/vivid7.json +0 -0
  507. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_vingmed_ultrasound/vivid_e9.json +0 -0
  508. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/ge_vingmed_ultrasound/vivid_e95.json +0 -0
  509. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/gems_ultrasound/logiq_400.json +0 -0
  510. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/gems_ultrasound/vivid_i.json +0 -0
  511. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/gems_ultrasound/vivid_q.json +0 -0
  512. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/gems_ultrasound/vivid_s5.json +0 -0
  513. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/gems_ultrasound/vivid_s6.json +0 -0
  514. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/hitachi_aloka_medical_ltd/noblus.json +0 -0
  515. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/hitachi_aloka_medical_ltd/prosound_f75.json +0 -0
  516. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/medison/accuvix.json +0 -0
  517. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/medison/accuvix_v10.json +0 -0
  518. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/medison/accuvix_v20.json +0 -0
  519. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/medison/accuvix_xg.json +0 -0
  520. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/medison/sonoace_x8.json +0 -0
  521. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/affiniti_50g.json +0 -0
  522. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/affiniti_70g.json +0 -0
  523. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/clearvue_550.json +0 -0
  524. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/cx30.json +0 -0
  525. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/cx50.json +0 -0
  526. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/epiq_5w.json +0 -0
  527. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/epiq_7g.json +0 -0
  528. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/hd15.json +0 -0
  529. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/ie33.json +0 -0
  530. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/iu22.json +0 -0
  531. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/sparq.json +0 -0
  532. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/samsung_medison_co_ltd/h60.json +0 -0
  533. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/samsung_medison_co_ltd/rs80a.json +0 -0
  534. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/samsung_medison_co_ltd/sonoace_r7.json +0 -0
  535. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens/acuson_freestyle.json +0 -0
  536. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens/acuson_p500.json +0 -0
  537. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens/acuson_sc2000.json +0 -0
  538. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens/acuson_x300.json +0 -0
  539. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens/acuson_x700.json +0 -0
  540. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens/s1000.json +0 -0
  541. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens/s2000.json +0 -0
  542. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens/s3000.json +0 -0
  543. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens_medical_systems_ultrasound_division/antares.json +0 -0
  544. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens_ultrasound/elegra.json +0 -0
  545. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens_ultrasound/g40.json +0 -0
  546. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens_ultrasound/g50_s.json +0 -0
  547. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens_ultrasound/g60_s.json +0 -0
  548. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/siemens_ultrasound/x150.json +0 -0
  549. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/sonosite/sonosite_titan.json +0 -0
  550. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/sonosite_inc/micromaxx.json +0 -0
  551. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/sonosite_inc/nano.json +0 -0
  552. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/sonosite_inc/turbo.json +0 -0
  553. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/sonosite_inc/x_porte.json +0 -0
  554. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/supersonic_imagine_sa/aixplorer.json +0 -0
  555. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec/aplioxg.json +0 -0
  556. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec/viamo.json +0 -0
  557. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec/xarioxg.json +0 -0
  558. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec_us/ssh_880cv.json +0 -0
  559. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec_us/tus_a300.json +0 -0
  560. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec_us/tus_a400.json +0 -0
  561. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec_us/tus_a500.json +0 -0
  562. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec_us/tus_ai700.json +0 -0
  563. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec_us/tus_x200.json +0 -0
  564. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/zonare/z_one.json +0 -0
  565. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/catalog_fixtures/scrub/us/zonare/zs3.json +0 -0
  566. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/conftest.py +0 -0
  567. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/profiles/__init__.py +0 -0
  568. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/profiles/conftest.py +0 -0
  569. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/profiles/test_dates.py +0 -0
  570. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/profiles/test_invariants.py +0 -0
  571. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/profiles/test_specifics.py +0 -0
  572. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_actions.py +0 -0
  573. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_attributes.py +0 -0
  574. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_batch.py +0 -0
  575. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_catalog.py +0 -0
  576. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_catalog_regression_fixtures.py +0 -0
  577. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_cli.py +0 -0
  578. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_default_catalog.py +0 -0
  579. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_pipeline_attributes.py +0 -0
  580. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_pipeline_outcomes.py +0 -0
  581. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_pipeline_preservation.py +0 -0
  582. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_pipeline_redaction.py +0 -0
  583. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_pixel_blanker.py +0 -0
  584. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_profile.py +0 -0
  585. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_public_api.py +0 -0
  586. {dicom_dre-1.1.0.dev2 → dicom_dre-1.1.1.dev1}/tests/unit/test_salt.py +0 -0
@@ -35,7 +35,7 @@ updates:
35
35
 
36
36
  # Dev container base image and features.
37
37
  - package-ecosystem: "devcontainers"
38
- directory: "/.devcontainer"
38
+ directory: "/"
39
39
  target-branch: "development"
40
40
  schedule:
41
41
  interval: "weekly"
@@ -8,6 +8,9 @@ on:
8
8
  pull_request:
9
9
  types: [opened, edited, synchronize, reopened]
10
10
 
11
+ permissions:
12
+ contents: read
13
+
11
14
  concurrency:
12
15
  group: ci-${{ github.ref }}
13
16
  cancel-in-progress: true
@@ -24,6 +24,9 @@ on:
24
24
  - main
25
25
  - development
26
26
 
27
+ permissions:
28
+ contents: read
29
+
27
30
  concurrency:
28
31
  group: deploy-${{ github.ref_name }}
29
32
  cancel-in-progress: false
@@ -161,7 +164,6 @@ jobs:
161
164
  if: needs.version.outputs.released == 'true'
162
165
  runs-on: ubuntu-latest
163
166
  permissions:
164
- contents: write # create tags, commits, and GitHub Releases
165
167
  id-token: write # PyPI trusted publishing (OIDC)
166
168
  steps:
167
169
  - name: Checkout
@@ -190,6 +192,11 @@ jobs:
190
192
  github_token: ${{ steps.get_workflow_token.outputs.token }}
191
193
  git_committer_name: "github-actions"
192
194
  git_committer_email: "actions@users.noreply.github.com"
195
+ # Prerelease builds on `development` must not write CHANGELOG.md;
196
+ # only stable releases on `main` update the changelog. Combined with
197
+ # squash-merging `development` into `main`, this keeps prerelease tags
198
+ # off `main`'s history so each stable release section is populated.
199
+ changelog: ${{ github.ref_name == 'development' && 'false' || 'true' }}
193
200
 
194
201
  - name: Publish to PyPI
195
202
  # Uses PyPI Trusted Publishing (OIDC); configure a trusted publisher for
@@ -213,7 +220,9 @@ jobs:
213
220
 
214
221
  - name: Upload distributions to the GitHub Release
215
222
  # Uploads the wheels, sdist, and the Sigstore .sigstore.json bundles.
223
+ # Uses the application token (contents: write via the GitHub App) so the
224
+ # job's GITHUB_TOKEN can remain read-only.
216
225
  if: steps.release.outputs.released == 'true'
217
226
  env:
218
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
227
+ GH_TOKEN: ${{ steps.get_workflow_token.outputs.token }}
219
228
  run: gh release upload "${{ steps.release.outputs.tag }}" dist/* --clobber
@@ -22,7 +22,7 @@ on:
22
22
  workflow_dispatch:
23
23
 
24
24
  permissions:
25
- contents: write
25
+ contents: read
26
26
 
27
27
  # Serialize deployments so concurrent release tag pushes do not race when
28
28
  # reconstructing and publishing the shared gh-pages tree.
@@ -33,6 +33,8 @@ concurrency:
33
33
  jobs:
34
34
  deploy:
35
35
  runs-on: ubuntu-latest
36
+ permissions:
37
+ contents: write # push the assembled site to the gh-pages branch
36
38
  steps:
37
39
  - name: Checkout
38
40
  uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
@@ -0,0 +1,84 @@
1
+ name: Fuzz
2
+
3
+ # Using the Atheris fuzzing framework as oss-fuzz is Python 3.11 only.
4
+ # Pull requests run a short regression budget; the nightly schedule
5
+ # runs longer and persists the grown corpus via actions/cache.
6
+
7
+ on:
8
+ pull_request:
9
+ paths:
10
+ - "src/**"
11
+ - "fuzz/**"
12
+ - ".github/workflows/fuzz.yml"
13
+ schedule:
14
+ - cron: "0 7 * * *"
15
+ workflow_dispatch:
16
+
17
+ permissions:
18
+ contents: read
19
+
20
+ concurrency:
21
+ group: ${{ github.workflow }}-${{ github.ref }}
22
+ cancel-in-progress: true
23
+
24
+ jobs:
25
+ fuzz:
26
+ runs-on: ubuntu-latest
27
+ permissions:
28
+ contents: read
29
+ env:
30
+ UV_NO_GROUP: docs
31
+ strategy:
32
+ fail-fast: false
33
+ matrix:
34
+ harness:
35
+ - fuzz_text_redactor
36
+ - fuzz_jpeg_dct
37
+ - fuzz_catalog_match
38
+ steps:
39
+ - name: Checkout
40
+ uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
41
+
42
+ - name: Set up uv
43
+ uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
44
+ with:
45
+ python-version: "3.12"
46
+
47
+ - name: Install dependencies
48
+ run: uv sync
49
+
50
+ - name: Install Atheris
51
+ run: uv pip install atheris
52
+
53
+ - name: Restore corpus
54
+ uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
55
+ with:
56
+ path: fuzz/corpus/${{ matrix.harness }}
57
+ key: fuzz-corpus-${{ matrix.harness }}-${{ github.run_id }}
58
+ restore-keys: |
59
+ fuzz-corpus-${{ matrix.harness }}-
60
+
61
+ - name: Fuzz ${{ matrix.harness }}
62
+ run: |
63
+ if [ "${{ github.event_name }}" = "pull_request" ]; then
64
+ duration=120
65
+ else
66
+ duration=900
67
+ fi
68
+ mkdir -p "fuzz/corpus/${{ matrix.harness }}" crashes
69
+ # -timeout flags a single input exceeding 25s as a crash, catching
70
+ # catastrophic regex backtracking (ReDoS) in the redaction/catalog paths.
71
+ uv run python "fuzz/${{ matrix.harness }}.py" \
72
+ -max_total_time="$duration" \
73
+ -timeout=25 \
74
+ -rss_limit_mb=4096 \
75
+ -artifact_prefix=crashes/ \
76
+ "fuzz/corpus/${{ matrix.harness }}"
77
+
78
+ - name: Upload crashes
79
+ if: failure()
80
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
81
+ with:
82
+ name: fuzz-crashes-${{ matrix.harness }}
83
+ path: crashes/
84
+ if-no-files-found: ignore
@@ -0,0 +1,56 @@
1
+ name: Scorecard analysis workflow
2
+ on:
3
+ push:
4
+ # Only the default branch is supported.
5
+ branches:
6
+ - main
7
+ schedule:
8
+ # Weekly on Saturdays.
9
+ - cron: '30 1 * * 6'
10
+
11
+ permissions: read-all
12
+
13
+ jobs:
14
+ analysis:
15
+ name: Scorecard analysis
16
+ runs-on: ubuntu-latest
17
+ permissions:
18
+ # Needed for Code scanning upload
19
+ security-events: write
20
+ # Needed for GitHub OIDC token if publish_results is true
21
+ id-token: write
22
+
23
+ steps:
24
+ - name: "Checkout code"
25
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
26
+ with:
27
+ persist-credentials: false
28
+
29
+ - name: "Run analysis"
30
+ uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4
31
+ with:
32
+ results_file: results.sarif
33
+ results_format: sarif
34
+ # Scorecard team runs a weekly scan of public GitHub repos,
35
+ # see https://github.com/ossf/scorecard#public-data.
36
+ # Setting `publish_results: true` helps us scale by leveraging your workflow to
37
+ # extract the results instead of relying on our own infrastructure to run scans.
38
+ # And it's free for you!
39
+ publish_results: true
40
+
41
+ # Upload the results as artifacts (optional). Commenting out will disable
42
+ # uploads of run results in SARIF format to the repository Actions tab.
43
+ # https://docs.github.com/en/actions/advanced-guides/storing-workflow-data-as-artifacts
44
+ - name: "Upload artifact"
45
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
46
+ with:
47
+ name: SARIF file
48
+ path: results.sarif
49
+ retention-days: 5
50
+
51
+ # Upload the results to GitHub's code scanning dashboard (optional).
52
+ # Commenting out will disable upload of results to your repo's Code Scanning dashboard
53
+ - name: "Upload to code-scanning"
54
+ uses: github/codeql-action/upload-sarif@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # v4.37.4
55
+ with:
56
+ sarif_file: results.sarif
@@ -6,6 +6,9 @@ name: Tests
6
6
  on:
7
7
  workflow_call:
8
8
 
9
+ permissions:
10
+ contents: read
11
+
9
12
  jobs:
10
13
  test:
11
14
  runs-on: ubuntu-latest
@@ -28,3 +31,12 @@ jobs:
28
31
 
29
32
  - name: Run tests
30
33
  run: uv run pytest
34
+
35
+ - name: Upload coverage to Codecov
36
+ uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.3
37
+ with:
38
+ files: ./coverage.xml
39
+ fail_ci_if_error: true
40
+ use_pypi: true
41
+ env:
42
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
@@ -68,3 +68,9 @@ db.sqlite3
68
68
  *.dicom
69
69
  *.ima
70
70
  *.DCM
71
+
72
+ # Fuzzing crash artifacts
73
+ crashes/
74
+
75
+ # Hypothesis example database
76
+ .hypothesis/
@@ -2,7 +2,7 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
- ## v1.1.0-dev.1 (2026-08-06)
5
+ ## v1.1.0 (2026-08-07)
6
6
 
7
7
  ### Features
8
8
 
@@ -10,6 +10,11 @@
10
10
  Profile (STAR-12623) ([#1](https://github.com/susom/dicom-dre/pull/1),
11
11
  [`257ac8d`](https://github.com/susom/dicom-dre/commit/257ac8db5a930b30e24e0030cb48ceba6ff48c31))
12
12
 
13
+ ### Bug Fixes
14
+
15
+ - Upgrade gitpython to resolve known vulnerabilities
16
+ ([`313ec2a`](https://github.com/susom/dicom-dre/commit/313ec2aeffbb10fc6a8900055c9e6c6df5bfbebc))
17
+
13
18
 
14
19
  ## v1.0.1 (2026-07-31)
15
20
 
@@ -0,0 +1,214 @@
1
+ Metadata-Version: 2.4
2
+ Name: dicom-dre
3
+ Version: 1.1.1.dev1
4
+ Summary: DICOM De-identification & Redaction Engine
5
+ Project-URL: repository, https://github.com/susom/dicom-dre
6
+ Author-email: Joseph Mesterhazy <jmesterh@stanford.edu>
7
+ License-Expression: Apache-2.0
8
+ License-File: LICENSE
9
+ License-File: NOTICE
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Requires-Python: <3.13,>=3.12
13
+ Requires-Dist: cffi>=1.16
14
+ Requires-Dist: click
15
+ Requires-Dist: numpy>=2.4.1
16
+ Requires-Dist: pydicom>=3.0
17
+ Requires-Dist: pyjpegls>=1.5.1
18
+ Requires-Dist: pylibjpeg-libjpeg>=2.1.0
19
+ Requires-Dist: pylibjpeg-openjpeg>=2.5.0
20
+ Requires-Dist: pylibjpeg-rle>=2.2.0
21
+ Requires-Dist: pylibjpeg>=2.1.0
22
+ Requires-Dist: python-gdcm==3.2.6
23
+ Requires-Dist: readchar
24
+ Description-Content-Type: text/markdown
25
+
26
+ [![Python versions](https://img.shields.io/pypi/pyversions/dicom-dre)](https://pypi.org/project/dicom-dre/)
27
+ [![License](https://img.shields.io/pypi/l/dicom-dre)](LICENSE)
28
+ [![PyPI version](https://img.shields.io/pypi/v/dicom-dre)](https://pypi.org/project/dicom-dre/)
29
+ [![CI](https://github.com/susom/dicom-dre/actions/workflows/ci.yml/badge.svg)](https://github.com/susom/dicom-dre/actions/workflows/ci.yml)
30
+ [![Docs](https://github.com/susom/dicom-dre/actions/workflows/docs.yml/badge.svg)](https://susom.github.io/dicom-dre/)
31
+ [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/susom/dicom-dre/badge)](https://scorecard.dev/viewer/?uri=github.com/susom/dicom-dre)
32
+ [![codecov](https://codecov.io/gh/susom/dicom-dre/branch/main/graph/badge.svg)](https://codecov.io/gh/susom/dicom-dre)
33
+
34
+ # dicom-dre
35
+
36
+ DICOM de-identification for both metadata and burned-in pixel text.
37
+
38
+ Burned-in text is the more difficult case. The engine blanks it from rules you
39
+ define rather than from OCR or heuristic text detection: you specify which
40
+ scanner models burn text into which regions of the frame, and the engine blanks
41
+ those regions. That rule set is the device catalog.
42
+
43
+ - **Rule-based pixel blanking.** The device catalog identifies an instance by
44
+ its scanner and acquisition settings and blanks the fixed regions recorded for
45
+ it. Coverage is exactly what you put in the catalog: it only blanks devices
46
+ and regions you have mapped and validated, and unmatched devices pass through
47
+ untouched.
48
+
49
+ - **Lossless redaction.** Editing a JPEG normally means decompressing it and
50
+ recompressing it, which slightly degrades the whole image. For JPEG Baseline
51
+ images the engine instead edits the compressed data directly and blanks only
52
+ the masked blocks, so every pixel outside those blocks stays bit-for-bit
53
+ identical.
54
+
55
+ - **Deterministic and offline.** No lookups and no network calls. UIDs and
56
+ replacement identifiers are re-derived by hashing, so the same input plus the
57
+ same parameters always produces the same output.
58
+
59
+ - **Simple, embeddable API.** Call it from your own DICOM pipeline in a few
60
+ lines, and supply your own identifiers (PatientID, AccessionNumber, date
61
+ jitter) or let it derive them for you.
62
+
63
+ Metadata is handled alongside the pixels: description fields such as
64
+ `SeriesDescription` and `StudyDescription` are redacted to remove likely PHI
65
+ while preserving clinical meaning, and every attribute is scrubbed against a
66
+ configurable de-identification profile.
67
+
68
+ Tailoring the device catalog and allowlist to the scanners in your PACS and the
69
+ vocabulary your site uses is the substantive work of adopting `dicom-dre`. Once
70
+ that investment is made, the result is a repeatable, auditable pipeline you can
71
+ trust to process DICOM at your site.
72
+
73
+ > **Note:** Output is **not** de-identified under HIPAA Safe Harbor or Expert
74
+ > Determination and must be validated by a qualified person before sharing. The
75
+ > bundled catalog and allowlist were derived from a single PACS at one site and
76
+ > are unlikely to be complete elsewhere. It also does not address
77
+ > re-identification vectors in the image content itself, such as facial
78
+ > reconstruction from volumetric imaging. Always treat output as retaining
79
+ > residual PHI risk. See
80
+ > [Limitations and portability](https://susom.github.io/dicom-dre/stable/about/limitations.html).
81
+
82
+ ## Install
83
+
84
+ Requires Python 3.12.
85
+
86
+ ```bash
87
+ uv pip install dicom-dre # or: pip install dicom-dre
88
+ ```
89
+
90
+ ## Quick start
91
+
92
+ ```bash
93
+ # De-identify a file or a directory tree into out/
94
+ dicom-dre deidentify scan.dcm -o out/
95
+ dicom-dre deidentify studies/ -o out/ -r
96
+
97
+ # Choose a profile, set parameters, run in parallel (-j sets worker count)
98
+ dicom-dre deidentify studies/ -o out/ \
99
+ --profile default -p PATIENT_ID=TEST -p ACCESSION_NUMBER=TESTING -j 8
100
+ ```
101
+
102
+ Sources are read but never modified. The command exits non-zero if any instance
103
+ is quarantined.
104
+
105
+ ```python
106
+ from dicom_dre import DeidParameters, ProfileSpec, deidentify_paths
107
+
108
+ for item in deidentify_paths(
109
+ sources=["studies/"],
110
+ output_dir="out/",
111
+ recursive=True,
112
+ profile_spec=ProfileSpec(name="default"),
113
+ parameters=DeidParameters(patient_id="TEST"),
114
+ ):
115
+ print(item.input_file, item.result.outcome)
116
+ ```
117
+
118
+ ## Outcomes
119
+
120
+ Each instance resolves to exactly one outcome:
121
+
122
+ | Outcome | Meaning |
123
+ | --- | --- |
124
+ | `DEIDENTIFIED` | Metadata scrubbed, pixels blanked as required, written to output. |
125
+ | `FILTERED` | Matched a deny rule (e.g. unsupported modality/device); not emitted. |
126
+ | `QUARANTINED` | Processing failed; not emitted. |
127
+
128
+ ## Profiles
129
+
130
+ Each profile applies the DICOM PS3.15 Basic Application Confidentiality Profile
131
+ (strict is allow-list based) plus a set of PS3.15 options, recorded in
132
+ DeidentificationMethodCodeSequence `(0012,0064)`.
133
+
134
+ | Profile | PS3.15 method | Options applied | Dates |
135
+ | --- | --- | --- | --- |
136
+ | `default` | `DICOM-PS3.15E-Basic` | Clean Structured Content (113104), Clean Descriptors (113105), Retain Patient Characteristics (113108) | Shifted per study by a derived jitter |
137
+ | `lds` | `DICOM-PS3.15E-Basic-LDS` | Clean Descriptors (113105), Retain Patient Characteristics (113108) | Retained unchanged (limited data set) |
138
+ | `lds-no-dob` | `DICOM-PS3.15E-Basic-LDS-No-DOB` | Clean Descriptors (113105), Retain Patient Characteristics (113108) | Retained unchanged except PatientBirthDate/Time, which are removed |
139
+ | `strict` | Allow-list (Basic Profile not emitted) | Clean Graphics (113103), Clean Structured Content (113104) | Removed; a minimal set of technical time elements is retained |
140
+
141
+ `default`, `lds`, and `lds-no-dob` re-derive UIDs by hashing; `strict` retains a
142
+ fixed allow-list of elements and discards the rest.
143
+
144
+ See [De-identification Profiles](https://susom.github.io/dicom-dre/stable/concepts/profiles.html).
145
+
146
+ ## Free-text redaction tools
147
+
148
+ Description attributes such as `SeriesDescription` and `StudyDescription` are
149
+ among the most useful fields for understanding what a study contains, yet
150
+ because a technologist can type into them freely at the imaging device, they
151
+ frequently pick up PHI. Redaction keeps the useful vocabulary while masking the
152
+ rest, and it is driven by an allowlist you tailor to your site.
153
+
154
+ Redaction works token by token. A token is a run of text between delimiters:
155
+ each value is split at whitespace, punctuation, and letter/digit boundaries (so
156
+ `MR512` becomes `MR` and `512`). Every token is compared case-insensitively
157
+ against the allowlist; tokens on the list pass through, and the rest are masked
158
+ character-for-character with `X`. Before tokenizing, a set of regular
159
+ expressions masks structured identifiers regardless of the allowlist, including
160
+ dates, times, phone numbers, SSNs, ZIP+4 codes, email addresses, URLs, and long
161
+ hexadecimal strings, while bare 1 to 5 digit numbers are allowed through.
162
+
163
+ Because the allowlist must match your site's vocabulary, the `redactor`
164
+ subcommands exist to build and maintain it. Export every `SeriesDescription`,
165
+ `StudyDescription`, and `ProtocolName` value from your PACS database to a CSV,
166
+ then run these commands over that export to review the distinct tokens and
167
+ decide which belong on the allowlist:
168
+
169
+ ```bash
170
+ # Preview redactions and review flagged tokens, adding good ones to the allowlist
171
+ dicom-dre redactor quality-check input.csv --interactive
172
+ # List the distinct tokens in the export to curate the allowlist
173
+ dicom-dre redactor show-tokens --input input.csv
174
+ # Add one or more tokens to the allowlist directly
175
+ dicom-dre redactor allow-token TERM1 TERM2
176
+ # Redact every cell of a CSV against the current allowlist
177
+ dicom-dre redactor redact --input input.csv --output output.csv
178
+ ```
179
+
180
+ See the [redactor guide](https://susom.github.io/dicom-dre/stable/guides/redactor.html).
181
+
182
+ ## Documentation
183
+
184
+ Full documentation: **https://susom.github.io/dicom-dre/**
185
+
186
+ - [Installation](https://susom.github.io/dicom-dre/stable/getting-started/installation.html) and [Quickstart](https://susom.github.io/dicom-dre/stable/getting-started/quickstart.html)
187
+ - [Architecture](https://susom.github.io/dicom-dre/stable/concepts/architecture.html), [Device Catalog](https://susom.github.io/dicom-dre/stable/concepts/device-catalog.html), [JPEG DCT scrubbing](https://susom.github.io/dicom-dre/stable/concepts/jpeg-dct.html)
188
+ - [Profiles](https://susom.github.io/dicom-dre/stable/concepts/profiles.html), [Text redaction](https://susom.github.io/dicom-dre/stable/concepts/text-redaction.html), [Reproducibility](https://susom.github.io/dicom-dre/stable/concepts/reproducibility.html)
189
+ - [CLI reference](https://susom.github.io/dicom-dre/stable/guides/cli.html), [Extending the catalog](https://susom.github.io/dicom-dre/stable/guides/extending-the-catalog.html), [Local validation](https://susom.github.io/dicom-dre/stable/guides/local-validation.html)
190
+ - [API reference](https://susom.github.io/dicom-dre/stable/reference/api.html)
191
+
192
+ ## Development
193
+
194
+ ```bash
195
+ uv run pytest
196
+ ```
197
+
198
+ The JPEG DCT accelerator is an optional compiled C extension roughly 300x faster
199
+ than the pure-Python fallback. Check its status with:
200
+
201
+ ```bash
202
+ dicom-dre accelerator-status
203
+ ```
204
+
205
+ Contributions are welcome via pull request. Changes to de-identification policy
206
+ (catalog, scrub regions, profiles, or allowlist) require local evidence and
207
+ regression fixtures.
208
+
209
+ ## License
210
+
211
+ Apache-2.0; provided "AS IS" without warranty (see [LICENSE](LICENSE)). The JPEG
212
+ DCT-domain scrubber is a port of the PixelMed JPEG Selective Block Redaction
213
+ Codec, distributed under that codec's BSD license; see the source header in
214
+ `src/dicom_dre/jpeg_dct_scrubber.py` and the [NOTICE](NOTICE) file.
@@ -0,0 +1,189 @@
1
+ [![Python versions](https://img.shields.io/pypi/pyversions/dicom-dre)](https://pypi.org/project/dicom-dre/)
2
+ [![License](https://img.shields.io/pypi/l/dicom-dre)](LICENSE)
3
+ [![PyPI version](https://img.shields.io/pypi/v/dicom-dre)](https://pypi.org/project/dicom-dre/)
4
+ [![CI](https://github.com/susom/dicom-dre/actions/workflows/ci.yml/badge.svg)](https://github.com/susom/dicom-dre/actions/workflows/ci.yml)
5
+ [![Docs](https://github.com/susom/dicom-dre/actions/workflows/docs.yml/badge.svg)](https://susom.github.io/dicom-dre/)
6
+ [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/susom/dicom-dre/badge)](https://scorecard.dev/viewer/?uri=github.com/susom/dicom-dre)
7
+ [![codecov](https://codecov.io/gh/susom/dicom-dre/branch/main/graph/badge.svg)](https://codecov.io/gh/susom/dicom-dre)
8
+
9
+ # dicom-dre
10
+
11
+ DICOM de-identification for both metadata and burned-in pixel text.
12
+
13
+ Burned-in text is the more difficult case. The engine blanks it from rules you
14
+ define rather than from OCR or heuristic text detection: you specify which
15
+ scanner models burn text into which regions of the frame, and the engine blanks
16
+ those regions. That rule set is the device catalog.
17
+
18
+ - **Rule-based pixel blanking.** The device catalog identifies an instance by
19
+ its scanner and acquisition settings and blanks the fixed regions recorded for
20
+ it. Coverage is exactly what you put in the catalog: it only blanks devices
21
+ and regions you have mapped and validated, and unmatched devices pass through
22
+ untouched.
23
+
24
+ - **Lossless redaction.** Editing a JPEG normally means decompressing it and
25
+ recompressing it, which slightly degrades the whole image. For JPEG Baseline
26
+ images the engine instead edits the compressed data directly and blanks only
27
+ the masked blocks, so every pixel outside those blocks stays bit-for-bit
28
+ identical.
29
+
30
+ - **Deterministic and offline.** No lookups and no network calls. UIDs and
31
+ replacement identifiers are re-derived by hashing, so the same input plus the
32
+ same parameters always produces the same output.
33
+
34
+ - **Simple, embeddable API.** Call it from your own DICOM pipeline in a few
35
+ lines, and supply your own identifiers (PatientID, AccessionNumber, date
36
+ jitter) or let it derive them for you.
37
+
38
+ Metadata is handled alongside the pixels: description fields such as
39
+ `SeriesDescription` and `StudyDescription` are redacted to remove likely PHI
40
+ while preserving clinical meaning, and every attribute is scrubbed against a
41
+ configurable de-identification profile.
42
+
43
+ Tailoring the device catalog and allowlist to the scanners in your PACS and the
44
+ vocabulary your site uses is the substantive work of adopting `dicom-dre`. Once
45
+ that investment is made, the result is a repeatable, auditable pipeline you can
46
+ trust to process DICOM at your site.
47
+
48
+ > **Note:** Output is **not** de-identified under HIPAA Safe Harbor or Expert
49
+ > Determination and must be validated by a qualified person before sharing. The
50
+ > bundled catalog and allowlist were derived from a single PACS at one site and
51
+ > are unlikely to be complete elsewhere. It also does not address
52
+ > re-identification vectors in the image content itself, such as facial
53
+ > reconstruction from volumetric imaging. Always treat output as retaining
54
+ > residual PHI risk. See
55
+ > [Limitations and portability](https://susom.github.io/dicom-dre/stable/about/limitations.html).
56
+
57
+ ## Install
58
+
59
+ Requires Python 3.12.
60
+
61
+ ```bash
62
+ uv pip install dicom-dre # or: pip install dicom-dre
63
+ ```
64
+
65
+ ## Quick start
66
+
67
+ ```bash
68
+ # De-identify a file or a directory tree into out/
69
+ dicom-dre deidentify scan.dcm -o out/
70
+ dicom-dre deidentify studies/ -o out/ -r
71
+
72
+ # Choose a profile, set parameters, run in parallel (-j sets worker count)
73
+ dicom-dre deidentify studies/ -o out/ \
74
+ --profile default -p PATIENT_ID=TEST -p ACCESSION_NUMBER=TESTING -j 8
75
+ ```
76
+
77
+ Sources are read but never modified. The command exits non-zero if any instance
78
+ is quarantined.
79
+
80
+ ```python
81
+ from dicom_dre import DeidParameters, ProfileSpec, deidentify_paths
82
+
83
+ for item in deidentify_paths(
84
+ sources=["studies/"],
85
+ output_dir="out/",
86
+ recursive=True,
87
+ profile_spec=ProfileSpec(name="default"),
88
+ parameters=DeidParameters(patient_id="TEST"),
89
+ ):
90
+ print(item.input_file, item.result.outcome)
91
+ ```
92
+
93
+ ## Outcomes
94
+
95
+ Each instance resolves to exactly one outcome:
96
+
97
+ | Outcome | Meaning |
98
+ | --- | --- |
99
+ | `DEIDENTIFIED` | Metadata scrubbed, pixels blanked as required, written to output. |
100
+ | `FILTERED` | Matched a deny rule (e.g. unsupported modality/device); not emitted. |
101
+ | `QUARANTINED` | Processing failed; not emitted. |
102
+
103
+ ## Profiles
104
+
105
+ Each profile applies the DICOM PS3.15 Basic Application Confidentiality Profile
106
+ (strict is allow-list based) plus a set of PS3.15 options, recorded in
107
+ DeidentificationMethodCodeSequence `(0012,0064)`.
108
+
109
+ | Profile | PS3.15 method | Options applied | Dates |
110
+ | --- | --- | --- | --- |
111
+ | `default` | `DICOM-PS3.15E-Basic` | Clean Structured Content (113104), Clean Descriptors (113105), Retain Patient Characteristics (113108) | Shifted per study by a derived jitter |
112
+ | `lds` | `DICOM-PS3.15E-Basic-LDS` | Clean Descriptors (113105), Retain Patient Characteristics (113108) | Retained unchanged (limited data set) |
113
+ | `lds-no-dob` | `DICOM-PS3.15E-Basic-LDS-No-DOB` | Clean Descriptors (113105), Retain Patient Characteristics (113108) | Retained unchanged except PatientBirthDate/Time, which are removed |
114
+ | `strict` | Allow-list (Basic Profile not emitted) | Clean Graphics (113103), Clean Structured Content (113104) | Removed; a minimal set of technical time elements is retained |
115
+
116
+ `default`, `lds`, and `lds-no-dob` re-derive UIDs by hashing; `strict` retains a
117
+ fixed allow-list of elements and discards the rest.
118
+
119
+ See [De-identification Profiles](https://susom.github.io/dicom-dre/stable/concepts/profiles.html).
120
+
121
+ ## Free-text redaction tools
122
+
123
+ Description attributes such as `SeriesDescription` and `StudyDescription` are
124
+ among the most useful fields for understanding what a study contains, yet
125
+ because a technologist can type into them freely at the imaging device, they
126
+ frequently pick up PHI. Redaction keeps the useful vocabulary while masking the
127
+ rest, and it is driven by an allowlist you tailor to your site.
128
+
129
+ Redaction works token by token. A token is a run of text between delimiters:
130
+ each value is split at whitespace, punctuation, and letter/digit boundaries (so
131
+ `MR512` becomes `MR` and `512`). Every token is compared case-insensitively
132
+ against the allowlist; tokens on the list pass through, and the rest are masked
133
+ character-for-character with `X`. Before tokenizing, a set of regular
134
+ expressions masks structured identifiers regardless of the allowlist, including
135
+ dates, times, phone numbers, SSNs, ZIP+4 codes, email addresses, URLs, and long
136
+ hexadecimal strings, while bare 1 to 5 digit numbers are allowed through.
137
+
138
+ Because the allowlist must match your site's vocabulary, the `redactor`
139
+ subcommands exist to build and maintain it. Export every `SeriesDescription`,
140
+ `StudyDescription`, and `ProtocolName` value from your PACS database to a CSV,
141
+ then run these commands over that export to review the distinct tokens and
142
+ decide which belong on the allowlist:
143
+
144
+ ```bash
145
+ # Preview redactions and review flagged tokens, adding good ones to the allowlist
146
+ dicom-dre redactor quality-check input.csv --interactive
147
+ # List the distinct tokens in the export to curate the allowlist
148
+ dicom-dre redactor show-tokens --input input.csv
149
+ # Add one or more tokens to the allowlist directly
150
+ dicom-dre redactor allow-token TERM1 TERM2
151
+ # Redact every cell of a CSV against the current allowlist
152
+ dicom-dre redactor redact --input input.csv --output output.csv
153
+ ```
154
+
155
+ See the [redactor guide](https://susom.github.io/dicom-dre/stable/guides/redactor.html).
156
+
157
+ ## Documentation
158
+
159
+ Full documentation: **https://susom.github.io/dicom-dre/**
160
+
161
+ - [Installation](https://susom.github.io/dicom-dre/stable/getting-started/installation.html) and [Quickstart](https://susom.github.io/dicom-dre/stable/getting-started/quickstart.html)
162
+ - [Architecture](https://susom.github.io/dicom-dre/stable/concepts/architecture.html), [Device Catalog](https://susom.github.io/dicom-dre/stable/concepts/device-catalog.html), [JPEG DCT scrubbing](https://susom.github.io/dicom-dre/stable/concepts/jpeg-dct.html)
163
+ - [Profiles](https://susom.github.io/dicom-dre/stable/concepts/profiles.html), [Text redaction](https://susom.github.io/dicom-dre/stable/concepts/text-redaction.html), [Reproducibility](https://susom.github.io/dicom-dre/stable/concepts/reproducibility.html)
164
+ - [CLI reference](https://susom.github.io/dicom-dre/stable/guides/cli.html), [Extending the catalog](https://susom.github.io/dicom-dre/stable/guides/extending-the-catalog.html), [Local validation](https://susom.github.io/dicom-dre/stable/guides/local-validation.html)
165
+ - [API reference](https://susom.github.io/dicom-dre/stable/reference/api.html)
166
+
167
+ ## Development
168
+
169
+ ```bash
170
+ uv run pytest
171
+ ```
172
+
173
+ The JPEG DCT accelerator is an optional compiled C extension roughly 300x faster
174
+ than the pure-Python fallback. Check its status with:
175
+
176
+ ```bash
177
+ dicom-dre accelerator-status
178
+ ```
179
+
180
+ Contributions are welcome via pull request. Changes to de-identification policy
181
+ (catalog, scrub regions, profiles, or allowlist) require local evidence and
182
+ regression fixtures.
183
+
184
+ ## License
185
+
186
+ Apache-2.0; provided "AS IS" without warranty (see [LICENSE](LICENSE)). The JPEG
187
+ DCT-domain scrubber is a port of the PixelMed JPEG Selective Block Redaction
188
+ Codec, distributed under that codec's BSD license; see the source header in
189
+ `src/dicom_dre/jpeg_dct_scrubber.py` and the [NOTICE](NOTICE) file.