Bug Fix: Only first frame of multiframe images is being rendered.
This commit is contained in:
parent
e2322ec05a
commit
75e027fee5
@ -491,9 +491,8 @@ HP.ProtocolEngine = class ProtocolEngine {
|
|||||||
|
|
||||||
// If the instance was found, set the displaySet ID
|
// If the instance was found, set the displaySet ID
|
||||||
if (displaySet) {
|
if (displaySet) {
|
||||||
const instanceMetadata = new OHIF.metadata.InstanceMetadata(instance);
|
|
||||||
imageDetails.displaySetInstanceUid = displaySet.displaySetInstanceUid;
|
imageDetails.displaySetInstanceUid = displaySet.displaySetInstanceUid;
|
||||||
imageDetails.imageId = OHIF.viewerbase.getImageId(instanceMetadata);
|
imageDetails.imageId = OHIF.viewerbase.getImageId(instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((totalMatchScore > highestImageMatchingScore) || !bestMatch) {
|
if ((totalMatchScore > highestImageMatchingScore) || !bestMatch) {
|
||||||
|
|||||||
@ -15,7 +15,7 @@ Template.imageThumbnail.onCreated(() => {
|
|||||||
const lastIndex = (stack.images.length || 1) - 1;
|
const lastIndex = (stack.images.length || 1) - 1;
|
||||||
const imageIndex = Math.floor(lastIndex / 2);
|
const imageIndex = Math.floor(lastIndex / 2);
|
||||||
const imageInstance = stack.images[imageIndex];
|
const imageInstance = stack.images[imageIndex];
|
||||||
return getImageId(imageInstance);
|
return getImageId(imageInstance.getData());
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -62,35 +62,29 @@ const loadDisplaySetIntoViewport = (data, templateData) => {
|
|||||||
ViewerData[contentId].loadedSeriesData[viewportIndex] = {};
|
ViewerData[contentId].loadedSeriesData[viewportIndex] = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create shortcut to displaySet
|
||||||
const displaySet = data.displaySet;
|
const displaySet = data.displaySet;
|
||||||
|
|
||||||
// Get stack from Stack Manager
|
// Get stack from Stack Manager
|
||||||
const displaySetStack = StackManager.findStack(displaySet.displaySetInstanceUid);
|
let stack = StackManager.findStack(displaySet.displaySetInstanceUid);
|
||||||
|
// Make sure if the stack is already loaded in the stack manager, otherwise create it
|
||||||
|
if(!stack || !stack.imageIds) {
|
||||||
|
stack = StackManager.makeAndAddStack(data.study, displaySet);
|
||||||
|
}
|
||||||
|
|
||||||
// If is a clip, updates the global FPS for cine dialog
|
// If is a clip, updates the global FPS for cine dialog
|
||||||
if (displaySetStack && displaySetStack.isClip === true && displaySetStack.frameRate) {
|
if (stack.isClip && stack.frameRate > 0) {
|
||||||
// Sets the global variable
|
// Sets the global variable
|
||||||
OHIF.viewer.cine.framesPerSecond = parseFloat(displaySetStack.frameRate);
|
OHIF.viewer.cine.framesPerSecond = parseFloat(stack.frameRate);
|
||||||
// Update the cine dialog FPS
|
// Update the cine dialog FPS
|
||||||
Session.set('UpdateCINE', Random.id());
|
Session.set('UpdateCINE', Random.id());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Array with image IDs
|
// Shortcut for array with image IDs...
|
||||||
let imageIds = [];
|
const imageIds = stack.imageIds;
|
||||||
// Make sure if the stack is already loaded in the stack manager, otherwise create it
|
|
||||||
if(!displaySetStack || !displaySetStack.imageIds) {
|
|
||||||
imageIds = StackManager.makeAndAddStack(data.study, displaySet);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
imageIds = displaySetStack.imageIds;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Define the current image stack using the newly created image IDs
|
// Update stack's currentImageIdIndex property...
|
||||||
const stack = {
|
stack.currentImageIdIndex = data.currentImageIdIndex > 0 && data.currentImageIdIndex < imageIds.length ? data.currentImageIdIndex : 0;
|
||||||
currentImageIdIndex: data.currentImageIdIndex || 0,
|
|
||||||
imageIds: imageIds,
|
|
||||||
displaySetInstanceUid: data.displaySetInstanceUid
|
|
||||||
};
|
|
||||||
|
|
||||||
// If is a clip, updates the global FPS for cine dialog
|
// If is a clip, updates the global FPS for cine dialog
|
||||||
if (displaySet && displaySet.isClip && displaySet.frameRate > 0) {
|
if (displaySet && displaySet.isClip && displaySet.frameRate > 0) {
|
||||||
@ -257,7 +251,7 @@ const loadDisplaySetIntoViewport = (data, templateData) => {
|
|||||||
cornerstoneTools.addToolState(element, 'stack', stack);
|
cornerstoneTools.addToolState(element, 'stack', stack);
|
||||||
|
|
||||||
// Set the default CINE settings
|
// Set the default CINE settings
|
||||||
const multiframeMetadata = instance.multiframeMetadata;
|
const multiframeMetadata = instance.getDataProperty('multiframeMetadata');
|
||||||
|
|
||||||
let fps;
|
let fps;
|
||||||
if (multiframeMetadata && multiframeMetadata.averageFrameRate > 0) {
|
if (multiframeMetadata && multiframeMetadata.averageFrameRate > 0) {
|
||||||
|
|||||||
@ -21,9 +21,10 @@ function createAndAddStack(stackMap, study, displaySet) {
|
|||||||
const imageIds = [];
|
const imageIds = [];
|
||||||
let imageId;
|
let imageId;
|
||||||
|
|
||||||
displaySet.images.forEach((image, imageIndex) => {
|
displaySet.images.forEach((instance, imageIndex) => {
|
||||||
|
const image = instance.getData();
|
||||||
const metaData = {
|
const metaData = {
|
||||||
instance: image,
|
instance: image, // in this context, instance will be the data of the InstanceMetadata object...
|
||||||
series: displaySet, // TODO: Check this
|
series: displaySet, // TODO: Check this
|
||||||
study: study,
|
study: study,
|
||||||
numImages: numImages,
|
numImages: numImages,
|
||||||
@ -56,7 +57,7 @@ function createAndAddStack(stackMap, study, displaySet) {
|
|||||||
|
|
||||||
stackMap[displaySet.displaySetInstanceUid] = stack;
|
stackMap[displaySet.displaySetInstanceUid] = stack;
|
||||||
|
|
||||||
return imageIds;
|
return stack;
|
||||||
}
|
}
|
||||||
|
|
||||||
configuration = {
|
configuration = {
|
||||||
|
|||||||
@ -21,6 +21,15 @@ export class Metadata {
|
|||||||
return this._data;
|
return this._data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getDataProperty(propertyName) {
|
||||||
|
let propertyValue;
|
||||||
|
const _data = this._data;
|
||||||
|
if (_data instanceof Object || typeof _data === 'object' && _data !== null) {
|
||||||
|
propertyValue = _data[propertyName];
|
||||||
|
}
|
||||||
|
return propertyValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Static Methods
|
* Static Methods
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -7,12 +7,7 @@ import { getWADORSImageId } from './getWADORSImageId';
|
|||||||
* @param instance
|
* @param instance
|
||||||
* @returns {string} The imageId to be used by Cornerstone
|
* @returns {string} The imageId to be used by Cornerstone
|
||||||
*/
|
*/
|
||||||
export function getImageId(instanceMetadata, frame) {
|
export function getImageId(instance, frame) {
|
||||||
if (!instanceMetadata) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const instance = instanceMetadata.getData();
|
|
||||||
|
|
||||||
if (!instance) {
|
if (!instance) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user