dicom-dre 1.0.0.dev6__tar.gz → 1.0.0.dev8__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.

Potentially problematic release.


This version of dicom-dre might be problematic. Click here for more details.

Files changed (564) hide show
  1. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/.devcontainer/post-create.sh +4 -0
  2. dicom_dre-1.0.0.dev8/.gitattributes +1 -0
  3. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/.github/copilot-instructions.md +21 -0
  4. dicom_dre-1.0.0.dev8/.github/instructions/docs.instructions.md +84 -0
  5. dicom_dre-1.0.0.dev8/.github/skills/pr-template/SKILL.md +345 -0
  6. dicom_dre-1.0.0.dev8/.github/workflows/docs.yml +124 -0
  7. dicom_dre-1.0.0.dev8/.gitignore +70 -0
  8. dicom_dre-1.0.0.dev8/.pre-commit-config.yaml +73 -0
  9. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/CHANGELOG.md +16 -0
  10. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/PKG-INFO +17 -11
  11. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/README.md +16 -10
  12. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/about/history.md +4 -4
  13. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/about/provenance.md +4 -4
  14. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/about/testing.md +1 -1
  15. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/concepts/architecture.md +11 -10
  16. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/concepts/device-catalog.md +22 -22
  17. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/concepts/jpeg-dct.md +5 -5
  18. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/concepts/profiles.md +32 -21
  19. dicom_dre-1.0.0.dev8/docs/concepts/reproducibility.md +44 -0
  20. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/concepts/text-redaction.md +3 -3
  21. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/conf.py +2 -2
  22. dicom_dre-1.0.0.dev8/docs/getting-started/installation.md +84 -0
  23. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/getting-started/quickstart.md +11 -4
  24. dicom_dre-1.0.0.dev8/docs/guides/cli.md +154 -0
  25. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/guides/extending-the-catalog.md +14 -14
  26. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/guides/local-validation.md +3 -3
  27. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/guides/redactor.md +20 -20
  28. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/index.md +11 -4
  29. dicom_dre-1.0.0.dev8/docs/notes/iso-2022-specific-character-set.md +173 -0
  30. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/justfile +8 -0
  31. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/pyproject.toml +1 -0
  32. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/__init__.py +2 -0
  33. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/_version.py +2 -2
  34. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/actions.py +79 -29
  35. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/attributes.py +1 -1
  36. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/batch.py +8 -6
  37. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/cli.py +154 -7
  38. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/jpeg_dct_scrubber.py +1 -1
  39. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/parameters.py +36 -11
  40. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/pipeline.py +3 -1
  41. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/profile.py +30 -4
  42. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/profiles/builder.py +10 -24
  43. dicom_dre-1.0.0.dev8/src/dicom_dre/profiles/config.py +35 -0
  44. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/profiles/default.py +24 -16
  45. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/profiles/lds.py +3 -5
  46. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/profiles/lds_no_dob.py +3 -8
  47. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/profiles/pixels_only.py +29 -25
  48. dicom_dre-1.0.0.dev8/src/dicom_dre/salt.py +245 -0
  49. dicom_dre-1.0.0.dev8/src/dicom_dre/uid_utils.py +102 -0
  50. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/conftest.py +13 -0
  51. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/test_batch.py +14 -12
  52. dicom_dre-1.0.0.dev8/tests/unit/test_cli.py +620 -0
  53. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/test_pipeline_attributes.py +6 -4
  54. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/test_pipeline_preservation.py +4 -5
  55. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/test_pipeline_redaction.py +2 -4
  56. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/test_profile.py +69 -3
  57. dicom_dre-1.0.0.dev8/tests/unit/test_salt.py +188 -0
  58. dicom_dre-1.0.0.dev8/tests/unit/test_uid_utils.py +87 -0
  59. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/uv.lock +100 -0
  60. dicom_dre-1.0.0.dev6/.gitignore +0 -45
  61. dicom_dre-1.0.0.dev6/docs/concepts/reproducibility.md +0 -34
  62. dicom_dre-1.0.0.dev6/docs/getting-started/installation.md +0 -63
  63. dicom_dre-1.0.0.dev6/docs/guides/cli.md +0 -121
  64. dicom_dre-1.0.0.dev6/src/dicom_dre/uid_utils.py +0 -35
  65. dicom_dre-1.0.0.dev6/tests/unit/test_cli.py +0 -336
  66. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/.devcontainer/devcontainer-lock.json +0 -0
  67. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/.devcontainer/devcontainer.json +0 -0
  68. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/.github/instructions/dicom-io.instructions.md +0 -0
  69. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/.github/instructions/tests.instructions.md +0 -0
  70. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/.github/workflows/deploy.yml +0 -0
  71. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/.vscode/extensions.json +0 -0
  72. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/.vscode/settings.json +0 -0
  73. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/LICENSE +0 -0
  74. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/NOTICE +0 -0
  75. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/TODO +0 -0
  76. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/Makefile +0 -0
  77. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/_static/.gitkeep +0 -0
  78. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/about/changelog.md +0 -0
  79. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/make.bat +0 -0
  80. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/docs/reference/api.md +0 -0
  81. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/hatch_build.py +0 -0
  82. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/_jpeg_dct_accel_build.py +0 -0
  83. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/catalog.py +0 -0
  84. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/default_catalog.py +0 -0
  85. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/pixel_blanker.py +0 -0
  86. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/profiles/__init__.py +0 -0
  87. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/py.typed +0 -0
  88. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/pydicom_config.py +0 -0
  89. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/resources/__init__.py +0 -0
  90. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/resources/allow_lists/__init__.py +0 -0
  91. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/resources/allow_lists/default.csv +0 -0
  92. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/result.py +0 -0
  93. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/scrub_region.py +0 -0
  94. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/src/dicom_dre/text_redactor.py +0 -0
  95. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/conftest.py +0 -0
  96. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/__init__.py +0 -0
  97. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/cr/agfa/dxd40_1000c.json +0 -0
  98. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/ct/ge_medical_systems/discovery_ls.json +0 -0
  99. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/ct/ge_medical_systems/qx_i.json +0 -0
  100. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/ct/ge_medical_systems_ct/discovery_qx_i.json +0 -0
  101. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/ct/ge_medical_systems_mimvista/discovery_st.json +0 -0
  102. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/ct/mimvista_corp/unknown.json +0 -0
  103. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/ct/neurologica/ceretom.json +0 -0
  104. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/ct/neusoft/unknown.json +0 -0
  105. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/ct/philips/gemini.json +0 -0
  106. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/ct/siemens_mimvista/emotion_duo.json +0 -0
  107. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/dx/agfa/dx_g.json +0 -0
  108. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/carestream/classic_cr.json +0 -0
  109. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/fischer_imaging_corporation/senoscan_trueview.json +0 -0
  110. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/fujifilm_corporation/clearview_csm.json +0 -0
  111. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/fujifilm_corporation/fdr_1000aws.json +0 -0
  112. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/fujifilm_corporation/fdr_2000aws.json +0 -0
  113. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/ge_healthcare/senographe_pristina.json +0 -0
  114. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/ge_medical_systems/ads_1_0.json +0 -0
  115. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/ge_medical_systems/senograph_2000d_ads_17_2_3.json +0 -0
  116. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/ge_medical_systems/senographe_essential_ads_43_10_1.json +0 -0
  117. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/ge_medical_systems/senographe_essential_ads_56_21_3.json +0 -0
  118. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/ge_medical_systems/senographe_essential_dbt_reconstruction_box_01_10_3.json +0 -0
  119. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/ge_medical_systems/senographe_essential_dbt_reconstruction_box_01_10_4.json +0 -0
  120. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/hologic_inc/lorad_selenia.json +0 -0
  121. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/hologic_inc/selenia_dimensions.json +0 -0
  122. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/ims_s_r_l/giotto_image_3dl.json +0 -0
  123. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/kodak/classic_cr.json +0 -0
  124. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/kodak/elite_cr.json +0 -0
  125. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/lorad/hologic_selenia.json +0 -0
  126. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/lorad/lorad_selenia.json +0 -0
  127. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/lorad_a_hologic_company/dsm.json +0 -0
  128. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/mptronic_software/senographe_essential_ads_43_10_1.json +0 -0
  129. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/philips_digital_mammography_sweden_ab/l30.json +0 -0
  130. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/siemens/mammomat_inspiration.json +0 -0
  131. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/siemens/mammomat_novation_dr.json +0 -0
  132. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/siemens/mammomat_revelation.json +0 -0
  133. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mg/tmsc_fujitsu_ltd/mgu_1000d.json +0 -0
  134. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mr/ge_medical_systems/discovery_mr750.json +0 -0
  135. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mr/ge_medical_systems/signa_architect.json +0 -0
  136. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mr/ge_medical_systems/signa_hdxt.json +0 -0
  137. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mr/ge_medical_systems/signa_pet_mr.json +0 -0
  138. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mr/ge_medical_systems/signa_premier.json +0 -0
  139. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mr/hitachi_medical_corporation/oasis.json +0 -0
  140. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mr/merge_healthcare/cadstream_5_2_7_563.json +0 -0
  141. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mr/philips_medical_systems/ingenia.json +0 -0
  142. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mr/philips_medical_systems/intera.json +0 -0
  143. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mr/siemens/avanto.json +0 -0
  144. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mr/toshiba/titan.json +0 -0
  145. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/mr/toshiba_mec/mrt200pp3.json +0 -0
  146. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/nm/adac/atlantis.json +0 -0
  147. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/nm/segami/mirage.json +0 -0
  148. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/pt/ge_medical_systems/qx_i.json +0 -0
  149. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/pt/ge_medical_systems/signa_pet_mr.json +0 -0
  150. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/pt/ge_medical_systems_pet/discovery_qx_i.json +0 -0
  151. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/pt/gems/advance.json +0 -0
  152. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/pt/gems/unknown.json +0 -0
  153. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/pt/hmsa_mim_software/927.json +0 -0
  154. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/pt/philips_medical_systems/gemini_tf_base_c.json +0 -0
  155. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/pt/philips_medical_systems/guardian_body_c.json +0 -0
  156. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/pt/philips_medical_systems_mimvista/allegro_body_c.json +0 -0
  157. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/pt/siemens/1094.json +0 -0
  158. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/b_k_medical/1202.json +0 -0
  159. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/invenia.json +0 -0
  160. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/invenia_abus_2_0.json +0 -0
  161. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiq7.json +0 -0
  162. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqbook.json +0 -0
  163. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqe.json +0 -0
  164. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqe9.json +0 -0
  165. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqi.json +0 -0
  166. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqp5.json +0 -0
  167. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqp6.json +0 -0
  168. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqs7.json +0 -0
  169. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqs8.json +0 -0
  170. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_healthcare/logiqworkse9.json +0 -0
  171. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_medical_systems/logiq9.json +0 -0
  172. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_vingmed_ultrasound/echopac_pc.json +0 -0
  173. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_vingmed_ultrasound/vivid7.json +0 -0
  174. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/ge_vingmed_ultrasound/vivid_e9.json +0 -0
  175. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/philips_medical_systems/lumify.json +0 -0
  176. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/siemens/s2000.json +0 -0
  177. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/allow/us/siemens_medical_systems_ultrasound_division/antares.json +0 -0
  178. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/cannon/dr_2050c.json +0 -0
  179. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/canon/dr_2010c.json +0 -0
  180. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/canon/dr_2050c.json +0 -0
  181. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/canon/dr_c125.json +0 -0
  182. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/eastman_kodak_company/ls_75.json +0 -0
  183. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/efilm_medical/unknown.json +0 -0
  184. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/fujitsu/fi_6140z.json +0 -0
  185. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/g_e_medical_systems/prodigy.json +0 -0
  186. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/ge_healthcare_it_radiology/centricity_radiology_ra_600.json +0 -0
  187. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/general_electric/centricity_ra_600.json +0 -0
  188. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/hologic/discovery_a_s_n80111.json +0 -0
  189. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/hologic/discovery_a_s_n_85108.json +0 -0
  190. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/infinitt/infinitt_pacs.json +0 -0
  191. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/lexmark/unknown.json +0 -0
  192. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/lifeimagenomination/unknown.json +0 -0
  193. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/lifeimagenotify/unknown.json +0 -0
  194. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/lifeimagereport/unknown.json +0 -0
  195. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/lumisys/unknown.json +0 -0
  196. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/medweb/none.json +0 -0
  197. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/meridian_technique_limited/orthoview_isd.json +0 -0
  198. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/nai_tech_products_inc/the_dicom_box.json +0 -0
  199. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/neurostar_solutions_inc/unknown.json +0 -0
  200. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/north_american_imaging_inc/the_dicom_box.json +0 -0
  201. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/pacs/dr_c125.json +0 -0
  202. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/pacsgear/pacsscan.json +0 -0
  203. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/pacsgear/print2pacs.json +0 -0
  204. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/pacsgear/unknown.json +0 -0
  205. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/pacsgear_inc/the_dicom_box.json +0 -0
  206. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/pacsgear_rii2/unknown.json +0 -0
  207. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/pacslogic/unknown.json +0 -0
  208. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/pacsmatt/unknown.json +0 -0
  209. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/panasonic/kv_s2026c.json +0 -0
  210. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/philips/easydiagnost_super80_cp.json +0 -0
  211. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/philips_medical_systems/unknown.json +0 -0
  212. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/siemens_health_services/unknown.json +0 -0
  213. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/sorna_corporation/unknown.json +0 -0
  214. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/vidar/diagnosticpro_advantage.json +0 -0
  215. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/vidar/unknown.json +0 -0
  216. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/vidar/vidar_digitizer.json +0 -0
  217. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/cr/viztek/unknown.json +0 -0
  218. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/brightspeed.json +0 -0
  219. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/brightspeed_qx_i.json +0 -0
  220. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/brightspeed_s.json +0 -0
  221. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_600.json +0 -0
  222. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_610.json +0 -0
  223. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_690.json +0 -0
  224. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_710.json +0 -0
  225. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_ct.json +0 -0
  226. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_ct590_rt.json +0 -0
  227. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_ct750_hd.json +0 -0
  228. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_iq.json +0 -0
  229. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_mi.json +0 -0
  230. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_rx.json +0 -0
  231. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_st.json +0 -0
  232. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_ste.json +0 -0
  233. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/discovery_xr.json +0 -0
  234. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/hispeed_qx_i.json +0 -0
  235. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed.json +0 -0
  236. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed16.json +0 -0
  237. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_plus.json +0 -0
  238. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_pro_16.json +0 -0
  239. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_pro_32.json +0 -0
  240. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_qx_i.json +0 -0
  241. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_rt.json +0 -0
  242. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_rt16.json +0 -0
  243. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_ultra.json +0 -0
  244. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_vct.json +0 -0
  245. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/lightspeed_xtra.json +0 -0
  246. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/optima_560.json +0 -0
  247. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/optima_ct520_series.json +0 -0
  248. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/optima_ct540.json +0 -0
  249. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/optima_ct580.json +0 -0
  250. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/optima_ct660.json +0 -0
  251. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/revolution_ct.json +0 -0
  252. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/revolution_evo.json +0 -0
  253. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/revolution_gsi.json +0 -0
  254. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/ge_medical_systems/revolution_hd.json +0 -0
  255. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/medrad_inc/certegra.json +0 -0
  256. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/philips/brilliance_64.json +0 -0
  257. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/philips/gemini_tf_big_bore.json +0 -0
  258. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/philips/precedence_16p.json +0 -0
  259. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/siemens/sensation_64.json +0 -0
  260. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ct/toshiba/aquilion.json +0 -0
  261. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/bioptics_inc/pathvision.json +0 -0
  262. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/efilm_medical/unknown.json +0 -0
  263. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/faxitron_x_ray_llc/dx_50.json +0 -0
  264. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/ge_healthcare/lunar_prodigy.json +0 -0
  265. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/ge_healthcare/lunar_prodigy_advance.json +0 -0
  266. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/hologic/discovery_a_s_n87685.json +0 -0
  267. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/hologic/discovery_c_s_n81330.json +0 -0
  268. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/hologic/discovery_c_s_n84951.json +0 -0
  269. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/hologic/discovery_sl_s_n82250.json +0 -0
  270. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/hologic/horizon_w_s_n_200112.json +0 -0
  271. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/lexmark/unknown.json +0 -0
  272. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/lifeimagenomination/unknown.json +0 -0
  273. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/lifeimagenotify/unknown.json +0 -0
  274. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/lifeimagereport/unknown.json +0 -0
  275. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/pacsgear/unknown.json +0 -0
  276. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/pacslogic/unknown.json +0 -0
  277. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/pacsmatt/unknown.json +0 -0
  278. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/dx/philips_medical_systems/unknown.json +0 -0
  279. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ko/ge_healthcare_it_radiology/centricity_radiology_ra_1000.json +0 -0
  280. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/bioptics_inc/biovision.json +0 -0
  281. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/bioptics_inc/corevision.json +0 -0
  282. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/bioptics_inc/pixarray100.json +0 -0
  283. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/cadx/cad1.json +0 -0
  284. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/cadx/mmhwdcad.json +0 -0
  285. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/cadx/ohmac2cad.json +0 -0
  286. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/canon/2050c.json +0 -0
  287. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/canon/dr_2010c.json +0 -0
  288. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/confirma_inc/cadstream_4_1_3_985.json +0 -0
  289. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/connect_imaging/unknown.json +0 -0
  290. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/di/document_scanner.json +0 -0
  291. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/eastman_kodak_company/carestream_digitized_priors_input_station_1_1_5_38679_vidar.json +0 -0
  292. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/faxitron_bioptics_llc/biovision.json +0 -0
  293. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/faxitron_x_ray_corporation/dx_50.json +0 -0
  294. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/faxitron_x_ray_llc/dx_50.json +0 -0
  295. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/ge_healthcare/lunar_prodigy_advance.json +0 -0
  296. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/ge_healthcare_it_digital_hardcopy/centricity_digital_hardcopy.json +0 -0
  297. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/ge_healthcare_it_radiology/centricity_radiology_ra_600.json +0 -0
  298. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/hologic/discovery_a_s_n83038.json +0 -0
  299. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/hologic_inc/securview.json +0 -0
  300. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/hologic_inc/trident.json +0 -0
  301. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/icad_inc/7_2_h.json +0 -0
  302. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/icad_inc/icad_powerlook_amp_8_0_1.json +0 -0
  303. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/icad_inc/unknown.json +0 -0
  304. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/kubtec/xpert.json +0 -0
  305. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/kubtec/xpert_20.json +0 -0
  306. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/lexmark/unknown.json +0 -0
  307. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/matakina_technology/unknown.json +0 -0
  308. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/matakina_technology/volpara_server.json +0 -0
  309. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/primordial/unknown.json +0 -0
  310. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/r2_technology_inc/cenova.json +0 -0
  311. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/r2_technology_inc/digitalnow_enhanced.json +0 -0
  312. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/r2_technology_inc/digitalnow_tm.json +0 -0
  313. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/ramsoft_inc/castle_powerreader.json +0 -0
  314. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/siemens_healthcare/syngo_via_va30a.json +0 -0
  315. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/three_palm_software/workstationone.json +0 -0
  316. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/vidar/cad_pro_advantage.json +0 -0
  317. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/vidar/cadpro.json +0 -0
  318. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/vidar/diagnosticpro_advantage.json +0 -0
  319. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/vidar/vidar_digitizer.json +0 -0
  320. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/visage_imaging/senograph_ds_ads_43_10_1.json +0 -0
  321. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/visage_imaging/unknown.json +0 -0
  322. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mg/volpara_limited/unknown.json +0 -0
  323. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/agfa/clinapps.json +0 -0
  324. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/aze/unknown.json +0 -0
  325. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/bammergroup_stanford/rapid_2_0.json +0 -0
  326. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/barco/voxar_3d.json +0 -0
  327. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/cannon/dr_2050c.json +0 -0
  328. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/canon/2050c.json +0 -0
  329. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/circlecvi/unknown.json +0 -0
  330. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/confirma_inc/cadstream_4_1_2_613.json +0 -0
  331. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/dcad/unknown.json +0 -0
  332. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/desacc_inc/health_data_explorer.json +0 -0
  333. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/fujitsu/unknown.json +0 -0
  334. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/ge/signa_1_5t.json +0 -0
  335. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/ge_healthcare_it_radiology/centricity_radiology_ra_600.json +0 -0
  336. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/ge_medical_systems/signa_hdxt.json +0 -0
  337. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/icad/unknown.json +0 -0
  338. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/image_information_systems/unknown.json +0 -0
  339. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/imagenow/unknown.json +0 -0
  340. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/lexmark/unknown.json +0 -0
  341. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/lifeimagenomination/unknown.json +0 -0
  342. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/lifeimagenotify/unknown.json +0 -0
  343. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/lifeimagereport/unknown.json +0 -0
  344. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/lumisys/unknown.json +0 -0
  345. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/medweb/none.json +0 -0
  346. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/merge_healthcare/cadstream_5_2_7_563.json +0 -0
  347. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/merge_healthcare/cadstream_5_2_9_711.json +0 -0
  348. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/merge_healthcare_inc/unknown.json +0 -0
  349. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/neurostar_solutions_inc/unknown.json +0 -0
  350. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/pacsgear/pacsscan.json +0 -0
  351. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/pacsgear/unknown.json +0 -0
  352. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/pacsgear_riipscan/unknown.json +0 -0
  353. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/pacsmatt/unknown.json +0 -0
  354. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/pacsscan/dr_2080c.json +0 -0
  355. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/pacsscan_4_0/unknown.json +0 -0
  356. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/panasonic/kv_s2028c.json +0 -0
  357. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/philips/unknown.json +0 -0
  358. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/philips_medical_systems/unknown.json +0 -0
  359. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/primordial/unknown.json +0 -0
  360. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/radiology_research/hfh.json +0 -0
  361. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/siemens_healthcare/syngo_via_va20a.json +0 -0
  362. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/siemens_healthcare/syngo_via_vb10a.json +0 -0
  363. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/sorna_corporation/unknown.json +0 -0
  364. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/statrad_llc/push2pacs.json +0 -0
  365. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/toshiba_mec/mrt200pp3.json +0 -0
  366. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/toshiba_mec/unknown.json +0 -0
  367. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/urlj/unknown.json +0 -0
  368. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/vassol/unknown.json +0 -0
  369. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/vidar/unknown.json +0 -0
  370. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/vital_images_inc/vitrea_2.json +0 -0
  371. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/mr/viztek/unknown.json +0 -0
  372. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/nm/adac/unknown.json +0 -0
  373. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/nm/ge_medical_systems/discovery_st.json +0 -0
  374. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/nm/segami/mirage.json +0 -0
  375. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ot/ge_medical_systems/qx_i.json +0 -0
  376. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/ot/philips_medical_systems/alluraxper.json +0 -0
  377. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/pct/ge_medical_systems/discovery_ste.json +0 -0
  378. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/pt/ge_medical_systems/discovery_690.json +0 -0
  379. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/pt/ge_medical_systems/discovery_st.json +0 -0
  380. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/pt/ge_medical_systems/discovery_ste.json +0 -0
  381. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/pt/ge_medical_systems/qx_i.json +0 -0
  382. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/pt/philips_medical_systems/allegro_body_c.json +0 -0
  383. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/sc/sante_dicom/unknown.json +0 -0
  384. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/sr/philips_medical_systems/ie33.json +0 -0
  385. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/sr/siemens/biograph128.json +0 -0
  386. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/sr/siemens/sensation_16.json +0 -0
  387. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/sr/siemens/sensation_64.json +0 -0
  388. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/sr/siemens/somatom_definition.json +0 -0
  389. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/sr/siemens/somatom_definition_as.json +0 -0
  390. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/sr/siemens/somatom_definition_edge.json +0 -0
  391. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/sr/siemens/somatom_definition_flash.json +0 -0
  392. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/sr/siemens/somatom_force.json +0 -0
  393. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/sr/sonosite_inc/turbo.json +0 -0
  394. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/acuson/cypress.json +0 -0
  395. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/acuson/sequoia.json +0 -0
  396. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/aloka_co_ltd/ssd_5500.json +0 -0
  397. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/atl/hdi_5000.json +0 -0
  398. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/g_e_medical_systems/logiq_700.json +0 -0
  399. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiq_s6.json +0 -0
  400. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqe.json +0 -0
  401. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqe9.json +0 -0
  402. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqi.json +0 -0
  403. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqp5.json +0 -0
  404. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqp6.json +0 -0
  405. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqp9.json +0 -0
  406. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqs7.json +0 -0
  407. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/logiqs8.json +0 -0
  408. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/venue_40.json +0 -0
  409. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_healthcare/viewpoint.json +0 -0
  410. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_healthcare_it_radiology/centricity_radiology_ra_600.json +0 -0
  411. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_healthcare_viewpoint/viewpoint.json +0 -0
  412. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_medical_systems/logiq5.json +0 -0
  413. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_medical_systems/logiq9.json +0 -0
  414. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_medical_systems/logiqworks.json +0 -0
  415. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/ge_vingmed_ultrasound/vivid7.json +0 -0
  416. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/gems_ultrasound/vivid_i.json +0 -0
  417. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/gems_ultrasound/vivid_s5.json +0 -0
  418. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/gems_ultrasound/vivid_s6.json +0 -0
  419. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/medison/accuvix.json +0 -0
  420. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/medison/accuvix_xg.json +0 -0
  421. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/philips_medical_systems/affiniti_50g.json +0 -0
  422. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/philips_medical_systems/epiq_5g.json +0 -0
  423. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/philips_medical_systems/epiq_7g.json +0 -0
  424. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/philips_medical_systems/hd15.json +0 -0
  425. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/philips_medical_systems/iu22.json +0 -0
  426. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/samsung_medison_co_ltd/rs80a.json +0 -0
  427. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/samsung_medison_co_ltd/sonoace_r7.json +0 -0
  428. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/siemens/acuson_p500.json +0 -0
  429. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/siemens/acuson_sc2000.json +0 -0
  430. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/siemens/acuson_x300.json +0 -0
  431. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/siemens/acuson_x700.json +0 -0
  432. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/siemens/s2000.json +0 -0
  433. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/siemens_medical_systems_ultrasound_division/antares.json +0 -0
  434. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/siemens_ultrasound/g50_s.json +0 -0
  435. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/sonosite_inc/micromaxx.json +0 -0
  436. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/sonosite_inc/nano.json +0 -0
  437. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/sonosite_inc/x_porte.json +0 -0
  438. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/supersonic_imagine_sa/aixplorer.json +0 -0
  439. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/toshiba_mec/ssa_580a.json +0 -0
  440. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/toshiba_mec_us/tus_a500.json +0 -0
  441. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/u_systems/somoviewer.json +0 -0
  442. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/unknown/unknown.json +0 -0
  443. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/zonare/z_one.json +0 -0
  444. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/us/zonare/zs3.json +0 -0
  445. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/xa/philips/allura_clarity.json +0 -0
  446. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/filter/xa/philips_medical_systems/alluraxper.json +0 -0
  447. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/cr/canon_inc/axiom_multix_m.json +0 -0
  448. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/cr/canon_inc/cxdi.json +0 -0
  449. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/cr/konica/0402.json +0 -0
  450. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/cr/medicatechusa/krystalrad_660vsi.json +0 -0
  451. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/cr/shimadzu/cxdi_control_software_ne.json +0 -0
  452. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/ct/siemens/s1000.json +0 -0
  453. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/dx/canon_inc/cxdi.json +0 -0
  454. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/dx/cuattro_llc/clouddr_medical.json +0 -0
  455. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/dx/medicatechusa/krystalrad_660_vxi.json +0 -0
  456. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/dx/medlink_imaging/altodr.json +0 -0
  457. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/nm/ge_medical_systems_nuclear/unknown.json +0 -0
  458. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/ot/ge_medical_systems/discovery_690.json +0 -0
  459. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/ot/ge_medical_systems/discovery_mi.json +0 -0
  460. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/ot/ge_medical_systems/discovery_st.json +0 -0
  461. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/ot/ge_medical_systems/discovery_ste.json +0 -0
  462. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/ot/ge_medical_systems/signa_pet_mr.json +0 -0
  463. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/pt/ge_medical_systems/discovery_600.json +0 -0
  464. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/pt/ge_medical_systems/discovery_mi.json +0 -0
  465. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/pt/ge_medical_systems/signa_pet_mr.json +0 -0
  466. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/pt/philips_medical_systems/guardian_body_c.json +0 -0
  467. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/acuson/cypress.json +0 -0
  468. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/acuson/sequoia.json +0 -0
  469. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/aloka_co_ltd/ssd_5500.json +0 -0
  470. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/aloka_co_ltd/ssd_alpha10.json +0 -0
  471. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/aloka_co_ltd/ssd_alpha5.json +0 -0
  472. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/aloka_co_ltd/ssd_alpha6.json +0 -0
  473. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/aloka_co_ltd/ssd_alpha7.json +0 -0
  474. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/b_k_medical/1202.json +0 -0
  475. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/b_k_medical/2202.json +0 -0
  476. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/bk_medical/2300.json +0 -0
  477. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/g_e_medical_systems/logiq_700.json +0 -0
  478. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiq7.json +0 -0
  479. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiq_s6.json +0 -0
  480. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqe.json +0 -0
  481. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqe9.json +0 -0
  482. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqi.json +0 -0
  483. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqp5.json +0 -0
  484. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqp6.json +0 -0
  485. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqp9.json +0 -0
  486. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqs7.json +0 -0
  487. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/logiqs8.json +0 -0
  488. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/vivide.json +0 -0
  489. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/voluson_p.json +0 -0
  490. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare/voluson_s.json +0 -0
  491. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare_austria_gmbh_co_og/v830.json +0 -0
  492. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_healthcare_austria_gmbh_co_og/voluson_e8.json +0 -0
  493. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_medical_systems/logiq5.json +0 -0
  494. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_medical_systems/logiq9.json +0 -0
  495. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_medical_systems_kretztechnik_gmbh_co_ohg/v830.json +0 -0
  496. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_ultrasound/vivid_3.json +0 -0
  497. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_vingmed_ultrasound/vivid7.json +0 -0
  498. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_vingmed_ultrasound/vivid_e9.json +0 -0
  499. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/ge_vingmed_ultrasound/vivid_e95.json +0 -0
  500. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/gems_ultrasound/logiq_400.json +0 -0
  501. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/gems_ultrasound/vivid_i.json +0 -0
  502. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/gems_ultrasound/vivid_q.json +0 -0
  503. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/gems_ultrasound/vivid_s5.json +0 -0
  504. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/gems_ultrasound/vivid_s6.json +0 -0
  505. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/hitachi_aloka_medical_ltd/noblus.json +0 -0
  506. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/hitachi_aloka_medical_ltd/prosound_f75.json +0 -0
  507. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/medison/accuvix.json +0 -0
  508. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/medison/accuvix_v10.json +0 -0
  509. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/medison/accuvix_v20.json +0 -0
  510. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/medison/accuvix_xg.json +0 -0
  511. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/medison/sonoace_x8.json +0 -0
  512. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/affiniti_50g.json +0 -0
  513. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/affiniti_70g.json +0 -0
  514. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/clearvue_550.json +0 -0
  515. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/cx30.json +0 -0
  516. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/cx50.json +0 -0
  517. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/epiq_5w.json +0 -0
  518. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/epiq_7g.json +0 -0
  519. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/hd15.json +0 -0
  520. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/ie33.json +0 -0
  521. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/iu22.json +0 -0
  522. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/philips_medical_systems/sparq.json +0 -0
  523. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/samsung_medison_co_ltd/h60.json +0 -0
  524. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/samsung_medison_co_ltd/rs80a.json +0 -0
  525. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/samsung_medison_co_ltd/sonoace_r7.json +0 -0
  526. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens/acuson_freestyle.json +0 -0
  527. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens/acuson_p500.json +0 -0
  528. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens/acuson_sc2000.json +0 -0
  529. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens/acuson_x300.json +0 -0
  530. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens/acuson_x700.json +0 -0
  531. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens/s1000.json +0 -0
  532. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens/s2000.json +0 -0
  533. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens/s3000.json +0 -0
  534. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens_medical_systems_ultrasound_division/antares.json +0 -0
  535. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens_ultrasound/elegra.json +0 -0
  536. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens_ultrasound/g40.json +0 -0
  537. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens_ultrasound/g50_s.json +0 -0
  538. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens_ultrasound/g60_s.json +0 -0
  539. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/siemens_ultrasound/x150.json +0 -0
  540. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/sonosite/sonosite_titan.json +0 -0
  541. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/sonosite_inc/micromaxx.json +0 -0
  542. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/sonosite_inc/nano.json +0 -0
  543. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/sonosite_inc/turbo.json +0 -0
  544. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/sonosite_inc/x_porte.json +0 -0
  545. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/supersonic_imagine_sa/aixplorer.json +0 -0
  546. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec/aplioxg.json +0 -0
  547. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec/viamo.json +0 -0
  548. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec/xarioxg.json +0 -0
  549. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec_us/ssh_880cv.json +0 -0
  550. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec_us/tus_a300.json +0 -0
  551. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec_us/tus_a400.json +0 -0
  552. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec_us/tus_a500.json +0 -0
  553. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec_us/tus_ai700.json +0 -0
  554. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/toshiba_mec_us/tus_x200.json +0 -0
  555. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/zonare/z_one.json +0 -0
  556. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/catalog_fixtures/scrub/us/zonare/zs3.json +0 -0
  557. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/test_attributes.py +0 -0
  558. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/test_catalog.py +0 -0
  559. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/test_catalog_regression_fixtures.py +0 -0
  560. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/test_default_catalog.py +0 -0
  561. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/test_jpeg_dct_scrubber.py +0 -0
  562. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/test_pixel_blanker.py +0 -0
  563. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/test_public_api.py +0 -0
  564. {dicom_dre-1.0.0.dev6 → dicom_dre-1.0.0.dev8}/tests/unit/test_text_redactor.py +0 -0
