fix: preclinical mode not working (#5631)
* fix(ViewportWindowLevel): add null checks for volumeActor in opacity functions * refactor(ViewportWindowLevel): register histogram worker at module load and optimize scalar data retrieval * fix(Preclinical4D): add null check for viewportId and set frame rate for cine playback
This commit is contained in:
1 parent
84d0d8866b
commit
2de81efa7e
16 files changed
+251
-226
No files matched your search
@@ -46,8 +46,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.12.6",
|
||||
"@cornerstonejs/core": "4.12.6",
|
||||
"@cornerstonejs/adapters": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
"react-color": "2.19.3"
|
||||
}
|
||||
|
||||
@@ -46,8 +46,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.12.6",
|
||||
"@cornerstonejs/core": "4.12.6",
|
||||
"@cornerstonejs/adapters": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
"react-color": "2.19.3"
|
||||
}
|
||||
|
||||
@@ -46,9 +46,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.12.6",
|
||||
"@cornerstonejs/core": "4.12.6",
|
||||
"@cornerstonejs/tools": "4.12.6",
|
||||
"@cornerstonejs/adapters": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"classnames": "2.5.1"
|
||||
}
|
||||
}
|
||||
@@ -42,8 +42,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.12.6",
|
||||
"@cornerstonejs/tools": "4.12.6",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"classnames": "2.5.1"
|
||||
}
|
||||
}
|
||||
@@ -40,7 +40,7 @@
|
||||
"@cornerstonejs/codec-libjpeg-turbo-8bit": "1.2.2",
|
||||
"@cornerstonejs/codec-openjpeg": "1.3.0",
|
||||
"@cornerstonejs/codec-openjph": "2.4.7",
|
||||
"@cornerstonejs/dicom-image-loader": "4.12.6",
|
||||
"@cornerstonejs/dicom-image-loader": "4.14.4",
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/ui": "3.12.0-beta.105",
|
||||
"dcmjs": "0.45.0",
|
||||
@@ -53,12 +53,12 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/adapters": "4.12.6",
|
||||
"@cornerstonejs/ai": "4.12.6",
|
||||
"@cornerstonejs/core": "4.12.6",
|
||||
"@cornerstonejs/labelmap-interpolation": "4.12.6",
|
||||
"@cornerstonejs/polymorphic-segmentation": "4.12.6",
|
||||
"@cornerstonejs/tools": "4.12.6",
|
||||
"@cornerstonejs/adapters": "4.14.4",
|
||||
"@cornerstonejs/ai": "4.14.4",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/labelmap-interpolation": "4.14.4",
|
||||
"@cornerstonejs/polymorphic-segmentation": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@itk-wasm/morphological-contour-interpolation": "1.1.0",
|
||||
"@kitware/vtk.js": "34.15.1",
|
||||
"html2canvas": "1.4.1",
|
||||
|
||||
+4
-4
@@ -17,9 +17,10 @@ const workerFn = () => {
|
||||
});
|
||||
};
|
||||
|
||||
const getViewportVolumeHistogram = async (viewport, volume, options?) => {
|
||||
workerManager.registerWorker('histogram-worker', workerFn, WorkerOptions);
|
||||
// Register worker once at module load time
|
||||
workerManager.registerWorker('histogram-worker', workerFn, WorkerOptions);
|
||||
|
||||
const getViewportVolumeHistogram = async (viewport, volume, options?) => {
|
||||
const volumeImageData = viewport.getImageData(volume.volumeId);
|
||||
|
||||
if (!volumeImageData) {
|
||||
@@ -29,8 +30,7 @@ const getViewportVolumeHistogram = async (viewport, volume, options?) => {
|
||||
let scalarData = volume.scalarData;
|
||||
|
||||
if (volume.numTimePoints > 1) {
|
||||
const targetTimePoint = volume.numTimePoints - 1; // or any other time point you need
|
||||
scalarData = volume.voxelManager.getTimePointScalarData(targetTimePoint);
|
||||
scalarData = volume.voxelManager.getDimensionGroupScalarData(volume.numTimePoints);
|
||||
} else {
|
||||
scalarData = volume.voxelManager.getCompleteScalarDataArray();
|
||||
}
|
||||
|
||||
@@ -7,6 +7,10 @@ import { getViewportVolumeHistogram } from './getViewportVolumeHistogram';
|
||||
* Gets node opacity from volume actor
|
||||
*/
|
||||
export const getNodeOpacity = (volumeActor, nodeIndex) => {
|
||||
if (!volumeActor) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const volumeOpacity = volumeActor.getProperty().getScalarOpacity(0);
|
||||
const nodeValue = [];
|
||||
|
||||
@@ -19,6 +23,10 @@ export const getNodeOpacity = (volumeActor, nodeIndex) => {
|
||||
* Checks if the opacity applied to the PET volume follows a specific pattern
|
||||
*/
|
||||
export const isPetVolumeWithDefaultOpacity = (volumeId: string, volumeActor) => {
|
||||
if (!volumeActor) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const volume = cs3DCache.getVolume(volumeId);
|
||||
|
||||
if (!volume || volume.metadata.Modality !== 'PT') {
|
||||
@@ -59,6 +67,10 @@ export const isPetVolumeWithDefaultOpacity = (volumeId: string, volumeActor) =>
|
||||
* Checks if volume has constant opacity
|
||||
*/
|
||||
export const isVolumeWithConstantOpacity = volumeActor => {
|
||||
if (!volumeActor) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const volumeOpacity = volumeActor.getProperty().getScalarOpacity(0);
|
||||
const opacitySize = volumeOpacity.getSize();
|
||||
const firstNodeValue = [];
|
||||
@@ -91,7 +103,7 @@ export const getWindowLevelsData = async (
|
||||
|
||||
const volumeIds = (viewport as Types.IBaseVolumeViewport).getAllVolumeIds();
|
||||
const viewportProperties = viewport.getProperties();
|
||||
const { voiRange } = viewportProperties;
|
||||
const { voiRange } = viewportProperties || {};
|
||||
const viewportVoi = voiRange
|
||||
? {
|
||||
windowWidth: voiRange.upper - voiRange.lower,
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
"start": "yarn run dev"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@cornerstonejs/core": "4.12.6",
|
||||
"@cornerstonejs/tools": "4.12.6",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
|
||||
@@ -42,8 +42,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.28.2",
|
||||
"@cornerstonejs/core": "4.12.6",
|
||||
"@cornerstonejs/tools": "4.12.6",
|
||||
"@cornerstonejs/core": "4.14.4",
|
||||
"@cornerstonejs/tools": "4.14.4",
|
||||
"@ohif/core": "3.12.0-beta.105",
|
||||
"@ohif/extension-cornerstone": "3.12.0-beta.105",
|
||||
"@ohif/extension-default": "3.12.0-beta.105",
|
||||
|
||||
Reference in new issue
Block a user