Mercurial > hg > orthanc-stone
comparison 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 |
comparison
equal
deleted
inserted
replaced
1702:bc40b6450261 | 1703:76c590a62755 |
---|---|
222 }); | 222 }); |
223 } | 223 } |
224 }); | 224 }); |
225 }, | 225 }, |
226 methods: { | 226 methods: { |
227 SeriesDragAccept: function(event) { | 227 DragDrop: function(event) { |
228 event.preventDefault(); | |
229 }, | |
230 SeriesDragDrop: function(event) { | |
231 event.preventDefault(); | 228 event.preventDefault(); |
232 | 229 |
233 // The "parseInt()" is because of Microsoft Edge Legacy (*) | 230 // The "parseInt()" is because of Microsoft Edge Legacy (*) |
234 this.$emit('updated-series', parseInt(event.dataTransfer.getData('seriesIndex'), 10)); | 231 this.$emit('updated-series', parseInt(event.dataTransfer.getData('seriesIndex'), 10)); |
235 }, | 232 }, |
366 windowingPresets: [], | 363 windowingPresets: [], |
367 | 364 |
368 selectedStudies: [], | 365 selectedStudies: [], |
369 series: [], | 366 series: [], |
370 studies: [], | 367 studies: [], |
371 seriesIndex: {} // Maps "SeriesInstanceUID" to "index in this.series" | 368 seriesIndex: {}, // Maps "SeriesInstanceUID" to "index in this.series" |
369 multiframeInstanceThumbnails: {} | |
372 } | 370 } |
373 }, | 371 }, |
374 computed: { | 372 computed: { |
375 getSelectedStudies() { | 373 getSelectedStudies() { |
376 var s = ''; | 374 var s = ''; |
500 series.push({ | 498 series.push({ |
501 'numberOfFrames' : 0, | 499 'numberOfFrames' : 0, |
502 'complete' : false, | 500 'complete' : false, |
503 'type' : stone.ThumbnailType.LOADING, | 501 'type' : stone.ThumbnailType.LOADING, |
504 'color': study.color, | 502 'color': study.color, |
505 'tags': sourceSeries[i] | 503 'tags': sourceSeries[i], |
504 'multiframeInstances': null | |
506 }); | 505 }); |
507 } | 506 } |
508 } | 507 } |
509 } | 508 } |
510 | 509 |
663 | 662 |
664 if (seriesInstanceUid in pendingSeriesPdf_) { | 663 if (seriesInstanceUid in pendingSeriesPdf_) { |
665 stone.FetchPdf(studyInstanceUid, seriesInstanceUid); | 664 stone.FetchPdf(studyInstanceUid, seriesInstanceUid); |
666 delete pendingSeriesPdf_[seriesInstanceUid]; | 665 delete pendingSeriesPdf_[seriesInstanceUid]; |
667 } | 666 } |
667 | |
668 if (stone.LoadMultiframeInstancesFromSeries(seriesInstanceUid)) { | |
669 series.multiframeInstances = JSON.parse(stone.GetStringBuffer()); | |
670 } | |
668 } | 671 } |
669 | 672 |
670 // https://fr.vuejs.org/2016/02/06/common-gotchas/#Why-isn%E2%80%99t-the-DOM-updating | 673 // https://fr.vuejs.org/2016/02/06/common-gotchas/#Why-isn%E2%80%99t-the-DOM-updating |
671 this.$set(this.series, index, series); | 674 this.$set(this.series, index, series); |
672 | 675 |
826 if (localStorage.settingSoftwareRendering) { | 829 if (localStorage.settingSoftwareRendering) { |
827 this.settingSoftwareRendering = (localStorage.settingSoftwareRendering == '1'); | 830 this.settingSoftwareRendering = (localStorage.settingSoftwareRendering == '1'); |
828 } | 831 } |
829 | 832 |
830 this.modalNotDiagnostic = this.settingNotDiagnostic; | 833 this.modalNotDiagnostic = this.settingNotDiagnostic; |
834 | |
835 var that = this; | |
836 | |
837 window.addEventListener('MultiframeInstanceThumbnailLoaded', function(args) { | |
838 that.$set(that.multiframeInstanceThumbnails, args.detail.sopInstanceUid, args.detail.thumbnail); | |
839 }); | |
840 | |
841 window.addEventListener('ThumbnailLoaded', function(args) { | |
842 //var studyInstanceUid = args.detail.studyInstanceUid; | |
843 var seriesInstanceUid = args.detail.seriesInstanceUid; | |
844 that.UpdateSeriesThumbnail(seriesInstanceUid); | |
845 }); | |
846 | |
847 window.addEventListener('MetadataLoaded', function(args) { | |
848 var studyInstanceUid = args.detail.studyInstanceUid; | |
849 var seriesInstanceUid = args.detail.seriesInstanceUid; | |
850 that.UpdateIsSeriesComplete(studyInstanceUid, seriesInstanceUid); | |
851 }); | |
831 } | 852 } |
832 }); | 853 }); |
833 | 854 |
834 | 855 |
835 | 856 |
911 var studyInstanceUid = app.series[i].tags[STUDY_INSTANCE_UID]; | 932 var studyInstanceUid = app.series[i].tags[STUDY_INSTANCE_UID]; |
912 var seriesInstanceUid = app.series[i].tags[SERIES_INSTANCE_UID]; | 933 var seriesInstanceUid = app.series[i].tags[SERIES_INSTANCE_UID]; |
913 app.UpdateSeriesThumbnail(seriesInstanceUid); | 934 app.UpdateSeriesThumbnail(seriesInstanceUid); |
914 app.UpdateIsSeriesComplete(studyInstanceUid, seriesInstanceUid); | 935 app.UpdateIsSeriesComplete(studyInstanceUid, seriesInstanceUid); |
915 } | 936 } |
916 }); | |
917 | |
918 | |
919 window.addEventListener('ThumbnailLoaded', function(args) { | |
920 //var studyInstanceUid = args.detail.studyInstanceUid; | |
921 var seriesInstanceUid = args.detail.seriesInstanceUid; | |
922 app.UpdateSeriesThumbnail(seriesInstanceUid); | |
923 }); | |
924 | |
925 | |
926 window.addEventListener('MetadataLoaded', function(args) { | |
927 var studyInstanceUid = args.detail.studyInstanceUid; | |
928 var seriesInstanceUid = args.detail.seriesInstanceUid; | |
929 app.UpdateIsSeriesComplete(studyInstanceUid, seriesInstanceUid); | |
930 }); | 937 }); |
931 | 938 |
932 | 939 |
933 window.addEventListener('StoneException', function() { | 940 window.addEventListener('StoneException', function() { |
934 console.error('Exception catched in Stone'); | 941 console.error('Exception catched in Stone'); |