ohif-viewer/modes/tmtv
Alireza 83ea228d86
feat: Add DICOM SEG support and MPR, referenceLines and StackSync and more (#3015)
* feat: add initial sop class handler for SEG

* feat: move segmentation service

* update segmentation service methods

* fix: viewport data structure

* feat: Add initial render for the DICOM SEG for each displaySet

* fix: various wrong architectural dependencies between services

* feat: initial separate SEG display in each viewport

* feat: refactore viewport action bar

* initial work for SEG hydration

* fix: various bugs regarding drag and dropping different viewports

* fix: rendering issues for multiple seg displaysets

* fix: bugs for thumbnail and hydration

* feat: fix the initial segment color

* update after rebase

* feat: initial design for the segmentation group table

* feat: initial new design for the segmentation panel

* feat: segmentation panel

* feat: make segmentation appear on all related viewports

* fix: segmentation load bug based on functional groups

* initial work for segmentation crosshairs

* fix: various stylings and functionality

* fix: various stylings for the seg panel

* fix: overflow styles

* feat: add more ui components

* feat: added segmentation config

* feat: add jump to segment

* feat: add jump to segment for DICOM SEG viewport

* fix: bugs after rebase

* feat: jump in segmentation viewport

* fix: mpr support for seg

* feat: add more icons

* feat: new icons

* feat: add new side panel

* feat: add segmentation config

* feat: add loading indicator to ohif

* feat: make hanging protocols follow matching rules for viewports

* feat: enhance drag and drop to be hanging protocol aware

* fix: mpr restore previous layout

* fix: crosshairs toggle

* fix: add auth headers to the dicom loader via dicomwebclient

* fix: bug for crosshairs toggle in mpr

* fix: seg viewport reusing old toolGroup

* feat: add loading animation with lottie

* fix: various bugs for Segmentation hydration in mpr

* feat: change outline alpha to outline opacity

* feat: loading indicator for seg viewport

* fix: various segmentation group styles

* fix: local mode for seg

* feat: add animation for the highlight

* fix: loading indicatro to show segment indices

* feat: enhance modality drop down ui

* fix: panels

* fix: download form

* fix: layout shift in loading indicator

* fix: loading indicator to have correct values

* fix: update software number

* fix: image jump between MPR and default

* fix: segmentation cleanup and cine service cleanup

* fix: segmentation toolgroup clena up

* fix: highlight interval should not trigger again

* fix: issue with multiframe sorting

* rename: change onSeriesChange to onArrowsClick

* fix: buttons for tmtv and layout shift

* fix: various bugs wrt crosshairs

* fix: crosshairs re init on reset camera

* fix: middle slice calculation different from cs middle reset camera

* fix: reset camera should reset viewport camera

* fix: loading segments in MPR mode

* fix: tmtv hp back to before

* fix: layout shift

* feat: orientation markers for volume viewport

* fix: capture for volume viewports

* fix: memory leak for back to worklist

* fix: loading bar bg color

* fix: side panel for only one panel

* fix: react select style in production

* fix: various styling for segmentation groups

* fix: various ui styles

* feat: add new segmentation config styles

* fix: hover state for segmentation item

* fix: side panel layout shift

* temp add panels

* try to fix scrollbar for thimbnail

* fix: scroll not appearing for side panels

* feat: changed styles for scrollbar

* feat: add cpu fallback warning

* fix: webworker destroy

* fix: select styles

* fix: orientation marker color and position

* fix: capture screenshot for volume viewports

* fix: hide segment visibility on mpr

* fix: reloading an already loaded seg displayset

* feat: add is equal

* fix: mpr jump to measurements

* apply review comments

* fix: optimization for the segmentation load

* fix: remove unnecessary context menu and hp service reset

* fix: segmentation service wrt brush settings

* feat: initial work for the stack synchronization

* fix: add validateDisplaySetSelectorsForNewDisplaySets to make sure drag and drop can follow requirements

* fix: various react proptypes

* fix: thumbnails for the tmtv and change default props to default params

* feat: make showing loading indicator configurable and add docs

* bump versions and add more docs

* fix demo

* update cornerstone versions

* apply review comments

* feat: add reference lines

* fix build

* fix unit tests

* add reference lines icon

* fix: e2e tests

* fix static wado config

* docs: add segmentation service docs

* fix: docker build

* fix: keep camera and bump versions

* Try re-enabling minification to fix deploy previews

Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
2022-11-16 14:19:52 -05:00
..
.webpack feat: cornerstone3D stack and volume viewports (#2787) 2022-07-27 12:39:04 -04:00
assets feat: cornerstone3D stack and volume viewports (#2787) 2022-07-27 12:39:04 -04:00
src feat: Add DICOM SEG support and MPR, referenceLines and StackSync and more (#3015) 2022-11-16 14:19:52 -05:00
babel.config.js feat: cornerstone3D stack and volume viewports (#2787) 2022-07-27 12:39:04 -04:00
LICENSE feat: cornerstone3D stack and volume viewports (#2787) 2022-07-27 12:39:04 -04:00
package.json feat: cornerstone3D stack and volume viewports (#2787) 2022-07-27 12:39:04 -04:00
README.md feat: new Total Metabolic Tumor Volume tmtv (#2866) 2022-08-17 15:13:59 -04:00

Total Metabolic Tumor Volume

Introduction

Total Metabolic Tumor Volume (TMTV) workflow mode enables quantitatively measurement of a tumor volume in a patient's body. This mode is accessible in any study that has a PT and CT image series as you can see below

modeValid

Note: If the study does not have a PT and CT image series, the TMTV workflow mode will not be available and will become grayed out.

Layout

The designed layout for the viewports follows a predefined hanging protocol which will place 10 viewports containing CT, PT, Fusion and Maximum Intensity Projection (MIP) PT scenes.

The hanging protocol will match the CT and PT displaySets based on series description. In terms of PT displaySets, the hanging protocol will match the PT displaySet that has attenuated corrected PET image data.

As seen in the image below, the first row contains CT volume in 3 different views of Axial, Sagittal and Coronal. The second row contains PT volume in the same views as the first row. The last row contains the fusion volume and the viewport to the right is a MIP of the PT Volume in the Sagittal view.

modeLayout

Synchronization

The viewports in the 3 rows are synchronized both for the Camera and WindowLevel. It means that when you interact with the CT viewport (pan, zoom, scroll), the PT and Fusion viewports will be synchronized to the same view. In addition to camera synchronization, the window level of the CT viewport will be synchronized with the fusion viewport.

MIP

The tools that are activated on each viewport is unique to its data. For instance, the mouse scroll tool for PT, CT and Fusion viewports are scrolling through the image data (in different directions); however, the mouse scroll tool for the MIP viewport will rotate the camera to match the usecase for the MIP.

Panels

There are two panels that are available in the TMTV workflow mode and we will discuss them in detail below.

SUV Panel

This panel shows the PT metadata derived from the matched PT displaySet. The user can edit/change the metadata if needed, and by reloading the data the new metadata will be applied to the PT volume.

ROI Threshold Panel

The ROI Threshold panel is a panel that allows the user to use the RectangleROIStartEnd tool from Cornerstone to define and edit a region of interest. Then, the user can apply a threshold to the pixels in the ROI and save the result as a segmentation volume.

By applying each threshold to the ROI, the Total Metabolic Tumor Volume (TMTV), and the SUV Peak values will get calculated for the labelmap segments and shown in the panel.

Export Report

Finally, the results can be saved in the CSV format. The RectangleROI annotations can also be extracted as a dicom RT Structure Set and saved as a DICOM file.

Video Tutorial

Below you can see a video tutorial on how to use the TMTV workflow mode.

https://user-images.githubusercontent.com/7490180/171065443-35369fba-e955-48ac-94da-d262e0fccb6b.mp4