rsna-anonymizer 19.0.0.dev2__tar.gz → 19.0.0.dev4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (542) hide show
  1. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/.vscode/settings.json +1 -1
  2. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/CHANGELOG.md +11 -0
  3. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/PKG-INFO +53 -28
  4. rsna_anonymizer-19.0.0.dev4/docs/2_ai features.html +69 -0
  5. rsna_anonymizer-19.0.0.dev4/docs/ai_features/ai batch process.html +79 -0
  6. rsna_anonymizer-19.0.0.dev4/docs/ai_features/face de-identify.html +74 -0
  7. rsna_anonymizer-19.0.0.dev4/docs/ai_features/harmonize.html +77 -0
  8. rsna_anonymizer-19.0.0.dev4/docs/ai_features/remove burnt-in annotation.html +70 -0
  9. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/index.html +6 -5
  10. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/pyproject.toml +1 -1
  11. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/readme.de.md +21 -19
  12. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/readme.es.md +21 -19
  13. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/readme.fr.md +21 -19
  14. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/readme.md +52 -27
  15. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/anonymizer.py +50 -30
  16. rsna_anonymizer-19.0.0.dev4/src/anonymizer/assets/locales/en_US/html/2_ai features.html +68 -0
  17. rsna_anonymizer-19.0.0.dev4/src/anonymizer/assets/locales/en_US/html/ai_features/ai batch process.html +78 -0
  18. rsna_anonymizer-19.0.0.dev4/src/anonymizer/assets/locales/en_US/html/ai_features/face de-identify.html +73 -0
  19. rsna_anonymizer-19.0.0.dev4/src/anonymizer/assets/locales/en_US/html/ai_features/harmonize.html +76 -0
  20. rsna_anonymizer-19.0.0.dev4/src/anonymizer/assets/locales/en_US/html/ai_features/remove burnt-in annotation.html +69 -0
  21. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/html_view.py +50 -4
  22. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/index.py +2 -2
  23. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/series.py +2 -2
  24. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/tseg_setup_dialog.py +1 -1
  25. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/uv.lock +1 -1
  26. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/.editorconfig +0 -0
  27. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/.github/workflows/build_exe.yaml.bak +0 -0
  28. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/.github/workflows/release.yaml +0 -0
  29. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/.github/workflows/tests.yaml +0 -0
  30. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/.gitignore +0 -0
  31. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/.pre-commit-config.yaml +0 -0
  32. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/.vscode/launch.json +0 -0
  33. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/LICENSE +0 -0
  34. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/class_diagram.md +0 -0
  35. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/1_overview.html +0 -0
  36. /rsna_anonymizer-19.0.0.dev2/docs/2_deidentification protocol.html → /rsna_anonymizer-19.0.0.dev4/docs/3_deidentification protocol.html +0 -0
  37. /rsna_anonymizer-19.0.0.dev2/docs/3_managing anonymization projects.html → /rsna_anonymizer-19.0.0.dev4/docs/4_managing anonymization projects.html +0 -0
  38. /rsna_anonymizer-19.0.0.dev2/docs/4_project settings.html → /rsna_anonymizer-19.0.0.dev4/docs/5_project settings.html +0 -0
  39. /rsna_anonymizer-19.0.0.dev2/docs/5_operation.html → /rsna_anonymizer-19.0.0.dev4/docs/6_operation.html +0 -0
  40. /rsna_anonymizer-19.0.0.dev2/docs/6_license.html → /rsna_anonymizer-19.0.0.dev4/docs/7_license.html +0 -0
  41. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/AWSCognitoCredentials.png +0 -0
  42. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/CloneProject.png +0 -0
  43. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/CloseProject.png +0 -0
  44. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/Dashboard.png +0 -0
  45. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/ExportServer.png +0 -0
  46. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/ExportStudiesAWS.png +0 -0
  47. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/ExportStudiesStatus.png +0 -0
  48. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/ImportFilesDialog.png +0 -0
  49. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/ImportFilesMenu.png +0 -0
  50. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/ImportStudiesDialog.png +0 -0
  51. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/ImportStudiesResult.png +0 -0
  52. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/LocalServer.png +0 -0
  53. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/LoggingLevels.png +0 -0
  54. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/Modalities.png +0 -0
  55. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/NetworkTimeouts.png +0 -0
  56. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/NewProject.png +0 -0
  57. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/NewProjectSettings.png +0 -0
  58. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/OpenLogViewer.png +0 -0
  59. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/OpenRecent.png +0 -0
  60. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/PatientLookupData.png +0 -0
  61. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/PatientLookupSave.png +0 -0
  62. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/QueryRetrieveImport.png +0 -0
  63. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/QueryServer.png +0 -0
  64. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/SelectDirectory.png +0 -0
  65. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/SelectFiles.png +0 -0
  66. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/SelectQuery.png +0 -0
  67. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/StorageClasses.png +0 -0
  68. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/StorageDirectory.png +0 -0
  69. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/TransferSyntaxes.png +0 -0
  70. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/Welcome_en_osx_light.png +0 -0
  71. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/images/Welcome_en_win_light.png +0 -0
  72. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/refs/ Westphal_FALCON_CT_2026.pdf +0 -0
  73. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/refs/AttributeLevelConfidentiality_sup55.pdf +0 -0
  74. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/refs/CTP-update-notes_jperry.pdf +0 -0
  75. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/refs/Helper AI V1 -Scope and Implementation Plan - Google Docs.pdf +0 -0
  76. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/refs/Issues/c-move_vna.txt +0 -0
  77. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/refs/ModalityForReportsRequestDocs_cp749_lb.pdf +0 -0
  78. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/refs/RSNA-Covid-19-Deidentification-Protocol.pdf +0 -0
  79. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/docs/styles.css +0 -0
  80. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/patch_release.sh +0 -0
  81. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/scripts/dev_anonymizer.py +0 -0
  82. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/__init__.py +0 -0
  83. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/fonts/DINAlternate-Bold.ttf +0 -0
  84. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/create_icns.sh +0 -0
  85. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/kaleidoscope.png +0 -0
  86. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/kaleidoscope_flat.svg +0 -0
  87. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/kaleidoscope_stack_angle.svg +0 -0
  88. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/kaleidoscope_stack_vert.svg +0 -0
  89. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/pause.png +0 -0
  90. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/play.png +0 -0
  91. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/rsna_icon.icns +0 -0
  92. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/rsna_icon.ico +0 -0
  93. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/rsna_icon.png +0 -0
  94. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/rsna_logo_alpha.png +0 -0
  95. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/rsna_logo_head_profile.png +0 -0
  96. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/rsna_logo_head_profile_1024x1024.png +0 -0
  97. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/rsna_logo_head_profile_titled.png +0 -0
  98. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/rsna_titled_logo.svg +0 -0
  99. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/rsna_titled_logo_alpha.png +0 -0
  100. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/icons/signpath_logo.svg +0 -0
  101. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/Pipfile +0 -0
  102. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/LC_MESSAGES/messages.mo +0 -0
  103. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/LC_MESSAGES/messages.po +0 -0
  104. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/LC_MESSAGES/messages.po~ +0 -0
  105. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/1_/303/274bersicht.html" +0 -0
  106. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/2_deidentifikationsprotokoll.html +0 -0
  107. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/3_anonymisierungsprojekte_verwalten.html +0 -0
  108. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/4_projekteinstellungen.html +0 -0
  109. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/5_bedienung.html +0 -0
  110. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/6_lizenz.html +0 -0
  111. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/AWSCognitoCredentials.png +0 -0
  112. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/AbfrageAbrufenImportieren.png +0 -0
  113. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/Auswahlabfrage.png +0 -0
  114. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/BildarchivQRServer.png +0 -0
  115. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/Dashboard.png +0 -0
  116. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/Dateiauswahloptionen.png +0 -0
  117. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/DateienImportieren.png +0 -0
  118. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/ExportServer.png +0 -0
  119. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/ExportStudienAWS.png +0 -0
  120. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/ExportStudienStatus.png +0 -0
  121. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/ImportlokalenDateisystem.png +0 -0
  122. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/KlonenProjekts.png +0 -0
  123. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/LokalerServer.png +0 -0
  124. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/Modalit/303/244ten.png" +0 -0
  125. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/Netzwerk-Zeit/303/274berschreitungen.png" +0 -0
  126. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/NeueProjekteinstellungen.png +0 -0
  127. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/NeuesProjekt.png +0 -0
  128. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/Patienten-Such-CSV-Datei.png +0 -0
  129. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/PatientenPHI.png +0 -0
  130. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/Projektschlie/303/237en.png" +0 -0
  131. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/Protokollierungsstufen.png +0 -0
  132. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/Speicherklassen.png +0 -0
  133. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/Speicherverzeichnis.png +0 -0
  134. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/TransferSyntaxen.png +0 -0
  135. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/VerzeichnisAusw/303/244hlen.png" +0 -0
  136. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/Welcome_de_osx_light.png +0 -0
  137. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/Welcome_de_win_light.png +0 -0
  138. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/html/images/Wiederer/303/266ffnenProjekts.png" +0 -0
  139. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/whitelists/ct.txt +0 -0
  140. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/whitelists/dx.txt +0 -0
  141. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/whitelists/mr.txt +0 -0
  142. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/de/whitelists/us.txt +0 -0
  143. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/LC_MESSAGES/messages.mo +0 -0
  144. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/LC_MESSAGES/messages.po +0 -0
  145. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/LC_MESSAGES/messages.po~ +0 -0
  146. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/1_overview.html +0 -0
  147. /rsna_anonymizer-19.0.0.dev2/src/anonymizer/assets/locales/en_US/html/2_deidentification protocol.html → /rsna_anonymizer-19.0.0.dev4/src/anonymizer/assets/locales/en_US/html/3_deidentification protocol.html +0 -0
  148. /rsna_anonymizer-19.0.0.dev2/src/anonymizer/assets/locales/en_US/html/3_managing anonymization projects.html → /rsna_anonymizer-19.0.0.dev4/src/anonymizer/assets/locales/en_US/html/4_managing anonymization projects.html +0 -0
  149. /rsna_anonymizer-19.0.0.dev2/src/anonymizer/assets/locales/en_US/html/4_project settings.html → /rsna_anonymizer-19.0.0.dev4/src/anonymizer/assets/locales/en_US/html/5_project settings.html +0 -0
  150. /rsna_anonymizer-19.0.0.dev2/src/anonymizer/assets/locales/en_US/html/5_operation.html → /rsna_anonymizer-19.0.0.dev4/src/anonymizer/assets/locales/en_US/html/6_operation.html +0 -0
  151. /rsna_anonymizer-19.0.0.dev2/src/anonymizer/assets/locales/en_US/html/6_license.html → /rsna_anonymizer-19.0.0.dev4/src/anonymizer/assets/locales/en_US/html/7_license.html +0 -0
  152. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/AWSCognitoCredentials.png +0 -0
  153. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/CloneProject.png +0 -0
  154. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/CloseProject.png +0 -0
  155. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/Dashboard.png +0 -0
  156. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/ExportServer.png +0 -0
  157. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/ExportStudiesAWS.png +0 -0
  158. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/ExportStudiesStatus.png +0 -0
  159. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/ImportFilesDialog.png +0 -0
  160. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/ImportFilesMenu.png +0 -0
  161. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/ImportStudiesDialog.png +0 -0
  162. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/ImportStudiesResult.png +0 -0
  163. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/LocalServer.png +0 -0
  164. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/LoggingLevels.png +0 -0
  165. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/Modalities.png +0 -0
  166. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/NetworkTimeouts.png +0 -0
  167. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/NewProject.png +0 -0
  168. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/NewProjectSettings.png +0 -0
  169. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/OpenLogViewer.png +0 -0
  170. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/OpenRecent.png +0 -0
  171. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/PatientLookupData.png +0 -0
  172. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/PatientLookupSave.png +0 -0
  173. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/QueryRetrieveImport.png +0 -0
  174. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/QueryServer.png +0 -0
  175. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/SelectDirectory.png +0 -0
  176. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/SelectFiles.png +0 -0
  177. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/SelectQuery.png +0 -0
  178. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/StorageClasses.png +0 -0
  179. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/StorageDirectory.png +0 -0
  180. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/TransferSyntaxes.png +0 -0
  181. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/Welcome_en_osx_light.png +0 -0
  182. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/html/images/Welcome_en_win_light.png +0 -0
  183. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/whitelists/ct.txt +0 -0
  184. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/whitelists/dx.txt +0 -0
  185. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/whitelists/mr.txt +0 -0
  186. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/en_US/whitelists/us.txt +0 -0
  187. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/LC_MESSAGES/messages.mo +0 -0
  188. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/LC_MESSAGES/messages.po +0 -0
  189. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/LC_MESSAGES/messages.po~ +0 -0
  190. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/1_visi/303/263n general.html" +0 -0
  191. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/2_protocolo de desidentificaci/303/263n.html" +0 -0
  192. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/3_gesti/303/263n de proyectos.html" +0 -0
  193. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/4_configuraci/303/263n del proyecto.html" +0 -0
  194. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/5_operaci/303/263n.html" +0 -0
  195. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/6_licencia.html +0 -0
  196. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/AWSCognitoCredenciales.png +0 -0
  197. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/AbrirReciente.png +0 -0
  198. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/CerrarProyecto.png +0 -0
  199. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/ClasesDeAlmacenamiento.png +0 -0
  200. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/Clonaci/303/263nDeProyecto.png" +0 -0
  201. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/Configuraci/303/263nDelProyecto.png" +0 -0
  202. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/ConsultarRecuperarImportar.png +0 -0
  203. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/DatosDeB/303/272squedaDePaciente.png" +0 -0
  204. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/DirectorioDeAlmacenamiento.png +0 -0
  205. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/ExportarEstudiosAWS.png +0 -0
  206. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/ExportarEstudiosEstado.png +0 -0
  207. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/GuardarB/303/272squedaDePaciente.png" +0 -0
  208. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/ImportarArchivos.png +0 -0
  209. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/ImportarArchivosDi/303/241logo.png" +0 -0
  210. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/ImportarEstudiosDi/303/241logo.png" +0 -0
  211. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/ImportarEstudiosResultado.png +0 -0
  212. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/Modalidades.png +0 -0
  213. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/NivelesDeRegistro.png +0 -0
  214. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/NuevoProyecto.png +0 -0
  215. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/PanelDeControl.png +0 -0
  216. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/SeleccionarArchivos.png +0 -0
  217. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/SeleccionarDirectorio.png +0 -0
  218. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/SeleccionarImportar.png +0 -0
  219. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/ServidorDeConsulta.png +0 -0
  220. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/ServidorDeExportaci/303/263n.png" +0 -0
  221. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/ServidorLocal.png +0 -0
  222. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/SintaxisDeTransferencia.png +0 -0
  223. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/TimeoutsDeRed.png +0 -0
  224. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/Welcome_es_osx_light.png +0 -0
  225. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html/images/Welcome_es_win_light.png +0 -0
  226. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html_bak/1_visi/303/263n general.html" +0 -0
  227. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html_bak/2_protocolo de desidentificaci/303/263n.html" +0 -0
  228. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html_bak/3_gesti/303/263n de proyectos.html" +0 -0
  229. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html_bak/4_configuraci/303/263n del proyecto.html" +0 -0
  230. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html_bak/5_operaci/303/263n.html" +0 -0
  231. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/html_bak/6_licencia.html +0 -0
  232. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/whitelists/ct.txt +0 -0
  233. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/whitelists/dx.txt +0 -0
  234. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/whitelists/mr.txt +0 -0
  235. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/es/whitelists/us.txt +0 -0
  236. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/extract_translations.sh +0 -0
  237. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/LC_MESSAGES/messages.mo +0 -0
  238. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/LC_MESSAGES/messages.po +0 -0
  239. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/LC_MESSAGES/messages.po~ +0 -0
  240. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/html/1_aper/303/247u.html" +0 -0
  241. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/html/2_protocole de d/303/251sidentification.html" +0 -0
  242. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/html/3_gestion de projet.html +0 -0
  243. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/html/4_param/303/250tres du projet.html" +0 -0
  244. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/html/5_op/303/251ration.html" +0 -0
  245. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/html/6_licence.html +0 -0
  246. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/html/images/Welcome_fr_osx_light.png +0 -0
  247. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/html/images/Welcome_fr_win_light.png +0 -0
  248. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/whitelists/ct.txt +0 -0
  249. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/whitelists/dx.txt +0 -0
  250. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/whitelists/mr.txt +0 -0
  251. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/fr/whitelists/us.txt +0 -0
  252. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/messages.pot +0 -0
  253. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/locales/update_translations.sh +0 -0
  254. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/scripts/default-anonymizer.script +0 -0
  255. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/themes/dark-blue.json +0 -0
  256. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/assets/themes/rsna_theme.json +0 -0
  257. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/__init__.py +0 -0
  258. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/ai_batch_process.py +0 -0
  259. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/anonymizer.py +0 -0
  260. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/blur_face.py +0 -0
  261. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/create_projections.py +0 -0
  262. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/dicom_C_codes.py +0 -0
  263. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/falcon/__init__.py +0 -0
  264. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/falcon/docs/FALCON_Evaluation.md +0 -0
  265. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/falcon/docs/README.md +0 -0
  266. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/falcon/docs/RadLex_Notes.md +0 -0
  267. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/falcon/eval_accuracy.py +0 -0
  268. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/falcon/eval_utils.py +0 -0
  269. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/falcon/load_models.py +0 -0
  270. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/falcon/predict.py +0 -0
  271. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/falcon/preprocessing/__init__.py +0 -0
  272. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/falcon/preprocessing/dicom_loading.py +0 -0
  273. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/falcon/preprocessing/image_transformation.py +0 -0
  274. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/falcon/preprocessing/preprocess_series.py +0 -0
  275. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/falcon/resnet9.py +0 -0
  276. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/harmonize.py +0 -0
  277. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/project.py +0 -0
  278. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/remove_pixel_phi.py +0 -0
  279. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/tseg/__init__.py +0 -0
  280. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/tseg/cache.py +0 -0
  281. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/tseg/config.py +0 -0
  282. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/tseg/contrast.py +0 -0
  283. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/tseg/dicom_geometry.py +0 -0
  284. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/tseg/docs/README.md +0 -0
  285. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/tseg/model_cache.py +0 -0
  286. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/tseg/radlex.py +0 -0
  287. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/tseg/radlex_playbook.py +0 -0
  288. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/tseg/runtime.py +0 -0
  289. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/tseg/runtime_status.py +0 -0
  290. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/controller/tseg/segment.py +0 -0
  291. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/model/__init__.py +0 -0
  292. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/model/anonymizer.py +0 -0
  293. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/model/project.py +0 -0
  294. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/utils/__init__.py +0 -0
  295. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/utils/download_progress.py +0 -0
  296. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/utils/logging.py +0 -0
  297. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/utils/memory.py +0 -0
  298. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/utils/modalities.py +0 -0
  299. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/utils/network.py +0 -0
  300. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/utils/storage.py +0 -0
  301. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/utils/translate.py +0 -0
  302. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/utils/version.py +0 -0
  303. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/__init__.py +0 -0
  304. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/ai_batch_process_dialog.py +0 -0
  305. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/ai_batch_process_options_dialog.py +0 -0
  306. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/blur_face_results.py +0 -0
  307. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/ctk_safe.py +0 -0
  308. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/dashboard.py +0 -0
  309. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/delete_studies_dialog.py +0 -0
  310. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/export.py +0 -0
  311. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/face_blur_review_dialog.py +0 -0
  312. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/harmonize_results.py +0 -0
  313. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/harmonize_studies_dialog.py +0 -0
  314. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/histogram.py +0 -0
  315. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/image.py +0 -0
  316. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/import_files_dialog.py +0 -0
  317. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/import_studies_dialog.py +0 -0
  318. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/navigation.py +0 -0
  319. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/projection.py +0 -0
  320. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/query_retrieve_import.py +0 -0
  321. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/settings/ai_features_panel.py +0 -0
  322. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/settings/aws_cognito_dialog.py +0 -0
  323. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/settings/dicom_node_dialog.py +0 -0
  324. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/settings/logging_levels_dialog.py +0 -0
  325. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/settings/modalites_dialog.py +0 -0
  326. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/settings/network_timeouts_dialog.py +0 -0
  327. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/settings/settings_dialog.py +0 -0
  328. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/settings/sop_classes_dialog.py +0 -0
  329. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/settings/transfer_syntaxes_dialog.py +0 -0
  330. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/ux_fields.py +0 -0
  331. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/anonymizer/view/welcome.py +0 -0
  332. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/messages.pot +0 -0
  333. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/README.md +0 -0
  334. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/__init__.py +0 -0
  335. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/_shared/__init__.py +0 -0
  336. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/_shared/config.py +0 -0
  337. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/_shared/parse_log.py +0 -0
  338. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/_shared/storage_dir.py +0 -0
  339. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/aws/__init__.py +0 -0
  340. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/aws/aws_export1.py +0 -0
  341. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/aws/aws_export2.py +0 -0
  342. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/aws/aws_import1.py +0 -0
  343. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/build/__init__.py +0 -0
  344. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/build/anonymizer_stripped.py +0 -0
  345. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/build/build.py +0 -0
  346. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/build/build_stripped.py +0 -0
  347. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/build/set_gha_env.py +0 -0
  348. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/config.py +0 -0
  349. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/conftest.py +0 -0
  350. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ct/__init__.py +0 -0
  351. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ct/ct_eval.py +0 -0
  352. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ct/ct_eval_cli.html +0 -0
  353. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ct/tests/test_ct_eval_confusion_matrix.py +0 -0
  354. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ct/tests/test_ct_eval_geometry.py +0 -0
  355. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ct/tests/test_ct_eval_geometry_impact.py +0 -0
  356. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ct/tests/test_ct_eval_integration.py +0 -0
  357. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ct_eval.py +0 -0
  358. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/deid/__init__.py +0 -0
  359. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/deid/face/__init__.py +0 -0
  360. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/deid/face/__main__.py +0 -0
  361. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/deid/face_viz_poc.py +0 -0
  362. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/dicom/__init__.py +0 -0
  363. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/dicom/analyse_h264_dcm.py +0 -0
  364. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/dicom/ffmpeg_xa.py +0 -0
  365. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/dicom/get_series_uids.py +0 -0
  366. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/dicom/modalityLUT_smpte_test_pattern.py +0 -0
  367. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/dicom/pynetdicom_scp.py +0 -0
  368. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/dicom/radon_raw_totals.py +0 -0
  369. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ex_test_falcon_rsna_study_temp.py +0 -0
  370. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/falcon/__init__.py +0 -0
  371. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/falcon/rsna_eligibility.py +0 -0
  372. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/falcon/tests/test_rsna_eligibility.py +0 -0
  373. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/__init__.py +0 -0
  374. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/README.md +0 -0
  375. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/__init__.py +0 -0
  376. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/__main__.py +0 -0
  377. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/blur.py +0 -0
  378. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/config.py +0 -0
  379. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/export_dicom.py +0 -0
  380. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/mask_source.py +0 -0
  381. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/models.py +0 -0
  382. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/orientation.py +0 -0
  383. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/pipeline.py +0 -0
  384. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/projections.py +0 -0
  385. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/qa.py +0 -0
  386. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/report.py +0 -0
  387. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/save_integrity.py +0 -0
  388. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/viz/__init__.py +0 -0
  389. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/viz/modes.py +0 -0
  390. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/viz/windowing.py +0 -0
  391. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face/volume.py +0 -0
  392. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/face_viz_poc.py +0 -0
  393. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/remove_facial_features.py +0 -0
  394. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/tests/test_face_orientation.py +0 -0
  395. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/tests/test_face_projections.py +0 -0
  396. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/tests/test_face_report.py +0 -0
  397. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ffr/tests/test_face_save_integrity.py +0 -0
  398. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/fhir/__init__.py +0 -0
  399. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/fhir/epic_fhir_1.py +0 -0
  400. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/fhir/epic_fhir_2.py +0 -0
  401. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/fhir/epic_fhir_3.py +0 -0
  402. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/fhir/epic_fhir_4.py +0 -0
  403. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/fhir/hapi_fhir_2.py +0 -0
  404. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ocr/__init__.py +0 -0
  405. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ocr/ocr1.py +0 -0
  406. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ocr/ocr2_ner.py +0 -0
  407. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ocr/ocr3_anon_blacked.py +0 -0
  408. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ocr/ocr4_anon_rect_mask_inpaint.py +0 -0
  409. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ocr/ocr5_anon_contour_mask_inpaint.py +0 -0
  410. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ocr/ocr6_deid_ner_rect_mask_inpaint.py +0 -0
  411. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ocr/ocr7_deid_ner_contour_mask_inpaint.py +0 -0
  412. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ocr/ocr8_deid_ner_contour_mask_inpaint_grayscale_dcm.py +0 -0
  413. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ocr/ocr9_deid_ner_contour_mask_inpaint_RGB_dcm.py +0 -0
  414. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/pause.png +0 -0
  415. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/play.png +0 -0
  416. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/scratch/__init__.py +0 -0
  417. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/scratch/async_echo.py +0 -0
  418. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/scratch/asyncio_ttk.py +0 -0
  419. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/scratch/asyncio_with_queue.py +0 -0
  420. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/scratch/complex_eg.py +0 -0
  421. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/scratch/dataclass_json.py +0 -0
  422. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/scratch/east_dnn1.py +0 -0
  423. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/scratch/locale_demo.py +0 -0
  424. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/scratch/test_save_model.py +0 -0
  425. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/scratch/test_translation.py +0 -0
  426. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/scratch/threadpooldemo.py +0 -0
  427. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/tests/README.md +0 -0
  428. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ts_seg_face.py +0 -0
  429. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/__init__.py +0 -0
  430. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/contact_sheet_ctk.py +0 -0
  431. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/contact_sheet_gif.py +0 -0
  432. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/contact_sheet_matplotlib.py +0 -0
  433. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/contact_sheet_scroll_frame.py +0 -0
  434. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/contact_sheet_tk.py +0 -0
  435. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/ctk_tkphotoimage_stack_resizable.py +0 -0
  436. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/ctk_toplevel.py +0 -0
  437. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/ctkinputdlg.py +0 -0
  438. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/ctksliderwithmarkers.py +0 -0
  439. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/histogram_widget_1.py +0 -0
  440. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/histogram_widget_2.py +0 -0
  441. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/html_helloworld.py +0 -0
  442. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/html_instructions.py +0 -0
  443. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/imageviewer_1_ctk.py +0 -0
  444. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/imageviewer_2_tk.py +0 -0
  445. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/kaleidoscope_no_lazyload.py +0 -0
  446. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/kaleidoscope_scroller.py +0 -0
  447. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/lazy_load_image_scroll_ctkSF.py +0 -0
  448. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/lazy_load_image_scroll_tk.py +0 -0
  449. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/matplotlib_3d.py +0 -0
  450. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/pixels_ctk.py +0 -0
  451. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/progress_dialog.py +0 -0
  452. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/tkcalendar.py +0 -0
  453. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/tkinter_toplevel.py +0 -0
  454. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/tkmenutest1.py +0 -0
  455. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/tkmenutest2.py +0 -0
  456. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/tkmenutest3.py +0 -0
  457. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/tkphotoimage_stack video_status_below.py +0 -0
  458. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/tkphotoimage_stack video_status_overlay.py +0 -0
  459. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/tkphotoimage_stack.py +0 -0
  460. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/treeviewtable_eg.py +0 -0
  461. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/ttktreeview.py +0 -0
  462. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/ttktreeview2.py +0 -0
  463. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/src/prototyping/ui/ttktreeview_popup.py +0 -0
  464. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/README.md +0 -0
  465. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/__init__.py +0 -0
  466. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/conftest.py +0 -0
  467. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/README.md +0 -0
  468. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/assets/JavaGeneratedIndex.xlsx +0 -0
  469. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/assets/falcon_eval/README.md +0 -0
  470. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/assets/test_dcm_files/dicomdirtests_README.txt +0 -0
  471. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/assets/test_dcm_files/pydicom_test_files.txt +0 -0
  472. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/assets/test_dcm_files/synthetic_CT_head/.phantom_version +0 -0
  473. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/blur_face/test_face_blur_gate.py +0 -0
  474. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/blur_face/test_face_export_dicom.py +0 -0
  475. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/blur_face/test_face_mask.py +0 -0
  476. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/blur_face/test_face_pipeline.py +0 -0
  477. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/blur_face/test_face_preview.py +0 -0
  478. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/blur_face/test_face_qa.py +0 -0
  479. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/blur_face/test_monochrome_blackout.py +0 -0
  480. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/blur_face/test_ocr_filter.py +0 -0
  481. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/blur_face/test_ocr_series_view_alignment.py +0 -0
  482. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/blur_face/test_ocr_service.py +0 -0
  483. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/blur_face/test_pixel_phi_metadata.py +0 -0
  484. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/blur_face/test_pixel_phi_synthetic_ct.py +0 -0
  485. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/conftest.py +0 -0
  486. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/core/test_ai_batch_process.py +0 -0
  487. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/core/test_anonymize.py +0 -0
  488. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/core/test_create_projections.py +0 -0
  489. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/dicom/support/helpers.py +0 -0
  490. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/dicom/support/pacs_simulator_scp.py +0 -0
  491. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/dicom/support/test_files.py +0 -0
  492. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/dicom/support/test_nodes.py +0 -0
  493. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/dicom/test_echo_scu.py +0 -0
  494. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/dicom/test_move_scu.py +0 -0
  495. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/dicom/test_send_find_scu.py +0 -0
  496. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/dicom/test_storage_scp.py +0 -0
  497. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/falcon/test_dicom_loading.py +0 -0
  498. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/falcon/test_eval_accuracy.py +0 -0
  499. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/falcon/test_eval_utils.py +0 -0
  500. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/falcon/test_predict.py +0 -0
  501. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/harmonize/test_harmonize.py +0 -0
  502. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/harmonize/test_harmonize_batch.py +0 -0
  503. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/harmonize/test_harmonize_save_integrity.py +0 -0
  504. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/infra/test_aws_upload.py +0 -0
  505. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/infra/test_cli.py +0 -0
  506. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/infra/test_load_java_index.py +0 -0
  507. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/infra/test_logging.py +0 -0
  508. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/infra/test_modalities.py +0 -0
  509. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/infra/test_network.py +0 -0
  510. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/infra/test_storage.py +0 -0
  511. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/infra/test_translate.py +0 -0
  512. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/infra/test_version.py +0 -0
  513. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/paths.py +0 -0
  514. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/support/pixel_phi_test_support.py +0 -0
  515. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/tseg/fixtures.py +0 -0
  516. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/tseg/support/synthetic_ct.py +0 -0
  517. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/tseg/test_dicom_geometry.py +0 -0
  518. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/tseg/test_model_cache_tasks.py +0 -0
  519. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/tseg/test_radlex_playbook.py +0 -0
  520. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/tseg/test_runtime_status.py +0 -0
  521. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/tseg/test_tseg.py +0 -0
  522. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/tseg/test_tseg_cache.py +0 -0
  523. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/tseg/test_tseg_contrast.py +0 -0
  524. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/tseg/test_tseg_face.py +0 -0
  525. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/tseg/test_tseg_radlex.py +0 -0
  526. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/tseg/test_tseg_segment.py +0 -0
  527. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/controller/tseg/test_tseg_synthetic.py +0 -0
  528. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/model/test_model_ORM.py +0 -0
  529. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/model/test_project_model_v7.py +0 -0
  530. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/model/test_schema_sync.py +0 -0
  531. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/utils/test_download_progress.py +0 -0
  532. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/utils/test_memory.py +0 -0
  533. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/view/test_ai_batch_process_options_dialog.py +0 -0
  534. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/view/test_ai_features_panel.py +0 -0
  535. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/view/test_blur_face_mode_menu.py +0 -0
  536. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/view/test_ctk_safe.py +0 -0
  537. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/view/test_face_blur_review_dialog.py +0 -0
  538. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/view/test_harmonize_results.py +0 -0
  539. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/view/test_return_to_phi_index.py +0 -0
  540. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/view/test_series_context_line.py +0 -0
  541. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/view/test_series_view_companion.py +0 -0
  542. {rsna_anonymizer-19.0.0.dev2 → rsna_anonymizer-19.0.0.dev4}/tests/view/test_tseg_setup_dialog.py +0 -0
