fix(segmentation): black preview when loading a seg, and crash on opening panel (#4602)

This commit is contained in:
Ibrahim 2024-12-20 08:12:58 -05:00 committed by GitHub
parent 921e8f93b7
commit faf5515e4b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 19 additions and 12 deletions

View File

@ -243,13 +243,15 @@ export default function PanelSegmentation({
const firstImageId = referencedImageIds[0]; const firstImageId = referencedImageIds[0];
const instance = metaData.get('instance', firstImageId); const instance = metaData.get('instance', firstImageId);
const { SOPInstanceUID, SeriesInstanceUID } = instance; const SOPInstanceUID = instance.SOPInstanceUID || instance.SopInstanceUID;
const SeriesInstanceUID = instance.SeriesInstanceUID;
const displaySet = displaySetService.getDisplaySetForSOPInstanceUID( const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(
SOPInstanceUID, SOPInstanceUID,
SeriesInstanceUID SeriesInstanceUID
); );
const isExportable = displaySet.isReconstructable;
const isExportable = displaySet?.isReconstructable;
return { return {
segmentationId, segmentationId,

View File

@ -7,6 +7,7 @@ import {
imageLoader, imageLoader,
Types as csTypes, Types as csTypes,
utilities as csUtils, utilities as csUtils,
metaData,
} from '@cornerstonejs/core'; } from '@cornerstonejs/core';
import { import {
Enums as csToolsEnums, Enums as csToolsEnums,
@ -360,11 +361,11 @@ class SegmentationService extends PubSubService {
options.segments && Object.keys(options.segments).length > 0 options.segments && Object.keys(options.segments).length > 0
? options.segments ? options.segments
: { : {
1: { 1: {
label: 'Segment 1', label: 'Segment 1',
active: true, active: true,
},
}, },
},
cachedStats: { cachedStats: {
info: `S${displaySet.SeriesNumber}: ${displaySet.SeriesDescription}`, info: `S${displaySet.SeriesNumber}: ${displaySet.SeriesDescription}`,
}, },
@ -381,8 +382,8 @@ class SegmentationService extends PubSubService {
segmentationId?: string; segmentationId?: string;
type: SegmentationRepresentations; type: SegmentationRepresentations;
} = { } = {
type: LABELMAP, type: LABELMAP,
} }
): Promise<string> { ): Promise<string> {
const { type } = options; const { type } = options;
let { segmentationId } = options; let { segmentationId } = options;
@ -414,7 +415,10 @@ class SegmentationService extends PubSubService {
imageIds as string[] imageIds as string[]
); );
segDisplaySet.images = derivedSegmentationImages; segDisplaySet.images = derivedSegmentationImages.map(image => ({
...image,
...metaData.get('instance', image.referencedImageId),
}));
const segmentsInfo = segDisplaySet.segMetadata.data; const segmentsInfo = segDisplaySet.segMetadata.data;
@ -531,8 +535,8 @@ class SegmentationService extends PubSubService {
segmentationId?: string; segmentationId?: string;
type: SegmentationRepresentations; type: SegmentationRepresentations;
} = { } = {
type: CONTOUR, type: CONTOUR,
} }
): Promise<string> { ): Promise<string> {
const { type } = options; const { type } = options;
let { segmentationId } = options; let { segmentationId } = options;

View File

@ -221,7 +221,8 @@ function createDicomLocalApi(dicomLocalConfig) {
// return instance.imageId; // return instance.imageId;
// } // }
const { StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID } = instance; const { StudyInstanceUID, SeriesInstanceUID } = instance;
const SOPInstanceUID = instance.SOPInstanceUID || instance.SopInstanceUID;
const storedInstance = DicomMetadataStore.getInstance( const storedInstance = DicomMetadataStore.getInstance(
StudyInstanceUID, StudyInstanceUID,
SeriesInstanceUID, SeriesInstanceUID,