fix(typescript): rename services to fix typescript (#3165)
* fix: Rename services to lower camel case, hp, measure * fix: Rename DisplaySetService instances to displaySetService * fix: Rename CornerstoneViewportService to lower camel case * fix: Added lower case segmentationService rename * rename other services (#3166) * rename uiDialogService * rename toolGroupService * rename uiNotificationService * rename viewportGridService * rename syncGroupService * rename CornerstoneCacheService * Fix a syntax error in hotkeys * Fix a couple of rename issues that were missed --------- Co-authored-by: Alireza <ar.sedghi@gmail.com>
This commit is contained in:
1 parent
a97fb2fc9a
commit
8af0362d12
97 files changed
+934
-908
No files matched your search
@@ -30,7 +30,7 @@
|
||||
"@ohif/core": "^3.0.0",
|
||||
"@ohif/ui": "^2.0.0",
|
||||
"cornerstone-wado-image-loader": "^4.2.1",
|
||||
"dcmjs": "^0.28.3",
|
||||
"dcmjs": "0.29.4",
|
||||
"dicom-parser": "^1.8.9",
|
||||
"hammerjs": "^2.0.8",
|
||||
"prop-types": "^15.6.2",
|
||||
@@ -43,10 +43,10 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.17.9",
|
||||
"@cornerstonejs/adapters": "^0.2.1",
|
||||
"@cornerstonejs/core": "^0.27.1",
|
||||
"@cornerstonejs/adapters": "0.3.0",
|
||||
"@cornerstonejs/core": "0.30.1",
|
||||
"@cornerstonejs/streaming-image-volume-loader": "^0.11.2",
|
||||
"@cornerstonejs/tools": "^0.36.3",
|
||||
"@cornerstonejs/tools": "0.39.0",
|
||||
"@kitware/vtk.js": "25.9.0",
|
||||
"html2canvas": "^1.4.1",
|
||||
"lodash.debounce": "4.0.8",
|
||||
|
||||
@@ -116,14 +116,14 @@ const OHIFCornerstoneViewport = React.memo(props => {
|
||||
const elementRef = useRef();
|
||||
|
||||
const {
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
measurementService,
|
||||
displaySetService,
|
||||
toolbarService,
|
||||
ToolGroupService,
|
||||
SyncGroupService,
|
||||
CornerstoneViewportService,
|
||||
CornerstoneCacheService,
|
||||
ViewportGridService,
|
||||
toolGroupService,
|
||||
syncGroupService,
|
||||
cornerstoneViewportService,
|
||||
cornerstoneCacheService,
|
||||
viewportGridService,
|
||||
} = servicesManager.services;
|
||||
|
||||
// useCallback for scroll bar height calculation
|
||||
@@ -135,13 +135,13 @@ const OHIFCornerstoneViewport = React.memo(props => {
|
||||
// useCallback for onResize
|
||||
const onResize = useCallback(() => {
|
||||
if (elementRef.current) {
|
||||
CornerstoneViewportService.resize();
|
||||
cornerstoneViewportService.resize();
|
||||
setImageScrollBarHeight();
|
||||
}
|
||||
}, [elementRef]);
|
||||
|
||||
const cleanUpServices = useCallback(() => {
|
||||
const viewportInfo = CornerstoneViewportService.getViewportInfoByIndex(
|
||||
const viewportInfo = cornerstoneViewportService.getViewportInfoByIndex(
|
||||
viewportIndex
|
||||
);
|
||||
|
||||
@@ -153,9 +153,9 @@ const OHIFCornerstoneViewport = React.memo(props => {
|
||||
const renderingEngineId = viewportInfo.getRenderingEngineId();
|
||||
const syncGroups = viewportInfo.getSyncGroups();
|
||||
|
||||
ToolGroupService.removeViewportFromToolGroup(viewportId, renderingEngineId);
|
||||
toolGroupService.removeViewportFromToolGroup(viewportId, renderingEngineId);
|
||||
|
||||
SyncGroupService.removeViewportFromSyncGroup(
|
||||
syncGroupService.removeViewportFromSyncGroup(
|
||||
viewportId,
|
||||
renderingEngineId,
|
||||
syncGroups
|
||||
@@ -170,7 +170,7 @@ const OHIFCornerstoneViewport = React.memo(props => {
|
||||
}
|
||||
|
||||
const { viewportId, element } = evt.detail;
|
||||
const viewportInfo = CornerstoneViewportService.getViewportInfo(
|
||||
const viewportInfo = cornerstoneViewportService.getViewportInfo(
|
||||
viewportId
|
||||
);
|
||||
const viewportIndex = viewportInfo.getViewportIndex();
|
||||
@@ -181,13 +181,13 @@ const OHIFCornerstoneViewport = React.memo(props => {
|
||||
const toolGroupId = viewportInfo.getToolGroupId();
|
||||
const syncGroups = viewportInfo.getSyncGroups();
|
||||
|
||||
ToolGroupService.addViewportToToolGroup(
|
||||
toolGroupService.addViewportToToolGroup(
|
||||
viewportId,
|
||||
renderingEngineId,
|
||||
toolGroupId
|
||||
);
|
||||
|
||||
SyncGroupService.addViewportToSyncGroup(
|
||||
syncGroupService.addViewportToSyncGroup(
|
||||
viewportId,
|
||||
renderingEngineId,
|
||||
syncGroups
|
||||
@@ -197,12 +197,12 @@ const OHIFCornerstoneViewport = React.memo(props => {
|
||||
onElementEnabled(evt);
|
||||
}
|
||||
},
|
||||
[viewportIndex, onElementEnabled, ToolGroupService]
|
||||
[viewportIndex, onElementEnabled, toolGroupService]
|
||||
);
|
||||
|
||||
// disable the element upon unmounting
|
||||
useEffect(() => {
|
||||
CornerstoneViewportService.enableViewport(
|
||||
cornerstoneViewportService.enableViewport(
|
||||
viewportIndex,
|
||||
viewportOptions,
|
||||
elementRef.current
|
||||
@@ -218,10 +218,10 @@ const OHIFCornerstoneViewport = React.memo(props => {
|
||||
return () => {
|
||||
cleanUpServices();
|
||||
|
||||
CornerstoneViewportService.disableElement(viewportIndex);
|
||||
cornerstoneViewportService.disableElement(viewportIndex);
|
||||
|
||||
if (onElementDisabled) {
|
||||
const viewportInfo = CornerstoneViewportService.getViewportInfoByIndex(
|
||||
const viewportInfo = cornerstoneViewportService.getViewportInfoByIndex(
|
||||
viewportIndex
|
||||
);
|
||||
|
||||
@@ -244,24 +244,24 @@ const OHIFCornerstoneViewport = React.memo(props => {
|
||||
// Note: this approach does not actually end of sending network requests
|
||||
// and it uses the network cache
|
||||
useEffect(() => {
|
||||
const { unsubscribe } = DisplaySetService.subscribe(
|
||||
DisplaySetService.EVENTS.DISPLAY_SET_SERIES_METADATA_INVALIDATED,
|
||||
const { unsubscribe } = displaySetService.subscribe(
|
||||
displaySetService.EVENTS.DISPLAY_SET_SERIES_METADATA_INVALIDATED,
|
||||
async invalidatedDisplaySetInstanceUID => {
|
||||
const viewportInfo = CornerstoneViewportService.getViewportInfoByIndex(
|
||||
const viewportInfo = cornerstoneViewportService.getViewportInfoByIndex(
|
||||
viewportIndex
|
||||
);
|
||||
|
||||
if (viewportInfo.hasDisplaySet(invalidatedDisplaySetInstanceUID)) {
|
||||
const viewportData = viewportInfo.getViewportData();
|
||||
const newViewportData = await CornerstoneCacheService.invalidateViewportData(
|
||||
const newViewportData = await cornerstoneCacheService.invalidateViewportData(
|
||||
viewportData,
|
||||
invalidatedDisplaySetInstanceUID,
|
||||
dataSource,
|
||||
DisplaySetService
|
||||
displaySetService
|
||||
);
|
||||
|
||||
const keepCamera = true;
|
||||
CornerstoneViewportService.updateViewport(
|
||||
cornerstoneViewportService.updateViewport(
|
||||
viewportIndex,
|
||||
newViewportData,
|
||||
keepCamera
|
||||
@@ -281,14 +281,14 @@ const OHIFCornerstoneViewport = React.memo(props => {
|
||||
}
|
||||
|
||||
const loadViewportData = async () => {
|
||||
const viewportData = await CornerstoneCacheService.createViewportData(
|
||||
const viewportData = await cornerstoneCacheService.createViewportData(
|
||||
displaySets,
|
||||
viewportOptions,
|
||||
dataSource,
|
||||
initialImageIndex
|
||||
);
|
||||
|
||||
CornerstoneViewportService.setViewportData(
|
||||
cornerstoneViewportService.setViewportData(
|
||||
viewportIndex,
|
||||
viewportData,
|
||||
viewportOptions,
|
||||
@@ -311,23 +311,23 @@ const OHIFCornerstoneViewport = React.memo(props => {
|
||||
*/
|
||||
useEffect(() => {
|
||||
const unsubscribeFromJumpToMeasurementEvents = _subscribeToJumpToMeasurementEvents(
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
measurementService,
|
||||
displaySetService,
|
||||
elementRef,
|
||||
viewportIndex,
|
||||
displaySets,
|
||||
ViewportGridService,
|
||||
CornerstoneViewportService
|
||||
viewportGridService,
|
||||
cornerstoneViewportService
|
||||
);
|
||||
|
||||
_checkForCachedJumpToMeasurementEvents(
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
measurementService,
|
||||
displaySetService,
|
||||
elementRef,
|
||||
viewportIndex,
|
||||
displaySets,
|
||||
ViewportGridService,
|
||||
CornerstoneViewportService
|
||||
viewportGridService,
|
||||
cornerstoneViewportService
|
||||
);
|
||||
|
||||
return () => {
|
||||
@@ -365,19 +365,19 @@ const OHIFCornerstoneViewport = React.memo(props => {
|
||||
}, areEqual);
|
||||
|
||||
function _subscribeToJumpToMeasurementEvents(
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
measurementService,
|
||||
displaySetService,
|
||||
elementRef,
|
||||
viewportIndex,
|
||||
displaySets,
|
||||
ViewportGridService,
|
||||
CornerstoneViewportService
|
||||
viewportGridService,
|
||||
cornerstoneViewportService
|
||||
) {
|
||||
const displaysUIDs = displaySets.map(
|
||||
displaySet => displaySet.displaySetInstanceUID
|
||||
);
|
||||
const { unsubscribe } = MeasurementService.subscribe(
|
||||
MeasurementService.EVENTS.JUMP_TO_MEASUREMENT,
|
||||
const { unsubscribe } = measurementService.subscribe(
|
||||
measurementService.EVENTS.JUMP_TO_MEASUREMENT,
|
||||
({ measurement }) => {
|
||||
if (!measurement) return;
|
||||
|
||||
@@ -387,10 +387,10 @@ function _subscribeToJumpToMeasurementEvents(
|
||||
measurement,
|
||||
elementRef,
|
||||
viewportIndex,
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
ViewportGridService,
|
||||
CornerstoneViewportService
|
||||
measurementService,
|
||||
displaySetService,
|
||||
viewportGridService,
|
||||
cornerstoneViewportService
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -401,25 +401,25 @@ function _subscribeToJumpToMeasurementEvents(
|
||||
|
||||
// Check if there is a queued jumpToMeasurement event
|
||||
function _checkForCachedJumpToMeasurementEvents(
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
measurementService,
|
||||
displaySetService,
|
||||
elementRef,
|
||||
viewportIndex,
|
||||
displaySets,
|
||||
ViewportGridService,
|
||||
CornerstoneViewportService
|
||||
viewportGridService,
|
||||
cornerstoneViewportService
|
||||
) {
|
||||
const displaysUIDs = displaySets.map(
|
||||
displaySet => displaySet.displaySetInstanceUID
|
||||
);
|
||||
|
||||
const measurementIdToJumpTo = MeasurementService.getJumpToMeasurement(
|
||||
const measurementIdToJumpTo = measurementService.getJumpToMeasurement(
|
||||
viewportIndex
|
||||
);
|
||||
|
||||
if (measurementIdToJumpTo && elementRef) {
|
||||
// Jump to measurement if the measurement exists
|
||||
const measurement = MeasurementService.getMeasurement(
|
||||
const measurement = measurementService.getMeasurement(
|
||||
measurementIdToJumpTo
|
||||
);
|
||||
|
||||
@@ -428,10 +428,10 @@ function _checkForCachedJumpToMeasurementEvents(
|
||||
measurement,
|
||||
elementRef,
|
||||
viewportIndex,
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
ViewportGridService,
|
||||
CornerstoneViewportService
|
||||
measurementService,
|
||||
displaySetService,
|
||||
viewportGridService,
|
||||
cornerstoneViewportService
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -441,10 +441,10 @@ function _jumpToMeasurement(
|
||||
measurement,
|
||||
targetElementRef,
|
||||
viewportIndex,
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
ViewportGridService,
|
||||
CornerstoneViewportService
|
||||
measurementService,
|
||||
displaySetService,
|
||||
viewportGridService,
|
||||
cornerstoneViewportService
|
||||
) {
|
||||
const targetElement = targetElementRef.current;
|
||||
const { displaySetInstanceUID, SOPInstanceUID, frameNumber } = measurement;
|
||||
@@ -453,7 +453,7 @@ function _jumpToMeasurement(
|
||||
console.warn('cannot jump in a non-acquisition plane measurements yet');
|
||||
}
|
||||
|
||||
const referencedDisplaySet = DisplaySetService.getDisplaySetByUID(
|
||||
const referencedDisplaySet = displaySetService.getDisplaySetByUID(
|
||||
displaySetInstanceUID
|
||||
);
|
||||
|
||||
@@ -461,11 +461,11 @@ function _jumpToMeasurement(
|
||||
// to set it properly
|
||||
// setCornerstoneMeasurementActive(measurement);
|
||||
|
||||
ViewportGridService.setActiveViewportIndex(viewportIndex);
|
||||
viewportGridService.setActiveViewportIndex(viewportIndex);
|
||||
|
||||
const enableElement = getEnabledElement(targetElement);
|
||||
|
||||
const viewportInfo = CornerstoneViewportService.getViewportInfoByIndex(
|
||||
const viewportInfo = cornerstoneViewportService.getViewportInfoByIndex(
|
||||
viewportIndex
|
||||
);
|
||||
|
||||
@@ -520,7 +520,7 @@ function _jumpToMeasurement(
|
||||
|
||||
cs3DTools.annotation.selection.setAnnotationSelected(measurement.uid);
|
||||
// Jump to measurement consumed, remove.
|
||||
MeasurementService.removeJumpToMeasurement(viewportIndex);
|
||||
measurementService.removeJumpToMeasurement(viewportIndex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import ViewportImageSliceLoadingIndicator from './ViewportImageSliceLoadingIndic
|
||||
|
||||
function CornerstoneOverlays(props) {
|
||||
const { viewportIndex, element, scrollbarHeight, servicesManager } = props;
|
||||
const { CornerstoneViewportService } = servicesManager.services;
|
||||
const { cornerstoneViewportService } = servicesManager.services;
|
||||
const [imageSliceData, setImageSliceData] = useState({
|
||||
imageIndex: 0,
|
||||
numberOfSlices: 0,
|
||||
@@ -15,8 +15,8 @@ function CornerstoneOverlays(props) {
|
||||
const [viewportData, setViewportData] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
const { unsubscribe } = CornerstoneViewportService.subscribe(
|
||||
CornerstoneViewportService.EVENTS.VIEWPORT_DATA_CHANGED,
|
||||
const { unsubscribe } = cornerstoneViewportService.subscribe(
|
||||
cornerstoneViewportService.EVENTS.VIEWPORT_DATA_CHANGED,
|
||||
props => {
|
||||
if (props.viewportIndex !== viewportIndex) {
|
||||
return;
|
||||
@@ -36,7 +36,7 @@ function CornerstoneOverlays(props) {
|
||||
}
|
||||
|
||||
if (viewportData) {
|
||||
const viewportInfo = CornerstoneViewportService.getViewportInfoByIndex(
|
||||
const viewportInfo = cornerstoneViewportService.getViewportInfoByIndex(
|
||||
viewportIndex
|
||||
);
|
||||
|
||||
|
||||
@@ -16,16 +16,16 @@ function CornerstoneImageScrollbar({
|
||||
}) {
|
||||
const {
|
||||
cineService,
|
||||
CornerstoneViewportService,
|
||||
cornerstoneViewportService,
|
||||
} = (servicesManager as ServicesManger).services;
|
||||
|
||||
const onImageScrollbarChange = (imageIndex, viewportIndex) => {
|
||||
const viewportInfo = CornerstoneViewportService.getViewportInfoByIndex(
|
||||
const viewportInfo = cornerstoneViewportService.getViewportInfoByIndex(
|
||||
viewportIndex
|
||||
);
|
||||
|
||||
const viewportId = viewportInfo.getViewportId();
|
||||
const viewport = CornerstoneViewportService.getCornerstoneViewport(
|
||||
const viewport = cornerstoneViewportService.getCornerstoneViewport(
|
||||
viewportId
|
||||
);
|
||||
|
||||
@@ -48,7 +48,7 @@ function CornerstoneImageScrollbar({
|
||||
return;
|
||||
}
|
||||
|
||||
const viewport = CornerstoneViewportService.getCornerstoneViewportByIndex(
|
||||
const viewport = cornerstoneViewportService.getCornerstoneViewportByIndex(
|
||||
viewportIndex
|
||||
);
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ function ViewportOrientationMarkers({
|
||||
const [rotation, setRotation] = useState(0);
|
||||
const [flipHorizontal, setFlipHorizontal] = useState(false);
|
||||
const [flipVertical, setFlipVertical] = useState(false);
|
||||
const { CornerstoneViewportService } = servicesManager.services;
|
||||
const { cornerstoneViewportService } = servicesManager.services;
|
||||
|
||||
useEffect(() => {
|
||||
const cameraModifiedListener = (
|
||||
@@ -114,7 +114,7 @@ function ViewportOrientationMarkers({
|
||||
flipHorizontal
|
||||
);
|
||||
|
||||
const ohifViewport = CornerstoneViewportService.getViewportInfoByIndex(
|
||||
const ohifViewport = cornerstoneViewportService.getViewportInfoByIndex(
|
||||
viewportIndex
|
||||
);
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ function CornerstoneViewportOverlay({
|
||||
servicesManager,
|
||||
}) {
|
||||
const {
|
||||
CornerstoneViewportService,
|
||||
cornerstoneViewportService,
|
||||
toolbarService,
|
||||
} = servicesManager.services;
|
||||
const [voi, setVOI] = useState({ windowCenter: null, windowWidth: null });
|
||||
@@ -86,7 +86,7 @@ function CornerstoneViewportOverlay({
|
||||
previousCamera.parallelScale !== camera.parallelScale ||
|
||||
previousCamera.scale !== camera.scale
|
||||
) {
|
||||
const viewport = CornerstoneViewportService.getCornerstoneViewportByIndex(
|
||||
const viewport = cornerstoneViewportService.getCornerstoneViewportByIndex(
|
||||
viewportIndex
|
||||
);
|
||||
|
||||
@@ -169,7 +169,7 @@ function CornerstoneViewportOverlay({
|
||||
viewportData,
|
||||
imageIndex,
|
||||
viewportIndex,
|
||||
CornerstoneViewportService
|
||||
cornerstoneViewportService
|
||||
);
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ function CornerstoneViewportOverlay({
|
||||
return null;
|
||||
}
|
||||
|
||||
const ohifViewport = CornerstoneViewportService.getViewportInfoByIndex(
|
||||
const ohifViewport = cornerstoneViewportService.getViewportInfoByIndex(
|
||||
viewportIndex
|
||||
);
|
||||
|
||||
@@ -241,7 +241,7 @@ function _getInstanceNumberFromVolume(
|
||||
viewportData,
|
||||
imageIndex,
|
||||
viewportIndex,
|
||||
CornerstoneViewportService
|
||||
cornerstoneViewportService
|
||||
) {
|
||||
const volumes = viewportData.volumes;
|
||||
|
||||
@@ -253,7 +253,7 @@ function _getInstanceNumberFromVolume(
|
||||
const volume = volumes[0];
|
||||
const { direction, imageIds } = volume;
|
||||
|
||||
const cornerstoneViewport = CornerstoneViewportService.getCornerstoneViewportByIndex(
|
||||
const cornerstoneViewport = cornerstoneViewportService.getCornerstoneViewportByIndex(
|
||||
viewportIndex
|
||||
);
|
||||
|
||||
@@ -288,7 +288,7 @@ CornerstoneViewportOverlay.propTypes = {
|
||||
viewportData: PropTypes.object,
|
||||
imageIndex: PropTypes.number,
|
||||
viewportIndex: PropTypes.number,
|
||||
servicesManager: ServicesManager,
|
||||
servicesManager: PropTypes.instanceOf(ServicesManager),
|
||||
};
|
||||
|
||||
export default CornerstoneViewportOverlay;
|
||||
@@ -21,18 +21,18 @@ import toggleStackImageSync from './utils/stackSync/toggleStackImageSync';
|
||||
|
||||
const commandsModule = ({ servicesManager }) => {
|
||||
const {
|
||||
ViewportGridService,
|
||||
ToolGroupService,
|
||||
viewportGridService,
|
||||
toolGroupService,
|
||||
cineService,
|
||||
toolbarService,
|
||||
UIDialogService,
|
||||
CornerstoneViewportService,
|
||||
HangingProtocolService,
|
||||
UINotificationService,
|
||||
uiDialogService,
|
||||
cornerstoneViewportService,
|
||||
hangingProtocolService,
|
||||
uiNotificationService,
|
||||
} = (servicesManager as ServicesManager).services;
|
||||
|
||||
function _getActiveViewportEnabledElement() {
|
||||
const { activeViewportIndex } = ViewportGridService.getState();
|
||||
const { activeViewportIndex } = viewportGridService.getState();
|
||||
const { element } = OHIFgetEnabledElement(activeViewportIndex) || {};
|
||||
const enabledElement = getEnabledElement(element);
|
||||
return enabledElement;
|
||||
@@ -68,7 +68,7 @@ const commandsModule = ({ servicesManager }) => {
|
||||
toolGroupIdToUse = toolGroup.id;
|
||||
}
|
||||
|
||||
const toolGroup = ToolGroupService.getToolGroup(toolGroupIdToUse);
|
||||
const toolGroup = toolGroupService.getToolGroup(toolGroupIdToUse);
|
||||
return toolGroup;
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ const commandsModule = ({ servicesManager }) => {
|
||||
return _getActiveViewportEnabledElement();
|
||||
},
|
||||
setViewportActive: ({ viewportId }) => {
|
||||
const viewportInfo = CornerstoneViewportService.getViewportInfo(
|
||||
const viewportInfo = cornerstoneViewportService.getViewportInfo(
|
||||
viewportId
|
||||
);
|
||||
if (!viewportInfo) {
|
||||
@@ -86,13 +86,13 @@ const commandsModule = ({ servicesManager }) => {
|
||||
}
|
||||
|
||||
const viewportIndex = viewportInfo.getViewportIndex();
|
||||
ViewportGridService.setActiveViewportIndex(viewportIndex);
|
||||
viewportGridService.setActiveViewportIndex(viewportIndex);
|
||||
},
|
||||
arrowTextCallback: ({ callback, data }) => {
|
||||
callInputDialog(UIDialogService, data, callback);
|
||||
callInputDialog(uiDialogService, data, callback);
|
||||
},
|
||||
toggleCine: () => {
|
||||
const { viewports } = ViewportGridService.getState();
|
||||
const { viewports } = viewportGridService.getState();
|
||||
const { isCineEnabled } = cineService.getState();
|
||||
cineService.setIsCineEnabled(!isCineEnabled);
|
||||
toolbarService.setButton('Cine', { props: { isActive: !isCineEnabled } });
|
||||
@@ -106,7 +106,7 @@ const commandsModule = ({ servicesManager }) => {
|
||||
const windowCenterNum = Number(level);
|
||||
|
||||
const { viewportId } = _getActiveViewportEnabledElement();
|
||||
const viewportToolGroupId = ToolGroupService.getToolGroupForViewport(
|
||||
const viewportToolGroupId = toolGroupService.getToolGroupForViewport(
|
||||
viewportId
|
||||
);
|
||||
|
||||
@@ -115,7 +115,7 @@ const commandsModule = ({ servicesManager }) => {
|
||||
}
|
||||
|
||||
// get actor from the viewport
|
||||
const renderingEngine = CornerstoneViewportService.getRenderingEngine();
|
||||
const renderingEngine = cornerstoneViewportService.getRenderingEngine();
|
||||
const viewport = renderingEngine.getViewport(viewportId);
|
||||
|
||||
const { lower, upper } = csUtils.windowLevel.toLowHighRange(
|
||||
@@ -136,7 +136,7 @@ const commandsModule = ({ servicesManager }) => {
|
||||
const activeViewportToolGroup = _getToolGroup(null);
|
||||
|
||||
if (!activeViewportToolGroup._toolInstances.Crosshairs) {
|
||||
UINotificationService.show({
|
||||
uiNotificationService.show({
|
||||
title: 'Crosshairs',
|
||||
message:
|
||||
'You need to be in a MPR view to use Crosshairs. Click on MPR button in the toolbar to activate it.',
|
||||
@@ -148,7 +148,7 @@ const commandsModule = ({ servicesManager }) => {
|
||||
}
|
||||
}
|
||||
|
||||
const { viewports } = ViewportGridService.getState() || {
|
||||
const { viewports } = viewportGridService.getState() || {
|
||||
viewports: [],
|
||||
};
|
||||
|
||||
@@ -195,7 +195,7 @@ const commandsModule = ({ servicesManager }) => {
|
||||
});
|
||||
},
|
||||
showDownloadViewportModal: () => {
|
||||
const { activeViewportIndex } = ViewportGridService.getState();
|
||||
const { activeViewportIndex } = viewportGridService.getState();
|
||||
const { UIModalService } = servicesManager.services;
|
||||
|
||||
if (UIModalService) {
|
||||
@@ -205,7 +205,7 @@ const commandsModule = ({ servicesManager }) => {
|
||||
contentProps: {
|
||||
activeViewportIndex,
|
||||
onClose: UIModalService.hide,
|
||||
CornerstoneViewportService,
|
||||
cornerstoneViewportService,
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -378,7 +378,7 @@ const commandsModule = ({ servicesManager }) => {
|
||||
colormap,
|
||||
immediate = false,
|
||||
}) => {
|
||||
const viewport = CornerstoneViewportService.getCornerstoneViewportByIndex(
|
||||
const viewport = cornerstoneViewportService.getCornerstoneViewportByIndex(
|
||||
viewportIndex
|
||||
);
|
||||
|
||||
@@ -397,18 +397,18 @@ const commandsModule = ({ servicesManager }) => {
|
||||
}
|
||||
},
|
||||
incrementActiveViewport: () => {
|
||||
const { activeViewportIndex, viewports } = ViewportGridService.getState();
|
||||
const { activeViewportIndex, viewports } = viewportGridService.getState();
|
||||
const nextViewportIndex = (activeViewportIndex + 1) % viewports.length;
|
||||
ViewportGridService.setActiveViewportIndex(nextViewportIndex);
|
||||
viewportGridService.setActiveViewportIndex(nextViewportIndex);
|
||||
},
|
||||
decrementActiveViewport: () => {
|
||||
const { activeViewportIndex, viewports } = ViewportGridService.getState();
|
||||
const { activeViewportIndex, viewports } = viewportGridService.getState();
|
||||
const nextViewportIndex =
|
||||
(activeViewportIndex - 1 + viewports.length) % viewports.length;
|
||||
ViewportGridService.setActiveViewportIndex(nextViewportIndex);
|
||||
viewportGridService.setActiveViewportIndex(nextViewportIndex);
|
||||
},
|
||||
setHangingProtocol: ({ protocolId }) => {
|
||||
HangingProtocolService.setProtocol(protocolId);
|
||||
hangingProtocolService.setProtocol(protocolId);
|
||||
},
|
||||
toggleMPR: ({ toggledState }) => {
|
||||
toggleMPRHangingProtocol({
|
||||
@@ -425,13 +425,13 @@ const commandsModule = ({ servicesManager }) => {
|
||||
});
|
||||
},
|
||||
toggleReferenceLines: ({ toggledState }) => {
|
||||
const { activeViewportIndex } = ViewportGridService.getState();
|
||||
const viewportInfo = CornerstoneViewportService.getViewportInfoByIndex(
|
||||
const { activeViewportIndex } = viewportGridService.getState();
|
||||
const viewportInfo = cornerstoneViewportService.getViewportInfoByIndex(
|
||||
activeViewportIndex
|
||||
);
|
||||
|
||||
const viewportId = viewportInfo.getViewportId();
|
||||
const toolGroup = ToolGroupService.getToolGroupForViewport(viewportId);
|
||||
const toolGroup = toolGroupService.getToolGroupForViewport(viewportId);
|
||||
|
||||
if (!toggledState) {
|
||||
toolGroup.setToolDisabled(ReferenceLinesTool.toolName);
|
||||
|
||||
@@ -7,6 +7,8 @@ import {
|
||||
imageRetrievalPoolManager,
|
||||
} from '@cornerstonejs/core';
|
||||
import { Enums as cs3DToolsEnums } from '@cornerstonejs/tools';
|
||||
import { Types } from '@ohif/core';
|
||||
|
||||
import init from './init';
|
||||
import commandsModule from './commandsModule';
|
||||
import getHangingProtocolModule from './getHangingProtocolModule';
|
||||
@@ -41,7 +43,7 @@ const OHIFCornerstoneViewport = props => {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
const cornerstoneExtension = {
|
||||
const cornerstoneExtension: Types.Extensions.Extension = {
|
||||
/**
|
||||
* Only required property. Should be a unique value across all extensions.
|
||||
*/
|
||||
@@ -71,13 +73,18 @@ const cornerstoneExtension = {
|
||||
configuration = {},
|
||||
appConfig,
|
||||
}) {
|
||||
// Todo: we should be consistent with how services get registered. Use REGISTRATION static method for all
|
||||
servicesManager.registerService(
|
||||
CornerstoneViewportService(servicesManager)
|
||||
);
|
||||
servicesManager.registerService(ToolGroupService(servicesManager));
|
||||
servicesManager.registerService(
|
||||
ToolGroupService.REGISTRATION(servicesManager)
|
||||
);
|
||||
servicesManager.registerService(SyncGroupService(servicesManager));
|
||||
servicesManager.registerService(SegmentationService(servicesManager));
|
||||
servicesManager.registerService(CornerstoneCacheService(servicesManager));
|
||||
servicesManager.registerService(
|
||||
CornerstoneCacheService.REGISTRATION(servicesManager)
|
||||
);
|
||||
|
||||
await init({ servicesManager, commandsManager, configuration, appConfig });
|
||||
},
|
||||
|
||||
@@ -63,22 +63,22 @@ export default async function init({
|
||||
|
||||
const {
|
||||
UserAuthenticationService,
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
UIDialogService,
|
||||
measurementService,
|
||||
displaySetService,
|
||||
uiDialogService,
|
||||
UIModalService,
|
||||
UINotificationService,
|
||||
uiNotificationService,
|
||||
cineService,
|
||||
CornerstoneViewportService,
|
||||
HangingProtocolService,
|
||||
ToolGroupService,
|
||||
ViewportGridService,
|
||||
cornerstoneViewportService,
|
||||
hangingProtocolService,
|
||||
toolGroupService,
|
||||
viewportGridService,
|
||||
} = servicesManager.services;
|
||||
|
||||
window.services = servicesManager.services;
|
||||
|
||||
if (!window.crossOriginIsolated) {
|
||||
UINotificationService.show({
|
||||
uiNotificationService.show({
|
||||
title: 'Cross Origin Isolation',
|
||||
message:
|
||||
'Cross Origin Isolation is not enabled, volume rendering will not work (e.g., MPR)',
|
||||
@@ -87,7 +87,7 @@ export default async function init({
|
||||
}
|
||||
|
||||
if (cornerstone.getShouldUseCPURendering()) {
|
||||
_showCPURenderingModal(UIModalService, HangingProtocolService);
|
||||
_showCPURenderingModal(UIModalService, hangingProtocolService);
|
||||
}
|
||||
|
||||
const labelmapRepresentation =
|
||||
@@ -110,15 +110,15 @@ export default async function init({
|
||||
cornerstoneStreamingImageVolumeLoader
|
||||
);
|
||||
|
||||
HangingProtocolService.registerImageLoadStrategy(
|
||||
hangingProtocolService.registerImageLoadStrategy(
|
||||
'interleaveCenter',
|
||||
interleaveCenterLoader
|
||||
);
|
||||
HangingProtocolService.registerImageLoadStrategy(
|
||||
hangingProtocolService.registerImageLoadStrategy(
|
||||
'interleaveTopToBottom',
|
||||
interleaveTopToBottom
|
||||
);
|
||||
HangingProtocolService.registerImageLoadStrategy('nth', nthLoader);
|
||||
hangingProtocolService.registerImageLoadStrategy('nth', nthLoader);
|
||||
|
||||
metaData.addProvider(metadataProvider.get.bind(metadataProvider), 9999);
|
||||
|
||||
@@ -132,9 +132,9 @@ export default async function init({
|
||||
|
||||
/* Measurement Service */
|
||||
const measurementServiceSource = connectToolsToMeasurementService(
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService
|
||||
measurementService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService
|
||||
);
|
||||
|
||||
initCineService(cineService);
|
||||
@@ -145,7 +145,7 @@ export default async function init({
|
||||
});
|
||||
|
||||
const onRightClick = event => {
|
||||
if (!UIDialogService) {
|
||||
if (!uiDialogService) {
|
||||
console.warn('Unable to show dialog; no UI Dialog Service available.');
|
||||
return;
|
||||
}
|
||||
@@ -172,15 +172,15 @@ export default async function init({
|
||||
|
||||
CONTEXT_MENU_OPEN = true;
|
||||
|
||||
UIDialogService.dismiss({ id: 'context-menu' });
|
||||
UIDialogService.create({
|
||||
uiDialogService.dismiss({ id: 'context-menu' });
|
||||
uiDialogService.create({
|
||||
id: 'context-menu',
|
||||
isDraggable: false,
|
||||
preservePosition: false,
|
||||
defaultPosition: _getDefaultPosition(event.detail),
|
||||
content: ContextMenuMeasurements,
|
||||
onClickOutside: () => {
|
||||
UIDialogService.dismiss({ id: 'context-menu' });
|
||||
uiDialogService.dismiss({ id: 'context-menu' });
|
||||
CONTEXT_MENU_OPEN = false;
|
||||
},
|
||||
contentProps: {
|
||||
@@ -200,15 +200,15 @@ export default async function init({
|
||||
},
|
||||
onClose: () => {
|
||||
CONTEXT_MENU_OPEN = false;
|
||||
UIDialogService.dismiss({ id: 'context-menu' });
|
||||
uiDialogService.dismiss({ id: 'context-menu' });
|
||||
},
|
||||
onSetLabel: item => {
|
||||
const { annotationUID } = item.value;
|
||||
|
||||
const measurement = MeasurementService.getMeasurement(annotationUID);
|
||||
const measurement = measurementService.getMeasurement(annotationUID);
|
||||
|
||||
callInputDialog(
|
||||
UIDialogService,
|
||||
uiDialogService,
|
||||
measurement,
|
||||
(label, actionId) => {
|
||||
if (actionId === 'cancel') {
|
||||
@@ -219,7 +219,7 @@ export default async function init({
|
||||
label,
|
||||
});
|
||||
|
||||
MeasurementService.update(
|
||||
measurementService.update(
|
||||
updatedMeasurement.uid,
|
||||
updatedMeasurement,
|
||||
true
|
||||
@@ -235,27 +235,27 @@ export default async function init({
|
||||
};
|
||||
|
||||
const resetContextMenu = () => {
|
||||
if (!UIDialogService) {
|
||||
if (!uiDialogService) {
|
||||
console.warn('Unable to show dialog; no UI Dialog Service available.');
|
||||
return;
|
||||
}
|
||||
|
||||
CONTEXT_MENU_OPEN = false;
|
||||
|
||||
UIDialogService.dismiss({ id: 'context-menu' });
|
||||
uiDialogService.dismiss({ id: 'context-menu' });
|
||||
};
|
||||
|
||||
// When a custom image load is performed, update the relevant viewports
|
||||
HangingProtocolService.subscribe(
|
||||
HangingProtocolService.EVENTS.CUSTOM_IMAGE_LOAD_PERFORMED,
|
||||
hangingProtocolService.subscribe(
|
||||
hangingProtocolService.EVENTS.CUSTOM_IMAGE_LOAD_PERFORMED,
|
||||
volumeInputArrayMap => {
|
||||
for (const entry of volumeInputArrayMap.entries()) {
|
||||
const [viewportId, volumeInputArray] = entry;
|
||||
const viewport = CornerstoneViewportService.getCornerstoneViewport(
|
||||
const viewport = cornerstoneViewportService.getCornerstoneViewport(
|
||||
viewportId
|
||||
);
|
||||
|
||||
CornerstoneViewportService.setVolumesForViewport(
|
||||
cornerstoneViewportService.setVolumesForViewport(
|
||||
viewport,
|
||||
volumeInputArray
|
||||
);
|
||||
@@ -356,11 +356,11 @@ export default async function init({
|
||||
elementDisabledHandler.bind(null)
|
||||
);
|
||||
|
||||
ViewportGridService.subscribe(
|
||||
ViewportGridService.EVENTS.ACTIVE_VIEWPORT_INDEX_CHANGED,
|
||||
viewportGridService.subscribe(
|
||||
viewportGridService.EVENTS.ACTIVE_VIEWPORT_INDEX_CHANGED,
|
||||
({ viewportIndex }) => {
|
||||
const viewportId = `viewport-${viewportIndex}`;
|
||||
const toolGroup = ToolGroupService.getToolGroupForViewport(viewportId);
|
||||
const toolGroup = toolGroupService.getToolGroupForViewport(viewportId);
|
||||
|
||||
if (!toolGroup || !toolGroup._toolInstances?.['ReferenceLines']) {
|
||||
return;
|
||||
@@ -403,7 +403,7 @@ function CPUModal() {
|
||||
);
|
||||
}
|
||||
|
||||
function _showCPURenderingModal(UIModalService, HangingProtocolService) {
|
||||
function _showCPURenderingModal(UIModalService, hangingProtocolService) {
|
||||
const callback = progress => {
|
||||
if (progress === 100) {
|
||||
UIModalService.show({
|
||||
@@ -415,8 +415,8 @@ function _showCPURenderingModal(UIModalService, HangingProtocolService) {
|
||||
}
|
||||
};
|
||||
|
||||
const { unsubscribe } = HangingProtocolService.subscribe(
|
||||
HangingProtocolService.EVENTS.HANGING_PROTOCOL_APPLIED_FOR_VIEWPORT,
|
||||
const { unsubscribe } = hangingProtocolService.subscribe(
|
||||
hangingProtocolService.EVENTS.HANGING_PROTOCOL_APPLIED_FOR_VIEWPORT,
|
||||
({ progress }) => {
|
||||
const done = callback(progress);
|
||||
|
||||
|
||||
@@ -13,9 +13,9 @@ const CORNERSTONE_3D_TOOLS_SOURCE_NAME = 'Cornerstone3DTools';
|
||||
const CORNERSTONE_3D_TOOLS_SOURCE_VERSION = '0.1';
|
||||
|
||||
const initMeasurementService = (
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService
|
||||
measurementService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService
|
||||
) => {
|
||||
/* Initialization */
|
||||
const {
|
||||
@@ -24,17 +24,17 @@ const initMeasurementService = (
|
||||
EllipticalROI,
|
||||
ArrowAnnotate,
|
||||
} = measurementServiceMappingsFactory(
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService
|
||||
measurementService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService
|
||||
);
|
||||
const csTools3DVer1MeasurementSource = MeasurementService.createSource(
|
||||
const csTools3DVer1MeasurementSource = measurementService.createSource(
|
||||
CORNERSTONE_3D_TOOLS_SOURCE_NAME,
|
||||
CORNERSTONE_3D_TOOLS_SOURCE_VERSION
|
||||
);
|
||||
|
||||
/* Mappings */
|
||||
MeasurementService.addMapping(
|
||||
measurementService.addMapping(
|
||||
csTools3DVer1MeasurementSource,
|
||||
'Length',
|
||||
Length.matchingCriteria,
|
||||
@@ -42,7 +42,7 @@ const initMeasurementService = (
|
||||
Length.toMeasurement
|
||||
);
|
||||
|
||||
MeasurementService.addMapping(
|
||||
measurementService.addMapping(
|
||||
csTools3DVer1MeasurementSource,
|
||||
'Bidirectional',
|
||||
Bidirectional.matchingCriteria,
|
||||
@@ -50,7 +50,7 @@ const initMeasurementService = (
|
||||
Bidirectional.toMeasurement
|
||||
);
|
||||
|
||||
MeasurementService.addMapping(
|
||||
measurementService.addMapping(
|
||||
csTools3DVer1MeasurementSource,
|
||||
'EllipticalROI',
|
||||
EllipticalROI.matchingCriteria,
|
||||
@@ -58,7 +58,7 @@ const initMeasurementService = (
|
||||
EllipticalROI.toMeasurement
|
||||
);
|
||||
|
||||
MeasurementService.addMapping(
|
||||
measurementService.addMapping(
|
||||
csTools3DVer1MeasurementSource,
|
||||
'ArrowAnnotate',
|
||||
ArrowAnnotate.matchingCriteria,
|
||||
@@ -70,18 +70,18 @@ const initMeasurementService = (
|
||||
};
|
||||
|
||||
const connectToolsToMeasurementService = (
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService
|
||||
measurementService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService
|
||||
) => {
|
||||
const csTools3DVer1MeasurementSource = initMeasurementService(
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService
|
||||
measurementService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService
|
||||
);
|
||||
connectMeasurementServiceToTools(
|
||||
MeasurementService,
|
||||
CornerstoneViewportService,
|
||||
measurementService,
|
||||
cornerstoneViewportService,
|
||||
csTools3DVer1MeasurementSource
|
||||
);
|
||||
const { annotationToMeasurement, remove } = csTools3DVer1MeasurementSource;
|
||||
@@ -113,7 +113,7 @@ const connectToolsToMeasurementService = (
|
||||
} = annotationModifiedEventDetail;
|
||||
|
||||
// If the measurement hasn't been added, don't modify it
|
||||
const measurement = MeasurementService.getMeasurement(annotationUID);
|
||||
const measurement = measurementService.getMeasurement(annotationUID);
|
||||
|
||||
if (!measurement) {
|
||||
return;
|
||||
@@ -138,13 +138,13 @@ const connectToolsToMeasurementService = (
|
||||
|
||||
if (removedSelectedAnnotationUIDs) {
|
||||
removedSelectedAnnotationUIDs.forEach(annotationUID =>
|
||||
MeasurementService.setMeasurementSelected(annotationUID, false)
|
||||
measurementService.setMeasurementSelected(annotationUID, false)
|
||||
);
|
||||
}
|
||||
|
||||
if (addedSelectedAnnotationUIDs) {
|
||||
addedSelectedAnnotationUIDs.forEach(annotationUID =>
|
||||
MeasurementService.setMeasurementSelected(annotationUID, true)
|
||||
measurementService.setMeasurementSelected(annotationUID, true)
|
||||
);
|
||||
}
|
||||
} catch (error) {
|
||||
@@ -166,7 +166,7 @@ const connectToolsToMeasurementService = (
|
||||
annotation: { annotationUID },
|
||||
} = annotationRemovedEventDetail;
|
||||
|
||||
const measurement = MeasurementService.getMeasurement(annotationUID);
|
||||
const measurement = measurementService.getMeasurement(annotationUID);
|
||||
|
||||
if (measurement) {
|
||||
console.log('~~ removeEvt', csToolsEvent);
|
||||
@@ -198,8 +198,8 @@ const connectToolsToMeasurementService = (
|
||||
};
|
||||
|
||||
const connectMeasurementServiceToTools = (
|
||||
MeasurementService,
|
||||
CornerstoneViewportService,
|
||||
measurementService,
|
||||
cornerstoneViewportService,
|
||||
measurementSource
|
||||
) => {
|
||||
const {
|
||||
@@ -207,14 +207,14 @@ const connectMeasurementServiceToTools = (
|
||||
MEASUREMENTS_CLEARED,
|
||||
MEASUREMENT_UPDATED,
|
||||
RAW_MEASUREMENT_ADDED,
|
||||
} = MeasurementService.EVENTS;
|
||||
} = measurementService.EVENTS;
|
||||
|
||||
const csTools3DVer1MeasurementSource = MeasurementService.getSource(
|
||||
const csTools3DVer1MeasurementSource = measurementService.getSource(
|
||||
CORNERSTONE_3D_TOOLS_SOURCE_NAME,
|
||||
CORNERSTONE_3D_TOOLS_SOURCE_VERSION
|
||||
);
|
||||
|
||||
MeasurementService.subscribe(MEASUREMENTS_CLEARED, ({ measurements }) => {
|
||||
measurementService.subscribe(MEASUREMENTS_CLEARED, ({ measurements }) => {
|
||||
if (!Object.keys(measurements).length) {
|
||||
return;
|
||||
}
|
||||
@@ -229,7 +229,7 @@ const connectMeasurementServiceToTools = (
|
||||
}
|
||||
});
|
||||
|
||||
MeasurementService.subscribe(
|
||||
measurementService.subscribe(
|
||||
MEASUREMENT_UPDATED,
|
||||
({ source, measurement, notYetUpdatedAtSource }) => {
|
||||
if (source.name !== CORNERSTONE_3D_TOOLS_SOURCE_NAME) {
|
||||
@@ -263,7 +263,7 @@ const connectMeasurementServiceToTools = (
|
||||
}
|
||||
);
|
||||
|
||||
MeasurementService.subscribe(
|
||||
measurementService.subscribe(
|
||||
RAW_MEASUREMENT_ADDED,
|
||||
({ source, measurement, data, dataSource }) => {
|
||||
if (source.name !== CORNERSTONE_3D_TOOLS_SOURCE_NAME) {
|
||||
@@ -316,14 +316,14 @@ const connectMeasurementServiceToTools = (
|
||||
}
|
||||
);
|
||||
|
||||
MeasurementService.subscribe(
|
||||
measurementService.subscribe(
|
||||
MEASUREMENT_REMOVED,
|
||||
({ source, measurement: removedMeasurementId }) => {
|
||||
if (source?.name && source.name !== CORNERSTONE_3D_TOOLS_SOURCE_NAME) {
|
||||
return;
|
||||
}
|
||||
removeAnnotation(removedMeasurementId);
|
||||
const renderingEngine = CornerstoneViewportService.getRenderingEngine();
|
||||
const renderingEngine = cornerstoneViewportService.getRenderingEngine();
|
||||
// Note: We could do a better job by triggering the render on the
|
||||
// viewport itself, but the removeAnnotation does not include that info...
|
||||
renderingEngine.render();
|
||||
|
||||
+16
-6
@@ -1,5 +1,5 @@
|
||||
import { ServicesManager } from '@ohif/core';
|
||||
import { cache as cs3DCache, Enums, volumeLoader } from '@cornerstonejs/core';
|
||||
import { utils } from '@ohif/core';
|
||||
|
||||
import getCornerstoneViewportType from '../../utils/getCornerstoneViewportType';
|
||||
import {
|
||||
@@ -10,6 +10,16 @@ import {
|
||||
const VOLUME_LOADER_SCHEME = 'cornerstoneStreamingImageVolume';
|
||||
|
||||
class CornerstoneCacheService {
|
||||
static REGISTRATION = (serviceManager: ServicesManager) => {
|
||||
return {
|
||||
name: 'cornerstoneCacheService',
|
||||
altName: 'CornerstoneCacheService',
|
||||
create: ({ configuration = {} }) => {
|
||||
return new CornerstoneCacheService(serviceManager);
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
stackImageIds: Map<string, string[]> = new Map();
|
||||
volumeImageIds: Map<string, string[]> = new Map();
|
||||
|
||||
@@ -69,7 +79,7 @@ class CornerstoneCacheService {
|
||||
viewportData: VolumeViewportData,
|
||||
invalidatedDisplaySetInstanceUID: string,
|
||||
dataSource,
|
||||
DisplaySetService
|
||||
displaySetService
|
||||
) {
|
||||
if (viewportData.viewportType === Enums.ViewportType.STACK) {
|
||||
throw new Error('Invalidation of StackViewport is not supported yet');
|
||||
@@ -85,7 +95,7 @@ class CornerstoneCacheService {
|
||||
}
|
||||
|
||||
const displaySets = viewportData.data.map(({ displaySetInstanceUID }) =>
|
||||
DisplaySetService.getDisplaySetByUID(displaySetInstanceUID)
|
||||
displaySetService.getDisplaySetByUID(displaySetInstanceUID)
|
||||
);
|
||||
|
||||
const newViewportData = await this._getVolumeViewportData(
|
||||
@@ -203,7 +213,7 @@ class CornerstoneCacheService {
|
||||
}
|
||||
|
||||
private _shouldRenderSegmentation(displaySets) {
|
||||
const { SegmentationService } = this.servicesManager.services;
|
||||
const { segmentationService } = this.servicesManager.services;
|
||||
|
||||
const viewportDisplaySetInstanceUIDs = displaySets.map(
|
||||
({ displaySetInstanceUID }) => displaySetInstanceUID
|
||||
@@ -211,12 +221,12 @@ class CornerstoneCacheService {
|
||||
|
||||
// check inside segmentations if any of them are referencing the displaySets
|
||||
// that are about to be displayed
|
||||
const segmentations = SegmentationService.getSegmentations();
|
||||
const segmentations = segmentationService.getSegmentations();
|
||||
|
||||
for (const segmentation of segmentations) {
|
||||
const segDisplaySetInstanceUID = segmentation.displaySetInstanceUID;
|
||||
|
||||
const shouldDisplaySeg = SegmentationService.shouldRenderSegmentation(
|
||||
const shouldDisplaySeg = segmentationService.shouldRenderSegmentation(
|
||||
viewportDisplaySetInstanceUIDs,
|
||||
segDisplaySetInstanceUID
|
||||
);
|
||||
|
||||
@@ -1,10 +1,3 @@
|
||||
import CornerstoneCacheService from './CornerstoneCacheService';
|
||||
|
||||
export default function ExtendedCornerstoneCacheService(serviceManager) {
|
||||
return {
|
||||
name: 'CornerstoneCacheService',
|
||||
create: ({ configuration = {} }) => {
|
||||
return new CornerstoneCacheService(serviceManager);
|
||||
},
|
||||
};
|
||||
}
|
||||
export default CornerstoneCacheService;
|
||||
@@ -738,7 +738,7 @@ class SegmentationService {
|
||||
highlightHideOthers = false,
|
||||
highlightFunctionType: 'ease-in-out' // todo: make animation functions configurable from outside
|
||||
): void {
|
||||
const { ToolGroupService } = this.servicesManager.services;
|
||||
const { toolGroupService } = this.servicesManager.services;
|
||||
const center = this._getSegmentCenter(segmentationId, segmentIndex);
|
||||
|
||||
const { world } = center;
|
||||
@@ -751,10 +751,10 @@ class SegmentationService {
|
||||
|
||||
if (Array.isArray(toolGroupId)) {
|
||||
toolGroupId.forEach(toolGroup => {
|
||||
toolGroups.push(ToolGroupService.getToolGroup(toolGroup));
|
||||
toolGroups.push(toolGroupService.getToolGroup(toolGroup));
|
||||
});
|
||||
} else {
|
||||
toolGroups.push(ToolGroupService.getToolGroup(toolGroupId));
|
||||
toolGroups.push(toolGroupService.getToolGroup(toolGroupId));
|
||||
}
|
||||
|
||||
toolGroups.forEach(toolGroup => {
|
||||
@@ -1240,9 +1240,9 @@ class SegmentationService {
|
||||
}
|
||||
|
||||
// if (brushSize !== undefined) {
|
||||
// const { ToolGroupService } = this.servicesManager.services;
|
||||
// const { toolGroupService } = this.servicesManager.services;
|
||||
|
||||
// const toolGroupIds = ToolGroupService.getToolGroupIds();
|
||||
// const toolGroupIds = toolGroupService.getToolGroupIds();
|
||||
|
||||
// toolGroupIds.forEach(toolGroupId => {
|
||||
// cstUtils.segmentation.setBrushSizeForToolGroup(toolGroupId, brushSize);
|
||||
@@ -1250,9 +1250,9 @@ class SegmentationService {
|
||||
// }
|
||||
|
||||
// if (brushThresholdGate !== undefined) {
|
||||
// const { ToolGroupService } = this.servicesManager.services;
|
||||
// const { toolGroupService } = this.servicesManager.services;
|
||||
|
||||
// const toolGroupIds = ToolGroupService.getFirstToolGroupIds();
|
||||
// const toolGroupIds = toolGroupService.getFirstToolGroupIds();
|
||||
|
||||
// toolGroupIds.forEach(toolGroupId => {
|
||||
// cstUtils.segmentation.setBrushThresholdForToolGroup(
|
||||
@@ -1324,11 +1324,11 @@ class SegmentationService {
|
||||
return false;
|
||||
}
|
||||
|
||||
const { DisplaySetService } = this.servicesManager.services;
|
||||
const { displaySetService } = this.servicesManager.services;
|
||||
|
||||
let shouldDisplaySeg = false;
|
||||
|
||||
const segDisplaySet = DisplaySetService.getDisplaySetByUID(
|
||||
const segDisplaySet = displaySetService.getDisplaySetByUID(
|
||||
segDisplaySetInstanceUID
|
||||
);
|
||||
|
||||
@@ -1337,7 +1337,7 @@ class SegmentationService {
|
||||
viewportDisplaySetInstanceUIDs.forEach(displaySetInstanceUID => {
|
||||
// check if the displaySet is sharing the same frameOfReferenceUID
|
||||
// with the new segmentation
|
||||
const displaySet = DisplaySetService.getDisplaySetByUID(
|
||||
const displaySet = displaySetService.getDisplaySetByUID(
|
||||
displaySetInstanceUID
|
||||
);
|
||||
|
||||
@@ -1710,7 +1710,7 @@ class SegmentationService {
|
||||
}
|
||||
|
||||
private _setLabelmapConfigValue = (property, value) => {
|
||||
const { CornerstoneViewportService } = this.servicesManager.services;
|
||||
const { cornerstoneViewportService } = this.servicesManager.services;
|
||||
|
||||
const config = cstSegmentation.config.getGlobalConfig();
|
||||
|
||||
@@ -1719,8 +1719,8 @@ class SegmentationService {
|
||||
// Todo: add non global (representation specific config as well)
|
||||
cstSegmentation.config.setGlobalConfig(config);
|
||||
|
||||
const renderingEngine = CornerstoneViewportService.getRenderingEngine();
|
||||
const viewportIds = CornerstoneViewportService.getViewportIds();
|
||||
const renderingEngine = cornerstoneViewportService.getRenderingEngine();
|
||||
const viewportIds = cornerstoneViewportService.getViewportIds();
|
||||
|
||||
renderingEngine.renderViewports(viewportIds);
|
||||
};
|
||||
@@ -1953,8 +1953,8 @@ class SegmentationService {
|
||||
}
|
||||
|
||||
private _getFirstToolGroupId = () => {
|
||||
const { ToolGroupService } = this.servicesManager.services;
|
||||
const toolGroupIds = ToolGroupService.getToolGroupIds();
|
||||
const { toolGroupService } = this.servicesManager.services;
|
||||
const toolGroupIds = toolGroupService.getToolGroupIds();
|
||||
|
||||
return toolGroupIds[0];
|
||||
};
|
||||
|
||||
@@ -2,7 +2,8 @@ import SegmentationService from './SegmentationService';
|
||||
|
||||
export default function ExtendedSegmentationService(servicesManager) {
|
||||
return {
|
||||
name: 'SegmentationService',
|
||||
name: 'segmentationService',
|
||||
altName: 'SegmentationService',
|
||||
create: ({ configuration = {} }) => {
|
||||
return new SegmentationService({ servicesManager });
|
||||
},
|
||||
|
||||
@@ -2,7 +2,8 @@ import SyncGroupService from './SyncGroupService';
|
||||
|
||||
export default function ExtendedSyncGroupService(serviceManager) {
|
||||
return {
|
||||
name: 'SyncGroupService',
|
||||
altName: 'SyncGroupService',
|
||||
name: 'syncGroupService',
|
||||
create: ({ configuration = {} }) => {
|
||||
return new SyncGroupService(serviceManager);
|
||||
},
|
||||
|
||||
@@ -20,6 +20,16 @@ type Tools = {
|
||||
};
|
||||
|
||||
export default class ToolGroupService {
|
||||
public static REGISTRATION = serviceManager => {
|
||||
return {
|
||||
name: 'toolGroupService',
|
||||
altName: 'ToolGroupService',
|
||||
create: ({ configuration = {} }) => {
|
||||
return new ToolGroupService(serviceManager);
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
serviceManager: any;
|
||||
private toolGroupIds: Set<string> = new Set();
|
||||
/**
|
||||
@@ -29,8 +39,8 @@ export default class ToolGroupService {
|
||||
EVENTS: { [key: string]: string };
|
||||
|
||||
constructor(serviceManager) {
|
||||
const { CornerstoneViewportService } = serviceManager.services;
|
||||
this.CornerstoneViewportService = CornerstoneViewportService;
|
||||
const { cornerstoneViewportService } = serviceManager.services;
|
||||
this.cornerstoneViewportService = cornerstoneViewportService;
|
||||
this.listeners = {};
|
||||
this.EVENTS = EVENTS;
|
||||
Object.assign(this, pubSubServiceInterface);
|
||||
@@ -51,7 +61,7 @@ export default class ToolGroupService {
|
||||
}
|
||||
|
||||
public getToolGroupForViewport(viewportId: string): Types.IToolGroup | void {
|
||||
const renderingEngine = this.CornerstoneViewportService.getRenderingEngine();
|
||||
const renderingEngine = this.cornerstoneViewportService.getRenderingEngine();
|
||||
return ToolGroupManager.getToolGroupForViewport(
|
||||
viewportId,
|
||||
renderingEngine.id
|
||||
|
||||
@@ -1,10 +1,3 @@
|
||||
import ToolGroupService from './ToolGroupService';
|
||||
|
||||
export default function ExtendedToolGroupService(serviceManager) {
|
||||
return {
|
||||
name: 'ToolGroupService',
|
||||
create: ({ configuration = {} }) => {
|
||||
return new ToolGroupService(serviceManager);
|
||||
},
|
||||
};
|
||||
}
|
||||
export default ToolGroupService;
|
||||
@@ -412,7 +412,7 @@ class CornerstoneViewportService implements IViewportService {
|
||||
// (This call may or may not create sub-requests for series metadata)
|
||||
const volumeInputArray = [];
|
||||
const displaySetOptionsArray = viewportInfo.getDisplaySetOptions();
|
||||
const { HangingProtocolService } = this.servicesManager.services;
|
||||
const { hangingProtocolService } = this.servicesManager.services;
|
||||
|
||||
const volumeToLoad = [];
|
||||
const displaySetInstanceUIDs = [];
|
||||
@@ -449,11 +449,11 @@ class CornerstoneViewportService implements IViewportService {
|
||||
this.viewportsDisplaySets.set(viewport.id, displaySetInstanceUIDs);
|
||||
|
||||
if (
|
||||
HangingProtocolService.hasCustomImageLoadStrategy() &&
|
||||
!HangingProtocolService.customImageLoadPerformed
|
||||
hangingProtocolService.hasCustomImageLoadStrategy() &&
|
||||
!hangingProtocolService.customImageLoadPerformed
|
||||
) {
|
||||
// delegate the volume loading to the hanging protocol service if it has a custom image load strategy
|
||||
return HangingProtocolService.runImageLoadStrategy({
|
||||
return hangingProtocolService.runImageLoadStrategy({
|
||||
viewportId: viewport.id,
|
||||
volumeInputArray,
|
||||
});
|
||||
@@ -469,9 +469,9 @@ class CornerstoneViewportService implements IViewportService {
|
||||
|
||||
public async setVolumesForViewport(viewport, volumeInputArray) {
|
||||
const {
|
||||
DisplaySetService,
|
||||
SegmentationService,
|
||||
ToolGroupService,
|
||||
displaySetService,
|
||||
segmentationService,
|
||||
toolGroupService,
|
||||
} = this.servicesManager.services;
|
||||
|
||||
await viewport.setVolumes(volumeInputArray);
|
||||
@@ -480,7 +480,7 @@ class CornerstoneViewportService implements IViewportService {
|
||||
const displaySetInstanceUIDs = this.viewportsDisplaySets.get(viewport.id);
|
||||
|
||||
const segDisplaySet = displaySetInstanceUIDs
|
||||
.map(DisplaySetService.getDisplaySetByUID)
|
||||
.map(displaySetService.getDisplaySetByUID)
|
||||
.find(displaySet => displaySet && displaySet.Modality === 'SEG');
|
||||
|
||||
if (segDisplaySet) {
|
||||
@@ -488,18 +488,18 @@ class CornerstoneViewportService implements IViewportService {
|
||||
const referencedVolume = cache.getVolume(referencedVolumeId);
|
||||
const segmentationId = segDisplaySet.displaySetInstanceUID;
|
||||
|
||||
const toolGroup = ToolGroupService.getToolGroupForViewport(viewport.id);
|
||||
const toolGroup = toolGroupService.getToolGroupForViewport(viewport.id);
|
||||
|
||||
if (referencedVolume) {
|
||||
SegmentationService.addSegmentationRepresentationToToolGroup(
|
||||
segmentationService.addSegmentationRepresentationToToolGroup(
|
||||
toolGroup.id,
|
||||
segmentationId
|
||||
);
|
||||
}
|
||||
} else {
|
||||
const toolGroup = ToolGroupService.getToolGroupForViewport(viewport.id);
|
||||
const toolGroup = toolGroupService.getToolGroupForViewport(viewport.id);
|
||||
const toolGroupSegmentationRepresentations =
|
||||
SegmentationService.getSegmentationRepresentationsForToolGroup(
|
||||
segmentationService.getSegmentationRepresentationsForToolGroup(
|
||||
toolGroup.id
|
||||
) || [];
|
||||
|
||||
@@ -508,7 +508,7 @@ class CornerstoneViewportService implements IViewportService {
|
||||
// and we can look into hydrated segmentations to check if any of them are
|
||||
// associated with the primary displaySet
|
||||
// get segmentations only returns the hydrated segmentations
|
||||
const segmentations = SegmentationService.getSegmentations();
|
||||
const segmentations = segmentationService.getSegmentations();
|
||||
|
||||
for (const segmentation of segmentations) {
|
||||
// if there is already a segmentation representation for this segmentation
|
||||
@@ -543,11 +543,11 @@ class CornerstoneViewportService implements IViewportService {
|
||||
}
|
||||
|
||||
if (shouldDisplaySeg) {
|
||||
const toolGroup = ToolGroupService.getToolGroupForViewport(
|
||||
const toolGroup = toolGroupService.getToolGroupForViewport(
|
||||
viewport.id
|
||||
);
|
||||
|
||||
SegmentationService.addSegmentationRepresentationToToolGroup(
|
||||
segmentationService.addSegmentationRepresentationToToolGroup(
|
||||
toolGroup.id,
|
||||
segmentation.id
|
||||
);
|
||||
@@ -557,7 +557,7 @@ class CornerstoneViewportService implements IViewportService {
|
||||
|
||||
const viewportInfo = this.getViewportInfo(viewport.id);
|
||||
|
||||
const toolGroup = ToolGroupService.getToolGroupForViewport(viewport.id);
|
||||
const toolGroup = toolGroupService.getToolGroupForViewport(viewport.id);
|
||||
csToolsUtils.segmentation.triggerSegmentationRender(toolGroup.id);
|
||||
|
||||
const initialImageOptions = viewportInfo.getInitialImageOptions();
|
||||
@@ -733,8 +733,8 @@ class CornerstoneViewportService implements IViewportService {
|
||||
}
|
||||
|
||||
_getFrameOfReferenceUID(displaySetInstanceUID) {
|
||||
const { DisplaySetService } = this.servicesManager.services;
|
||||
const displaySet = DisplaySetService.getDisplaySetByUID(
|
||||
const { displaySetService } = this.servicesManager.services;
|
||||
const displaySet = displaySetService.getDisplaySetByUID(
|
||||
displaySetInstanceUID
|
||||
);
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
*/
|
||||
export interface IViewportService {
|
||||
servicesManager: unknown;
|
||||
HangingProtocolService: unknown;
|
||||
hangingProtocolService: unknown;
|
||||
renderingEngine: unknown;
|
||||
viewportGridResizeObserver: unknown;
|
||||
viewportsInfo: unknown;
|
||||
|
||||
@@ -7,7 +7,7 @@ import { SyncGroup } from '../SyncGroupService/SyncGroupService';
|
||||
import {
|
||||
StackViewportData,
|
||||
VolumeViewportData,
|
||||
} from './CornerstoneCacheService';
|
||||
} from '../../types/CornerstoneCacheService';
|
||||
|
||||
export type InitialImageOptions = {
|
||||
index?: number;
|
||||
|
||||
@@ -21,7 +21,7 @@ const VIEWPORT_ID = 'cornerstone-viewport-download-form';
|
||||
const CornerstoneViewportDownloadForm = ({
|
||||
onClose,
|
||||
activeViewportIndex,
|
||||
CornerstoneViewportService,
|
||||
cornerstoneViewportService,
|
||||
}) => {
|
||||
const enabledElement = OHIFgetEnabledElement(activeViewportIndex);
|
||||
const activeViewportElement = enabledElement?.element;
|
||||
@@ -154,7 +154,7 @@ const CornerstoneViewportDownloadForm = ({
|
||||
|
||||
const { viewport } = activeViewportEnabledElement;
|
||||
|
||||
const renderingEngine = CornerstoneViewportService.getRenderingEngine();
|
||||
const renderingEngine = cornerstoneViewportService.getRenderingEngine();
|
||||
const downloadViewport = renderingEngine.getViewport(VIEWPORT_ID);
|
||||
|
||||
if (downloadViewport instanceof StackViewport) {
|
||||
|
||||
@@ -11,7 +11,7 @@ import { Input, Dialog } from '@ohif/ui';
|
||||
* @param {*} isArrowAnnotateInputDialog
|
||||
*/
|
||||
function callInputDialog(
|
||||
UIDialogService,
|
||||
uiDialogService,
|
||||
data,
|
||||
callback,
|
||||
isArrowAnnotateInputDialog = true
|
||||
@@ -32,11 +32,11 @@ function callInputDialog(
|
||||
callback('', action.id);
|
||||
break;
|
||||
}
|
||||
UIDialogService.dismiss({ id: dialogId });
|
||||
uiDialogService.dismiss({ id: dialogId });
|
||||
};
|
||||
|
||||
if (UIDialogService) {
|
||||
UIDialogService.create({
|
||||
if (uiDialogService) {
|
||||
uiDialogService.create({
|
||||
id: dialogId,
|
||||
centralize: true,
|
||||
isDraggable: false,
|
||||
@@ -46,7 +46,7 @@ function callInputDialog(
|
||||
title: 'Enter your annotation',
|
||||
value: { label },
|
||||
noCloseButton: true,
|
||||
onClose: () => UIDialogService.dismiss({ id: dialogId }),
|
||||
onClose: () => uiDialogService.dismiss({ id: dialogId }),
|
||||
actions: [
|
||||
{ id: 'cancel', text: 'Cancel', type: 'primary' },
|
||||
{ id: 'save', text: 'Save', type: 'secondary' },
|
||||
|
||||
@@ -12,8 +12,8 @@ const Length = {
|
||||
*/
|
||||
toMeasurement: (
|
||||
csToolsEventDetail,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService,
|
||||
getValueTypeFromToolType
|
||||
) => {
|
||||
const { annotation, viewportId } = csToolsEventDetail;
|
||||
@@ -37,26 +37,26 @@ const Length = {
|
||||
StudyInstanceUID,
|
||||
} = getSOPInstanceAttributes(
|
||||
referencedImageId,
|
||||
CornerstoneViewportService,
|
||||
cornerstoneViewportService,
|
||||
viewportId
|
||||
);
|
||||
|
||||
let displaySet;
|
||||
|
||||
if (SOPInstanceUID) {
|
||||
displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(
|
||||
displaySet = displaySetService.getDisplaySetForSOPInstanceUID(
|
||||
SOPInstanceUID,
|
||||
SeriesInstanceUID
|
||||
);
|
||||
} else {
|
||||
displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
|
||||
displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
|
||||
}
|
||||
|
||||
const { points } = data.handles;
|
||||
|
||||
const mappedAnnotations = getMappedAnnotations(
|
||||
annotation,
|
||||
DisplaySetService
|
||||
displaySetService
|
||||
);
|
||||
|
||||
const displayText = getDisplayText(mappedAnnotations, displaySet);
|
||||
@@ -84,7 +84,7 @@ const Length = {
|
||||
},
|
||||
};
|
||||
|
||||
function getMappedAnnotations(annotation, DisplaySetService) {
|
||||
function getMappedAnnotations(annotation, displaySetService) {
|
||||
const { metadata, data } = annotation;
|
||||
const { text } = data;
|
||||
const { referencedImageId } = metadata;
|
||||
@@ -97,7 +97,7 @@ function getMappedAnnotations(annotation, DisplaySetService) {
|
||||
frameNumber,
|
||||
} = getSOPInstanceAttributes(referencedImageId);
|
||||
|
||||
const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(
|
||||
const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(
|
||||
SOPInstanceUID,
|
||||
SeriesInstanceUID,
|
||||
frameNumber
|
||||
|
||||
@@ -8,8 +8,8 @@ const Bidirectional = {
|
||||
toAnnotation: measurement => {},
|
||||
toMeasurement: (
|
||||
csToolsEventDetail,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService,
|
||||
getValueTypeFromToolType
|
||||
) => {
|
||||
const { annotation, viewportId } = csToolsEventDetail;
|
||||
@@ -33,26 +33,26 @@ const Bidirectional = {
|
||||
StudyInstanceUID,
|
||||
} = getSOPInstanceAttributes(
|
||||
referencedImageId,
|
||||
CornerstoneViewportService,
|
||||
cornerstoneViewportService,
|
||||
viewportId
|
||||
);
|
||||
|
||||
let displaySet;
|
||||
|
||||
if (SOPInstanceUID) {
|
||||
displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(
|
||||
displaySet = displaySetService.getDisplaySetForSOPInstanceUID(
|
||||
SOPInstanceUID,
|
||||
SeriesInstanceUID
|
||||
);
|
||||
} else {
|
||||
displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
|
||||
displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
|
||||
}
|
||||
|
||||
const { points } = data.handles;
|
||||
|
||||
const mappedAnnotations = getMappedAnnotations(
|
||||
annotation,
|
||||
DisplaySetService
|
||||
displaySetService
|
||||
);
|
||||
|
||||
const displayText = getDisplayText(mappedAnnotations, displaySet);
|
||||
@@ -79,7 +79,7 @@ const Bidirectional = {
|
||||
},
|
||||
};
|
||||
|
||||
function getMappedAnnotations(annotation, DisplaySetService) {
|
||||
function getMappedAnnotations(annotation, displaySetService) {
|
||||
const { metadata, data } = annotation;
|
||||
const { cachedStats } = data;
|
||||
const { referencedImageId, referencedSeriesInstanceUID } = metadata;
|
||||
@@ -105,7 +105,7 @@ function getMappedAnnotations(annotation, DisplaySetService) {
|
||||
frameNumber,
|
||||
} = getSOPInstanceAttributes(referencedImageId);
|
||||
|
||||
const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(
|
||||
const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(
|
||||
SOPInstanceUID,
|
||||
SeriesInstanceUID,
|
||||
frameNumber
|
||||
|
||||
@@ -7,8 +7,8 @@ const EllipticalROI = {
|
||||
toAnnotation: measurement => {},
|
||||
toMeasurement: (
|
||||
csToolsEventDetail,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService,
|
||||
getValueTypeFromToolType
|
||||
) => {
|
||||
const { annotation, viewportId } = csToolsEventDetail;
|
||||
@@ -32,26 +32,26 @@ const EllipticalROI = {
|
||||
StudyInstanceUID,
|
||||
} = getSOPInstanceAttributes(
|
||||
referencedImageId,
|
||||
CornerstoneViewportService,
|
||||
cornerstoneViewportService,
|
||||
viewportId
|
||||
);
|
||||
|
||||
let displaySet;
|
||||
|
||||
if (SOPInstanceUID) {
|
||||
displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(
|
||||
displaySet = displaySetService.getDisplaySetForSOPInstanceUID(
|
||||
SOPInstanceUID,
|
||||
SeriesInstanceUID
|
||||
);
|
||||
} else {
|
||||
displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
|
||||
displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
|
||||
}
|
||||
|
||||
const { points } = data.handles;
|
||||
|
||||
const mappedAnnotations = getMappedAnnotations(
|
||||
annotation,
|
||||
DisplaySetService
|
||||
displaySetService
|
||||
);
|
||||
|
||||
const displayText = getDisplayText(mappedAnnotations, displaySet);
|
||||
@@ -78,7 +78,7 @@ const EllipticalROI = {
|
||||
},
|
||||
};
|
||||
|
||||
function getMappedAnnotations(annotation, DisplaySetService) {
|
||||
function getMappedAnnotations(annotation, displaySetService) {
|
||||
const { metadata, data } = annotation;
|
||||
const { cachedStats } = data;
|
||||
const { referencedImageId } = metadata;
|
||||
@@ -105,7 +105,7 @@ function getMappedAnnotations(annotation, DisplaySetService) {
|
||||
frameNumber,
|
||||
} = getSOPInstanceAttributes(referencedImageId);
|
||||
|
||||
const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(
|
||||
const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(
|
||||
SOPInstanceUID,
|
||||
SeriesInstanceUID,
|
||||
frameNumber
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import SUPPORTED_TOOLS from './constants/supportedTools';
|
||||
import getSOPInstanceAttributes from './utils/getSOPInstanceAttributes';
|
||||
import { DisplaySetService, utils } from '@ohif/core';
|
||||
import { displaySetService, utils } from '@ohif/core';
|
||||
|
||||
const Length = {
|
||||
toAnnotation: measurement => {},
|
||||
@@ -13,8 +13,8 @@ const Length = {
|
||||
*/
|
||||
toMeasurement: (
|
||||
csToolsEventDetail,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService,
|
||||
getValueTypeFromToolType
|
||||
) => {
|
||||
const { annotation, viewportId } = csToolsEventDetail;
|
||||
@@ -38,26 +38,26 @@ const Length = {
|
||||
StudyInstanceUID,
|
||||
} = getSOPInstanceAttributes(
|
||||
referencedImageId,
|
||||
CornerstoneViewportService,
|
||||
cornerstoneViewportService,
|
||||
viewportId
|
||||
);
|
||||
|
||||
let displaySet;
|
||||
|
||||
if (SOPInstanceUID) {
|
||||
displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(
|
||||
displaySet = displaySetService.getDisplaySetForSOPInstanceUID(
|
||||
SOPInstanceUID,
|
||||
SeriesInstanceUID
|
||||
);
|
||||
} else {
|
||||
displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
|
||||
displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
|
||||
}
|
||||
|
||||
const { points } = data.handles;
|
||||
|
||||
const mappedAnnotations = getMappedAnnotations(
|
||||
annotation,
|
||||
DisplaySetService
|
||||
displaySetService
|
||||
);
|
||||
|
||||
const displayText = getDisplayText(mappedAnnotations, displaySet);
|
||||
@@ -84,7 +84,7 @@ const Length = {
|
||||
},
|
||||
};
|
||||
|
||||
function getMappedAnnotations(annotation, DisplaySetService) {
|
||||
function getMappedAnnotations(annotation, displaySetService) {
|
||||
const { metadata, data } = annotation;
|
||||
const { cachedStats } = data;
|
||||
const { referencedImageId } = metadata;
|
||||
@@ -110,7 +110,7 @@ function getMappedAnnotations(annotation, DisplaySetService) {
|
||||
frameNumber,
|
||||
} = getSOPInstanceAttributes(referencedImageId);
|
||||
|
||||
const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(
|
||||
const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(
|
||||
SOPInstanceUID,
|
||||
SeriesInstanceUID,
|
||||
frameNumber
|
||||
|
||||
+17
-17
@@ -4,9 +4,9 @@ import EllipticalROI from './EllipticalROI';
|
||||
import ArrowAnnotate from './ArrowAnnotate';
|
||||
|
||||
const measurementServiceMappingsFactory = (
|
||||
MeasurementService,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService
|
||||
measurementService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService
|
||||
) => {
|
||||
/**
|
||||
* Maps measurement service format object to cornerstone annotation object.
|
||||
@@ -23,7 +23,7 @@ const measurementServiceMappingsFactory = (
|
||||
RECTANGLE,
|
||||
BIDIRECTIONAL,
|
||||
POINT,
|
||||
} = MeasurementService.VALUE_TYPES;
|
||||
} = measurementService.VALUE_TYPES;
|
||||
|
||||
// TODO -> I get why this was attempted, but its not nearly flexible enough.
|
||||
// A single measurement may have an ellipse + a bidirectional measurement, for instances.
|
||||
@@ -45,13 +45,13 @@ const measurementServiceMappingsFactory = (
|
||||
toMeasurement: csToolsAnnotation =>
|
||||
Length.toMeasurement(
|
||||
csToolsAnnotation,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService,
|
||||
_getValueTypeFromToolType
|
||||
),
|
||||
matchingCriteria: [
|
||||
{
|
||||
valueType: MeasurementService.VALUE_TYPES.POLYLINE,
|
||||
valueType: measurementService.VALUE_TYPES.POLYLINE,
|
||||
points: 2,
|
||||
},
|
||||
],
|
||||
@@ -61,19 +61,19 @@ const measurementServiceMappingsFactory = (
|
||||
toMeasurement: csToolsAnnotation =>
|
||||
Bidirectional.toMeasurement(
|
||||
csToolsAnnotation,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService,
|
||||
_getValueTypeFromToolType
|
||||
),
|
||||
matchingCriteria: [
|
||||
// TODO -> We should eventually do something like shortAxis + longAxis,
|
||||
// But its still a little unclear how these automatic interpretations will work.
|
||||
{
|
||||
valueType: MeasurementService.VALUE_TYPES.POLYLINE,
|
||||
valueType: measurementService.VALUE_TYPES.POLYLINE,
|
||||
points: 2,
|
||||
},
|
||||
{
|
||||
valueType: MeasurementService.VALUE_TYPES.POLYLINE,
|
||||
valueType: measurementService.VALUE_TYPES.POLYLINE,
|
||||
points: 2,
|
||||
},
|
||||
],
|
||||
@@ -83,13 +83,13 @@ const measurementServiceMappingsFactory = (
|
||||
toMeasurement: csToolsAnnotation =>
|
||||
EllipticalROI.toMeasurement(
|
||||
csToolsAnnotation,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService,
|
||||
_getValueTypeFromToolType
|
||||
),
|
||||
matchingCriteria: [
|
||||
{
|
||||
valueType: MeasurementService.VALUE_TYPES.ELLIPSE,
|
||||
valueType: measurementService.VALUE_TYPES.ELLIPSE,
|
||||
},
|
||||
],
|
||||
},
|
||||
@@ -98,13 +98,13 @@ const measurementServiceMappingsFactory = (
|
||||
toMeasurement: csToolsAnnotation =>
|
||||
ArrowAnnotate.toMeasurement(
|
||||
csToolsAnnotation,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService,
|
||||
_getValueTypeFromToolType
|
||||
),
|
||||
matchingCriteria: [
|
||||
{
|
||||
valueType: MeasurementService.VALUE_TYPES.POINT,
|
||||
valueType: measurementService.VALUE_TYPES.POINT,
|
||||
points: 1,
|
||||
},
|
||||
],
|
||||
|
||||
+4
-4
@@ -13,7 +13,7 @@ import * as cornerstone from '@cornerstonejs/core';
|
||||
*/
|
||||
export default function getSOPInstanceAttributes(
|
||||
imageId,
|
||||
CornerstoneViewportService,
|
||||
cornerstoneViewportService,
|
||||
viewportId
|
||||
) {
|
||||
if (imageId) {
|
||||
@@ -23,7 +23,7 @@ export default function getSOPInstanceAttributes(
|
||||
// Todo: implement for volume viewports and use the referencedSeriesInstanceUID
|
||||
|
||||
// if no imageId => measurement is not in the acquisition plane
|
||||
// const metadata = getUIDFromScene(CornerstoneViewportService, viewportId);
|
||||
// const metadata = getUIDFromScene(cornerstoneViewportService, viewportId);
|
||||
|
||||
// if (!metadata) {
|
||||
// throw new Error('Not viewport with imageId found');
|
||||
@@ -49,8 +49,8 @@ function _getUIDFromImageID(imageId) {
|
||||
};
|
||||
}
|
||||
|
||||
// function getUIDFromScene(CornerstoneViewportService) {
|
||||
// const renderingEngine = CornerstoneViewportService.getRenderingEngine();
|
||||
// function getUIDFromScene(cornerstoneViewportService) {
|
||||
// const renderingEngine = cornerstoneViewportService.getRenderingEngine();
|
||||
// const scene = renderingEngine.getScene(sceneUID);
|
||||
|
||||
// const viewportUIDs = scene.getViewportIds();
|
||||
|
||||
@@ -39,9 +39,9 @@ export default function toggleMPRHangingProtocol({
|
||||
getToolGroup,
|
||||
}) {
|
||||
const {
|
||||
UINotificationService,
|
||||
HangingProtocolService,
|
||||
ViewportGridService,
|
||||
uiNotificationService,
|
||||
hangingProtocolService,
|
||||
viewportGridService,
|
||||
toolbarService,
|
||||
} = servicesManager.services;
|
||||
|
||||
@@ -54,12 +54,12 @@ export default function toggleMPRHangingProtocol({
|
||||
viewports,
|
||||
numRows,
|
||||
numCols,
|
||||
} = ViewportGridService.getState();
|
||||
} = viewportGridService.getState();
|
||||
const viewportDisplaySetInstanceUIDs =
|
||||
viewports[activeViewportIndex].displaySetInstanceUIDs;
|
||||
|
||||
const errorCallback = error => {
|
||||
UINotificationService.show({
|
||||
uiNotificationService.show({
|
||||
title: 'Multiplanar reconstruction (MPR) ',
|
||||
message:
|
||||
'Cannot create MPR for this DisplaySet since it is not reconstructable.',
|
||||
@@ -69,7 +69,7 @@ export default function toggleMPRHangingProtocol({
|
||||
};
|
||||
|
||||
// What is the current active protocol and stage number to restore later
|
||||
const { protocol, stage } = HangingProtocolService.getActiveProtocol();
|
||||
const { protocol, stage } = hangingProtocolService.getActiveProtocol();
|
||||
|
||||
if (toggledState) {
|
||||
resetCachedState();
|
||||
@@ -102,7 +102,7 @@ export default function toggleMPRHangingProtocol({
|
||||
getToolGroup
|
||||
);
|
||||
|
||||
HangingProtocolService.setProtocol(
|
||||
hangingProtocolService.setProtocol(
|
||||
MPR_TOOLGROUP_ID,
|
||||
matchDetails,
|
||||
errorCallback
|
||||
@@ -111,7 +111,7 @@ export default function toggleMPRHangingProtocol({
|
||||
}
|
||||
|
||||
const restoreErrorCallback = error => {
|
||||
UINotificationService.show({
|
||||
uiNotificationService.show({
|
||||
title: 'Multiplanar reconstruction (MPR) ',
|
||||
message:
|
||||
'Something went wrong while trying to restore the previous layout.',
|
||||
@@ -130,7 +130,7 @@ export default function toggleMPRHangingProtocol({
|
||||
// cached protocol and stage. However, for the default protocol, we need
|
||||
// to also apply the layout type and properties.
|
||||
if (cachedState.protocol.id !== 'default') {
|
||||
HangingProtocolService.setProtocol(
|
||||
hangingProtocolService.setProtocol(
|
||||
cachedState.protocol.id,
|
||||
viewportMatchDetails,
|
||||
restoreErrorCallback
|
||||
@@ -139,14 +139,14 @@ export default function toggleMPRHangingProtocol({
|
||||
return;
|
||||
}
|
||||
|
||||
HangingProtocolService.setProtocol(
|
||||
hangingProtocolService.setProtocol(
|
||||
'default',
|
||||
viewportMatchDetails,
|
||||
restoreErrorCallback
|
||||
);
|
||||
|
||||
if (numRows !== properties.rows || numCols !== properties.columns) {
|
||||
ViewportGridService.setLayout({
|
||||
viewportGridService.setLayout({
|
||||
numRows: properties.rows,
|
||||
numCols: properties.columns,
|
||||
layoutType,
|
||||
@@ -169,7 +169,7 @@ export default function toggleMPRHangingProtocol({
|
||||
viewportOptions,
|
||||
displaySetsInfo,
|
||||
} = viewportMatchDetailsForViewport;
|
||||
ViewportGridService.setDisplaySetsForViewport({
|
||||
viewportGridService.setDisplaySetsForViewport({
|
||||
viewportIndex,
|
||||
displaySetInstanceUIDs: displaySetsInfo.map(
|
||||
displaySetInfo => displaySetInfo.displaySetInstanceUID
|
||||
@@ -177,7 +177,7 @@ export default function toggleMPRHangingProtocol({
|
||||
viewportOptions,
|
||||
});
|
||||
} else {
|
||||
ViewportGridService.setDisplaySetsForViewport({
|
||||
viewportGridService.setDisplaySetsForViewport({
|
||||
viewportIndex,
|
||||
displaySetInstanceUIDs: [],
|
||||
viewportOptions: {},
|
||||
@@ -217,15 +217,15 @@ function _disableCrosshairs(toolGroupIds, getToolGroup) {
|
||||
|
||||
function _getViewportsInfo({ protocol, stage, viewports, servicesManager }) {
|
||||
// here we need to use the viewports and try to map it into the
|
||||
// viewportMatchDetails and displaySetMatch that HangingProtocolService
|
||||
// viewportMatchDetails and displaySetMatch that hangingProtocolService
|
||||
// expects
|
||||
const {
|
||||
ViewportGridService,
|
||||
HangingProtocolService,
|
||||
ToolGroupService,
|
||||
viewportGridService,
|
||||
hangingProtocolService,
|
||||
toolGroupService,
|
||||
} = servicesManager.services;
|
||||
|
||||
const { numRows, numCols } = ViewportGridService.getState();
|
||||
const { numRows, numCols } = viewportGridService.getState();
|
||||
|
||||
let viewportMatchDetails = new Map();
|
||||
|
||||
@@ -261,7 +261,7 @@ function _getViewportsInfo({ protocol, stage, viewports, servicesManager }) {
|
||||
}
|
||||
});
|
||||
} else {
|
||||
({ viewportMatchDetails } = HangingProtocolService.getMatchDetails());
|
||||
({ viewportMatchDetails } = hangingProtocolService.getMatchDetails());
|
||||
}
|
||||
|
||||
// get the toolGroup state for viewports
|
||||
@@ -277,7 +277,7 @@ function _getViewportsInfo({ protocol, stage, viewports, servicesManager }) {
|
||||
|
||||
if (viewportIds.length) {
|
||||
toolOptions = viewportIds.map(viewportId => {
|
||||
const toolGroup = ToolGroupService.getToolGroupForViewport(viewportId);
|
||||
const toolGroup = toolGroupService.getToolGroupForViewport(viewportId);
|
||||
return {
|
||||
toolGroupId: toolGroup.id,
|
||||
toolOptions: toolGroup.toolOptions,
|
||||
|
||||
@@ -12,10 +12,10 @@ export default function toggleStackImageSync({
|
||||
getEnabledElement,
|
||||
}) {
|
||||
const {
|
||||
SyncGroupService,
|
||||
ViewportGridService,
|
||||
DisplaySetService,
|
||||
CornerstoneViewportService,
|
||||
syncGroupService,
|
||||
viewportGridService,
|
||||
displaySetService,
|
||||
cornerstoneViewportService,
|
||||
} = servicesManager.services;
|
||||
|
||||
if (!toggledState) {
|
||||
@@ -23,7 +23,7 @@ export default function toggleStackImageSync({
|
||||
const { viewports, synchronizerId } = syncGroupInfo;
|
||||
|
||||
viewports.forEach(({ viewportId, renderingEngineId }) => {
|
||||
SyncGroupService.removeViewportFromSyncGroup(
|
||||
syncGroupService.removeViewportFromSyncGroup(
|
||||
viewportId,
|
||||
renderingEngineId,
|
||||
synchronizerId
|
||||
@@ -37,7 +37,7 @@ export default function toggleStackImageSync({
|
||||
STACK_IMAGE_SYNC_GROUPS_INFO = [];
|
||||
|
||||
// create synchronization groups and add viewports
|
||||
let { viewports } = ViewportGridService.getState();
|
||||
let { viewports } = viewportGridService.getState();
|
||||
|
||||
// filter empty viewports
|
||||
viewports = viewports.filter(
|
||||
@@ -50,7 +50,7 @@ export default function toggleStackImageSync({
|
||||
const { displaySetInstanceUIDs } = viewport;
|
||||
|
||||
for (const displaySetInstanceUID of displaySetInstanceUIDs) {
|
||||
const displaySet = DisplaySetService.getDisplaySetByUID(
|
||||
const displaySet = displaySetService.getDisplaySetByUID(
|
||||
displaySetInstanceUID
|
||||
);
|
||||
|
||||
@@ -70,7 +70,7 @@ export default function toggleStackImageSync({
|
||||
return acc;
|
||||
}
|
||||
|
||||
const { element } = CornerstoneViewportService.getViewportInfo(viewportId);
|
||||
const { element } = cornerstoneViewportService.getViewportInfo(viewportId);
|
||||
const { viewport: csViewport, renderingEngineId } = getEnabledElement(
|
||||
element
|
||||
);
|
||||
@@ -99,7 +99,7 @@ export default function toggleStackImageSync({
|
||||
calculateViewportRegistrations(viewports);
|
||||
|
||||
viewports.forEach(({ viewportId, renderingEngineId }) => {
|
||||
SyncGroupService.addViewportToSyncGroup(viewportId, renderingEngineId, {
|
||||
syncGroupService.addViewportToSyncGroup(viewportId, renderingEngineId, {
|
||||
type: 'stackimage',
|
||||
id: synchronizerId,
|
||||
source: true,
|
||||
|
||||
Reference in new issue
Block a user