ohif-viewer/modes/longitudinal
Joe Boccanfuso 5670a4d8d1
feat(PanelService): Left or right side panel to auto start as closed but auto open when needed (#3212)
* feat(SidePanel)
OHIF issue #3135
- Added a method to set a callback for a Panel to invoke when it is ready
to be shown (e.g. its data is loaded).
- Implemented such methods for both the segmentation and measurement panels.
- The SidePanel component now adds a callback to Panel components so that
it will automatically open a Panel that was initially closed and yet to
be opened.
- Updated the OHIF documentation accordingly.

* PR feedback
- added a PanelService that centralized much of the logic that existed in panel PanelModule
- the SidePanel subscribes to PanelService.EVENTS.ACTIVATE_PANEL for each of its child panels

* Removed the PanelMeasurementTableTracking setMeasurementPanelContentReadyCallback method.

* Made the forceActive flag in the PanelService optional and defaulted it to false.

* Fixed failing top level exports unit test.

* - PanelService subscriptions are now per panel (id) so subscribers do not
necessarily need to check the panel id in the event when it is fired
- PanelService activate panel trigger subscriptions are now returned
so that they can be (better) managed outside of the service
- updated/created the various documentation for panels and PanelService

* Clarified various documentation.
Moved the code to add the activate panel triggers out of the extensions
and into the longitudinal mode.

* Removed the openWhenPanelActivated flag.
PanelService now conforms to extending PubSubService like the other services.
Updated various documentation.

* Fixed failing e2e, mpr test.

* Renamed the ActivatePanelTriggers type properties.
The ExtensionManager now sets the id of various modules as a property on each of those modules.
2023-03-09 22:30:09 -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(PanelService): Left or right side panel to auto start as closed but auto open when needed (#3212) 2023-03-09 22:30:09 -05:00
babel.config.js Support for additional "tracking" mode 2020-05-26 09:03:58 -04:00
LICENSE Support for additional "tracking" mode 2020-05-26 09:03:58 -04:00
package.json feat: add more e2e tests for MPR and add test mode and extension (#3180) 2023-02-17 15:04:07 -05:00
README.md feat: cornerstone3D stack and volume viewports (#2787) 2022-07-27 12:39:04 -04:00

Measurement Tracking Mode

Introduction

Measurement tracking mode allows you to:

  • Draw annotations and have them shown in the measurement panel
  • Create a report from the tracked measurement and export them as DICOM SR
  • Use already exported DICOM SR to re-hydrate the measurements in the viewer

preview

Workflow

Status Icon

Each viewport has a left icon indicating whether the series within the viewport contains:

  • tracked measurement OR
  • untracked measurement OR
  • Structured Report OR
  • Locked (uneditable) Structured Report

In the following, we will discuss each category.

tracked

Tracked vs Untracked Measurements

OHIF-v3 implements a workflow for measurement tracking that can be seen below. In summary, when you create an annotation, a prompt will be shown whether to start tracking or not. If you start the tracking, the annotation style will change to a solid line, and annotation details get displayed on the measurement panel. On the other hand, if you decline the tracking prompt, the measurement will be considered "temporary," and annotation style remains as a dashed line and not shown on the right panel, and cannot be exported.

Below, you can see different icons that appear for a tracked vs. untracked series in OHIF-v3.

workflow

Reading and Writing DICOM SR

OHIF-v3 provides full support for reading, writing and mapping the DICOM Structured Report (SR) to interactable Cornerstone Tools. When you load an already exported DICOM SR into the viewer, you will be prompted whether to track the measurements for the series or not.

preview

If you click Yes, DICOM SR measurements gets re-hydrated into the viewer and the series become a tracked series. However, If you say no and later decide to say track the measurements, you can always click on the SR button that will prompt you with the same message again.

restore

The full workflow for saving measurements to SR and loading SR into the viewer is shown below.

sr-import

Loading DICOM SR into an Already Tracked Series

If you have an already tracked series and try to load a DICOM SR measurements, you will be shown the following lock icon. This means that, you can review the DICOM SR measurement, manipulate image and draw "temporary" measurements; however, you cannot edit the DICOM SR measurement.

locked