@@ -11,7 +11,7 @@
11
11
  "editor.defaultFormatter": "charliermarsh.ruff",
12
12
  "editor.formatOnSave": true,
13
13
  },
14
- "python.languageServer": "Default",
14
+ "python.languageServer": "None",
15
15
  "python.analysis.typeCheckingMode": "basic",
16
16
  "python-envs.defaultEnvManager": "ms-python.python:poetry",
17
17
  "python-envs.defaultPackageManager": "ms-python.python:poetry",
@@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [19.0.0.dev4]
8
+ - Fix welcome screen clipped on macOS Retina (Tk 9): size main window after welcome layout
9
+ - Help menu: **AI Features** opens setup (not only the Welcome screen button)
10
+ - Readme: macOS install with `python-tk@3.12`, uv managed Python 3.12 with Tcl/Tk 9, in-venv Tk verification
11
+
12
+ ## [19.0.0.dev3]
13
+ - English AI Features help: overview after Overview, linked tool pages (not in Help menu), in-app `help:` navigation, wider layout
14
+ - AI Features setup opened from Welcome screen only; help and UI messages updated accordingly
15
+ - Remove Burnt-in Annotation help: click green rectangles after Detect Text to whitelist text
16
+ - Readmes document uv-based install and upgrade for faster V19 setup
17
+
7
18
  ## [19.0.0.dev2]
