My GSoC Journey with InVesalius: Bringing PACS Integration to InVesalius
Description and use
During a GSoC project, a PACS integration module was built for Invesalius, enabling direct DICOM queries, image retrieval, and a user-friendly interface for node management and download control.
Problem
Invesalius lacked native support for remote PACS connections, forcing users to rely on external tools for data exchange.
Outcome
The integration added native PACS support to Invesalius, reducing manual steps, preventing duplicate downloads, and improving user experience with responsive UI and robust error handling.
Workflow
- Set up DICOM networking using pynetdicom and pydicom
- Implemented C‑ECHO to verify server connectivity
- Implemented C‑FIND to search patients across nodes
- Implemented C‑MOVE and C‑GET for image retrieval with fallback logic
- Implemented C‑STORE to save images locally
- Built UI for node management, search dialogs, download options, and preferences
- Added cancellation, cleanup, and progress tracking dialogs
- Wrapped network calls in async executors to prevent UI freeze
- Added error handling, logging, and type hints for robustness
Evidence
Implemented querying methods like: c-echo, c-find, c-move, c-get, c-store
Graceful error handling: if c-move fails automatically falls back to c-get
Used wx.Callafter functions for cancellation and progress tracking
- Record date: 2026-09-10T15:16:05.132Z