Skip to content

Latest commit

 

History

History
87 lines (51 loc) · 4.38 KB

2023-12-21.md

File metadata and controls

87 lines (51 loc) · 4.38 KB

OHIF Office Hours Notes 2023-12-21

Q & A

Attendees: 14

We are considering to build the below feature, and we are wondering if it would conflict with OHIF development’s roadmap or GUI design. OHIF/Viewers#3864 Feature is to allow navigating to other modes from a given mode. Eg a drop down box to choose the mode.

A: This probably isn’t the right choice since there is a lot of clearing of state changes that will lose your current state. Instead, look at the link below, there is a deploy preview that shows compound modes for 4d volume that allow setting up a set of steps to do different things. Then, you would add different steps to your new mode and allow switching between those modes.

OHIF/Viewers#3664


Q: I tried to use the Custom Overlay for viewports but I am still having an issue with using it on a multi-volume viewport. The overlay displays for the first volume but not for the second volume. Can you suggest how to “register” both volumes for using the viewport overlay. https://docs.ohif.org/platform/services/ui/customization-service#customizable-viewport-overlay

A: You can implement an arbitrary react component to fetch both sets of data and display them. That can just be as simple as implementing the content function to return the string data that you want to render. For example:

{ id: 'PatientName', customizationType: 'ohif.overlayItem', label: '', color: 'green', background: 'white', condition: ({ instance }) => instance && instance.PatientName && instance.PatientName.Alphabetic, contentF: ({ instance, formatters: { formatPN } }) => formatPN(instance.PatientName.Alphabetic) + ' ' + (instance.PatientSex ? '(' + instance.PatientSex + ')' : ''), },


Q: Do you have controls to adjust the threshold setting of Window/Level similar to Slicer controls for visualization of volumes?

A: Want to be able to remove from view some of the noise in a spect image Window level currently assigns to white the values above the maximum value. What is desired is to go to black instead.
Add a double slider to a panel, and then get the active viewport. In the viewport, get the transfer function, add yourself a node to this with the threshold value you want, and map all the values to black above the threshold.

Something like this:

const [viewportGrid] = useViewportGrid(); const { viewports, activeViewportId } = viewportGrid;

const csViewport = cornerstoneViewportService.getCornerstoneViewport(activeViewportId);

// get the image actor

const actor = csViewport.getActors()[0]

const cfun = actor.getProperty().getColorTransferFunction(0)

const range = //from your double range UI element

cfun.addRGBPoint(range[0], 0, 0, 0) cfun.addRGBPoint(range[1], 0, 0, 0)


Q: I don't have a question anymore, I'd like to show one interesting bug. Which I discovered while testing a new version

A: For a local system, there isn’t a remote system to send to. This should be disabled automatically if there isn’t a remote store configuration in the current data source. Instead, there should be a download capability to download locally. Who: Sanjay


Q: i have an issue where if the dicom study has a multiframe instances, i am not able to load it on the viewer, i simply get a 404 back from google healthcare api, the same works fine on my local horos viewer, i have the study anonymized incase if you want to reproduce on your side

A: What query are you making that is getting the 404. Can you post the URL plus request headers? What viewer are you using?


Q: Customization repo workflow advice Has built a custom CS3D tool and another modified tool, on a local fork of the repo with your changes.

Suggest putting your custom tool in your application layer - but the import for this is painful. SRDisplayTool is a custom tool in OHIF that you can look at how it is consumed/written to allow writing/adding your tool instance externally. For your changes, you can add customization attributes if there are shared/general fixes for a tool that not everyone might want, but that you can submit back, or you can take a copy of the tool in your application layer. If there is missing stuff not exported, then expose them in a PR and we will try to get that in fairly soon so you can just use it.