@@ -172,6 +172,8 @@ class CornerstoneViewport extends Component {
172172
173173 // Skip if image was not changed
174174 if (
175+ stateStack . sopInstanceUid &&
176+ viewportDataStack . sopInstanceUid &&
175177 stateStack . currentImageIdIndex ===
176178 viewportDataStack . currentImageIdIndex &&
177179 stateStack . sopInstanceUid === viewportDataStack . sopInstanceUid
@@ -180,7 +182,12 @@ class CornerstoneViewport extends Component {
180182 }
181183
182184 const stackData = cornerstoneTools . getToolState ( this . element , 'stack' ) ;
183- const stack = stackData && stackData . data [ 0 ] ;
185+ let stack = stackData && stackData . data [ 0 ] ;
186+
187+ // Use viewport stack if cornerstone stack is not ready yet
188+ if ( ! stack ) {
189+ stack = viewportDataStack ;
190+ }
184191
185192 const imageId = stack . imageIds [ stack . currentImageIdIndex ] ;
186193 const sopCommonModule = cornerstone . metaData . get (
@@ -373,6 +380,12 @@ class CornerstoneViewport extends Component {
373380 }
374381 ] ;
375382
383+ this . eventHandlerData . forEach ( data => {
384+ const { eventTarget, eventType, handler } = data ;
385+
386+ eventTarget . addEventListener ( eventType , handler ) ;
387+ } ) ;
388+
376389 // Pass ELEMENT_ENABLED event to parent
377390 const onElementEnabledFn = evt => {
378391 const enabledElement = evt . detail . element ;
@@ -485,12 +498,6 @@ class CornerstoneViewport extends Component {
485498 isTouchActive : true
486499 } ) ;
487500
488- this . eventHandlerData . forEach ( data => {
489- const { eventTarget, eventType, handler } = data ;
490-
491- eventTarget . addEventListener ( eventType , handler ) ;
492- } ) ;
493-
494501 this . setState ( {
495502 viewportHeight : `${ this . element . clientHeight - 20 } px`
496503 } ) ;
@@ -567,6 +574,8 @@ class CornerstoneViewport extends Component {
567574
568575 if ( ! currentStack ) {
569576 currentStack = {
577+ displaySetInstanceUid,
578+ studyInstanceUid,
570579 currentImageIdIndex,
571580 imageIds : stack . imageIds
572581 } ;
@@ -575,6 +584,8 @@ class CornerstoneViewport extends Component {
575584 cornerstoneTools . addToolState ( this . element , 'stack' , currentStack ) ;
576585 } else {
577586 // TODO: we should make something like setToolState by an ID
587+ currentStack . displaySetInstanceUid = displaySetInstanceUid ;
588+ currentStack . studyInstanceUid = studyInstanceUid ;
578589 currentStack . currentImageIdIndex = currentImageIdIndex ;
579590 currentStack . imageIds = stack . imageIds ;
580591 }
@@ -637,6 +648,8 @@ class CornerstoneViewport extends Component {
637648
638649 if ( ! currentStack ) {
639650 currentStack = {
651+ displaySetInstanceUid,
652+ studyInstanceUid,
640653 currentImageIdIndex,
641654 imageIds : stack . imageIds
642655 } ;
@@ -647,6 +660,8 @@ class CornerstoneViewport extends Component {
647660 scrollToIndex ( this . element , currentImageIdIndex ) ;
648661
649662 // TODO: we should make something like setToolState by an ID
663+ currentStack . displaySetInstanceUid = displaySetInstanceUid ;
664+ currentStack . studyInstanceUid = studyInstanceUid ;
650665 currentStack . currentImageIdIndex = currentImageIdIndex ;
651666 currentStack . imageIds = stack . imageIds ;
652667 }
0 commit comments