@@ -36,6 +36,7 @@ interface SlideImageCollection {
3636 volumeImages : dmv . metadata . VLWholeSlideMicroscopyImage [ ]
3737 labelImages : dmv . metadata . VLWholeSlideMicroscopyImage [ ]
3838 overviewImages : dmv . metadata . VLWholeSlideMicroscopyImage [ ]
39+ thumbnailImages : dmv . metadata . VLWholeSlideMicroscopyImage [ ]
3940}
4041
4142interface SlideOptions {
@@ -59,6 +60,7 @@ class Slide {
5960 readonly volumeImages : dmv . metadata . VLWholeSlideMicroscopyImage [ ]
6061 readonly labelImages : dmv . metadata . VLWholeSlideMicroscopyImage [ ]
6162 readonly overviewImages : dmv . metadata . VLWholeSlideMicroscopyImage [ ]
63+ readonly thumbnailImages : dmv . metadata . VLWholeSlideMicroscopyImage [ ]
6264
6365 /**
6466 * @param options
@@ -95,6 +97,7 @@ class Slide {
9597 const volumeImages : dmv . metadata . VLWholeSlideMicroscopyImage [ ] = [ ]
9698 const labelImages : dmv . metadata . VLWholeSlideMicroscopyImage [ ] = [ ]
9799 const overviewImages : dmv . metadata . VLWholeSlideMicroscopyImage [ ] = [ ]
100+ const thumbnailImages : dmv . metadata . VLWholeSlideMicroscopyImage [ ] = [ ]
98101 options . images . forEach ( ( image ) => {
99102 containerIdentifiers . add ( image . ContainerIdentifier )
100103 seriesInstanceUIDs . add ( image . SeriesInstanceUID )
@@ -105,6 +108,9 @@ class Slide {
105108 acquisitionUIDs . add ( image . AcquisitionUID )
106109 }
107110 if ( hasImageFlavor ( image , ImageFlavors . VOLUME ) || hasImageFlavor ( image , ImageFlavors . THUMBNAIL ) ) {
111+ if ( hasImageFlavor ( image , ImageFlavors . THUMBNAIL ) ) {
112+ thumbnailImages . push ( image )
113+ }
108114 frameOfReferenceUIDs . VOLUME . add ( image . FrameOfReferenceUID )
109115 if ( image . PyramidUID !== null && image . PyramidUID !== undefined ) {
110116 for ( const identifier of Object . keys ( opticalPathIdentifiers ) ) {
@@ -170,6 +176,7 @@ class Slide {
170176 this . volumeImages = volumeImages
171177 this . labelImages = labelImages
172178 this . overviewImages = overviewImages
179+ this . thumbnailImages = thumbnailImages
173180
174181 this . seriesInstanceUIDs = [ ...seriesInstanceUIDs ]
175182 this . opticalPathIdentifiers = [ ...opticalPathIdentifiers ]
@@ -284,6 +291,9 @@ const createSlides = (
284291 hasImageFlavor ( image , ImageFlavors . VOLUME ) ||
285292 hasImageFlavor ( image , ImageFlavors . THUMBNAIL )
286293 )
294+ const thumbnailImages = series . filter (
295+ ( image ) => hasImageFlavor ( image , ImageFlavors . THUMBNAIL )
296+ )
287297 if ( volumeImages . length > 0 ) {
288298 const refImage = volumeImages [ 0 ]
289299 const filteredVolumeImages = volumeImages . filter ( ( image ) => {
@@ -323,14 +333,16 @@ const createSlides = (
323333 containerIdentifier : refImage . ContainerIdentifier ,
324334 volumeImages : filteredVolumeImages ,
325335 labelImages : filteredLabelImages ,
326- overviewImages : filteredOverviewImages
336+ overviewImages : filteredOverviewImages ,
337+ thumbnailImages
327338 }
328339 slideMetadata . push ( slideMetadataItem )
329340 } else {
330341 const slideMetadataItem = slideMetadata [ slideMetadataIndex ]
331342 slideMetadataItem . volumeImages . push ( ...filteredVolumeImages )
332343 slideMetadataItem . labelImages . push ( ...filteredLabelImages )
333344 slideMetadataItem . overviewImages . push ( ...filteredOverviewImages )
345+ slideMetadataItem . thumbnailImages . push ( ...thumbnailImages )
334346 }
335347 }
336348 }
@@ -341,7 +353,8 @@ const createSlides = (
341353 images : [
342354 ...item . volumeImages ,
343355 ...item . labelImages ,
344- ...item . overviewImages
356+ ...item . overviewImages ,
357+ ...item . thumbnailImages
345358 ]
346359 } )
347360 } )
0 commit comments