Compare commits

..

No commits in common. "main" and "1.0.0" have entirely different histories.
main ... 1.0.0

321
README.md
View File

@ -1,161 +1,274 @@
# 🏥 HoDA Radio - Anonymisation d'Images Médicales # 🏥 HoDA Radio - Anonymisation d'Images Médicales
**HoDA Radio** est une application simple et intuitive conçue pour le personnel hospitalier afin d'anonymiser rapidement et efficacement les images médicales DICOM tout en préservant leur valeur diagnostique. **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.
--- ---
## 🎯 Pourquoi HoDA Radio ? ## ✨ Fonctionnalités principales
- ✅ **Conformité RGPD** : Anonymisation sécurisée des données patients ### 🔒 Anonymisation avancée
- ✅ **Simple d'utilisation** : Interface intuitive, aucune formation technique requise - **Importation DICOM** : Support complet des fichiers et dossiers DICOM
- ✅ **Rapide et efficace** : Traitement par lots de centaines d'images - **Édition en temps réel** : Outils de gomme et masquage intuitifs
- ✅ **Formats multiples** : Export PDF, PNG, DICOM selon vos besoins - **Prévisualisation instantanée** : Visualisation des modifications avant export
- ✅ **Sécurisé** : Traitement local, aucune donnée envoyée sur internet - **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
--- ---
## 📥 Installation (2 minutes) ## 🗂️ Architecture du projet
### Windows ```
1. [Téléchargez HoDA Radio](https://gitea.louismazin.ovh/LouisMazin/HoDA_Radio/releases/latest) HoDA_Radio/
2. Choisissez la version adaptée à votre PC : ├── app/
- `HoDA Radio-Windows-x64-v{VERSION}.exe` (PC récents - 64 bits) │ ├── core/ # Gestionnaires principaux
- `HoDA Radio-Windows-x32-v{VERSION}.exe` (PC plus anciens - 32 bits) │ │ ├── main_manager.py # Chef d'orchestre
3. Double-cliquez pour installer et lancer │ │ ├── dicom_manager.py # Gestion des fichiers DICOM
│ │ ├── theme_manager.py # Thèmes et styles
> 💡 **Comment savoir ?** Clic droit sur "Ce PC" → Propriétés → Type de système │ │ ├── language_manager.py # Traductions
│ │ ├── settings_manager.py # Paramètres utilisateur
### Mac / Linux │ │ ├── update_manager.py # Mises à jour
Des versions sont disponibles pour macOS et Linux sur la même page de téléchargement. │ │ └── 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
```
--- ---
## 🚀 Guide d'utilisation rapide ## ⚡ Installation et utilisation
### Étape 1 : Importer vos images DICOM ### Pré-requis
- **Python 3.10+** (recommandé 3.11)
- **Système** : Windows 10+, macOS 10.15+, ou Linux Ubuntu 20.04+
- **Glissez-déposez** vos dossiers DICOM directement dans l'application ### 🚀 Démarrage rapide
- Ou cliquez sur **"Sélectionner un dossier"** et naviguez vers vos fichiers
- L'application détecte automatiquement tous les fichiers DICOM
### Étape 2 : Anonymiser les zones sensibles 1. **Clonez le projet**
```bash
git clone https://gitea.louismazin.ovh/LouisMazin/HoDA_Radio.git
cd HoDA_Radio
```
- Cliquez sur **"Gomme"** pour activer l'outil d'anonymisation 2. **Configurez l'environnement**
- **Peignez** directement sur les zones à masquer (noms, dates, numéros) ```bash
- Naviguez entre les images avec les flèches ou la molette de la souris # Copiez le fichier d'environnement
- Cliquez **"Quitter la Gomme"** une fois terminé 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)
```
### Étape 3 : Exporter vos images anonymisées 3. **Lancez l'application**
- **Windows** : Double-cliquez sur `tools\open.bat`
- **macOS** : Exécutez `tools/open.command`
- **Linux** : Exécutez `tools/open.sh`
- Allez dans l'onglet **"Export"** ### 📦 Build de production
- Choisissez votre format :
- **PDF** : Pour archivage ou impression 1. **Build automatique**
- **PNG** : Pour présentations ou rapports - **Windows** : `tools\build.bat`
- **DICOM** : Pour systèmes médicaux compatibles - **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 - Sélectionnez les images à exporter
- Choisissez le dossier de destination - Nettoyage automatique des métadonnées
--- ---
## 📋 Formats supportés ## 🎨 Personnalisation
### 📂 Import ### Thèmes personnalisés
- **DICOMDIR** : Dossiers DICOM standard Créez votre thème dans `data/themes/mon_theme.json` :
- **Fichiers .dcm** : Images DICOM individuelles ```json
- **Archives** : Dossiers compressés contenant des DICOM {
"theme_name": "Mon Thème",
"colors": {
"background_color": "#1a1a1a",
"primary_color": "#007acc",
"text_color": "#ffffff"
}
}
```
### 📤 Export ### Nouvelles langues
- **PDF** : Document portable pour archivage Ajoutez une traduction dans `data/lang/code_langue.json` :
- **PNG** : Images haute qualité pour présentations ```json
- **DICOM** : Format médical preservé pour les systèmes hospitaliers {
- **Métadonnées** : Informations techniques en JSON/Excel "lang_name": "Deutsch",
"language": "Sprache :",
"theme": "Thema :",
"loading": "Laden..."
}
```
--- ---
## ⚙️ Paramètres ## 🔧 Développement avancé
### Langues disponibles ### Architecture des managers
- 🇫🇷 Français - **MainManager** : Singleton coordonnant tous les autres managers
- 🇬🇧 English - **DicomManager** : Logique métier pour les fichiers médicaux
- 🇪🇸 Español - **ThemeManager** : Système de thèmes dynamiques avec cache
- **ObserverManager** : Pattern Observer pour les notifications inter-composants
### Thèmes ### Ajout de fonctionnalités
- 🌙 **Sombre** : Idéal pour environnements peu éclairés 1. Créez votre fenêtre dans `app/ui/windows/`
- ☀️ **Clair** : Interface classique et lumineuse 2. Ajoutez-la aux onglets dans `main_window.py`
3. Implémentez les notifications de thème/langue si nécessaire
*Accédez aux paramètres via l'icône engrenage* ### 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é ## 🔒 Sécurité et confidentialité
### Traitement 100% local ### Protection des données
- ❌ **Aucune donnée** n'est envoyée sur internet - **Traitement local** : Aucune donnée médicale envoyée sur internet
- ❌ **Aucun stockage** en ligne de vos images - **Cache temporaire** : Nettoyage automatique à la fermeture
- ✅ **Vos données** restent sur votre ordinateur - **Métadonnées** : Suppression des informations personnelles
- ✅ **Anonymisation** immédiate et définitive
### Conformité réglementaire ### Bonnes pratiques
- 📋 **RGPD** : Respect total de la réglementation européenne - Utilisez des mots de passe d'application pour Gmail
- 🏥 **HAS** : Compatible avec les recommandations sanitaires - Ne versionnez jamais le fichier `.env`
- 🔐 **ISO 27001** : Bonnes pratiques de sécurité appliquées - Vérifiez les exports avant diffusion
--- ---
## ❓ Questions fréquentes ## 🔄 Mise à jour automatique
### L'application est-elle payante ? L'application vérifie automatiquement les nouvelles versions :
Non, HoDA Radio est **entièrement gratuite** pour usage hospitalier. - **Au démarrage** : Vérification silencieuse
- **Notification** : Proposition de téléchargement si disponible
### Mes données sont-elles en sécurité ? - **Installation** : Téléchargement avec barre de progression
Oui, **tout le traitement est local**. Aucune information ne quitte votre ordinateur. - **Compatibilité** : Détection automatique OS/architecture
### Puis-je traiter plusieurs patients en même temps ?
Oui, vous pouvez importer et traiter **des centaines d'images** simultanément.
### L'anonymisation est-elle réversible ?
Non, une fois les zones masquées et exportées, **l'anonymisation est définitive**.
### Que faire si j'ai des problèmes techniques ?
Utilisez l'onglet **"Suggestion"** dans l'application pour nous contacter directement.
--- ---
## 🆘 Support technique ## 🆘 Support et contribution
### Contact direct ### Signaler un problème
Utilisez l'onglet **"Suggestion"** dans l'application pour : 1. Utilisez l'onglet "Suggestion" dans l'application
- Signaler un bug 2. Ou ouvrez une issue sur [Gitea](https://gitea.louismazin.ovh/LouisMazin/HoDA_Radio)
- Demander une fonctionnalité 3. Incluez : OS, version Python, logs d'erreur, étapes de reproduction
- Poser une question technique
- Partager votre retour d'expérience
### Informations utiles à fournir ### Contribuer
- Version de Windows (7, 10, 11) 1. Forkez le dépôt
- Architecture (32-bit ou 64-bit) 2. Créez une branche feature/fix
- Description du problème rencontré 3. Testez vos modifications
- Étapes pour reproduire le problème 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
--- ---
## 🔄 Mises à jour automatiques ## 📝 Licence
L'application vérifie automatiquement les nouvelles versions au démarrage et vous propose de télécharger les améliorations : **Attribution License** - voir [LICENSE](LICENSE) pour les détails complets.
- 🐛 **Corrections de bugs**
- ⚡ **Améliorations de performance** Toute utilisation, reproduction ou distribution doit inclure une attribution visible à l'auteur : **LouisMazin**.
- 🆕 **Nouvelles fonctionnalités**
- 🔒 **Mises à jour de sécurité**
--- ---
## 📞 Mentions légales ## 🙏 Remerciements
**Développé par** : LouisMazin - **PyQt6** pour le framework d'interface
**Licence** : Attribution [License](https://www.gitea.louismazin.ovh/LouisMazin/HoDA_Radio/src/branch/main/LICENSE) - **pydicom** pour la manipulation des fichiers médicaux
**Support** : Via l'application ou [Gitea](https://www.gitea.louismazin.ovh/LouisMazin/HoDA_Radio/src/branch/main/LICENSE) - **Communauté open source** pour les contributions et retours
--- ---
**HoDA Radio - Anonymisation médicale simple et sécurisée** 🏥 **HoDA Radio - Protégez la confidentialité, préservez l'utilité médicale** 🚀
> 🚀 **Prêt à commencer ?** [Téléchargez HoDA Radio maintenant](https://gitea.louismazin.ovh/LouisMazin/HoDA_Radio/releases/latest)