fix(invert): allows volume viewport to invert and sync their invert status (#3514)
This commit is contained in:
parent
f3a4f861b4
commit
4a184d0be7
@ -44,9 +44,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13",
|
"@babel/runtime": "^7.20.13",
|
||||||
"@cornerstonejs/adapters": "^1.2.8",
|
"@cornerstonejs/adapters": "^1.4.1",
|
||||||
"@cornerstonejs/core": "^1.2.8",
|
"@cornerstonejs/core": "^1.4.1",
|
||||||
"@cornerstonejs/tools": "^1.2.8",
|
"@cornerstonejs/tools": "^1.4.1",
|
||||||
"classnames": "^2.3.2"
|
"classnames": "^2.3.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,7 +36,7 @@
|
|||||||
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
|
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
|
||||||
"@cornerstonejs/codec-openjpeg": "^1.2.2",
|
"@cornerstonejs/codec-openjpeg": "^1.2.2",
|
||||||
"@cornerstonejs/codec-openjph": "^2.4.2",
|
"@cornerstonejs/codec-openjph": "^2.4.2",
|
||||||
"@cornerstonejs/dicom-image-loader": "^1.2.8",
|
"@cornerstonejs/dicom-image-loader": "^1.4.1",
|
||||||
"@ohif/core": "3.7.0-beta.26",
|
"@ohif/core": "3.7.0-beta.26",
|
||||||
"@ohif/ui": "3.7.0-beta.26",
|
"@ohif/ui": "3.7.0-beta.26",
|
||||||
"dcmjs": "^0.29.6",
|
"dcmjs": "^0.29.6",
|
||||||
@ -52,10 +52,10 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.20.13",
|
"@babel/runtime": "^7.20.13",
|
||||||
"@cornerstonejs/adapters": "^1.2.8",
|
"@cornerstonejs/adapters": "^1.4.1",
|
||||||
"@cornerstonejs/core": "^1.2.8",
|
"@cornerstonejs/core": "^1.4.1",
|
||||||
"@cornerstonejs/streaming-image-volume-loader": "^1.2.8",
|
"@cornerstonejs/streaming-image-volume-loader": "^1.4.1",
|
||||||
"@cornerstonejs/tools": "^1.2.8",
|
"@cornerstonejs/tools": "^1.4.1",
|
||||||
"@kitware/vtk.js": "27.3.1",
|
"@kitware/vtk.js": "27.3.1",
|
||||||
"html2canvas": "^1.4.1",
|
"html2canvas": "^1.4.1",
|
||||||
"lodash.debounce": "4.0.8",
|
"lodash.debounce": "4.0.8",
|
||||||
|
|||||||
@ -457,11 +457,9 @@ function commandsModule({
|
|||||||
|
|
||||||
const { viewport } = enabledElement;
|
const { viewport } = enabledElement;
|
||||||
|
|
||||||
if (viewport instanceof StackViewport) {
|
|
||||||
const { invert } = viewport.getProperties();
|
const { invert } = viewport.getProperties();
|
||||||
viewport.setProperties({ invert: !invert });
|
viewport.setProperties({ invert: !invert });
|
||||||
viewport.render();
|
viewport.render();
|
||||||
}
|
|
||||||
},
|
},
|
||||||
resetViewport: () => {
|
resetViewport: () => {
|
||||||
const enabledElement = _getActiveViewportEnabledElement();
|
const enabledElement = _getActiveViewportEnabledElement();
|
||||||
|
|||||||
@ -26,6 +26,7 @@ import nthLoader from './utils/nthLoader';
|
|||||||
import interleaveTopToBottom from './utils/interleaveTopToBottom';
|
import interleaveTopToBottom from './utils/interleaveTopToBottom';
|
||||||
import initContextMenu from './initContextMenu';
|
import initContextMenu from './initContextMenu';
|
||||||
import initDoubleClick from './initDoubleClick';
|
import initDoubleClick from './initDoubleClick';
|
||||||
|
import { CornerstoneServices } from './types';
|
||||||
|
|
||||||
// TODO: Cypress tests are currently grabbing this from the window?
|
// TODO: Cypress tests are currently grabbing this from the window?
|
||||||
window.cornerstone = cornerstone;
|
window.cornerstone = cornerstone;
|
||||||
@ -69,10 +70,7 @@ export default async function init({
|
|||||||
|
|
||||||
const {
|
const {
|
||||||
userAuthenticationService,
|
userAuthenticationService,
|
||||||
measurementService,
|
|
||||||
customizationService,
|
customizationService,
|
||||||
displaySetService,
|
|
||||||
uiDialogService,
|
|
||||||
uiModalService,
|
uiModalService,
|
||||||
uiNotificationService,
|
uiNotificationService,
|
||||||
cineService,
|
cineService,
|
||||||
@ -81,7 +79,7 @@ export default async function init({
|
|||||||
toolGroupService,
|
toolGroupService,
|
||||||
viewportGridService,
|
viewportGridService,
|
||||||
stateSyncService,
|
stateSyncService,
|
||||||
} = servicesManager.services;
|
} = servicesManager.services as CornerstoneServices;
|
||||||
|
|
||||||
window.services = servicesManager.services;
|
window.services = servicesManager.services;
|
||||||
window.extensionManager = extensionManager;
|
window.extensionManager = extensionManager;
|
||||||
|
|||||||
@ -15,7 +15,7 @@ const EVENTS = {
|
|||||||
* sync group declared.
|
* sync group declared.
|
||||||
*/
|
*/
|
||||||
export type SyncCreator = (
|
export type SyncCreator = (
|
||||||
type: string,
|
id: string,
|
||||||
options?: Record<string, unknown>
|
options?: Record<string, unknown>
|
||||||
) => Synchronizer;
|
) => Synchronizer;
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ export default class SyncGroupService {
|
|||||||
* @param type is the type of the synchronizer to create
|
* @param type is the type of the synchronizer to create
|
||||||
* @param creator
|
* @param creator
|
||||||
*/
|
*/
|
||||||
public setSynchronizer(type: string, creator: SyncCreator): void {
|
public addSynchronizerType(type: string, creator: SyncCreator): void {
|
||||||
this.synchronizerCreators[type.toLowerCase()] = creator;
|
this.synchronizerCreators[type.toLowerCase()] = creator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
import { Types } from '@ohif/core';
|
import { Types } from '@ohif/core';
|
||||||
import ToolGroupService from './services/ToolGroupService';
|
import ToolGroupService from '../services/ToolGroupService';
|
||||||
import SyncGroupService from './services/SyncGroupService';
|
import SyncGroupService from '../services/SyncGroupService';
|
||||||
import SegmentationService from './services/SegmentationService';
|
import SegmentationService from '../services/SegmentationService';
|
||||||
import CornerstoneCacheService from './services/CornerstoneCacheService';
|
import CornerstoneCacheService from '../services/CornerstoneCacheService';
|
||||||
import CornerstoneViewportService from './services/ViewportService/CornerstoneViewportService';
|
import CornerstoneViewportService from '../services/ViewportService/CornerstoneViewportService';
|
||||||
|
|
||||||
interface CornerstoneServices extends Types.Services {
|
interface CornerstoneServices extends Types.Services {
|
||||||
cornerstoneViewportService: CornerstoneViewportService;
|
cornerstoneViewportService: CornerstoneViewportService;
|
||||||
|
|||||||
@ -30,8 +30,8 @@
|
|||||||
"start": "yarn run dev"
|
"start": "yarn run dev"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@cornerstonejs/core": "^1.2.8",
|
"@cornerstonejs/core": "^1.4.1",
|
||||||
"@cornerstonejs/tools": "^1.2.8",
|
"@cornerstonejs/tools": "^1.4.1",
|
||||||
"@ohif/core": "3.7.0-beta.26",
|
"@ohif/core": "3.7.0-beta.26",
|
||||||
"@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.26",
|
"@ohif/extension-cornerstone-dicom-sr": "3.7.0-beta.26",
|
||||||
"@ohif/ui": "3.7.0-beta.26",
|
"@ohif/ui": "3.7.0-beta.26",
|
||||||
|
|||||||
@ -149,7 +149,6 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"@cornerstonejs/core": "^1.2.8",
|
|
||||||
"**/@babel/runtime": "^7.20.13",
|
"**/@babel/runtime": "^7.20.13",
|
||||||
"commander": "8.3.0",
|
"commander": "8.3.0",
|
||||||
"nth-check": "^2.1.1",
|
"nth-check": "^2.1.1",
|
||||||
|
|||||||
@ -51,7 +51,7 @@
|
|||||||
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
|
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
|
||||||
"@cornerstonejs/codec-openjpeg": "^1.2.2",
|
"@cornerstonejs/codec-openjpeg": "^1.2.2",
|
||||||
"@cornerstonejs/codec-openjph": "^2.4.2",
|
"@cornerstonejs/codec-openjph": "^2.4.2",
|
||||||
"@cornerstonejs/dicom-image-loader": "^1.2.8",
|
"@cornerstonejs/dicom-image-loader": "^1.4.1",
|
||||||
"@ohif/core": "3.7.0-beta.26",
|
"@ohif/core": "3.7.0-beta.26",
|
||||||
"@ohif/extension-cornerstone": "3.7.0-beta.26",
|
"@ohif/extension-cornerstone": "3.7.0-beta.26",
|
||||||
"@ohif/extension-cornerstone-dicom-rt": "3.7.0-beta.26",
|
"@ohif/extension-cornerstone-dicom-rt": "3.7.0-beta.26",
|
||||||
|
|||||||
@ -35,7 +35,7 @@
|
|||||||
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
|
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
|
||||||
"@cornerstonejs/codec-openjpeg": "^1.2.2",
|
"@cornerstonejs/codec-openjpeg": "^1.2.2",
|
||||||
"@cornerstonejs/codec-openjph": "^2.4.2",
|
"@cornerstonejs/codec-openjph": "^2.4.2",
|
||||||
"@cornerstonejs/dicom-image-loader": "^1.2.8",
|
"@cornerstonejs/dicom-image-loader": "^1.4.1",
|
||||||
"@ohif/ui": "3.7.0-beta.26",
|
"@ohif/ui": "3.7.0-beta.26",
|
||||||
"cornerstone-math": "0.1.9",
|
"cornerstone-math": "0.1.9",
|
||||||
"dicom-parser": "^1.8.21"
|
"dicom-parser": "^1.8.21"
|
||||||
|
|||||||
@ -14,23 +14,23 @@ import {
|
|||||||
* The interface for the services object
|
* The interface for the services object
|
||||||
*/
|
*/
|
||||||
export default interface Services {
|
export default interface Services {
|
||||||
userAuthenticationService?: Record<string, unknown>;
|
|
||||||
hangingProtocolService?: HangingProtocolService;
|
hangingProtocolService?: HangingProtocolService;
|
||||||
customizationService?: CustomizationService;
|
customizationService?: CustomizationService;
|
||||||
measurementService?: MeasurementService;
|
measurementService?: MeasurementService;
|
||||||
displaySetService?: DisplaySetService;
|
displaySetService?: DisplaySetService;
|
||||||
cineService?: Record<string, unknown>;
|
|
||||||
toolbarService?: ToolbarService;
|
toolbarService?: ToolbarService;
|
||||||
cornerstoneViewportService?: Record<string, unknown>;
|
|
||||||
uiDialogService?: Record<string, unknown>;
|
|
||||||
toolGroupService?: Record<string, unknown>;
|
|
||||||
uiNotificationService?: UINotificationService;
|
|
||||||
uiModalService?: UIModalService;
|
|
||||||
uiViewportDialogService?: Record<string, unknown>;
|
|
||||||
viewportGridService?: ViewportGridService;
|
viewportGridService?: ViewportGridService;
|
||||||
syncGroupService?: Record<string, unknown>;
|
uiModalService?: UIModalService;
|
||||||
cornerstoneCacheService?: Record<string, unknown>;
|
uiNotificationService?: UINotificationService;
|
||||||
segmentationService?: Record<string, unknown>;
|
|
||||||
stateSyncService?: StateSyncService;
|
stateSyncService?: StateSyncService;
|
||||||
panelService?: Record<string, unknown>;
|
cineService?: unknown;
|
||||||
|
userAuthenticationService?: unknown;
|
||||||
|
cornerstoneViewportService?: unknown;
|
||||||
|
uiDialogService?: unknown;
|
||||||
|
toolGroupService?: unknown;
|
||||||
|
uiViewportDialogService?: unknown;
|
||||||
|
syncGroupService?: unknown;
|
||||||
|
cornerstoneCacheService?: unknown;
|
||||||
|
segmentationService?: unknown;
|
||||||
|
panelService?: unknown;
|
||||||
}
|
}
|
||||||
|
|||||||
46
yarn.lock
46
yarn.lock
@ -1589,10 +1589,10 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
|
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
|
||||||
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
|
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
|
||||||
|
|
||||||
"@cornerstonejs/adapters@^1.2.8":
|
"@cornerstonejs/adapters@^1.4.1":
|
||||||
version "1.2.8"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.2.8.tgz#26e584971b917dd099a73511abde32f236655915"
|
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.4.1.tgz#48ca911cb76c2c6dfaab3c7c1119bf0fb400bb71"
|
||||||
integrity sha512-W1PD+XJ69nUEM5D1wZMyJxRNsKTxWSwtJ6gZ1LH19f7uLSIt1OdKq3PoUZ0KyUiDeP585+NPChquGO14vn8eQA==
|
integrity sha512-w/5c8/m7GKTGFw33vJh5IK3aJNOq9gBeQu0BSAczCBh6DfVY4JWw+ZNUZk2qRYsIcs5rIWSY0/Ykwsq3ziAblA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime-corejs2" "^7.17.8"
|
"@babel/runtime-corejs2" "^7.17.8"
|
||||||
dcmjs "^0.29.5"
|
dcmjs "^0.29.5"
|
||||||
@ -1640,43 +1640,43 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.2.tgz#e96721d56f6ec96f7f95c16321d88cc8467d8d81"
|
resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.2.tgz#e96721d56f6ec96f7f95c16321d88cc8467d8d81"
|
||||||
integrity sha512-lgdvBvvNezleY+4pIe2ceUsJzlZe/0PipdeubQ3vZZOz3xxtHHMR1XFCl4fgd8gosR8COHuD7h6q+MwgrwBsng==
|
integrity sha512-lgdvBvvNezleY+4pIe2ceUsJzlZe/0PipdeubQ3vZZOz3xxtHHMR1XFCl4fgd8gosR8COHuD7h6q+MwgrwBsng==
|
||||||
|
|
||||||
"@cornerstonejs/core@^1.2.8":
|
"@cornerstonejs/core@^1.4.1":
|
||||||
version "1.2.8"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.2.8.tgz#e84ecf74cba66085f342a03965f3d73111bb4948"
|
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.4.1.tgz#e7a2de14160545382771a8dbaf64935f9c654904"
|
||||||
integrity sha512-7RPIxXiMt9Ud5PWZ3+fVYJRhCzObbb4emaQvQ3dPo30xLyU7EcNDEyLjIezJfJHAMOHKQo9SnsoUQz+8YmdXSQ==
|
integrity sha512-0pDTy4QZdaXISfs1SW04XitUmv5rn874P0M4XiEwNvP05AEr/Ib6yV95yvQD+xaq35JyEjDS0xCSEL4w9W7TmQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@kitware/vtk.js" "27.3.1"
|
"@kitware/vtk.js" "27.3.1"
|
||||||
detect-gpu "^5.0.22"
|
detect-gpu "^5.0.22"
|
||||||
gl-matrix "^3.4.3"
|
gl-matrix "^3.4.3"
|
||||||
lodash.clonedeep "4.5.0"
|
lodash.clonedeep "4.5.0"
|
||||||
|
|
||||||
"@cornerstonejs/dicom-image-loader@^1.2.8":
|
"@cornerstonejs/dicom-image-loader@^1.4.1":
|
||||||
version "1.2.8"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.2.8.tgz#61cd310310f1cd8d0837135240928e18f5d63c0f"
|
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.4.1.tgz#41ba4531e87827b83684e9de939ef5025eb53db2"
|
||||||
integrity sha512-w/JrforcHUvVPXEmxT015cGb/IT+py2rTKXk5udqyX/dLoI1q8FaqHFq8z/pN+9AXsUrdQ2d7gmXTpDihS8b4Q==
|
integrity sha512-J47sWG8iEISc+mSsn8iw4Fi1GL4mGuHUD+UegcGl7SgTVA6xmtEoVJJJ7lcfmPxsLJfzRv3x3Okc25GdugE8Bw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@cornerstonejs/codec-charls" "^1.2.3"
|
"@cornerstonejs/codec-charls" "^1.2.3"
|
||||||
"@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2"
|
"@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2"
|
||||||
"@cornerstonejs/codec-openjpeg" "^1.2.2"
|
"@cornerstonejs/codec-openjpeg" "^1.2.2"
|
||||||
"@cornerstonejs/codec-openjph" "^2.4.2"
|
"@cornerstonejs/codec-openjph" "^2.4.2"
|
||||||
"@cornerstonejs/core" "^1.2.8"
|
"@cornerstonejs/core" "^1.4.1"
|
||||||
dicom-parser "^1.8.9"
|
dicom-parser "^1.8.9"
|
||||||
pako "^2.0.4"
|
pako "^2.0.4"
|
||||||
uuid "^9.0.0"
|
uuid "^9.0.0"
|
||||||
|
|
||||||
"@cornerstonejs/streaming-image-volume-loader@^1.2.8":
|
"@cornerstonejs/streaming-image-volume-loader@^1.4.1":
|
||||||
version "1.2.8"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.2.8.tgz#fcbc6de46c45968e7806f8e322f0605cac4a4b85"
|
resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.4.1.tgz#7377add2ee2567793dadc4cce74012b95a201eed"
|
||||||
integrity sha512-/FWbWglSNIKgV0ZUDQrkCQkg+Dzf85ReH+svqg8sBhCiCKSdKSAQXEaDG471O+nmVdNg7VW8DE8PwA/yVe/3yA==
|
integrity sha512-dwW1IrunYoSo+UM55zpY+KIcC573YOKgCJrcy/AL6kwIJnuglmFMSzeJLM+xxdprbod2QP3LMWwpz0ikfGy67w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@cornerstonejs/core" "^1.2.8"
|
"@cornerstonejs/core" "^1.4.1"
|
||||||
|
|
||||||
"@cornerstonejs/tools@^1.2.8":
|
"@cornerstonejs/tools@^1.4.1":
|
||||||
version "1.2.8"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.2.8.tgz#8979a40cf53a4a2a648ef8c0fc24ef15603a0f9a"
|
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.4.1.tgz#2ea8ab701ecf93ed9d02dcd5b95ea810bcfa98a8"
|
||||||
integrity sha512-E3+UOgl/DRNvvxTJziMoEa6uudKSGr/JFL5k9HvjU2HtGm4kdpYNo9lGnsTqeuUZ2xrPnUZFLYHVwF1WVegoEw==
|
integrity sha512-UfwWzmJT3aKu2gvlWQZ3ZLmof8krRYyk0L/HTsTglS2izzbjIPuMAPfh5+FrTIhLE1RQmGwujCp7UZRIEa9s/w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@cornerstonejs/core" "^1.2.8"
|
"@cornerstonejs/core" "^1.4.1"
|
||||||
lodash.clonedeep "4.5.0"
|
lodash.clonedeep "4.5.0"
|
||||||
lodash.get "^4.4.2"
|
lodash.get "^4.4.2"
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user