Add badge numbers for seg and rtstruct

This commit is contained in:
igoroctaviano committed 2021-07-28 22:15:05 -03:00
1 parent 2afcd498f3
commit 3f40cdced7
9 files changed
+189 -16

No files matched your search

@@ -224,16 +224,20 @@ const SegmentationPanel = ({
)
);
};
}, [activeIndex, viewports]);
}, [
activeIndex,
updateSegmentationComboBox,
viewports,
]);
const updateSegmentationComboBox = (e) => {
const updateSegmentationComboBox = e => {
const index = e.detail.activatedLabelmapIndex;
if (index !== -1) {
setState(state => ({ ...state, selectedSegmentation: index }));
} else {
cleanSegmentationComboBox();
}
}
};
const cleanSegmentationComboBox = () => {
setState(state => ({
@@ -245,7 +249,7 @@ const SegmentationPanel = ({
isDisabled: true,
selectedSegmentation: -1,
}));
}
};
const refreshSegmentations = () => {
const activeViewport = getActiveViewport();
@@ -309,7 +313,8 @@ const SegmentationPanel = ({
);
const filteredReferencedSegDisplaysets = referencedSegDisplaysets.filter(
(segDisplay => segDisplay.loadError !== true));
segDisplay => segDisplay.loadError !== true
);
return filteredReferencedSegDisplaysets.map((displaySet, index) => {
const {
@@ -1,9 +1,12 @@
import React from 'react';
import OHIF from '@ohif/core';
import init from './init.js';
import toolbarModule from './toolbarModule.js';
import getSopClassHandlerModule from './getOHIFDicomSegSopClassHandler.js';
import SegmentationPanel from './components/SegmentationPanel/SegmentationPanel.js';
import { version } from '../package.json';
const { studyMetadataManager } = OHIF.utils;
export default {
/**
@@ -79,12 +82,36 @@ export default {
);
};
const onSegmentationsLoaded = ({ detail }) => {
const { segDisplaySet, segMetadata } = detail;
const studyMetadata = studyMetadataManager.get(
segDisplaySet.StudyInstanceUID
);
const referencedDisplaysets = studyMetadata.getDerivedDatasets({
referencedSeriesInstanceUID: segMetadata.seriesInstanceUid,
Modality: 'SEG',
});
const event = new CustomEvent('segmentation-panel-updated', {
detail: {
badgeNumber: referencedDisplaysets.length,
target: 'segmentation-panel',
},
});
document.dispatchEvent(event);
};
document.addEventListener(
'extensiondicomsegmentationsegloaded',
onSegmentationsLoaded
);
return {
menuOptions: [
{
icon: 'list',
label: 'Segmentations',
target: 'segmentation-panel',
stateEvent: 'segmentation-panel-updated',
isDisabled: studies => {
if (!studies) {
return true;
@@ -59,7 +59,16 @@ export default async function loadSegmentation(
* without subscribing to external events.
*/
console.log('Segmentation loaded.');
const event = new CustomEvent('extensiondicomsegmentationsegloaded');
const event = new CustomEvent('extensiondicomsegmentationsegloaded', {
detail: {
imageIds,
segDisplaySet,
labelmapBuffer,
segMetadata,
segmentsOnFrame,
labelmapSegments,
},
});
document.dispatchEvent(event);
return labelmapIndex;