229 lines
5.3 KiB
Markdown
229 lines
5.3 KiB
Markdown
# 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! 🚀
|