Vor Änderungen am Bestätigungsdialog - Backup für Rollback
This commit is contained in:
228
README_TESTS.md
Normal file
228
README_TESTS.md
Normal 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! 🚀
|
||||
Reference in New Issue
Block a user