diff Applications/StoneWebViewer/WebApplication/app.js @ 1703:76c590a62755

start work on series with multiple multiframe instances
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 27 Nov 2020 16:36:43 +0100
parents bc40b6450261
children 902d13889ae4
line wrap: on
line diff
--- a/Applications/StoneWebViewer/WebApplication/app.js	Fri Nov 27 13:57:28 2020 +0100
+++ b/Applications/StoneWebViewer/WebApplication/app.js	Fri Nov 27 16:36:43 2020 +0100
@@ -224,10 +224,7 @@
     });
   },
   methods: {
-    SeriesDragAccept: function(event) {
-      event.preventDefault();
-    },
-    SeriesDragDrop: function(event) {
+    DragDrop: function(event) {
       event.preventDefault();
 
       // The "parseInt()" is because of Microsoft Edge Legacy (*)
@@ -368,7 +365,8 @@
       selectedStudies: [],
       series: [],
       studies: [],
-      seriesIndex: {}  // Maps "SeriesInstanceUID" to "index in this.series"
+      seriesIndex: {},  // Maps "SeriesInstanceUID" to "index in this.series"
+      multiframeInstanceThumbnails: {}
     }
   },
   computed: {
@@ -502,7 +500,8 @@
               'complete' : false,
               'type' : stone.ThumbnailType.LOADING,
               'color': study.color,
-              'tags': sourceSeries[i]
+              'tags': sourceSeries[i],
+              'multiframeInstances': null
             });
           }
         }
@@ -665,6 +664,10 @@
             stone.FetchPdf(studyInstanceUid, seriesInstanceUid);
             delete pendingSeriesPdf_[seriesInstanceUid];
           }
+
+          if (stone.LoadMultiframeInstancesFromSeries(seriesInstanceUid)) {
+            series.multiframeInstances = JSON.parse(stone.GetStringBuffer());
+          }
         }
 
         // https://fr.vuejs.org/2016/02/06/common-gotchas/#Why-isn%E2%80%99t-the-DOM-updating
@@ -828,6 +831,24 @@
     }
     
     this.modalNotDiagnostic = this.settingNotDiagnostic;
+
+    var that = this;
+    
+    window.addEventListener('MultiframeInstanceThumbnailLoaded', function(args) {
+      that.$set(that.multiframeInstanceThumbnails, args.detail.sopInstanceUid, args.detail.thumbnail);
+    });
+
+    window.addEventListener('ThumbnailLoaded', function(args) {
+      //var studyInstanceUid = args.detail.studyInstanceUid;
+      var seriesInstanceUid = args.detail.seriesInstanceUid;
+      that.UpdateSeriesThumbnail(seriesInstanceUid);
+    });
+
+    window.addEventListener('MetadataLoaded', function(args) {
+      var studyInstanceUid = args.detail.studyInstanceUid;
+      var seriesInstanceUid = args.detail.seriesInstanceUid;
+      that.UpdateIsSeriesComplete(studyInstanceUid, seriesInstanceUid);
+    });
   }
 });
 
@@ -916,20 +937,6 @@
 });
 
 
-window.addEventListener('ThumbnailLoaded', function(args) {
-  //var studyInstanceUid = args.detail.studyInstanceUid;
-  var seriesInstanceUid = args.detail.seriesInstanceUid;
-  app.UpdateSeriesThumbnail(seriesInstanceUid);
-});
-
-
-window.addEventListener('MetadataLoaded', function(args) {
-  var studyInstanceUid = args.detail.studyInstanceUid;
-  var seriesInstanceUid = args.detail.seriesInstanceUid;
-  app.UpdateIsSeriesComplete(studyInstanceUid, seriesInstanceUid);
-});
-
-
 window.addEventListener('StoneException', function() {
   console.error('Exception catched in Stone');
 });