Merge branch 'feat/ui-v2-rebase-services' of github.com:OHIF/Viewers into feat/ui-v2-rebase-services
This commit is contained in:
commit
16aa777bda
@ -9,9 +9,7 @@ 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(
|
const scrollToIndex = cornerstoneTools.importInternal('util/scrollToIndex');
|
||||||
'base/BaseAnnotationTool'
|
|
||||||
);
|
|
||||||
|
|
||||||
// const cine = viewportSpecificData.cine;
|
// const cine = viewportSpecificData.cine;
|
||||||
|
|
||||||
@ -34,18 +32,19 @@ function OHIFCornerstoneSRViewport({
|
|||||||
const [activeDisplaySetData, setActiveDisplaySetData] = useState({});
|
const [activeDisplaySetData, setActiveDisplaySetData] = useState({});
|
||||||
const [element, setElement] = useState(null);
|
const [element, setElement] = useState(null);
|
||||||
|
|
||||||
const { viewports } = viewportGrid;
|
const { viewports, activeViewportIndex } = viewportGrid;
|
||||||
|
|
||||||
const onElementEnabled = evt => {
|
const onElementEnabled = evt => {
|
||||||
const eventData = evt.detail;
|
const eventData = evt.detail;
|
||||||
const targetElement = eventData.element;
|
const targetElement = eventData.element;
|
||||||
|
|
||||||
// TODO -> This will only be temporary until we set a tool on, and isn't very customizable.
|
// TODO -> This will only be temporary until we set a tool on, and isn't very customizable.
|
||||||
|
// Need to discuss how to deal with tools in general in the redesign, since we
|
||||||
|
// Previously just had Tool mode state global across the entire viewer.
|
||||||
const globalTools = cornerstoneTools.store.state.globalTools;
|
const globalTools = cornerstoneTools.store.state.globalTools;
|
||||||
|
const globalToolNames = Object.keys(globalTools);
|
||||||
|
|
||||||
const toolNames = Object.keys(globalTools);
|
globalToolNames.forEach(globalToolName => {
|
||||||
|
|
||||||
Object.keys(globalTools).forEach(globalToolName => {
|
|
||||||
cornerstoneTools.setToolDisabledForElement(targetElement, globalToolName);
|
cornerstoneTools.setToolDisabledForElement(targetElement, globalToolName);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -106,7 +105,7 @@ function OHIFCornerstoneSRViewport({
|
|||||||
displaySet.displaySetInstanceUID,
|
displaySet.displaySetInstanceUID,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const updateViewport = () => {
|
const updateViewport = newMeasurementSelected => {
|
||||||
const {
|
const {
|
||||||
StudyInstanceUID,
|
StudyInstanceUID,
|
||||||
displaySetInstanceUID,
|
displaySetInstanceUID,
|
||||||
@ -126,14 +125,16 @@ function OHIFCornerstoneSRViewport({
|
|||||||
_getViewportAndActiveDisplaySetData(
|
_getViewportAndActiveDisplaySetData(
|
||||||
dataSource,
|
dataSource,
|
||||||
displaySet,
|
displaySet,
|
||||||
measurementSelected,
|
newMeasurementSelected,
|
||||||
DisplaySetService,
|
DisplaySetService,
|
||||||
element
|
element
|
||||||
).then(({ viewportData, activeDisplaySetData }) => {
|
).then(({ viewportData, activeDisplaySetData }) => {
|
||||||
setViewportData({ ...viewportData });
|
setViewportData({ ...viewportData });
|
||||||
setActiveDisplaySetData({ ...activeDisplaySetData });
|
setActiveDisplaySetData({ ...activeDisplaySetData });
|
||||||
|
setMeasurementSelected(newMeasurementSelected);
|
||||||
|
|
||||||
if (element !== null) {
|
if (element !== null) {
|
||||||
|
scrollToIndex(element, viewportData.stack.currentImageIdIndex);
|
||||||
cornerstone.updateImage(element);
|
cornerstone.updateImage(element);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -151,9 +152,8 @@ function OHIFCornerstoneSRViewport({
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
updateViewport();
|
updateViewport(measurementSelected);
|
||||||
}, [
|
}, [
|
||||||
measurementSelected,
|
|
||||||
dataSource,
|
dataSource,
|
||||||
displaySet,
|
displaySet,
|
||||||
displaySet.StudyInstanceUID,
|
displaySet.StudyInstanceUID,
|
||||||
@ -161,6 +161,10 @@ function OHIFCornerstoneSRViewport({
|
|||||||
element,
|
element,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
const firstViewportIndexWithMatchingDisplaySetUid = viewports.findIndex(
|
||||||
|
vp => vp.displaySetInstanceUID === displaySet.displaySetInstanceUID
|
||||||
|
);
|
||||||
|
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
let childrenWithProps = null;
|
let childrenWithProps = null;
|
||||||
|
|
||||||
@ -206,27 +210,27 @@ function OHIFCornerstoneSRViewport({
|
|||||||
} = activeDisplaySetData;
|
} = activeDisplaySetData;
|
||||||
|
|
||||||
const onMeasurementChange = direction => {
|
const onMeasurementChange = direction => {
|
||||||
let newMeausrementSelected = measurementSelected;
|
let newMeasurementSelected = measurementSelected;
|
||||||
|
|
||||||
if (direction === 'right') {
|
if (direction === 'right') {
|
||||||
newMeausrementSelected++;
|
newMeasurementSelected++;
|
||||||
|
|
||||||
if (newMeausrementSelected >= measurementCount) {
|
if (newMeasurementSelected >= measurementCount) {
|
||||||
newMeausrementSelected = 0;
|
newMeasurementSelected = 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
newMeausrementSelected--;
|
newMeasurementSelected--;
|
||||||
|
|
||||||
if (newMeausrementSelected < 0) {
|
if (newMeasurementSelected < 0) {
|
||||||
newMeausrementSelected = measurementCount - 1;
|
newMeasurementSelected = measurementCount - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newMeausrementSelected === measurementSelected) {
|
if (newMeasurementSelected === measurementSelected) {
|
||||||
// TODO -> Jump to image in this case.
|
// TODO -> Jump to image in this case.
|
||||||
}
|
}
|
||||||
|
|
||||||
setMeasurementSelected(newMeausrementSelected);
|
updateViewport(newMeasurementSelected);
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log(currentImageIdIndex);
|
console.log(currentImageIdIndex);
|
||||||
@ -235,8 +239,10 @@ function OHIFCornerstoneSRViewport({
|
|||||||
<>
|
<>
|
||||||
<ViewportActionBar
|
<ViewportActionBar
|
||||||
onSeriesChange={onMeasurementChange}
|
onSeriesChange={onMeasurementChange}
|
||||||
|
showPatientInfo={viewportIndex === activeViewportIndex}
|
||||||
|
showNavArrows={viewportIndex === activeViewportIndex}
|
||||||
studyData={{
|
studyData={{
|
||||||
label: `${measurementSelected + 1}`,
|
label: _viewportLabels[firstViewportIndexWithMatchingDisplaySetUid],
|
||||||
isTracked: false,
|
isTracked: false,
|
||||||
isLocked: false,
|
isLocked: false,
|
||||||
studyDate: StudyDate,
|
studyDate: StudyDate,
|
||||||
@ -264,12 +270,15 @@ function OHIFCornerstoneSRViewport({
|
|||||||
isStackPrefetchEnabled={true} // todo
|
isStackPrefetchEnabled={true} // todo
|
||||||
isPlaying={false}
|
isPlaying={false}
|
||||||
frameRate={24}
|
frameRate={24}
|
||||||
|
isOverlayVisible={false}
|
||||||
/>
|
/>
|
||||||
{childrenWithProps}
|
{childrenWithProps}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const _viewportLabels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'];
|
||||||
|
|
||||||
OHIFCornerstoneSRViewport.propTypes = {
|
OHIFCornerstoneSRViewport.propTypes = {
|
||||||
displaySet: PropTypes.object.isRequired,
|
displaySet: PropTypes.object.isRequired,
|
||||||
viewportIndex: PropTypes.number.isRequired,
|
viewportIndex: PropTypes.number.isRequired,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user