Skip to content

Commit ccb3c7d

Browse files
authored
Merge pull request #774 from Kitware/multiseries-viewing
Multi-series viewing
2 parents 83564b8 + 38d61a1 commit ccb3c7d

130 files changed

Lines changed: 3386 additions & 1618 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/e2e.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
name: E2E Testing on ${{ matrix.os }}
1111
runs-on: ${{ matrix.os }}
1212
env:
13-
DOWNLOAD_TIMEOUT: 90000
13+
DOWNLOAD_TIMEOUT: 220000
1414
steps:
1515
- uses: actions/checkout@v4
1616
with:

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,4 @@ reports
3535

3636
.github/copilot
3737
CLAUDE.md
38+
.claude/

docs/authentication.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ VolView itself does not specify any given authentication mechanism to use. How y
44

55
## VolView behind Login Portal
66

7-
The easiest approach to securing a VolView instance is to host VolView behind an authentication portal. This will secure access to VolView, and allow VolView to automatically use existing user credentials to request protected data. Often the credentials are stored in a cookie.
7+
The easiest approach to securing a VolView instance is to host VolView behind an authentication portal. This will secure access to VolView, and allow VolView to automatically use existing user credentials to request protected data. Often the credentials are stored in a cookie.
88

99
## OAuth Tokens via URL
1010

@@ -26,4 +26,4 @@ The token URL is expected to return the access token as plaintext, i.e. `text/pl
2626
By default, VolView will make a `GET` request to the token URL. If another type of request is needed, you can configure it via the `tokenUrlMethod` parameter. For example, to make a `POST` request: `https:/example.com/VolView/?tokenUrl=https://example.com/userToken&tokenUrlMethod=POST`.
2727

2828
> [!NOTE]
29-
> This requires CORS to be properly configured for the token URL endpoint. See the [CORS](/cors) documentation for more info.
29+
> This requires CORS to be properly configured for the token URL endpoint. See the [CORS](/cors) documentation for more info.

docs/configuration_file.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22

33
By loading a JSON file, you can set VolView's configuration:
44

5-
- Starting view layout (Axial Only, 3D Primary, etc).
5+
- Starting view layout grid size
66
- Labels for tools
77
- Visibility of Sample Data section
88
- Keyboard shortcuts
99

1010
## Starting view layout
1111

12-
The `activeLayout` key has options (Axial Only, 3D Primary, etc.) defined in `config.ts`
12+
The `gridSize` key sets the initial layout grid as `[width, height]`. For example, `[2, 2]` creates a 2x2 grid of views.
1313

