By default other tool state not loaded into the viewport. (set disabled)
This commit is contained in:
parent
e7501933dd
commit
00f0ae4bbc
@ -1,6 +1,7 @@
|
|||||||
import React, { useEffect, useState } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import cornerstoneTools from 'cornerstone-tools';
|
import cornerstoneTools from 'cornerstone-tools';
|
||||||
|
import cornerstone from 'cornerstone-core';
|
||||||
|
|
||||||
import CornerstoneViewport from 'react-cornerstone-viewport';
|
import CornerstoneViewport from 'react-cornerstone-viewport';
|
||||||
import OHIF from '@ohif/core';
|
import OHIF from '@ohif/core';
|
||||||
@ -8,6 +9,10 @@ import { ViewportActionBar, useViewportGrid } from '@ohif/ui';
|
|||||||
import TOOL_NAMES from './constants/toolNames';
|
import TOOL_NAMES from './constants/toolNames';
|
||||||
import id from './id';
|
import id from './id';
|
||||||
|
|
||||||
|
const BaseAnnotationTool = cornerstoneTools.importInternal(
|
||||||
|
'base/BaseAnnotationTool'
|
||||||
|
);
|
||||||
|
|
||||||
// const cine = viewportSpecificData.cine;
|
// const cine = viewportSpecificData.cine;
|
||||||
|
|
||||||
// isPlaying = cine.isPlaying === true;
|
// isPlaying = cine.isPlaying === true;
|
||||||
@ -33,19 +38,65 @@ function OHIFCornerstoneSRViewport({
|
|||||||
|
|
||||||
const onElementEnabled = evt => {
|
const onElementEnabled = evt => {
|
||||||
const eventData = evt.detail;
|
const eventData = evt.detail;
|
||||||
const { element } = eventData;
|
const targetElement = eventData.element;
|
||||||
|
|
||||||
|
debugger;
|
||||||
|
|
||||||
|
// TODO -> This will only be temporary until we set a tool on, and isn't very customizable.
|
||||||
|
const globalTools = cornerstoneTools.store.state.globalTools;
|
||||||
|
|
||||||
|
const toolNames = Object.keys(globalTools);
|
||||||
|
|
||||||
|
Object.keys(globalTools).forEach(globalToolName => {
|
||||||
|
cornerstoneTools.setToolDisabledForElement(targetElement, globalToolName);
|
||||||
|
});
|
||||||
|
|
||||||
|
debugger;
|
||||||
|
|
||||||
|
cornerstoneTools.setToolEnabledForElement(
|
||||||
|
targetElement,
|
||||||
|
TOOL_NAMES.DICOM_SR_DISPLAY_TOOL
|
||||||
|
);
|
||||||
|
|
||||||
|
cornerstoneTools.setToolActiveForElement(targetElement, 'PanMultiTouch', {
|
||||||
|
pointers: 2,
|
||||||
|
});
|
||||||
|
cornerstoneTools.setToolActiveForElement(
|
||||||
|
targetElement,
|
||||||
|
'ZoomTouchPinch',
|
||||||
|
{}
|
||||||
|
);
|
||||||
|
|
||||||
|
cornerstoneTools.setToolActiveForElement(targetElement, 'Wwwc', {
|
||||||
|
mouseButtonMask: 1,
|
||||||
|
});
|
||||||
|
cornerstoneTools.setToolActiveForElement(targetElement, 'Pan', {
|
||||||
|
mouseButtonMask: 4,
|
||||||
|
});
|
||||||
|
cornerstoneTools.setToolActiveForElement(targetElement, 'Zoom', {
|
||||||
|
mouseButtonMask: 2,
|
||||||
|
});
|
||||||
|
cornerstoneTools.setToolActiveForElement(
|
||||||
|
targetElement,
|
||||||
|
'StackScrollMouseWheel',
|
||||||
|
{}
|
||||||
|
);
|
||||||
|
|
||||||
|
setTrackingUniqueIdentifiersForElement(targetElement);
|
||||||
|
|
||||||
|
setElement(targetElement);
|
||||||
|
};
|
||||||
|
|
||||||
|
const setTrackingUniqueIdentifiersForElement = targetElement => {
|
||||||
const { measurements } = displaySet;
|
const { measurements } = displaySet;
|
||||||
|
|
||||||
const srModule = cornerstoneTools.getModule(id);
|
const srModule = cornerstoneTools.getModule(id);
|
||||||
|
|
||||||
srModule.setters.trackingUniqueIdentifiersForElement(
|
srModule.setters.trackingUniqueIdentifiersForElement(
|
||||||
element,
|
targetElement,
|
||||||
measurements.map(measurement => measurement.TrackingUniqueIdentifier),
|
measurements.map(measurement => measurement.TrackingUniqueIdentifier),
|
||||||
measurementSelected
|
measurementSelected
|
||||||
);
|
);
|
||||||
|
|
||||||
setElement(element);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -85,17 +136,34 @@ function OHIFCornerstoneSRViewport({
|
|||||||
).then(({ viewportData, activeDisplaySetData }) => {
|
).then(({ viewportData, activeDisplaySetData }) => {
|
||||||
setViewportData({ ...viewportData });
|
setViewportData({ ...viewportData });
|
||||||
setActiveDisplaySetData({ ...activeDisplaySetData });
|
setActiveDisplaySetData({ ...activeDisplaySetData });
|
||||||
|
|
||||||
|
if (element !== null) {
|
||||||
|
cornerstone.updateImage(element);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
updateViewport();
|
if (element !== null) {
|
||||||
|
debugger;
|
||||||
|
setTrackingUniqueIdentifiersForElement(element);
|
||||||
|
}
|
||||||
}, [
|
}, [
|
||||||
dataSource,
|
dataSource,
|
||||||
displaySet,
|
displaySet,
|
||||||
displaySet.StudyInstanceUID,
|
displaySet.StudyInstanceUID,
|
||||||
displaySet.displaySetInstanceUID,
|
displaySet.displaySetInstanceUID,
|
||||||
|
]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
updateViewport();
|
||||||
|
}, [
|
||||||
measurementSelected,
|
measurementSelected,
|
||||||
|
dataSource,
|
||||||
|
displaySet,
|
||||||
|
displaySet.StudyInstanceUID,
|
||||||
|
displaySet.displaySetInstanceUID,
|
||||||
|
element,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -142,8 +210,6 @@ function OHIFCornerstoneSRViewport({
|
|||||||
SeriesNumber,
|
SeriesNumber,
|
||||||
} = activeDisplaySetData;
|
} = activeDisplaySetData;
|
||||||
|
|
||||||
debugger;
|
|
||||||
|
|
||||||
const onMeasurementChange = direction => {
|
const onMeasurementChange = direction => {
|
||||||
let newMeausrementSelected = measurementSelected;
|
let newMeausrementSelected = measurementSelected;
|
||||||
|
|
||||||
@ -306,8 +372,6 @@ async function _getViewportAndActiveDisplaySetData(
|
|||||||
SeriesNumber: image0.SeriesNumber,
|
SeriesNumber: image0.SeriesNumber,
|
||||||
};
|
};
|
||||||
|
|
||||||
debugger;
|
|
||||||
|
|
||||||
return { viewportData, activeDisplaySetData };
|
return { viewportData, activeDisplaySetData };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -9,6 +9,7 @@ const draw = importInternal('drawing/draw');
|
|||||||
const drawJoinedLines = importInternal('drawing/drawJoinedLines');
|
const drawJoinedLines = importInternal('drawing/drawJoinedLines');
|
||||||
const drawCircle = importInternal('drawing/drawCircle');
|
const drawCircle = importInternal('drawing/drawCircle');
|
||||||
const drawEllipse = importInternal('drawing/drawEllipse');
|
const drawEllipse = importInternal('drawing/drawEllipse');
|
||||||
|
const drawHandles = importInternal('drawing/drawHandles');
|
||||||
const getNewContext = importInternal('drawing/getNewContext');
|
const getNewContext = importInternal('drawing/getNewContext');
|
||||||
const BaseTool = importInternal('base/BaseTool');
|
const BaseTool = importInternal('base/BaseTool');
|
||||||
|
|
||||||
|
|||||||
@ -1,13 +1,14 @@
|
|||||||
import cornerstoneTools from 'cornerstone-tools';
|
import cornerstoneTools from 'cornerstone-tools';
|
||||||
|
import cornerstoneMath from 'cornerstone-math';
|
||||||
|
import cornerstone from 'cornerstone-core';
|
||||||
import TOOL_NAMES from '../constants/toolNames';
|
import TOOL_NAMES from '../constants/toolNames';
|
||||||
import SCOORD_TYPES from '../constants/scoordTypes';
|
import SCOORD_TYPES from '../constants/scoordTypes';
|
||||||
import { cornerstone } from '../../../../platform/core/src';
|
|
||||||
|
window.cornerstone = cornerstone;
|
||||||
|
|
||||||
const globalImageIdSpecificToolStateManager =
|
const globalImageIdSpecificToolStateManager =
|
||||||
cornerstoneTools.globalImageIdSpecificToolStateManager;
|
cornerstoneTools.globalImageIdSpecificToolStateManager;
|
||||||
|
|
||||||
console.log(globalImageIdSpecificToolStateManager);
|
|
||||||
|
|
||||||
export default function addMeasurement(
|
export default function addMeasurement(
|
||||||
measurement,
|
measurement,
|
||||||
imageId,
|
imageId,
|
||||||
|
|||||||
@ -93,7 +93,11 @@ export default function mode({ modeConfiguration }) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
extensions: ['org.ohif.default', 'org.ohif.cornerstone'],
|
extensions: [
|
||||||
|
'org.ohif.default',
|
||||||
|
'org.ohif.cornerstone',
|
||||||
|
'org.ohif.dicom-sr',
|
||||||
|
],
|
||||||
sopClassHandlers: [
|
sopClassHandlers: [
|
||||||
'org.ohif.default.sopClassHandlerModule.stack',
|
'org.ohif.default.sopClassHandlerModule.stack',
|
||||||
'org.ohif.dicom-sr.sopClassHandlerModule.dicom-sr',
|
'org.ohif.dicom-sr.sopClassHandlerModule.dicom-sr',
|
||||||
|
|||||||
@ -10,6 +10,11 @@ const tracked = {
|
|||||||
viewport: 'org.ohif.measurement-tracking.viewportModule.cornerstone-tracked',
|
viewport: 'org.ohif.measurement-tracking.viewportModule.cornerstone-tracked',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const dicomsr = {
|
||||||
|
sopClassHandler: 'org.ohif.dicom-sr.sopClassHandlerModule.dicom-sr',
|
||||||
|
viewport: 'org.ohif.dicom-sr.viewportModule.dicom-sr',
|
||||||
|
};
|
||||||
|
|
||||||
export default function mode({ modeConfiguration }) {
|
export default function mode({ modeConfiguration }) {
|
||||||
return {
|
return {
|
||||||
// TODO: We're using this as a route segment
|
// TODO: We're using this as a route segment
|
||||||
@ -60,6 +65,10 @@ export default function mode({ modeConfiguration }) {
|
|||||||
namespace: tracked.viewport,
|
namespace: tracked.viewport,
|
||||||
displaySetsToDisplay: [ohif.sopClassHandler],
|
displaySetsToDisplay: [ohif.sopClassHandler],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
namespace: dicomsr.viewport,
|
||||||
|
displaySetsToDisplay: [dicomsr.sopClassHandler],
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@ -70,8 +79,9 @@ export default function mode({ modeConfiguration }) {
|
|||||||
'org.ohif.default',
|
'org.ohif.default',
|
||||||
'org.ohif.cornerstone',
|
'org.ohif.cornerstone',
|
||||||
'org.ohif.measurement-tracking',
|
'org.ohif.measurement-tracking',
|
||||||
|
'org.ohif.dicom-sr',
|
||||||
],
|
],
|
||||||
sopClassHandlers: [ohif.sopClassHandler],
|
sopClassHandlers: [ohif.sopClassHandler, dicomsr.sopClassHandler],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,8 @@ import fetchPaletteColorLookupTableData from '../utils/metadataProvider/fetchPal
|
|||||||
import fetchOverlayData from '../utils/metadataProvider/fetchOverlayData';
|
import fetchOverlayData from '../utils/metadataProvider/fetchOverlayData';
|
||||||
import DicomMetadataStore from '../services/DicomMetadataStore';
|
import DicomMetadataStore from '../services/DicomMetadataStore';
|
||||||
|
|
||||||
|
window.dcmjs = dcmjs;
|
||||||
|
|
||||||
class MetadataProvider {
|
class MetadataProvider {
|
||||||
constructor() {
|
constructor() {
|
||||||
// Define the main "metadataLookup" private property as an immutable property.
|
// Define the main "metadataLookup" private property as an immutable property.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user