comparison Applications/StoneWebViewer/WebApplication/app.js @ 2022:96d20b42e740

support of virtual series upon up/down keys
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 03 Dec 2022 17:42:12 +0100
parents 88673f50d7b9
children e0b7b2a8b914
comparison
equal deleted inserted replaced
2021:1458f3bcb991 2022:96d20b42e740
600 }); 600 });
601 } 601 }
602 }, 602 },
603 603
604 GetActiveViewportSeriesTags: function() { 604 GetActiveViewportSeriesTags: function() {
605 if (this.activeViewport == 1 && 605 if (this.activeViewport == 1) {
606 this.viewport1Content.virtualSeriesId === undefined) {
607 return this.viewport1Content.series.tags; 606 return this.viewport1Content.series.tags;
608 } 607 }
609 else if (this.activeViewport == 2 && 608 else if (this.activeViewport == 2) {
610 this.viewport2Content.virtualSeriesId === undefined) {
611 return this.viewport2Content.series.tags; 609 return this.viewport2Content.series.tags;
612 } 610 }
613 else if (this.activeViewport == 3 && 611 else if (this.activeViewport == 3) {
614 this.viewport3Content.virtualSeriesId === undefined) {
615 return this.viewport3Content.series.tags; 612 return this.viewport3Content.series.tags;
616 } 613 }
617 else if (this.activeViewport == 4 && 614 else if (this.activeViewport == 4) {
618 this.viewport4Content.virtualSeriesId === undefined) {
619 return this.viewport4Content.series.tags; 615 return this.viewport4Content.series.tags;
620 } 616 }
621 else { 617 else {
622 return null; 618 return null;
623 } 619 }
764 760
765 SetViewportSeriesInstanceUid: function(viewportIndex, seriesInstanceUid) { 761 SetViewportSeriesInstanceUid: function(viewportIndex, seriesInstanceUid) {
766 if (seriesInstanceUid in this.seriesIndex) { 762 if (seriesInstanceUid in this.seriesIndex) {
767 this.SetViewportSeries(viewportIndex, { 763 this.SetViewportSeries(viewportIndex, {
768 seriesIndex: this.seriesIndex[seriesInstanceUid] 764 seriesIndex: this.seriesIndex[seriesInstanceUid]
765 });
766 }
767 },
768
769 SetViewportVirtualSeries: function(viewportIndex, seriesInstanceUid, virtualSeriesId) {
770 if (seriesInstanceUid in this.seriesIndex) {
771 this.SetViewportSeries(viewportIndex, {
772 seriesIndex: this.seriesIndex[seriesInstanceUid],
773 virtualSeriesId: virtualSeriesId
769 }); 774 });
770 } 775 }
771 }, 776 },
772 777
773 SetViewportSeries: function(viewportIndex, info) { 778 SetViewportSeries: function(viewportIndex, info) {
1234 ChangeActiveSeries: function(offset) { 1239 ChangeActiveSeries: function(offset) {
1235 var seriesTags = this.GetActiveViewportSeriesTags(); 1240 var seriesTags = this.GetActiveViewportSeriesTags();
1236 if (seriesTags !== null) { 1241 if (seriesTags !== null) {
1237 var studyIndex = LookupIndexOfResource(this.studies, STUDY_INSTANCE_UID, seriesTags[STUDY_INSTANCE_UID]); 1242 var studyIndex = LookupIndexOfResource(this.studies, STUDY_INSTANCE_UID, seriesTags[STUDY_INSTANCE_UID]);
1238 if (studyIndex != -1) { 1243 if (studyIndex != -1) {
1244 var virtualSeriesId = this.GetActiveVirtualSeries();
1245 if (virtualSeriesId.length > 0) {
1246 virtualSeriesId = virtualSeriesId[0];
1247 } else {
1248 virtualSeriesId = '';
1249 }
1250
1239 var seriesInStudyIndices = this.studies[studyIndex].series; 1251 var seriesInStudyIndices = this.studies[studyIndex].series;
1240 for (var i = 0; i < seriesInStudyIndices.length; i++) { 1252 for (var i = 0; i < seriesInStudyIndices.length; i++) {
1253 var series = this.series[seriesInStudyIndices[i]];
1241 if (this.series[seriesInStudyIndices[i]].tags[SERIES_INSTANCE_UID] == seriesTags[SERIES_INSTANCE_UID]) { 1254 if (this.series[seriesInStudyIndices[i]].tags[SERIES_INSTANCE_UID] == seriesTags[SERIES_INSTANCE_UID]) {
1242 var next = i + offset; 1255 if (series.virtualSeries !== null) {
1243 if (next >= 0 && 1256 for (var j = 0; j < series.virtualSeries.length; j++) {
1244 next < seriesInStudyIndices.length) { 1257 if (series.virtualSeries[j].ID == virtualSeriesId) {
1245 this.SetViewportSeriesInstanceUid(this.activeViewport, this.series[seriesInStudyIndices[next]].tags[SERIES_INSTANCE_UID]); 1258 var next = j + offset;
1259 if (next >= 0 &&
1260 next < series.virtualSeries.length) {
1261 this.SetViewportVirtualSeries(this.activeViewport, seriesTags[SERIES_INSTANCE_UID], series.virtualSeries[next].ID);
1262 }
1263 return;
1264 }
1265 }
1246 } 1266 }
1247 break; 1267 else {
1268 var next = i + offset;
1269 if (next >= 0 &&
1270 next < seriesInStudyIndices.length) {
1271 this.SetViewportSeriesInstanceUid(this.activeViewport, this.series[seriesInStudyIndices[next]].tags[SERIES_INSTANCE_UID]);
1272 }
1273 return;
1274 }
1248 } 1275 }
1249 } 1276 }
1250 } 1277 }
1251 } 1278 }
1252 }, 1279 },
1261 next < this.studies.length) { 1288 next < this.studies.length) {
1262 var nextStudy = this.studies[next]; 1289 var nextStudy = this.studies[next];
1263 if (nextStudy.series.length > 0) { 1290 if (nextStudy.series.length > 0) {
1264 var seriesIndex = nextStudy.series[0]; 1291 var seriesIndex = nextStudy.series[0];
1265 if (this.series[seriesIndex].virtualSeries !== null) { 1292 if (this.series[seriesIndex].virtualSeries !== null) {
1266 this.ClickVirtualSeries(seriesIndex, this.series[seriesIndex].virtualSeries); 1293 this.ClickVirtualSeries(seriesIndex, this.series[seriesIndex].virtualSeries[0].ID);
1267 } else { 1294 } else {
1268 this.ClickSeries(seriesIndex); 1295 this.ClickSeries(seriesIndex);
1269 } 1296 }
1270 } 1297 }
1271 } 1298 }
1337 if (canvas != '') { 1364 if (canvas != '') {
1338 switch (event.key) { 1365 switch (event.key) {
1339 case 'Left': 1366 case 'Left':
1340 case 'ArrowLeft': 1367 case 'ArrowLeft':
1341 stone.DecrementFrame(canvas, false); 1368 stone.DecrementFrame(canvas, false);
1342 event.preventDefault();
1343 break; 1369 break;
1344 1370
1345 case 'Right': 1371 case 'Right':
1346 case 'ArrowRight': 1372 case 'ArrowRight':
1347 stone.IncrementFrame(canvas, false); 1373 stone.IncrementFrame(canvas, false);
1348 event.preventDefault();
1349 break; 1374 break;
1350 1375
1351 case 'Up': 1376 case 'Up':
1352 case 'ArrowUp': 1377 case 'ArrowUp':
1353 that.ChangeActiveSeries(-1); 1378 that.ChangeActiveSeries(-1);
1358 that.ChangeActiveSeries(1); 1383 that.ChangeActiveSeries(1);
1359 break; 1384 break;
1360 1385
1361 case 'PageUp': 1386 case 'PageUp':
1362 that.ChangeActiveStudy(-1); 1387 that.ChangeActiveStudy(-1);
1363 break 1388 break;
1364 1389
1365 case 'PageDown': 1390 case 'PageDown':
1366 that.ChangeActiveStudy(1); 1391 that.ChangeActiveStudy(1);
1367 break; 1392 break;
1368 1393
1369 case ' ': 1394 case ' ':
1370 case 'Space': 1395 case 'Space':
1371 dispatchEvent(new CustomEvent('KeyCineSwitch', { })); 1396 dispatchEvent(new CustomEvent('KeyCineSwitch', { }));
1372 event.preventDefault();
1373 break; 1397 break;
1374 1398
1375 default: 1399 default:
1376 break; 1400 break;
1377 } 1401 }