1414
```json
1515
{
1616
"layout": {
17-
"activeLayout": "Axial Only"
17+
"gridSize": [2, 2]
1818
}
1919
}
2020
```
@@ -110,7 +110,7 @@ Simplify the data browser by hiding the Sample Data expandable section.
110110
}
111111
},
112112
"layout": {
113-
"activeLayout": "Axial Only"
113+
"gridSize": [1, 1]
114114
}
115115
}
116116
```
@@ -143,7 +143,7 @@ Simplify the data browser by hiding the Sample Data expandable section.
143143
}
144144
},
145145
"layout": {
146-
"activeLayout": "Axial Only"
146+
"gridSize": [2, 2]
147147
},
148148
"dataBrowser": {
149149
"hideSampleData": false

docs/cors.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@ server {
2626

2727
## CORS proxy
2828

29-
If you do not control the data server, you can use a CORS proxy. A CORS proxy is a lightweight proxy server that is configured to attach CORS headers to responses originating from the data server.
29+
If you do not control the data server, you can use a CORS proxy. A CORS proxy is a lightweight proxy server that is configured to attach CORS headers to responses originating from the data server.

docs/deploying_volview.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Deploying VolView is straightforward: just take the locally built files in `dist
55
As a local example, running `npx serve dist/` will spin up a static file server (running on <http://localhost:3000>) that reads the locally built files from `dist/`.
66

77
> [!NOTE]
8-
> Using `npx serve` is *not* a recommended way to deploy VolView. It is only used to demonstrate how easy it can be to deploy VolView in simple scenarios.
8+
> Using `npx serve` is _not_ a recommended way to deploy VolView. It is only used to demonstrate how easy it can be to deploy VolView in simple scenarios.
99
1010
## Managed Hosting (S3, GCP, etc.)
1111

@@ -17,7 +17,7 @@ Please refer to your desired server's documentation on how to serve static files
1717

1818
### Apache example config
1919

20-
In this apache2 example, the `dist/*` files are located under `/var/www/VolView`, and the domain is `example.com`. This does *not* configure TLS.
20+
In this apache2 example, the `dist/*` files are located under `/var/www/VolView`, and the domain is `example.com`. This does _not_ configure TLS.
2121

2222
```
2323
<VirtualHost *:80>
@@ -28,7 +28,7 @@ In this apache2 example, the `dist/*` files are located under `/var/www/VolView`
2828

2929
### Nginx example config
3030

31-
In this nginx example, the `dist/*` files are located under `/var/www/VolView`, and the domain is `example.com`. This does *not* configure TLS.
31+
In this nginx example, the `dist/*` files are located under `/var/www/VolView`, and the domain is `example.com`. This does _not_ configure TLS.
3232

3333
```
3434
server {
@@ -43,4 +43,4 @@ server {
4343
try_files $uri $uri/ /index.html;
4444
}
4545
}
46-
```
46+
```

docs/index.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,34 @@ VolView is an open source radiological viewer developed for clinical professiona
88

99
Major features of VolView include:
1010

11-
1. **Cinematic Volume Rendering**: Create beautiful renderings and gain new insights into your data with only a few clicks. VolView provides three cinematic volume rendering modes and intuitive controls for each. We've also provides simple ways to control lighting and multiple presets to get you started.
11+
1. **Cinematic Volume Rendering**: Create beautiful renderings and gain new insights into your data with only a few clicks. VolView provides three cinematic volume rendering modes and intuitive controls for each. We've also provides simple ways to control lighting and multiple presets to get you started.
1212

13-
2. **Drag-and-Drop DICOM**: Drag DICOM images onto VolView, and they will be quickly parsed and presented as thumbnails. Click on a thumbnail, and the data is quickly loaded and presented as 2D slices and a 3D cinematic volume rendering.
13+
2. **Drag-and-Drop DICOM**: Drag DICOM images onto VolView, and they will be quickly parsed and presented as thumbnails. Click on a thumbnail, and the data is quickly loaded and presented as 2D slices and a 3D cinematic volume rendering.
1414

15-
3. **Annotations and Measures**: We have provided a small set of tools for painting, measuring, and cropping, and we are actively working to expand that toolset. If you have suggestions for new tools or for improving VolView in general, please leave feedback at our [Issue Tracker](https://github.com/Kitware/VolView/issues).
15+
3. **Annotations and Measures**: We have provided a small set of tools for painting, measuring, and cropping, and we are actively working to expand that toolset. If you have suggestions for new tools or for improving VolView in general, please leave feedback at our [Issue Tracker](https://github.com/Kitware/VolView/issues).
1616

17-
4. **Simple, Scalable, and Secure**: Simply visit a website to install VolView. Once it is running, all data handling, processing, and visualization occurs on your machine. Data you load into VolView never leaves your machine. And VolView is designed to run on any web browser: from the one on your phone to the one running on your most powerful workstations. It will take advantage of local GPU resources to accelerate its rendering processes, but if none is available, it will still generate the same high quality renderings, albeit a bit slower.
17+
4. **Simple, Scalable, and Secure**: Simply visit a website to install VolView. Once it is running, all data handling, processing, and visualization occurs on your machine. Data you load into VolView never leaves your machine. And VolView is designed to run on any web browser: from the one on your phone to the one running on your most powerful workstations. It will take advantage of local GPU resources to accelerate its rendering processes, but if none is available, it will still generate the same high quality renderings, albeit a bit slower.
1818

19-
5. **Foundation for the Future**: VolView is meant to serve as a foundation for your future projects and products. It is open-source and free for commercial and academic use. You may modify it yourself, or Kitware can help you customize it to support client-server workflows, provide streamlined interfaces and tools, and carry your brand.
19+
5. **Foundation for the Future**: VolView is meant to serve as a foundation for your future projects and products. It is open-source and free for commercial and academic use. You may modify it yourself, or Kitware can help you customize it to support client-server workflows, provide streamlined interfaces and tools, and carry your brand.
2020

21-
VolView is **not FDA approved for any purpose**, but Kitware can work with you to create a custom version of VolView and submit it for FDA approval. For more information, contact [kitware@kitware.com](mailto:kitware@kitware.com).
21+
VolView is **not FDA approved for any purpose**, but Kitware can work with you to create a custom version of VolView and submit it for FDA approval. For more information, contact [kitware@kitware.com](mailto:kitware@kitware.com).
2222

2323
## History
2424

2525
VolView version 1.1 was released on Sept. 21, 1999 to provide clinical professionals with an intuitive interface to industry-leading volume rendering capabilities. Built using [VTK](https://vtk.org), it was extremely innovative at the time. It provided interactive volume renderings that did not require dedicated systems purchased for big-name medical device manufacturers. It supported Windows 95/98/NT, Sun, Silicon Graphics and Linux environments, and it provided custom level-of-detail and composite rendering techniques. That version of VolView thrived for over a decade, with the last release in June of 2011. In 2011, open source radiological viewers had become commonplace (many also built using VTK), and we pivoted our attention to 3D Slicer as an advance, community-support, extensible platform for research and clinical application development.
2626

27-
We have released VolView 4.0 in 2022 to again advance the radiological image visualization field. Built using the javascript version of VTK (i.e., [vtk.js](https://kitware.github.io/vtk-js/index.html)), VolView 4.0 runs in web browsers and provides cinematic volume rendering capabilities that are only broadly available in dedicated systems sold by big-name medical device manufacturers. We look forward to continuing to use the VolView platform for medical image visualization innovation, with plans to support WebXR for holographic and AR/VR devices as well as companion libraries for advance image analysis (e.g., [itk.wasm](https://github.com/InsightSoftwareConsortium/itk-wasm)) and AI algorithms (e.g., via [MONAI](https://monai.io)).
27+
We have released VolView 4.0 in 2022 to again advance the radiological image visualization field. Built using the javascript version of VTK (i.e., [vtk.js](https://kitware.github.io/vtk-js/index.html)), VolView 4.0 runs in web browsers and provides cinematic volume rendering capabilities that are only broadly available in dedicated systems sold by big-name medical device manufacturers. We look forward to continuing to use the VolView platform for medical image visualization innovation, with plans to support WebXR for holographic and AR/VR devices as well as companion libraries for advance image analysis (e.g., [itk.wasm](https://github.com/InsightSoftwareConsortium/itk-wasm)) and AI algorithms (e.g., via [MONAI](https://monai.io)).
2828

2929
## Roadmap
3030

3131
Details and progress on our roadmap are tracked in the VolView issue tracker on Github: https://github.com/Kitware/VolView/issues
3232

3333
Our next major release is planned for March, 2023, and it will support:
34-
* DICOM Web
35-
* DICOM SEG, RT, and SR reading and writing
36-
* ITK for image processing
37-
* Deep learning inference for image analysis
34+
35+
- DICOM Web
36+
- DICOM SEG, RT, and SR reading and writing
37+
- ITK for image processing
38+
- Deep learning inference for image analysis
3839

3940
## Citation
4041

@@ -50,14 +51,13 @@ This work was funded, in part, by the NIH via NIBIB and NIGMS R01EB021396, NIBIB
5051

5152
## Related Work
5253

53-
Learn about our related works at the following links:
54-
* Glance: General purpose scientific visualization in web browsers
55-
* https://kitware.github.io/glance/index.html
56-
* 3D Slicer: Desktop (C++ and Python), extensible radiological viewer
57-
* https://slicer.org
58-
* trame: Python framework for quickly creating web application involving server-side rendering and computation.
59-
* https://kitware.github.io/trame/index.html
60-
* itk.wasm: Web-assembly version of ITK for in-browser image segmentation and registration, with outstanding DICOM support.
61-
* https://github.com/InsightSoftwareConsortium/itk-wasm
62-
* vtk.js: A pure javascript library for advanced, interactive, scientific visualization in web browsers.
63-
* https://kitware.github.io/vtk-js/index.html
54+
- Glance: General purpose scientific visualization in web browsers
55+
- https://kitware.github.io/glance/index.html
56+
- 3D Slicer: Desktop (C++ and Python), extensible radiological viewer
57+
- https://slicer.org
58+
- trame: Python framework for quickly creating web application involving server-side rendering and computation.
59+
- https://kitware.github.io/trame/index.html
60+
- itk.wasm: Web-assembly version of ITK for in-browser image segmentation and registration, with outstanding DICOM support.
61+
- https://github.com/InsightSoftwareConsortium/itk-wasm
62+
- vtk.js: A pure javascript library for advanced, interactive, scientific visualization in web browsers.
63+
- https://kitware.github.io/vtk-js/index.html

docs/mouse_controls.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
## Data management
44

5-
| Shortcut | Action |
6-
| -------- | --------------------- |
7-
| Ctrl + . | Delete Current Image |
8-
| Ctrl + / | Clear all data |
5+
| Shortcut | Action |
6+
| -------- | -------------------- |
7+
| Ctrl + . | Delete Current Image |
8+
| Ctrl + / | Clear all data |
99

1010
## Slice
1111

0 commit comments

Comments
 (0)