@@ -18,6 +18,7 @@ interface DisplaySet {
1818 SeriesTime ?: string
1919 SeriesNumber : string
2020 SeriesDescription ?: string
21+ SeriesInstanceUID ?: string
2122 Modality : string
2223 images : any [ ]
2324}
@@ -83,35 +84,51 @@ const DicomTagBrowser = ({ clients, studyInstanceUID }: DicomTagBrowserProps): J
8384
8485 if ( slides . length > 0 ) {
8586 displaySets = slides
86- . map ( ( slide ) : DisplaySet | null => {
87- const { volumeImages } = slide
88- if ( volumeImages ?. [ 0 ] === undefined ) return null
89-
90- const {
91- SeriesDate,
92- SeriesTime,
93- SeriesNumber,
94- SeriesInstanceUID,
95- SeriesDescription,
96- Modality
97- } = volumeImages [ 0 ]
87+ . map ( ( slide ) : DisplaySet [ ] => {
88+ const slideDisplaySets : DisplaySet [ ] = [ ]
89+
90+ // Helper function to process any image type
91+ const processImageType = (
92+ images : any [ ] | undefined ,
93+ imageType : string
94+ ) : void => {
95+ if ( images ?. [ 0 ] !== undefined ) {
96+ console . info ( `Found ${ images . length } ${ imageType } image(s) for slide ${ slide . containerIdentifier } ` )
97+
98+ const {
99+ SeriesDate,
100+ SeriesTime,
101+ SeriesNumber,
102+ SeriesInstanceUID,
103+ SeriesDescription,
104+ Modality
105+ } = images [ 0 ]
106+
107+ processedSeries . push ( SeriesInstanceUID )
108+
109+ const ds : DisplaySet = {
110+ displaySetInstanceUID : index ,
111+ SeriesDate,
112+ SeriesTime,
113+ SeriesInstanceUID,
114+ SeriesNumber : String ( SeriesNumber ) ,
115+ SeriesDescription,
116+ Modality,
117+ images
118+ }
119+ slideDisplaySets . push ( ds )
120+ index ++
121+ }
122+ }
98123
99- processedSeries . push ( SeriesInstanceUID )
124+ // Process all image types
125+ processImageType ( slide . volumeImages , 'volume' )
126+ processImageType ( slide . overviewImages , 'overview' )
127+ processImageType ( slide . labelImages , 'label' )
100128
101- const ds : DisplaySet = {
102- displaySetInstanceUID : index ,
103- SeriesDate,
104- SeriesTime,
105- SeriesInstanceUID,
106- // @ts -expect-error
107- SeriesNumber,
108- SeriesDescription,
109- Modality,
110- images : volumeImages
111- }
112- index ++
113- return ds
129+ return slideDisplaySets
114130 } )
131+ . flat ( )
115132 . filter ( ( set ) : set is DisplaySet => set !== null && set !== undefined )
116133 }
117134
@@ -122,8 +139,7 @@ const DicomTagBrowser = ({ clients, studyInstanceUID }: DicomTagBrowserProps): J
122139 displaySetInstanceUID : index ,
123140 SeriesDate : series . SeriesDate ,
124141 SeriesTime : series . SeriesTime ,
125- // @ts -expect-error
126- SeriesNumber : series . SeriesNumber ,
142+ SeriesNumber : String ( series . SeriesNumber ) ,
127143 SeriesDescription : series . SeriesDescription ,
128144 SeriesInstanceUID : series . SeriesInstanceUID ,
129145 Modality : series . Modality ,
0 commit comments