@@ -32,3 +32,7 @@ uv sync
32
32
  echo -e "${BLUE}Compiling JPEG-DCT acceleration extension...${NC}"
33
33
  (cd src && uv run python -m dicom_dre._jpeg_dct_accel_build)
34
34
  rm -f src/dicom_dre/_jpeg_dct_accel.c src/dicom_dre/_jpeg_dct_accel.o
35
+
36
+ # Install git hooks so PHI-protection checks run on commit, push, and commit-msg.
37
+ echo -e "${BLUE}Installing git hooks...${NC}"
38
+ uv run pre-commit install --hook-type pre-commit --hook-type pre-push --hook-type commit-msg
@@ -0,0 +1 @@
1
+ * text=auto eol=lf
@@ -26,6 +26,7 @@ INTERACTION & REASONING GUIDELINES
26
26
  Never use marketing terms (efficient, compelling, comprehensively, effectively, successfully).
27
27
  Never use promotional adjectives (comprehensive, robust, powerful, optimized, seamless, flexible, scalable, intuitive, advanced, cutting-edge).
28
28
  Never use enthusiastic phrases (Perfect! Excellent! Great! Awesome! I have successfully...).
29
+ Avoid the informal term "knobs" for configurable values; use "settings", "options", or "parameters".
29
30
  Avoid evaluative or subjective judgments.
