# 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! 🚀