GirderMedViewer is a medical visualization tool built with VTK and trame, integrated with a Girder database via the Girder Web Components.
Its goal is to enable users to visualize medical data stored in Girder directly, without requiring local downloads. One can access any publicly available Girder instance by entering its URL (e.g. https://data.kitware.com/).
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
# Optional: to support loading dicom archives
pip install -e ".[dicom]"
To configure the application, create an app.cfg file based on the provided app.template.cfg. This configuration file allows you to:
- UI Settings: Customize the application title displayed in the toolbar.
- Logging Configuration: Define the logging level (e.g.,
INFOorDEBUG). - File Download Management: Set up temporary storage for downloaded files.
- Girder Connection: Configure the API root and default connection settings.
By default, a standard Girder configuration is expected, but you can specify additional settings for predefined URLs if needed.
To use the application, you need access to at least one Girder instance. You can either create an account on https://data.kitware.com/ (the default server in the configuration file) or use your own Girder instance. If you prefer to deploy your own Girder server, you can follow these instructions or run it locally with the following commands:
pip install girder
girder build
girder serve
girdermedviewer-cli
You can add --server to your command line to prevent your browser from opening and --port to specifiy the port the server should listen to, default is 8080.
You can add the GirderMedViewer Plugin to your Girder to allow the Trame app to access the paths of the Girder files stored in assetstores. Therefore the Girder files do not need to be downloaded and can be read directly from the Girder assetstores whose paths have been specified in the configuration file (app.cfg).
Follow the plugin README to install it.
python -m trame.tools.serve --exec girdermedviewer.app.core:MyTrameApp
This is not for production. It creates a unique process for multiple users.
Create empty file "proxy-mapping.txt" and empty folder "logs". Update examples/launcher/launcher.json and index.html to fix paths.
Start launcher:
python -m wslink.launcher .\examples\launcher\launcher.json --debug
Open launcher page at "localhost:9999"