30
31
  Prefer verbs and concrete nouns over adjectives.
31
32
  Omit unverifiable or unquantifiable claims.
@@ -105,6 +106,26 @@ DOCSTRINGS & COMMENTS
105
106
  - First line: short summary sentence
106
107
  - Document all public classes, methods, and functions
107
108
  - Never write obvious comments that simply restate what the code does
109
+ - Omit self-evident or trivially true statements. Do not document facts the
110
+ reader can infer from the signature, types, or an obvious guarantee (for
111
+ example "this module has no dependencies so it avoids an import cycle",
112
+ "returns a value", "this is a helper"). Record a fact only when it is
113
+ non-obvious and affects correctness, safety, performance, or correct use.
114
+ - State what the code does, not what it does not do. Avoid negative-space
115
+ statements that contrast with an alternative or a prior design (for example
116
+ "not passed to X", "rather than closing over Y"); these are usually
117
+ refactoring artifacts. Keep a negative statement only when it conveys
118
+ critical information the reader cannot infer, such as a safety constraint.
119
+ - Write dry, precise prose using established computer science and engineering
120
+ terms. Name the actual mechanism, not an analogy for it.
121
+ - Do not use metaphor or anthropomorphism. Data does not "travel", "live",
122
+ "ship", "flow", or get "baked in"; objects do not "carry", "own", or "want".
123
+ Use precise verbs instead: "is stored in", "resides in", "is fixed at
124
+ construction", "is serialized to", "is passed to", "occurs", "is scoped to".
125
+ - Prohibited terms and replacements: "baked" -> "fixed"/"set at construction";
126
+ "knobs" -> "settings"/"options"/"parameters"; "lives" -> "is stored"/
127
+ "resides"/"occurs"; "travel"/"ship" -> "is serialized"/"is sent"/"is passed";
128
+ "carries" -> "holds"/"contains".
108
129
 
