generated from LouisMazin/PythonApplicationTemplate
Compare commits
No commits in common. "main" and "1.0.0" have entirely different histories.
321
README.md
321
README.md
@ -1,161 +1,274 @@
|
||||
# 🏥 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
|
||||
- ✅ **Simple d'utilisation** : Interface intuitive, aucune formation technique requise
|
||||
- ✅ **Rapide et efficace** : Traitement par lots de centaines d'images
|
||||
- ✅ **Formats multiples** : Export PDF, PNG, DICOM selon vos besoins
|
||||
- ✅ **Sécurisé** : Traitement local, aucune donnée envoyée sur internet
|
||||
### 🔒 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
|
||||
|
||||
---
|
||||
|
||||
## 📥 Installation (2 minutes)
|
||||
## 🗂️ Architecture du projet
|
||||
|
||||
### Windows
|
||||
1. [Téléchargez HoDA Radio](https://gitea.louismazin.ovh/LouisMazin/HoDA_Radio/releases/latest)
|
||||
2. Choisissez la version adaptée à votre PC :
|
||||
- `HoDA Radio-Windows-x64-v{VERSION}.exe` (PC récents - 64 bits)
|
||||
- `HoDA Radio-Windows-x32-v{VERSION}.exe` (PC plus anciens - 32 bits)
|
||||
3. Double-cliquez pour installer et lancer
|
||||
|
||||
> 💡 **Comment savoir ?** Clic droit sur "Ce PC" → Propriétés → Type de système
|
||||
|
||||
### Mac / Linux
|
||||
Des versions sont disponibles pour macOS et Linux sur la même page de téléchargement.
|
||||
```
|
||||
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
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 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
|
||||
- Ou cliquez sur **"Sélectionner un dossier"** et naviguez vers vos fichiers
|
||||
- L'application détecte automatiquement tous les fichiers DICOM
|
||||
### 🚀 Démarrage rapide
|
||||
|
||||
### É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
|
||||
- **Peignez** directement sur les zones à masquer (noms, dates, numéros)
|
||||
- Naviguez entre les images avec les flèches ou la molette de la souris
|
||||
- Cliquez **"Quitter la Gomme"** une fois terminé
|
||||
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)
|
||||
```
|
||||
|
||||
### É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"**
|
||||
- Choisissez votre format :
|
||||
- **PDF** : Pour archivage ou impression
|
||||
- **PNG** : Pour présentations ou rapports
|
||||
- **DICOM** : Pour systèmes médicaux compatibles
|
||||
### 📦 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
|
||||
- Choisissez le dossier de destination
|
||||
- Nettoyage automatique des métadonnées
|
||||
|
||||
---
|
||||
|
||||
## 📋 Formats supportés
|
||||
## 🎨 Personnalisation
|
||||
|
||||
### 📂 Import
|
||||
- **DICOMDIR** : Dossiers DICOM standard
|
||||
- **Fichiers .dcm** : Images DICOM individuelles
|
||||
- **Archives** : Dossiers compressés contenant des DICOM
|
||||
### 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"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 📤 Export
|
||||
- **PDF** : Document portable pour archivage
|
||||
- **PNG** : Images haute qualité pour présentations
|
||||
- **DICOM** : Format médical preservé pour les systèmes hospitaliers
|
||||
- **Métadonnées** : Informations techniques en JSON/Excel
|
||||
### Nouvelles langues
|
||||
Ajoutez une traduction dans `data/lang/code_langue.json` :
|
||||
```json
|
||||
{
|
||||
"lang_name": "Deutsch",
|
||||
"language": "Sprache :",
|
||||
"theme": "Thema :",
|
||||
"loading": "Laden..."
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Paramètres
|
||||
## 🔧 Développement avancé
|
||||
|
||||
### Langues disponibles
|
||||
- 🇫🇷 Français
|
||||
- 🇬🇧 English
|
||||
- 🇪🇸 Español
|
||||
### 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
|
||||
|
||||
### Thèmes
|
||||
- 🌙 **Sombre** : Idéal pour environnements peu éclairés
|
||||
- ☀️ **Clair** : Interface classique et lumineuse
|
||||
### 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
|
||||
|
||||
*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é
|
||||
|
||||
### Traitement 100% local
|
||||
- ❌ **Aucune donnée** n'est envoyée sur internet
|
||||
- ❌ **Aucun stockage** en ligne de vos images
|
||||
- ✅ **Vos données** restent sur votre ordinateur
|
||||
- ✅ **Anonymisation** immédiate et définitive
|
||||
### 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
|
||||
|
||||
### Conformité réglementaire
|
||||
- 📋 **RGPD** : Respect total de la réglementation européenne
|
||||
- 🏥 **HAS** : Compatible avec les recommandations sanitaires
|
||||
- 🔐 **ISO 27001** : Bonnes pratiques de sécurité appliquées
|
||||
### Bonnes pratiques
|
||||
- Utilisez des mots de passe d'application pour Gmail
|
||||
- Ne versionnez jamais le fichier `.env`
|
||||
- Vérifiez les exports avant diffusion
|
||||
|
||||
---
|
||||
|
||||
## ❓ Questions fréquentes
|
||||
## 🔄 Mise à jour automatique
|
||||
|
||||
### L'application est-elle payante ?
|
||||
Non, HoDA Radio est **entièrement gratuite** pour usage hospitalier.
|
||||
|
||||
### Mes données sont-elles en sécurité ?
|
||||
Oui, **tout le traitement est local**. Aucune information ne quitte votre ordinateur.
|
||||
|
||||
### 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.
|
||||
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 technique
|
||||
## 🆘 Support et contribution
|
||||
|
||||
### Contact direct
|
||||
Utilisez l'onglet **"Suggestion"** dans l'application pour :
|
||||
- Signaler un bug
|
||||
- Demander une fonctionnalité
|
||||
- Poser une question technique
|
||||
- Partager votre retour d'expérience
|
||||
### 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
|
||||
|
||||
### Informations utiles à fournir
|
||||
- Version de Windows (7, 10, 11)
|
||||
- Architecture (32-bit ou 64-bit)
|
||||
- Description du problème rencontré
|
||||
- Étapes pour reproduire le problème
|
||||
### 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
|
||||
|
||||
---
|
||||
|
||||
## 🔄 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 :
|
||||
- 🐛 **Corrections de bugs**
|
||||
- ⚡ **Améliorations de performance**
|
||||
- 🆕 **Nouvelles fonctionnalités**
|
||||
- 🔒 **Mises à jour de sécurité**
|
||||
**Attribution License** - voir [LICENSE](LICENSE) pour les détails complets.
|
||||
|
||||
Toute utilisation, reproduction ou distribution doit inclure une attribution visible à l'auteur : **LouisMazin**.
|
||||
|
||||
---
|
||||
|
||||
## 📞 Mentions légales
|
||||
## 🙏 Remerciements
|
||||
|
||||
**Développé par** : LouisMazin
|
||||
**Licence** : Attribution [License](https://www.gitea.louismazin.ovh/LouisMazin/HoDA_Radio/src/branch/main/LICENSE)
|
||||
**Support** : Via l'application ou [Gitea](https://www.gitea.louismazin.ovh/LouisMazin/HoDA_Radio/src/branch/main/LICENSE)
|
||||
- **PyQt6** pour le framework d'interface
|
||||
- **pydicom** pour la manipulation des fichiers médicaux
|
||||
- **Communauté open source** pour les contributions et retours
|
||||
|
||||
---
|
||||
|
||||
**HoDA Radio - Anonymisation médicale simple et sécurisée** 🏥
|
||||
|
||||
> 🚀 **Prêt à commencer ?** [Téléchargez HoDA Radio maintenant](https://gitea.louismazin.ovh/LouisMazin/HoDA_Radio/releases/latest)
|
||||
**HoDA Radio - Protégez la confidentialité, préservez l'utilité médicale** 🚀
|
Loading…
x
Reference in New Issue
Block a user