# đŸ„ HoDA Radio - Anonymisation d'Images MĂ©dicales **HoDA Radio** est une application moderne et intuitive pour l'anonymisation d'images mĂ©dicales DICOM. DĂ©veloppĂ©e en Python avec PyQt6, elle offre une interface Ă©lĂ©gante et des outils professionnels pour protĂ©ger la confidentialitĂ© des patients tout en conservant l'utilitĂ© mĂ©dicale des images. --- ## ✹ FonctionnalitĂ©s principales ### 🔒 Anonymisation avancĂ©e - **Importation DICOM** : Support complet des fichiers et dossiers DICOM - **Édition en temps rĂ©el** : Outils de gomme et masquage intuitifs - **PrĂ©visualisation instantanĂ©e** : Visualisation des modifications avant export - **MĂ©tadonnĂ©es** : Nettoyage automatique des informations sensibles ### 🎹 Interface moderne - **ThĂšmes dynamiques** : Clair/sombre avec personnalisation complĂšte - **Multi-langues** : Français, anglais, espagnol (extensible) - **Navigation fluide** : Barre d'onglets verticale avec icĂŽnes SVG - **Responsive** : Interface adaptative selon la taille d'Ă©cran ### đŸ“€ Export flexible - **Formats multiples** : PNG, PDF, DCM, DICOMDIR - **MĂ©tadonnĂ©es** : Export JSON et XLS des informations - **Batch processing** : Traitement par lots pour l'efficacitĂ© - **PrĂ©servation qualitĂ©** : Compression optimisĂ©e ### 🔄 SystĂšme intelligent - **Mise Ă  jour automatique** : VĂ©rification et tĂ©lĂ©chargement des nouvelles versions - **Splash screen utile** : Chargement avec feedback en temps rĂ©el - **Gestion d'erreurs** : Messages informatifs et rĂ©cupĂ©ration gracieuse - **Cache optimisĂ©** : Performance amĂ©liorĂ©e pour les gros volumes --- ## đŸ—‚ïž Architecture du projet ``` HoDA_Radio/ ├── app/ │ ├── core/ # Gestionnaires principaux │ │ ├── main_manager.py # Chef d'orchestre │ │ ├── dicom_manager.py # Gestion des fichiers DICOM │ │ ├── theme_manager.py # ThĂšmes et styles │ │ ├── language_manager.py # Traductions │ │ ├── settings_manager.py # ParamĂštres utilisateur │ │ ├── update_manager.py # Mises Ă  jour │ │ └── alert_manager.py # Messages et alertes │ ├── ui/ │ │ ├── widgets/ # Composants rĂ©utilisables │ │ │ ├── tabs_widget.py # Barre d'onglets personnalisĂ©e │ │ │ ├── loading_spinner.py # Indicateur de chargement │ │ │ ├── loading_bar.py # Barre de progression │ │ │ └── image_viewer.py # Visualiseur d'images DICOM │ │ └── windows/ # FenĂȘtres principales │ │ ├── main_window.py # FenĂȘtre principale │ │ ├── splash_screen.py # Écran de chargement │ │ ├── dicom_window.py # Interface d'Ă©dition DICOM │ │ ├── import_window.py # Interface d'importation │ │ ├── export_window.py # Interface d'exportation │ │ ├── settings_window.py # ParamĂštres │ │ └── suggestion_window.py # Feedback utilisateur │ └── utils/ # Utilitaires │ └── paths.py # Gestion des chemins ├── data/ │ ├── assets/ # Ressources (icĂŽnes, images) │ ├── lang/ # Fichiers de traduction │ │ ├── fr.json # Français │ │ ├── en.json # Anglais │ │ └── es.json # Espagnol │ ├── themes/ # ThĂšmes visuels │ │ ├── dark.json # ThĂšme sombre │ │ └── light.json # ThĂšme clair │ └── others/ # Configurations │ └── defaults_settings.json ├── tools/ # Scripts de dĂ©veloppement │ ├── build.bat # Build Windows │ ├── build.command # Build macOS │ └── open.bat # Environnement de dev ├── config.json # Configuration principale ├── requirements.txt # DĂ©pendances Python ├── BUILD.spec # Configuration PyInstaller └── main.py # Point d'entrĂ©e ``` --- ## ⚡ Installation et utilisation ### PrĂ©-requis - **Python 3.10+** (recommandĂ© 3.11) - **SystĂšme** : Windows 10+, macOS 10.15+, ou Linux Ubuntu 20.04+ ### 🚀 DĂ©marrage rapide 1. **Clonez le projet** ```bash git clone https://gitea.louismazin.ovh/LouisMazin/HoDA_Radio.git cd HoDA_Radio ``` 2. **Configurez l'environnement** ```bash # Copiez le fichier d'environnement cp .env.example .env # Éditez .env avec vos paramĂštres # PYTHON_PATH=/chemin/vers/python # EMAIL_USER=votre.email@gmail.com (optionnel) # EMAIL_PASSWORD=votre_mot_de_passe (optionnel) ``` 3. **Lancez l'application** - **Windows** : Double-cliquez sur `tools\open.bat` - **macOS** : ExĂ©cutez `tools/open.command` - **Linux** : ExĂ©cutez `tools/open.sh` ### 📩 Build de production 1. **Build automatique** - **Windows** : `tools\build.bat` - **macOS** : `tools/build.command` - **Linux** : `tools/build.sh` 2. **Fichier gĂ©nĂ©rĂ©** - L'exĂ©cutable se trouve dans le dossier `build/` - Nom automatique : `HoDA_Radio-{OS}-{ARCH}-v{VERSION}` --- ## 🎯 Utilisation de l'application ### 1. **Import des images DICOM** - Glissez-dĂ©posez vos fichiers ou dossiers DICOM - Support des archives et structures complexes - Validation automatique des formats ### 2. **Anonymisation interactive** - Utilisez l'outil gomme pour masquer les zones sensibles - PrĂ©visualisez en temps rĂ©el vos modifications - Ajustez la taille du pinceau selon vos besoins ### 3. **Export sĂ©curisĂ©** - Choisissez vos formats de sortie - SĂ©lectionnez les images Ă  exporter - Nettoyage automatique des mĂ©tadonnĂ©es --- ## 🎹 Personnalisation ### ThĂšmes personnalisĂ©s CrĂ©ez votre thĂšme dans `data/themes/mon_theme.json` : ```json { "theme_name": "Mon ThĂšme", "colors": { "background_color": "#1a1a1a", "primary_color": "#007acc", "text_color": "#ffffff" } } ``` ### Nouvelles langues Ajoutez une traduction dans `data/lang/code_langue.json` : ```json { "lang_name": "Deutsch", "language": "Sprache :", "theme": "Thema :", "loading": "Laden..." } ``` --- ## 🔧 DĂ©veloppement avancĂ© ### Architecture des managers - **MainManager** : Singleton coordonnant tous les autres managers - **DicomManager** : Logique mĂ©tier pour les fichiers mĂ©dicaux - **ThemeManager** : SystĂšme de thĂšmes dynamiques avec cache - **ObserverManager** : Pattern Observer pour les notifications inter-composants ### Ajout de fonctionnalitĂ©s 1. CrĂ©ez votre fenĂȘtre dans `app/ui/windows/` 2. Ajoutez-la aux onglets dans `main_window.py` 3. ImplĂ©mentez les notifications de thĂšme/langue si nĂ©cessaire ### Tests et debugging ```bash # Mode dĂ©veloppement avec logs python main.py --debug # Tests unitaires (si implĂ©mentĂ©s) python -m pytest tests/ ``` --- ## 📋 DĂ©pendances principales - **PyQt6** : Interface graphique moderne - **pydicom** : Manipulation des fichiers DICOM - **pillow** : Traitement d'images - **numpy** : Calculs numĂ©riques - **requests** : Mises Ă  jour automatiques - **packaging** : Gestion des versions - **python-dotenv** : Variables d'environnement --- ## 🔒 SĂ©curitĂ© et confidentialitĂ© ### Protection des donnĂ©es - **Traitement local** : Aucune donnĂ©e mĂ©dicale envoyĂ©e sur internet - **Cache temporaire** : Nettoyage automatique Ă  la fermeture - **MĂ©tadonnĂ©es** : Suppression des informations personnelles ### Bonnes pratiques - Utilisez des mots de passe d'application pour Gmail - Ne versionnez jamais le fichier `.env` - VĂ©rifiez les exports avant diffusion --- ## 🔄 Mise Ă  jour automatique L'application vĂ©rifie automatiquement les nouvelles versions : - **Au dĂ©marrage** : VĂ©rification silencieuse - **Notification** : Proposition de tĂ©lĂ©chargement si disponible - **Installation** : TĂ©lĂ©chargement avec barre de progression - **CompatibilitĂ©** : DĂ©tection automatique OS/architecture --- ## 🆘 Support et contribution ### Signaler un problĂšme 1. Utilisez l'onglet "Suggestion" dans l'application 2. Ou ouvrez une issue sur [Gitea](https://gitea.louismazin.ovh/LouisMazin/HoDA_Radio) 3. Incluez : OS, version Python, logs d'erreur, Ă©tapes de reproduction ### Contribuer 1. Forkez le dĂ©pĂŽt 2. CrĂ©ez une branche feature/fix 3. Testez vos modifications 4. Soumettez une pull request ### RĂšgles de contribution - Code Python PEP 8 compliant - Documentation des nouvelles fonctionnalitĂ©s - Tests unitaires pour la logique mĂ©tier critique - Respect de l'architecture existante --- ## 📝 Licence **Attribution License** - voir [LICENSE](LICENSE) pour les dĂ©tails complets. Toute utilisation, reproduction ou distribution doit inclure une attribution visible Ă  l'auteur : **LouisMazin**. --- ## 🙏 Remerciements - **PyQt6** pour le framework d'interface - **pydicom** pour la manipulation des fichiers mĂ©dicaux - **CommunautĂ© open source** pour les contributions et retours --- **HoDA Radio - ProtĂ©gez la confidentialitĂ©, prĂ©servez l'utilitĂ© mĂ©dicale** 🚀