109
130
  Example:
110
131
  def add(x: int, y: int) -> int:
@@ -0,0 +1,84 @@
1
+ ---
2
+ description: Writing documentation in docs/
3
+ applyTo: "docs/**/*.md, README.md"
4
+ ---
5
+
6
+ # Writing Documentation in dicom-dre
7
+
8
+ Rules for writing and editing Markdown documentation under `docs/`. Favor the
9
+ reader: a clear page is more likely to be correct, cheaper to change, and safe
10
+ to reuse. Clarity is the primary goal; the rules below serve it.
11
+
12
+ ## Voice and Style
13
+
14
+ - Write as dry as an IEEE or NIST specification: factual, declarative, and
15
+ impersonal. State facts and requirements; omit motivation, praise, and asides.
16
+ - Use present tense and the active voice ("The engine hashes the value", not
17
+ "The value is hashed by the engine").
18
+ - Prefer verbs and concrete nouns over adjectives.
19
+ - Omit marketing and promotional words (for example efficient, powerful, robust,
20
+ seamless, comprehensive, advanced).
21
+ - Omit claims you cannot verify from the code or tests.
22
+
23
+ ## What to Include
24
+
25
+ - State what a component does, not what it does not do. Avoid negative-space
26
+ descriptions that contrast with an alternative or a prior design (for example
27
+ "handled here rather than in the parent", "not passed to X"); these are
28
+ usually refactoring artifacts. Keep a negative statement only when it conveys
29
+ critical information the reader cannot infer, such as a safety constraint.
30
+ - Omit self-evident or trivially true statements. Do not state facts the reader
31
+ can infer or that hold by construction (for example "this module has no
32
+ dependencies so it avoids an import cycle"). Write only what is non-obvious
33
+ and consequential.
34
+
35
+ ## Terminology and Verbs
36
+
37
+ - Name the actual mechanism, not an analogy. Do not use metaphor or
38
+ anthropomorphism: data does not "travel", "live", "ship", "flow", or get
39
+ "baked in"; objects do not "carry", "own", "want", or "know" anything.
40
+ - Use precise verbs for the operation:
41
+ - storage or location: "is stored in", "is held in", "resides in".
42
+ - fixed at construction: "is fixed at construction", "is set once at
43
+ construction time".
44
+ - cross-process transfer: "is serialized to", "is pickled and sent to", "is
45
+ passed to". State that it crosses the process boundary when relevant.
46
+ - occurrence or scope: "occurs", "is performed", "is scoped to".
47
+ - Prefer terms of art already used in the codebase: serialization,
48
+ immutability, process boundary, construction time, apply time, deterministic
49
+ derivation, closure.
50
+ - Prohibited terms and replacements: "baked" -> "fixed"/"set at construction";
51
+ "knobs" -> "settings"/"options"/"parameters"; "lives" -> "is stored"/
52
+ "resides"/"occurs"; "travel"/"ship" -> "is serialized"/"is sent"/"is passed";
53
+ "carries" -> "holds"/"contains".
54
+
55
+ ## Punctuation
56
+
57
+ - Do not use em-dashes (`--` or the Unicode em-dash). Rephrase into separate
58
+ sentences, or use a colon, comma, or parentheses.
59
+ - Do not use en-dashes for ranges in prose. Write "10 to 30", not "10-30".
60
+
61
+ ## Conciseness
62
+
63
+ - Keep sentences short. Prefer several plain sentences over one long clause.
64
+ - Cut filler and hedging (for example "in order to", "it is important to note
65
+ that", "basically", "simply").
66
+ - Make each point once. One idea per sentence; one topic per paragraph.
67
+
68
+ ## Formatting
69
+
70
+ - Wrap prose at roughly 88 columns to match the source line length.
71
+ - Wrap element names, keywords, parameters, and file paths in backticks
72
+ (`PatientID`, `HASH_SALT`, `~/.config/dicom-dre/salt`).
73
+ - Use fenced code blocks with a language hint for commands and code.
74
+ - Use relative Markdown links between docs pages
75
+ (`[Reproducibility](reproducibility.md)`).
76
+ - Do not use emoji.
77
+
78
+ ## Accuracy
79
+
80
+ - Keep documentation synchronized with the code. When behavior changes, update
81
+ the affected pages in the same change.
82
+ - Verify CLI flags, parameter names, and defaults against the actual source and
83
+ `--help` output before documenting them.
84
+ - When adding a new page, add it to the `nav`/`toctree` so it is reachable.
@@ -0,0 +1,345 @@
1
+ ---
2
+ name: pr-template
3
+ description: 'Generate GitHub-flavored markdown for a pull request against the development branch, formatted as conventional-commit release notes for reuse as a squash/merge commit body. Use when writing a PR description, drafting release notes, or preparing a commit message body.'
4
+ argument-hint: 'against development; optional JIRA ticket'
5
+ ---
6
+
7
+ # Skill Instructions
8
+
9
+ This skill generates a pull request description in GitHub-flavored markdown format
10
+ for the current branch against the development branch. The description is written as
11
+ conventional-commit release notes so it can be reused directly as the body of a
12
+ squash/merge commit that feeds python-semantic-release.
13
+
14
+ ## When to Use
15
+
16
+ - Writing a pull request description for a branch targeting `development`
17
+ - Drafting release notes for a set of branch commits
18
+ - Preparing a squash/merge commit message body in conventional-commit format
19
+
20
+ ## Output
21
+
22
+ The skill produces a markdown template containing:
23
+ - A conventional commit header line (`<type>[scope]: <description> (STAR-12345)`)
24
+ - A short summary paragraph
25
+ - Change groups organized by conventional commit type (Features, Bug Fixes,
26
+ Performance, Refactoring, Documentation, Tests), each as a bullet list
27
+ - An `### Interface and behavior changes` section when the branch changes existing
28
+ behavior or removes a public interface
29
+
30
+ The output is formatted in a code block for easy copy/paste into GitHub and into a
31
+ commit message.
32
+
33
+ ## Execution Steps
34
+
35
+ Large branches produce diff output that exceeds the terminal capture limit and gets
36
+ truncated. Gather change data with compact, aggregated commands first, then read
37
+ individual files or scoped diffs only when needed. Do not pipe these commands through
38
+ `head`/`tail`; that hides data rather than fixing truncation. Run each command
39
+ separately so one large result does not push another out of view.
40
+
41
+ ### Step 1: Gather Branch Information
42
+
43
+ Get the current branch name:
44
+ ```bash
45
+ git branch --show-current
46
+ ```
47
+
48
+ Get commits not in development (short and complete; count first if it may be long):
49
+ ```bash
50
+ git rev-list --count development..HEAD
51
+ git log --oneline development..HEAD
52
+ ```
53
+
54
+ Get a per-directory change summary that stays small on large branches:
55
+ ```bash
56
+ git diff development...HEAD --name-status | awk '{n=$1; $1=""; path=$0; sub(/^ /,"",path); d=path; sub(/\/[^\/]*$/,"",d); print n, d}' | sort | uniq -c | sort -rn
57
+ ```
58
+
59
+ Get file-level status without the size graph (avoids per-line path truncation):
60
+ ```bash
61
+ git diff development...HEAD --name-status
62
+ ```
63
+
64
+ Use `--stat=200,200` only when line counts are needed; the wide format prevents path
65
+ and bar truncation:
66
+ ```bash
67
+ git diff development...HEAD --stat=200,200
68
+ ```
69
+
70
+ ### Step 2: Analyze Changes
71
+
72
+ Work from the aggregated summaries in Step 1 to identify the change groups on the
73
+ branch. When a specific area needs detail, read the file directly or take a diff scoped
74
+ to one path rather than dumping the whole diff:
75
+ ```bash
76
+ git diff development...HEAD -- <path>
77
+ ```
78
+
79
+ Map each change to a conventional commit type:
80
+ - `feat` -> Features
81
+ - `fix` -> Bug Fixes
82
+ - `perf` -> Performance
83
+ - `refactor` -> Refactoring
84
+ - `docs` -> Documentation
85
+ - `test` -> Tests
86
+ - `chore` / `build` / `ci` -> Maintenance (only when relevant)
87
+
88
+ Summarize the branch by its net effect relative to `development`, not by its individual
89
+ commits. A `fix` commit only belongs under Bug Fixes when it corrects behavior that
90
+ already exists on `development` (a prior release). A commit that fixes code introduced
91
+ earlier in this same branch is part of building that feature, not a bug fix against a
92
+ release: fold it into the relevant Features bullet or omit it. To decide, check whether
93
+ the fixed code path exists on `development`:
94
+ ```bash
95
+ git log --oneline development..HEAD -- <path>
96
+ ```
97
+ If every commit touching that path is on this branch (nothing on `development`), treat
98
+ the change as feature development, not a Bug Fix.
99
+
100
+ Identify any change that alters existing behavior, removes a public interface, or
101
+ changes default output. List these under the interface and behavior changes section.
102
+ A change is only an interface or behavior change when it affects code that exists on
103
+ `development`; interfaces added and then adjusted within this branch are new, not changed.
104
+
105
+ ### Step 3: Identify JIRA Ticket
106
+
107
+ Extract the JIRA ticket number from the branch name or commits (e.g., STAR-12345).
108
+
109
+ ### Step 4: Generate Release Notes
110
+
111
+ Write the description as conventional-commit release notes.
112
+
113
+ #### Header
114
+ Single conventional commit header line:
115
+ - `feat: add capability (STAR-12345)`
116
+ - `fix: resolve issue (STAR-12345)`
117
+ - `feat: replace ctp CLI with anonymize CLI (STAR-12345)`
118
+ - `refactor: move result models (STAR-12345)`
119
+
120
+ Use the type of the dominant change on the branch. If several types are present,
121
+ choose the highest-impact type (`feat` > `fix` > others).
122
+
123
+ #### Summary
124
+ One short paragraph (two to four sentences) describing what the branch does and why.
125
+ Keep it in present tense.
126
+
127
+ #### Change Groups
128
+ Add one `###` section per conventional commit type that applies, in this order:
129
+ Features, Bug Fixes, Performance, Refactoring, Documentation, Tests. Under each,
130
+ list changes as bullet points. Use a bold `**scope**:` lead-in where a scope
131
+ clarifies the entry. Omit any section that has no entries.
132
+
133
+ Before writing the Bug Fixes section, apply this gate to every candidate fix:
134
+ 1. Identify the files the fix touches.
135
+ 2. Run `git log --oneline development..HEAD -- <path>` and check whether the code being
136
+ fixed already existed on `development`.
137
+ 3. If the code path is net-new on this branch (all of its history is on the branch),
138
+ the fix is part of building the feature. Do NOT list it under Bug Fixes; fold its
139
+ substance into the matching Features bullet or drop it.
140
+ 4. Only keep a bullet under Bug Fixes when it corrects behavior that shipped on
141
+ `development` in a prior release.
142
+
143
+ On a feature branch this usually leaves Bug Fixes empty. That is expected; omit the
144
+ section entirely rather than repurposing it for intra-branch corrections.
145
+
146
+ #### Interface and behavior changes
147
+ When the branch changes existing behavior or removes a public interface, add a
148
+ `### Interface and behavior changes` section with one bullet per change. Do not add a
149
+ footer token.
150
+
151
+ #### CTP script and native anonymizer changes
152
+ Do not compress CTP script or native anonymizer edits into a single dense bullet. Give
153
+ each its own section and show the actual code so the reader can see exactly what changed.
154
+
155
+ - Changes to CTP scripts (`resources/dicom/scripts/**/*.xml`) go under a
156
+ `### CTP script changes` section. Show the affected rule text in an `xml` fenced code
157
+ block, then describe each element's old -> new effect as bullets keyed by tag.
158
+ - Changes to the native (dicom-dre) engine adapter or profile policy
159
+ (`core/dre_engine.py`, `core/deid_profile.py`) go under a `### Native anonymizer changes`
160
+ section. Show the relevant Python in a `python` fenced code block, then describe what
161
+ each entry changes. (Catalog, tag, and action changes now live in the external
162
+ `dicom-dre` package, not this repository.)
163
+
164
+ Gather the exact lines with scoped diffs, and render the resulting rule/catalog text in
165
+ the code block rather than the raw `+/-` diff:
166
+ ```bash
167
+ git diff development...HEAD -- src/starr_imaging/resources/dicom/scripts
168
+ git diff development...HEAD -- src/starr_imaging/core/dre_engine.py src/starr_imaging/core/deid_profile.py
169
+ ```
170
+ Show only the elements that changed, one code block per script family or catalog area,
171
+ with the prose description immediately beneath the block.
172
+
173
+ In each of these sections, also list the tests and regression-flow changes introduced
174
+ for the rule change, so the validation lives next to the rule it covers. Find them with
175
+ scoped diffs and name the specific test or flow behavior:
176
+ ```bash
177
+ git diff development...HEAD --name-status -- tests
178
+ git diff development...HEAD -- src/starr_imaging/flows/regression
179
+ ```
180
+ For example, note a new cross-reference test asserting a tag's action, a regression
181
+ comparison that now checks the tag, or a regression-flow change that exercises the rule.
182
+ When the same tests are already summarized under the Tests section, reference them here
183
+ rather than duplicating the full list.
184
+
185
+ ### Step 5: Format Output
186
+
187
+ Wrap the entire template in a markdown code block so it copies cleanly into both the
188
+ GitHub PR field and a commit message:
189
+
190
+ ````markdown
191
+ ```markdown
192
+ feat: <short description> (STAR-12345)
193
+
194
+ <one short summary paragraph>
195
+
196
+ ### Features
197
+ - **scope**: change description
198
+ - change description
199
+
200
+ ### Bug Fixes
201
+ - change description
202
+
203
+ ### Documentation
204
+ - change description
205
+
206
+ ### Tests
207
+ - change description
208
+
209
+ ### Interface and behavior changes
210
+ - change description
211
+
212
+ ### CTP script changes
213
+ ```xml
214
+ <rule text that changed>
215
+ ```
216
+ - (gggg,eeee) TagName: old -> new, and the effect on output
217
+ - Coverage: test or regression-flow change that validates this rule
218
+
219
+ ### Native anonymizer changes
220
+ ```python
221
+ # catalog / profile / action code that changed
222
+ ```
223
+ - description of what this entry changes
224
+ - Coverage: test or regression-flow change that validates this rule
225
+ ```
226
+ ````
227
+
228
+ ## Example Output
229
+
230
+ For a branch that adds a native de-identification engine and replaces a CLI:
231
+
232
+ ````markdown
233
+ ```markdown
234
+ feat: add native Python de-identification engine and no-deid profile (STAR-11973)
235
+
236
+ Adds a native Python DICOM de-identification engine that runs alongside the existing
237
+ CTP engine, selected per run via a new `deid_engine` setting that defaults to `ctp`.
238
+ A native engine removes the runtime dependency on the CTP Java process, gives direct
239
+ control over the anonymization pipeline, and enables device-specific private-tag
240
+ handling. Regression runs both engines end-to-end and compares native output against
241
+ CTP tag-by-tag.
242
+
243
+ ### Features
244
+ - **anonymizer**: add native engine with rule catalog, tag definitions, profiles
245
+ (default, lds, lds-no-dob, pre-scrub), pixel blanker, and JPEG DCT annotation removal
246
+ - **settings**: add `deid_engine` setting (`STARR_IMAGING__DEID_ENGINE`), defaulting to `ctp`
247
+ - **processor/flows**: add per-run engine-selection parameter to the DICOM processor
248
+ and Stetson flows
249
+ - **profiles**: add `no-deid` pass-through profile that emits source DICOM unchanged;
250
+ engine-independent and byte-identical across `ctp` and `native`
251
+ - **robustness**: enable `convert_wrong_length_to_UN` and tolerate `BytesLengthException`
252
+ so malformed vendor private elements are preserved as `UN`
253
+
254
+ ### Documentation
255
+ - add native anonymizer, de-identification, device catalog, and JPEG DCT anonymizer docs
256
+
257
+ ### Tests
258
+ - add unit tests for catalog, profiles, pixel blanker, JPEG DCT anonymizer, per-engine
259
+ worker selection, and no-deid pass-through
260
+ - add integration test asserting `no-deid` output is byte-identical to source on both engines
261
+
262
+ ### Interface and behavior changes
263
+ - **CLI**: remove the `ctp` CLI in favor of the new `anonymize` CLI
264
+ - **models**: move `AnonymizerResult` and outcome models to `core/models/anonymizer_models.py`;
265
+ replace `AnonymizedOutcome.was_scrubbed: bool` with `scrub_regions: frozenset[ScrubRegion]`
266
+
267
+ ### CTP script changes
268
+ The metadata scripts (`resources/dicom/scripts/metadata.xml` and the `lds/` and
269
+ `lds-no-dob/` variants) change to reach parity with the native engine:
270
+
271
+ ```xml
272
+ <e t="00120063" n="DeIdentificationMethod">@always()</e>
273
+ <e t="00180015" n="BodyPartExamined">@keep()</e>
274
+ <e t="00540016" n="RadiopharmaceuticalInformationSequence">@process()</e>
275
+ <e t="30060008" n="StructureSetDate">@incrementdate(this,@JITTER)</e>
276
+ ```
277
+
278
+ - (0012,0063) DeIdentificationMethod: add `@always()` so the tag is written even when
279
+ the source omits it.
280
+ - (0018,0015) BodyPartExamined: `@require()` -> `@keep()`, retaining the original value.
281
+ - (0054,0016) RadiopharmaceuticalInformationSequence: drop `@always()`; the sequence is
282
+ processed in place.
283
+ - (3006,0008) StructureSetDate: `@incrementdate(this,@DATEINC)` ->
284
+ `@incrementdate(this,@JITTER)`, fixing an undefined parameter so RTSTRUCT dates jitter
285
+ consistently.
286
+ - Coverage: the CTP cross-reference test asserts these four tag actions, and the
287
+ regression engine comparison now includes (3006,0008) so CTP and native output match.
288
+
289
+ ### Native anonymizer changes
290
+ The native catalog encodes the same rules as the CTP scripts so both engines agree:
291
+
292
+ ```python
293
+ TagRule(Tag(0x0012, 0x0063), Action.ALWAYS), # DeIdentificationMethod
294
+ TagRule(Tag(0x0018, 0x0015), Action.KEEP), # BodyPartExamined
295
+ TagRule(Tag(0x0054, 0x0016), Action.PROCESS), # RadiopharmaceuticalInformationSequence
296
+ TagRule(Tag(0x3006, 0x0008), Action.JITTER_DATE), # StructureSetDate
297
+ ```
298
+
299
+ - Each rule mirrors the CTP element above; regression compares the resulting output
300
+ tag-by-tag to confirm the two engines match.
301
+ - Coverage: the catalog unit test asserts each `TagRule` action, and the regression
302
+ flow runs both engines end-to-end and diffs these tags.
303
+ ```
304
+ ````
305
+
306
+ This branch is a pure feature addition, so there is no Bug Fixes section. Intra-branch
307
+ corrections to the new native engine (for example, fixing the pixel blanker no-op path,
308
+ making `=` matching case-insensitive, or regenerating `file_meta` to avoid PHI leakage)
309
+ are part of building the native engine and are represented by the native-engine Features
310
+ bullet, not listed as Bug Fixes. The CLI and model changes touch code that exists on
311
+ `development`, so they appear under Interface and behavior changes. The CTP script and
312
+ native catalog edits get their own sections with the actual rule text shown as code
313
+ blocks, rather than a single dense bullet.
314
+
315
+ ## Tips
316
+
317
+ - Keep the summary paragraph short; put detail in the grouped bullet lists
318
+ - Use present tense ("adds feature" not "added feature")
319
+ - Group every change under the matching conventional commit type; omit empty groups
320
+ - Give CTP script changes and native anonymizer profile/catalog changes their own
321
+ sections with the actual rule or catalog code in fenced code blocks and a per-item
322
+ description; never compress them into one dense bullet, and list the tests or
323
+ regression-flow changes that validate each rule alongside it
324
+ - Summarize net effect vs. `development`, not per-commit history. Fixes to code that was
325
+ introduced earlier on this same branch are feature development, not Bug Fixes; fold
326
+ them into the Features bullet or drop them. Reserve Bug Fixes for corrections to
327
+ behavior that shipped in a prior release.
328
+ - Small commits with generic messages (e.g., "fix typo", "wip", "cleanup", "address
329
+ review", "copilot feedback", "code review suggestions", formatting-only changes) can
330
+ be excluded from the summary; roll them up or omit them rather than adding a bullet
331
+ per commit
332
+ - Only include the `### Interface and behavior changes` section when the branch actually
333
+ changes existing behavior or removes a public interface
334
+ - Follow conventional commits format for the header
335
+ - Extract JIRA ticket numbers from branch names (e.g., feat/STAR-12345-description)
336
+
337
+ ## Notes
338
+
339
+ - Always compare against the `development` branch, not `main`
340
+ - Use three-dot diff notation (`development...HEAD`) to see changes
341
+ - The output should be ready to paste directly into a GitHub PR description and reused
342
+ as a squash/merge commit body
343
+ - The header type determines the version bump python-semantic-release applies
344
+ (`feat` -> minor, `fix`/`perf` -> patch). Do not add a footer token.
345
+ - Markdown code blocks make it easy to copy/paste without formatting issues
@@ -0,0 +1,124 @@
1
+ name: Deploy Documentation
2
+
3
+ # Publishes the Sphinx documentation to GitHub Pages, versioned by branch.
4
+ #
5
+ # Pushes to `development` publish under /development/ (pre-release docs).
6
+ # Pushes to `main` publish under /stable/ (released docs).
7
+ #
8
+ # Each version lives in its own subdirectory on the `gh-pages` branch. A run
9
+ # reconstructs the full tree (previously published versions plus the version it
10
+ # just built), then force-publishes it, so removed pages do not linger and other
11
+ # versions are preserved. The site root redirects to /stable/ when it exists and
12
+ # otherwise to /development/.
13
+ #
14
+ # GitHub Pages must be configured to serve from the `gh-pages` branch (root).
15
+
16
+ on:
17
+ push:
18
+ branches:
19
+ - main
20
+ - development
21
+ paths:
22
+ - "docs/**"
23
+ - "src/**"
24
+ - "pyproject.toml"
25
+ - ".github/workflows/docs.yml"
26
+ workflow_dispatch:
27
+
28
+ permissions:
29
+ contents: write
30
+
31
+ # Serialize deployments so concurrent pushes to main and development do not race
32
+ # when reconstructing and publishing the shared gh-pages tree.
33
+ concurrency:
34
+ group: docs-pages
35
+ cancel-in-progress: false
36
+
37
+ jobs:
38
+ deploy:
39
+ runs-on: ubuntu-latest
40
+ steps:
41
+ - name: Checkout
42
+ uses: actions/checkout@v4
43
+ with:
44
+ fetch-depth: 0
45
+
46
+ - name: Set up uv
47
+ uses: astral-sh/setup-uv@v5
48
+ with:
49
+ python-version: "3.12"
50
+
51
+ - name: Install dependencies
52
+ run: uv sync
53
+
54
+ - name: Determine version slug
55
+ id: slug
56
+ run: |
57
+ case "${GITHUB_REF_NAME}" in
58
+ main) echo "slug=stable" >> "$GITHUB_OUTPUT" ;;
59
+ development) echo "slug=development" >> "$GITHUB_OUTPUT" ;;
60
+ *) echo "slug=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT" ;;
61
+ esac
62
+
63
+ - name: Build HTML documentation
64
+ run: uv run --group docs sphinx-build -b html docs build/html
65
+
66
+ - name: Checkout existing published docs
67
+ uses: actions/checkout@v4
68
+ continue-on-error: true
69
+ with:
70
+ ref: gh-pages
71
+ path: gh-pages
72
+
73
+ - name: Assemble versioned site
74
+ run: |
75
+ set -euo pipefail
76
+ # A non-matching glob expands to nothing rather than the literal
77
+ # pattern; the gh-pages checkout leaves an empty directory on the first
78
+ # run before the branch exists.
79
+ shopt -s nullglob
80
+ slug="${{ steps.slug.outputs.slug }}"
81
+ mkdir -p site
82
+
83
+ # Carry forward every previously published version except the one being
84
+ # rebuilt in this run.
85
+ for path in gh-pages/*/; do
86
+ name="$(basename "$path")"
87
+ [ "$name" = "${slug}" ] && continue
88
+ cp -r "$path" "site/${name}"
89
+ done
90
+
91
+ # Place the freshly built version.
92
+ rm -rf "site/${slug}"
93
+ cp -r build/html "site/${slug}"
94
+
95
+ # Serve underscore-prefixed asset directories (Sphinx _static, etc.).
96
+ touch site/.nojekyll
97
+
98
+ # Root redirect: prefer stable, fall back to development, then the slug
99
+ # just built.
100
+ if [ -d site/stable ]; then
101
+ target="stable"
102
+ elif [ -d site/development ]; then
103
+ target="development"
104
+ else
105
+ target="${slug}"
106
+ fi
107
+ cat > site/index.html <<EOF
108
+ <!doctype html>
109
+ <meta charset="utf-8">
110
+ <meta http-equiv="refresh" content="0; url=./${target}/">
111
+ <link rel="canonical" href="./${target}/">
112
+ <title>dicom-dre documentation</title>
113
+ <a href="./${target}/">Continue to the documentation</a>
114
+ EOF
115
+
116
+ - name: Deploy to GitHub Pages
117
+ uses: peaceiris/actions-gh-pages@v4
118
+ with:
119
+ github_token: ${{ secrets.GITHUB_TOKEN }}
120
+ publish_branch: gh-pages
121
+ publish_dir: ./site
122
+ force_orphan: true
123
+ user_name: "github-actions[bot]"
124
+ user_email: "github-actions[bot]@users.noreply.github.com"
@@ -0,0 +1,70 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ *.o
7
+
8
+ # Packaging / build
9
+ build/
10
+ dist/
11
+ *.egg-info/
12
+ .eggs/
13
+ src/dicom_dre/_version.py
14
+
15
+ # Sphinx documentation
16
+ docs/_build/
17
+
18
+ # CFFI build scratch (generated by the JPEG-DCT build hook)
19
+ src/dicom_dre/dicom_dre/
20
+ src/dicom_dre/_jpeg_dct_accel.c
21
+
22
+ # Virtual environments
23
+ .venv/
24
+ venv/
25
+
26
+ # Tooling caches
27
+ .mypy_cache/
28
+ .ruff_cache/
29
+ .pytest_cache/
30
+ .coverage
31
+ .coverage.*
32
+ htmlcov/
33
+ coverage.xml
34
+
35
+ # uv
36
+ .uv/
37
+
38
+ # OS / editor
39
+ .DS_Store
40
+
41
+ # Local working files
42
+ temp/
43
+
44
+ # --- PHI leak prevention -------------------------------------------------
45
+ # Block data-file types at the repo root where ad-hoc tooling drops output.
46
+ # Scoped to root with a leading slash so tracked fixtures and resources deeper
47
+ # in the tree (allow lists, catalog fixtures) are unaffected.
48
+ /*.json
49
+ /*.csv
50
+ /*.sql
51
+ /regression*
52
+ /~*
53
+
54
+ # Scratch / local working directories
55
+ /reference/**
56
+ /scripts/**
57
+ local_workspace/
58
+ temp-test/*
59
+ **/ignore/*
60
+ **/DO_NOT_COMMIT.*
61
+
62
+ # Databases and logs
63
+ db.sqlite3
64
+ *.log
65
+
66
+ # DICOM and derived image binaries (may carry burned-in PHI)
67
+ *.dcm
68
+ *.dicom
69
+ *.ima
70
+ *.DCM