Skip to content

Commit a74648f

Browse files
sedghiwayfarer3130
andauthored
fix: NM multiframe with TimeSlotVector (#5666)
* 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 * fix(getSopClassHandlerModule): handle multiframe dynamic volumes by utilizing metaData for instance retrieval --------- Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
1 parent fec6613 commit a74648f

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

extensions/default/src/getSopClassHandlerModule.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { id } from './id';
44
import getDisplaySetMessages from './getDisplaySetMessages';
55
import getDisplaySetsFromUnsupportedSeries from './getDisplaySetsFromUnsupportedSeries';
66
import { chartHandler } from './SOPClassHandlers/chartSOPClassHandler';
7+
import { metaData } from '@cornerstonejs/core';
78

89
const {
910
isImage,
@@ -50,11 +51,16 @@ function getDisplaySetInfo(instances) {
5051
const timePoint = timePoints[0];
5152
const instancesMap = new Map();
5253

53-
// O(n) to convert it into a map and O(1) to find each instance
54-
instances.forEach(instance => instancesMap.set(instance.imageId, instance));
55-
56-
const firstTimePointInstances = timePoint.map(imageId => instancesMap.get(imageId));
54+
let firstTimePointInstances;
5755

56+
if (instances[0].NumberOfFrames > 1 && timePoints.length > 1) {
57+
// handle multiframe dynamic volume
58+
firstTimePointInstances = timePoints[0].map(imageId => metaData.get('instance', imageId));
59+
} else {
60+
// O(n) to convert it into a map and O(1) to find each instance
61+
instances.forEach(instance => instancesMap.set(instance.imageId, instance));
62+
firstTimePointInstances = timePoint.map(imageId => instancesMap.get(imageId));
63+
}
5864
displaySetInfo = isDisplaySetReconstructable(firstTimePointInstances, appConfig);
5965
} else {
6066
displaySetInfo = isDisplaySetReconstructable(instances, appConfig);

0 commit comments

Comments
 (0)