8
19
  - AI batch processing (harmonize, face blur, remove pixel PHI) with progress UI and memory guards
9
20
  - Batch OCR and MONOCHROME1 blackout aligned with Series View pixel pipeline
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rsna-anonymizer
3
- Version: 19.0.0.dev2
3
+ Version: 19.0.0.dev4
4
4
  Summary: RSNA DICOM Anonymizer
5
5
  Project-URL: Homepage, https://github.com/RSNA/anonymizer
6
6
  Author-email: Algorhythm Software <michael@dx.life>
@@ -37,7 +37,7 @@ Requires-Dist: totalsegmentator>=2.3.0
37
37
  Requires-Dist: xgboost>=2.0.0
38
38
  Description-Content-Type: text/markdown
39
39
 
40
- # RSNA DICOM Anonymizer (V18 stable / V19 dev)
40
+ # RSNA DICOM Anonymizer (V19)
41
41
  [![de](https://img.shields.io/badge/lang-de-blue.svg)](readme.de.md)
42
42
  [![es](https://img.shields.io/badge/lang-es-blue.svg)](readme.es.md)
43
43
  [![fr](https://img.shields.io/badge/lang-fr-blue.svg)](readme.fr.md)
@@ -50,49 +50,80 @@ Description-Content-Type: text/markdown
50
50
  - Select "Add python.exe to PATH"
51
51
  - Enable "tcl/tk and IDLE"
52
52
  ### macOS
53
- 1. Install Homebrew if not present: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)'
54
- 2. Install Python 3.12 with Tcl/Tk:
55
- ```
56
- brew install python@3.12
57
- brew install tcl-tk
53
+ 1. Install Homebrew if not present: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
54
+ 2. Install Python **3.12** (not Homebrew's default `python3`, which may be 3.14), tkinter, and OpenMP (required for Harmonize contrast analysis on macOS):
55
+
56
+ ```bash
57
+ brew install python@3.12 python-tk@3.12 libomp
58
58
  ```
59
+
60
+ Homebrew's `python@3.12` does not include tkinter by itself — use **`python-tk@3.12`**.
61
+
59
62
  ### Linux (Ubuntu/Debian)
60
63
  1. Install the required packages:
61
64
  ```
62
65
  sudo apt update
63
66
  sudo apt install software-properties-common
64
67
  sudo add-apt-repository ppa:deadsnakes/ppa
65
- sudo apt install python3.12 python3.12-tk
68
+ sudo apt install python3.12 python3.12-tk python3.12-venv
66
69
  ```
67
70
  ## Verify Installation
71
+ Use **Python 3.12** explicitly (`python3.12`, not `python3`):
72
+
73
+ ```bash
74
+ python3.12 --version
75
+ python3.12 -m tkinter
76
+ python3.12 -c "import tkinter as tk; print('Tk', tk.TkVersion)"
68
77
  ```
69
- python --version
70
- python -m tkinter
78
+
79
+ If python + tkinter has been installed successfully a small GUI window should open. On macOS, **Tk should be 9.0** for correct UI rendering with CustomTkinter 6.
80
+
81
+ ## Install rsna-anonymizer from PyPI
82
+
83
+ V19 is on PyPI as a pre-release (`--pre`). Use [uv](https://docs.astral.sh/uv/) — much faster than plain `pip` for large ML dependencies (PyTorch, TotalSegmentator, etc.).
84
+
85
+ ### One-time: install uv
86
+
87
+ ```bash
88
+ curl -LsSf https://astral.sh/uv/install.sh | sh
71
89
  ```
72
- If python + tkinter has been installed successfully a small GUI window should open
73
- ## Install rsna-anonymizer package from PyPI
74
90
 
75
- Stable (V18):
91
+ Windows (PowerShell): `powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"`
92
+
93
+ Restart the terminal if `uv` is not found.
94
+
95
+ On macOS, update uv and install its managed Python 3.12 with Tcl/Tk 9 (recommended when Homebrew Python is broken or unavailable):
76
96
 
77
97
  ```bash
78
- pip install rsna-anonymizer
98
+ uv self update
99
+ uv python install --reinstall 3.12
79
100
  ```
80
101
 
81
- V19 development pre-release (requires `--pre`; does not replace the stable install above):
102
+ ### Create a virtual environment
82
103
 
83
104
  ```bash
84
- pip install --pre rsna-anonymizer
105
+ uv venv rsna-anonymizer --python 3.12
106
+ source rsna-anonymizer/bin/activate # Windows: rsna-anonymizer\Scripts\activate
85
107
  ```
86
108
 
87
- Pin a specific dev build:
109
+ Verify **inside the activated venv** (must be Python 3.12.x and Tk 9.0 on macOS):
88
110
 
89
111
  ```bash
90
- pip install --pre rsna-anonymizer==19.0.0.dev2
112
+ python --version
113
+ python -c "import tkinter as tk; print('Tk', tk.TkVersion)"
91
114
  ```
92
115
 
93
- Verify: `pip show rsna-anonymizer` or `rsna-anonymizer --version`. See [CHANGELOG](CHANGELOG.md#1900dev2) for dev release notes.
116
+ If `uv venv --python 3.12` gives Tk 8.6, run `uv python install --reinstall 3.12` and recreate the venv. If Homebrew Python works, you can use `python3.12 -m venv rsna-anonymizer` and `python -m pip install --pre rsna-anonymizer` instead of `uv venv`.
94
117
 
95
- TotalSegmentator, XGBoost, and related dependencies are included. Enable Harmonize, Face Blur, and Remove Pixel PHI per project in **Settings → Project** (or when creating a new project). Download models and apply the face license from the AI Features panel.
118
+ ### Install the package
119
+
120
+ ```bash
121
+ uv pip install --pre rsna-anonymizer
122
+ ```
123
+
124
+ Verify: `uv pip show rsna-anonymizer` or `rsna-anonymizer --version`. See [CHANGELOG](CHANGELOG.md) for release notes.
125
+
126
+ TotalSegmentator, XGBoost, and related dependencies are included. Download models and accept the face license from **Help → AI Features** or the **AI Features** button on the Welcome screen.
96
127
  ## Execution
97
128
  `rsna-anonymizer`
98
129
  ### Headless Mode
@@ -100,16 +131,10 @@ You need to provide a path to a project configuration to run in headless mode
100
131
  `rsna-anonymizer -c path/to/ProjectModel.json`
101
132
  ## Upgrading
102
133
 
103
- Stable:
104
-
105
- ```bash
106
- pip install --upgrade rsna-anonymizer
107
- ```
108
-
109
- V19 dev pre-release:
134
+ Activate the virtual environment first (`source rsna-anonymizer/bin/activate`).
110
135
 
111
136
  ```bash
112
- pip install --upgrade --pre rsna-anonymizer
137
+ uv pip install --upgrade --pre rsna-anonymizer
113
138
  ```
114
139
  ## Documentation
115
140
  [Help files](https://rsna.github.io/anonymizer)
@@ -0,0 +1,69 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>RSNA DICOM Anonymizer AI Features</title>
7
+ <link rel="stylesheet" href="styles.css">
8
+ </head>
9
+ <body>
10
+ <h1>AI Features</h1>
11
+ <p>
12
+ The Anonymizer can use optional <b>AI Features</b> to improve de-identification beyond removing patient names and IDs from DICOM tags.
13
+ These tools work on the <b>image pixels</b> or on <b>series descriptions</b> and are designed for research datasets where burned-in text, recognizable faces, or inconsistent series names could still identify a patient.
14
+ </p>
15
+ <p>
16
+ All AI Features are <b>optional</b>. You choose which tools to turn on for your project. None of them run until you enable them and complete any required setup (such as downloading helper files).
17
+ </p>
18
+
19
+ <h2>Opening AI Features Setup</h2>
20
+ <p>
21
+ From the <b>Welcome</b> screen, click the <b>AI Features</b> button to open setup.
22
+ </p>
23
+ <p>
24
+ The setup window lists each available tool with a short description, an on/off checkbox, and a status line (for example “Ready” or “Models not downloaded”).
25
+ </p>
26
+
27
+ <h2>First-time setup (all tools)</h2>
28
+ <ol>
29
+ <li>On the <b>Welcome</b> screen, click <b>AI Features</b>.</li>
30
+ <li>Turn on the tools you plan to use by checking the box next to each name.</li>
31
+ <li>If a <b>Download</b> button appears, click it and wait until the status shows the tool is ready. Downloads are stored on your computer for future sessions.</li>
32
+ <li>For <b>Face De-identify</b> only: you must also accept the academic license when prompted (see <a href="ai_features/face de-identify.html">Face De-identify</a>).</li>
33
+ <li>Click <b>Save</b> or close the dialog to keep your choices.</li>
34
+ </ol>
35
+ <p>
36
+ An internet connection is needed only while downloading helper files. After that, the tools run locally on your machine.
37
+ </p>
38
+
39
+ <h2>Available tools</h2>
40
+ <p>Each tool has its own help page with step-by-step configuration and usage:</p>
41
+ <ul>
42
+ <li><a href="ai_features/remove burnt-in annotation.html">Remove Burnt-in Annotation</a> — finds and removes text burned into the image (patient labels on X-rays, ultrasound overlays, etc.).</li>
43
+ <li><a href="ai_features/harmonize.html">Harmonize</a> — suggests a standard CT series description from anatomy and contrast (RadLex playbook style).</li>
44
+ <li><a href="ai_features/face de-identify.html">Face De-identify</a> — blurs the face region on head CT scans to reduce the chance of recognition.</li>
45
+ <li><a href="ai_features/ai batch process.html">AI Batch Process</a> — runs one or more of the tools above on many studies at once from the PHI Index.</li>
46
+ </ul>
47
+
48
+ <h2>Where you can run AI Features</h2>
49
+ <ul>
50
+ <li><b>Series View</b> — work on a single series: detect/remove text, harmonize description, or review face blur (see Help/Operation for Series View).</li>
51
+ <li><b>AI Batch Process</b> — on the PHI Index, select studies and run the enabled tools in bulk (see <a href="ai_features/ai batch process.html">AI Batch Process</a>).</li>
52
+ </ul>
53
+
54
+ <h2>Turning a tool off</h2>
55
+ <ul>
56
+ <li>Uncheck the tool in the <b>AI Features</b> setup window (Welcome screen).</li>
57
+ <li>If you disable a tool whose files were already downloaded, the Anonymizer may ask whether to remove those files from disk to save space.</li>
58
+ <li>Disabling a tool does not undo changes already applied to exported images.</li>
59
+ </ul>
60
+
61
+ <h2>If something is not ready</h2>
62
+ <ul>
63
+ <li>On the <b>Welcome</b> screen, click <b>AI Features</b> and read the status line under each tool.</li>
64
+ <li>Complete any pending download or license step.</li>
65
+ <li>On macOS, Harmonize may require an extra system library (<i>libomp</i>) for contrast analysis; install via Homebrew if the status message mentions OpenMP or XGBoost.</li>
66
+ </ul>
67
+
68
+ </body>
69
+ </html>
@@ -0,0 +1,79 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>RSNA DICOM Anonymizer AI Batch Process</title>
7
+ <link rel="stylesheet" href="../styles.css">
8
+ </head>
9
+ <body>
10
+ <h1>AI Batch Process</h1>
11
+ <p>
12
+ <b>AI Batch Process</b> runs one or more enabled AI Features on <b>many studies at once</b> from the PHI Index, instead of opening each series manually in Series View.
13
+ It is useful after import when you want to harmonize descriptions, remove burnt-in text, or blur faces across an entire cohort.
14
+ </p>
15
+
16
+ <h2>Before you start</h2>
17
+ <ol>
18
+ <li>Open a project and import the studies you want to process.</li>
19
+ <li>On the <b>Welcome</b> screen, click <b>AI Features</b> and enable the tools you need (see <a href="../2_ai features.html">AI Features</a>).</li>
20
+ <li>Complete downloads and the face license if using Face De-identify.</li>
21
+ <li>Confirm each enabled tool shows a ready status.</li>
22
+ </ol>
23
+
24
+ <h2>Starting a batch run</h2>
25
+ <ol>
26
+ <li>On the dashboard, open the <b>PHI Index</b> (patient/study list).</li>
27
+ <li>Select one or more studies (or patients) using the same selection methods as for export.</li>
28
+ <li>Click <b>AI Batch Process</b>.</li>
29
+ <li>In the options dialog, check each algorithm you want to run:</li>
30
+ <ul>
31
+ <li><a href="remove burnt-in annotation.html">Remove Burnt-in Annotation</a> — choose black out or blend mode.</li>
32
+ <li><a href="harmonize.html">Harmonize</a> — CT series descriptions only.</li>
33
+ <li><a href="face de-identify.html">Face De-identify</a> — head CT face blur.</li>
34
+ </ul>
35
+ <li>Click <b>Start</b>. A progress dialog shows the current study, series, and phase.</li>
36
+ </ol>
37
+
38
+ <h2>Order of operations</h2>
39
+ <p>When you select multiple tools, the batch runner processes them in this order for each series:</p>
40
+ <ol>
41
+ <li>Remove Burnt-in Annotation (if selected)</li>
42
+ <li>Harmonize (if selected)</li>
43
+ <li>Face De-identify (if selected)</li>
44
+ </ol>
45
+ <p>This order avoids re-reading pixels after they have been modified and keeps memory use predictable on large jobs.</p>
46
+
47
+ <h2>What happens during processing</h2>
48
+ <ul>
49
+ <li>Each series is evaluated. If a tool does not apply (wrong modality, already done, not ready), it is skipped and noted in the log.</li>
50
+ <li>You can cancel between series; the current series may finish its active step before stopping.</li>
51
+ <li>A summary at the end lists completed, skipped, and failed items.</li>
52
+ <li>Detailed lines are written to the project log file for troubleshooting.</li>
53
+ </ul>
54
+
55
+ <h2>After batch completes</h2>
56
+ <ul>
57
+ <li>Spot-check representative series in Series View or View Index projections.</li>
58
+ <li>Export anonymized data when satisfied (see Help/Operation).</li>
59
+ <li>Re-running batch on the same studies usually skips work already recorded in project metadata (for example pixel-PHI already scanned), unless you clear caches or force reprocessing.</li>
60
+ </ul>
61
+
62
+ <h2>Common messages</h2>
63
+ <ul>
64
+ <li><b>No AI features are enabled</b> — on the Welcome screen, click <b>AI Features</b> and turn on at least one tool.</li>
65
+ <li><b>AI features are not ready</b> — open <b>AI Features</b> from the Welcome screen and finish model downloads or license steps.</li>
66
+ <li><b>Skipped (not CT)</b> — Harmonize or Face De-identify was selected but the series is another modality.</li>
67
+ <li><b>Skipped (already harmonized / already scanned)</b> — previous batch or manual run recorded completion; safe to ignore unless you intentionally want to redo work.</li>
68
+ </ul>
69
+
70
+ <h2>Related help pages</h2>
71
+ <ul>
72
+ <li><a href="../2_ai features.html">AI Features</a> — enable tools and downloads</li>
73
+ <li><a href="remove burnt-in annotation.html">Remove Burnt-in Annotation</a></li>
74
+ <li><a href="harmonize.html">Harmonize</a></li>
75
+ <li><a href="face de-identify.html">Face De-identify</a></li>
76
+ </ul>
77
+
78
+ </body>
79
+ </html>
@@ -0,0 +1,74 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>RSNA DICOM Anonymizer Face De-identify</title>
7
+ <link rel="stylesheet" href="../styles.css">
8
+ </head>
9
+ <body>
10
+ <h1>Face De-identify</h1>
11
+ <p>
12
+ On some <b>head CT</b> scans, facial features in the reconstructed images could allow someone to recognize a patient even after DICOM tags are removed.
13
+ <b>Face De-identify</b> finds the face region in the scan, blurs those voxels, and saves updated images suitable for research sharing.
14
+ </p>
15
+
16
+ <h2>What you need before using it</h2>
17
+ <ol>
18
+ <li>On the <b>Welcome</b> screen, click <b>AI Features</b>.</li>
19
+ <li>Check <b>Face De-identify</b>.</li>
20
+ <li>Click <b>Download</b> for the face segmentation model if prompted.</li>
21
+ <li>Accept the <b>academic license</b> when prompted (required by the segmentation software vendor). This is a one-time acknowledgement on your machine.</li>
22
+ <li>Save your settings.</li>
23
+ </ol>
24
+
25
+ <h2>Which studies qualify</h2>
26
+ <ul>
27
+ <li><b>Modality:</b> CT only.</li>
28
+ <li><b>Anatomy:</b> Head or head-and-neck coverage where a face segmentation is feasible.</li>
29
+ <li>Very small fields of view, corrupted stacks, or non-diagnostic scouts may be skipped with a message explaining why.</li>
30
+ </ul>
31
+
32
+ <h2>How it works (in plain terms)</h2>
33
+ <ol>
34
+ <li>The tool converts the CT series into a 3D volume.</li>
35
+ <li>It runs a face segmentation model to locate voxels belonging to the face.</li>
36
+ <li>It blurs those voxels using the blur mode you selected (see below).</li>
37
+ <li>Blurred slices are written as a new DICOM series (or update path used by your workflow) while preserving geometry and unrelated anatomy.</li>
38
+ <li>Segmentation masks are cached so re-running on the same series is faster.</li>
39
+ </ol>
40
+
41
+ <h2>Blur modes</h2>
42
+ <ul>
43
+ <li><b>Gaussian blur</b> — smooth blur inside the face mask (common default).</li>
44
+ <li><b>Mean / median blur</b> — alternative smoothing styles; choose in Series View or batch options if available.</li>
45
+ </ul>
46
+ <p>After batch or automatic blur, open the <b>Face blur review</b> dialog when offered to confirm coverage on sample slices before export.</p>
47
+
48
+ <h2>Using Series View (one series)</h2>
49
+ <ol>
50
+ <li>Open <b>Series View</b> for a qualifying head CT series.</li>
51
+ <li>Run face blur from the series actions (when enabled and ready).</li>
52
+ <li>Review axial slices in the review dialog: check that the face is covered and that critical anatomy outside the mask is unchanged.</li>
53
+ <li>Accept or re-run with <b>force</b> if you changed inputs and need a fresh segmentation.</li>
54
+ </ol>
55
+
56
+ <h2>Batch processing many studies</h2>
57
+ <p>See <a href="ai batch process.html">AI Batch Process</a>. Select <b>Face De-identify</b> in the batch dialog. Ineligible series are skipped and counted in the batch summary.</p>
58
+
59
+ <h2>Limitations and tips</h2>
60
+ <ul>
61
+ <li>Designed for CT head data — not for plain radiographs or MRI facial sequences.</li>
62
+ <li>Always review a subset of blurred series; segmentation can miss unusual positioning or extreme anatomy.</li>
63
+ <li>Blurring reduces recognizability but is not a guarantee against all re-identification risk.</li>
64
+ <li>Face model download and license acceptance require internet once; processing itself is local.</li>
65
+ </ul>
66
+
67
+ <h2>Related help pages</h2>
68
+ <ul>
69
+ <li><a href="../2_ai features.html">AI Features</a></li>
70
+ <li><a href="ai batch process.html">AI Batch Process</a></li>
71
+ </ul>
72
+
73
+ </body>
74
+ </html>
@@ -0,0 +1,77 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>RSNA DICOM Anonymizer Harmonize</title>
7
+ <link rel="stylesheet" href="../styles.css">
8
+ </head>
9
+ <body>
10
+ <h1>Harmonize</h1>
11
+ <p>
12
+ Research datasets often use inconsistent <b>Series Description</b> names for similar exams (“CHEST WO”, “CT thorax”, etc.).
13
+ <b>Harmonize</b> analyzes a <b>CT series</b> and suggests a standardized description based on which body regions are visible and whether IV contrast appears to be present.
14
+ Descriptions follow the RSNA Radiology Playbook (RadLex) style, for example combining regions like <i>Chest+Abdomen</i> and contrast such as <i>IV Contrast</i>.
15
+ </p>
16
+ <p>
17
+ <b>Important:</b> Harmonize only updates the <b>SeriesDescription</b> DICOM tag. It does not change the pixel data.
18
+ </p>
19
+
20
+ <h2>What you need before using it</h2>
21
+ <ol>
22
+ <li>On the <b>Welcome</b> screen, click <b>AI Features</b>.</li>
23
+ <li>Check <b>Harmonize</b>.</li>
24
+ <li>Click <b>Download</b> for anatomy segmentation models if prompted (this may take several minutes and requires internet once).</li>
25
+ <li>On macOS, install <i>libomp</i> via Homebrew if the status mentions XGBoost or OpenMP.</li>
26
+ <li>Save your settings.</li>
27
+ </ol>
28
+
29
+ <h2>Which studies qualify</h2>
30
+ <ul>
31
+ <li><b>Modality:</b> CT only.</li>
32
+ <li><b>Geometry:</b> Standard axial (or suitable) multi-slice volumes work best. Scout images, MIP series, or very short stacks may be skipped or produce limited results.</li>
33
+ <li>The series must already be imported into your project.</li>
34
+ </ul>
35
+
36
+ <h2>How it works (in plain terms)</h2>
37
+ <ol>
38
+ <li>The tool builds a 3D view of the CT series.</li>
39
+ <li>It runs anatomy segmentation to see which structures (lungs, liver, brain, etc.) are present.</li>
40
+ <li>It estimates whether the exam used IV contrast (contrast phase analysis).</li>
41
+ <li>It combines region and contrast information into a suggested <b>SeriesDescription</b> string.</li>
42
+ <li>Results are cached on disk so repeating Harmonize on the same series is faster unless you force a refresh.</li>
43
+ </ol>
44
+
45
+ <h2>Using Series View (one series)</h2>
46
+ <ol>
47
+ <li>Open <b>Series View</b> for a CT series.</li>
48
+ <li>Click <b>Harmonize Description</b>.</li>
49
+ <li>A dialog shows the suggested description, body regions found, and contrast information.</li>
50
+ <li>Choose <b>Apply</b> to write the new description to the anonymized series metadata, or cancel to leave tags unchanged.</li>
51
+ </ol>
52
+
53
+ <h2>Batch processing many studies</h2>
54
+ <p>See <a href="ai batch process.html">AI Batch Process</a>. Select <b>Harmonize</b> in the batch dialog. For each eligible CT series, the tool computes or reuses a harmonized description and applies it automatically.</p>
55
+
56
+ <h2>Clearing cached results</h2>
57
+ <ul>
58
+ <li>If you re-import slices or change a series, cached harmonize data may be stale.</li>
59
+ <li>Series View and batch processing can force re-analysis when needed; cache folders live under each series directory in storage.</li>
60
+ </ul>
61
+
62
+ <h2>Limitations and tips</h2>
63
+ <ul>
64
+ <li>Harmonize is a suggestion tool — review descriptions before publishing a dataset.</li>
65
+ <li>Non-CT modalities (MR, US, XR) are not supported.</li>
66
+ <li>First run on a large study takes longer; later runs use cached segmentation where possible.</li>
67
+ <li>Harmonize does not replace clinical reporting or protocol naming from the original site.</li>
68
+ </ul>
69
+
70
+ <h2>Related help pages</h2>
71
+ <ul>
72
+ <li><a href="../2_ai features.html">AI Features</a></li>
73
+ <li><a href="ai batch process.html">AI Batch Process</a></li>
74
+ </ul>
75
+
76
+ </body>
77
+ </html>
@@ -0,0 +1,70 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>RSNA DICOM Anonymizer Remove Burnt-in Annotation</title>
7
+ <link rel="stylesheet" href="../styles.css">
8
+ </head>
9
+ <body>
10
+ <h1>Remove Burnt-in Annotation</h1>
11
+ <p>
12
+ Some images contain <b>burnt-in text</b> — patient names, dates, hospital names, or measurements drawn directly onto the pixels (common on ultrasound, CR/DR, and some CT/MR screenshots).
13
+ Standard DICOM de-identification removes tags in the file header but leaves this visible text in the picture.
14
+ </p>
15
+ <p>
16
+ <b>Remove Burnt-in Annotation</b> uses optical character recognition (OCR) to find text in the image and replace it with a solid black region or a blended patch, depending on your chosen mode.
17
+ </p>
18
+
19
+ <h2>What you need before using it</h2>
20
+ <ol>
21
+ <li>On the <b>Welcome</b> screen, click <b>AI Features</b>.</li>
22
+ <li>Check <b>Remove Burnt-in Annotation</b>.</li>
23
+ <li>Click <b>Download</b> if shown, and wait until the status is ready.</li>
24
+ <li>Save your settings.</li>
25
+ </ol>
26
+
27
+ <h2>How it works (in plain terms)</h2>
28
+ <ul>
29
+ <li>The tool reads each image frame the same way Series View displays it (including window/level for grayscale images).</li>
30
+ <li>It searches for text-like regions and compares them against rules and optional whitelists (allowed words such as “L” or “R” for left/right markers).</li>
31
+ <li>Matched text is covered using either <b>black out</b> (solid rectangle) or <b>blend into background</b> (softer fill).</li>
32
+ <li>Changes are written to new DICOM files in your anonymized storage; originals in the PHI area are not modified by batch runs until you export the updated series.</li>
33
+ </ul>
34
+
35
+ <h2>Using Series View (one series at a time)</h2>
36
+ <ol>
37
+ <li>Open a project and go to the PHI Index or View Index, then open <b>Series View</b> for a series.</li>
38
+ <li>Click <b>Detect Text</b> to highlight regions the tool thinks are text. Detected regions appear as <b>green rectangles</b> on the image.</li>
39
+ <li>To <b>keep</b> text inside a green rectangle (for example “L”, “R”, or a slice number you want to preserve), <b>click the rectangle</b>. That text is added to the whitelist on the left and will not be removed when you run <b>Remove Text</b>.</li>
40
+ <li>Use <b>Remove Text</b> to apply removal on the current frame or series according to the active mode.</li>
41
+ <li>You can draw <b>blackout rectangles</b> manually for areas OCR missed (toolbar in Series View).</li>
42
+ <li>Modality-specific <b>whitelists</b> (under project locale assets) define text that should be kept, such as orientation markers.</li>
43
+ </ol>
44
+
45
+ <h2>Removal modes</h2>
46
+ <ul>
47
+ <li><b>Black out text</b> — fills detected text with black (or the appropriate background for inverted grayscale). Best when you want obvious, uniform removal.</li>
48
+ <li><b>Blend into background</b> — tries to match surrounding pixels. Useful when a hard black box would look unnatural.</li>
49
+ </ul>
50
+ <p>When running <b>AI Batch Process</b>, you choose the mode in the batch options dialog before processing starts.</p>
51
+
52
+ <h2>Batch processing many studies</h2>
53
+ <p>See <a href="ai batch process.html">AI Batch Process</a>. Select <b>Remove Burnt-in Annotation</b> in the batch dialog. The tool runs on each slice of each selected series where OCR finds text.</p>
54
+
55
+ <h2>Limitations and tips</h2>
56
+ <ul>
57
+ <li>Very small or low-contrast text may be missed; use manual blackout rectangles if needed.</li>
58
+ <li>Short numeric strings (slice numbers, etc.) may be ignored by design to avoid false positives.</li>
59
+ <li>Always spot-check a sample of images before releasing a dataset.</li>
60
+ <li>OCR models require a one-time download; they do not send your images to the internet during processing.</li>
61
+ </ul>
62
+
63
+ <h2>Related help pages</h2>
64
+ <ul>
65
+ <li><a href="../2_ai features.html">AI Features</a></li>
66
+ <li><a href="ai batch process.html">AI Batch Process</a></li>
67
+ </ul>
68
+
69
+ </body>
70
+ </html>
@@ -13,11 +13,12 @@
13
13
  <ol>
14
14
  <h1>RSNA DICOM Anonymizer</h1>
15
15
  <li><a href="1_overview.html">Overview</a></li>
16
- <li><a href="2_deidentification protocol.html">De-identification Protocol</a></li>
17
- <li><a href="3_managing anonymization projects.html">Managing Anonymization Projects</a></li>
18
- <li><a href="4_project settings.html">Project Settings</a></li>
19
- <li><a href="5_operation.html">Operation</a></li>
20
- <li><a href="6_license.html">License</a></li>
16
+ <li><a href="2_ai features.html">AI Features</a></li>
17
+ <li><a href="3_deidentification protocol.html">De-identification Protocol</a></li>
18
+ <li><a href="4_managing anonymization projects.html">Managing Anonymization Projects</a></li>
19
+ <li><a href="5_project settings.html">Project Settings</a></li>
20
+ <li><a href="6_operation.html">Operation</a></li>
21
+ <li><a href="7_license.html">License</a></li>
21
22
  </ol>
22
23
  </div>
23
24
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "rsna-anonymizer"
7
- version = "19.0.0.dev2"
7
+ version = "19.0.0.dev4"
8
8
  description = "RSNA DICOM Anonymizer"
9
9
  readme = "readme.md"
10
10
  license = { text = "RSNA-MIRC Public License" }