Vor Änderungen am Bestätigungsdialog - Backup für Rollback

This commit is contained in:
René Mathieu
2026-01-17 14:08:03 +01:00
parent 0fef8d96c5
commit ff2bc82994
3 changed files with 635 additions and 0 deletions

228
README_TESTS.md Normal file
View File

@@ -0,0 +1,228 @@
# Test-Anleitung für dicom2pacs
Diese Anleitung erklärt, wie Sie die dicom2pacs-App testen können.
## Verfügbare Testskripte
### 1. `test_dicom2pacs.sh` - Interaktives Bash-Testskript
Ein interaktives Skript mit Menü für verschiedene Test-Optionen.
**Verwendung:**
```bash
./test_dicom2pacs.sh
```
**Optionen:**
- **Option 1: GUI-Test** - Öffnet die App mit GUI für manuelles Testen
- **Option 2: Unit-Test** - Prüft alle Module ohne GUI
- **Option 3: Integrationstest** - Vollständiger Test mit GUI
- **Option 4: Aufräumen** - Löscht Test-Ordner und Transfer-Ordner
**Was das Skript macht:**
- Erstellt Test-Ordner `~/Downloads/test_dicom`
- Kopiert Test-DICOM-Dateien aus pydicom
- Prüft Konfiguration
- Führt Tests basierend auf Ihrer Auswahl durch
### 2. `test_dicom2pacs.py` - Automatisiertes Python-Testskript
Ein Python-Skript, das automatisch alle Module testet.
**Verwendung:**
```bash
# Mit aktiviertem venv
source venv/bin/activate
python3 test_dicom2pacs.py
# Oder direkt mit venv-Python
venv/bin/python3 test_dicom2pacs.py
```
**Getestete Funktionen:**
- ✓ Module-Imports
- ✓ DICOM-Datei-Erkennung
- ✓ Dateiverwaltung
- ✓ Konfigurationsladen
- ✓ Patientenname-Formatierung
- ✓ Geburtsdatum-Formatierung
## Manuelle Tests
### Test 1: GUI öffnet sich
```bash
source venv/bin/activate
python dicom2pacs.py "Mustermann" "Max" "19800101" "12345"
```
**Erwartetes Verhalten:**
- GUI-Fenster öffnet sich
- "Durchsuchen"-Button ist sichtbar
- "Abbruch"-Button ist sichtbar
### Test 2: DICOM-Dateien finden
1. Erstellen Sie einen Test-Ordner:
```bash
mkdir -p ~/Downloads/test_dicom
```
2. Kopieren Sie Test-DICOM-Dateien:
```bash
# Von der gebauten App
cp dist/dicom2pacs.app/Contents/Resources/lib/python3.13/pydicom/data/test_files/CT_small.dcm ~/Downloads/test_dicom/
# Oder vom venv
cp venv/lib/python3.13/site-packages/pydicom/data/test_files/CT_small.dcm ~/Downloads/test_dicom/
```
3. Starten Sie die App und wählen Sie den Test-Ordner
**Erwartetes Verhalten:**
- App findet DICOM-Dateien
- Fortschrittsanzeige wird angezeigt
- Dateien werden in Transfer-Ordner kopiert
### Test 3: Patientendaten-Vergleich
Die App vergleicht Patientendaten aus den DICOM-Dateien mit den übergebenen Argumenten.
**Erwartetes Verhalten:**
- Wenn Daten übereinstimmen: Kein Dialog
- Wenn Daten abweichen: Dialog mit Vergleichsanzeige
- Benutzer kann wählen: Tomedo-Daten oder Original-Daten
### Test 4: Server-Verfügbarkeit
Die App prüft, ob der PACS-Server erreichbar ist.
**Erwartetes Verhalten:**
- Server erreichbar: Upload startet
- Server nicht erreichbar: Meldung "PACS SERVER NICHT ERREICHBAR"
### Test 5: Upload (mit konfiguriertem Server)
Wenn ein PACS-Server konfiguriert ist, werden Dateien hochgeladen.
**Konfiguration prüfen:**
```bash
cat ~/.dicom2pacs.conf
```
**Erwartetes Verhalten:**
- Fortschrittsanzeige während Upload
- Erfolgsmeldung nach Upload
- Transfer-Ordner wird gelöscht
## Test-Daten vorbereiten
### Automatisch (empfohlen)
Das Bash-Testskript erledigt dies automatisch:
```bash
./test_dicom2pacs.sh
```
### Manuell
1. **Test-Ordner erstellen:**
```bash
mkdir -p ~/Downloads/test_dicom
```
2. **DICOM-Dateien kopieren:**
```bash
# Option A: Von gebauter App
cp dist/dicom2pacs.app/Contents/Resources/lib/python3.13/pydicom/data/test_files/*.dcm ~/Downloads/test_dicom/
# Option B: Von venv
cp venv/lib/python3.13/site-packages/pydicom/data/test_files/*.dcm ~/Downloads/test_dicom/
```
3. **App starten:**
```bash
source venv/bin/activate
python dicom2pacs.py "Mustermann" "Max" "19800101" "12345"
```
## Häufige Probleme
### Problem: "Keine DICOM-Dateien gefunden"
**Lösung:**
- Stellen Sie sicher, dass der Test-Ordner DICOM-Dateien enthält
- Prüfen Sie, ob Dateien die Endung `.dcm` haben oder keine Endung
- Verwenden Sie `test_dicom2pacs.sh` Option 1, um Dateien automatisch zu kopieren
### Problem: "PACS SERVER NICHT ERREICHBAR"
**Lösung:**
- Normal, wenn kein Server konfiguriert ist
- Für vollständigen Test: Orthanc-Server einrichten
- Konfiguration in `~/.dicom2pacs.conf` prüfen
### Problem: "ModuleNotFoundError"
**Lösung:**
```bash
source venv/bin/activate
pip install pydicom aiohttp aiofiles tqdm
```
### Problem: GUI öffnet sich nicht
**Lösung:**
- Prüfen Sie die Konsole auf Fehlermeldungen
- Stellen Sie sicher, dass tkinter installiert ist:
```bash
python3 -m tkinter
```
## Aufräumen nach Tests
```bash
# Manuell
rm -rf ~/Downloads/test_dicom
rm -rf ~/Downloads/D2OTrans
# Oder mit Testskript
./test_dicom2pacs.sh
# Option 4 wählen
```
## Test-Zusammenfassung
Nach Ausführung von `test_dicom2pacs.py` erhalten Sie eine Zusammenfassung:
```
=== dicom2pacs Automatisierte Tests ===
Teste Imports...
✓ Alle Module erfolgreich importiert
Teste DICOM-Datei-Erkennung...
✓ DICOM-Datei erkannt: CT_small.dcm -> True
...
==================================================
Test-Zusammenfassung:
==================================================
✓ PASS: Imports
✓ PASS: DICOM-Datei-Erkennung
✓ PASS: Dateiverwaltung
...
==================================================
Ergebnis: 6/6 Tests bestanden
🎉 Alle Tests bestanden!
```
## Nächste Schritte
Nach erfolgreichen Tests können Sie:
1. Die App mit echten DICOM-Dateien testen
2. Einen PACS-Server konfigurieren für Upload-Tests
3. Die App in Produktion einsetzen
Viel Erfolg beim Testen! 🚀