UNPKG

custom-cornerstone-tools

Version:

Medical imaging tools for the Cornerstone library - customized for DrNuvem

194 lines (170 loc) 7.2 kB
<!DOCTYPE HTML> <html> <head> <!-- support for mobile touch devices --> <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1"> <!-- twitter bootstrap CSS stylesheet - not required by cornerstoneTools --> <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> <link href="../cornerstone.min.css" rel="stylesheet"> </head> <body> <div class="container"> <div class="page-header"> <h1> WWWC Synchronizer Example </h1> <p> This page contains an example of the ww/wc synchronizer tool </p> </div> <div class="row"> <div class="col-xs-2"> <ul class="list-group"> <a href="#" id="invert" class="list-group-item">Toggle Invert</a> <a href="#" id="add" class="list-group-item active">Add All</a> <a href="#" id="remove" class="list-group-item">Remove All</a> <a href="#" id="add3" class="list-group-item">Add 3rd</a> <a href="#" id="remove3" class="list-group-item">Remove 3rd</a> </ul> </div> <div class="col-xs-10"> <div style="width:256px;height:256px;position:relative;display:inline-block;color:white;" oncontextmenu="return false" class='cornerstone-enabled-image' unselectable='on' onselectstart='return false;' onmousedown='return false;'> <div id="axial1" style="width:256px;height:256px;top:0px;left:0px; position:absolute;"> </div> </div> <div style="width:256px;height:256px;position:relative;display:inline-block;color:white;" oncontextmenu="return false" class='cornerstone-enabled-image' unselectable='on' onselectstart='return false;' onmousedown='return false;'> <div id="axial2" style="width:256px;height:256px;top:0px;left:0px; position:absolute;"> </div> </div> <div style="width:256px;height:256px;position:relative;display:inline-block;color:white;" oncontextmenu="return false" class='cornerstone-enabled-image' unselectable='on' onselectstart='return false;' onmousedown='return false;'> <div id="axial3" style="width:256px;height:256px;top:0px;left:0px; position:absolute;"> </div> </div> </div> </div> </div> </body> <!-- jquery - included to make things easier to demo, not needed or used by the cornerstone library but is used by our example image loader--> <script src="../jquery.min.js"></script> <!-- include the cornerstone library --> <script src="../cornerstone.min.js"></script> <script src="../cornerstoneMath.min.js"></script> <!-- include the cornerstone tools library --> <script src="../../dist/cornerstoneTools.js"></script> <!-- include special code for these examples which provides images --> <script src="../exampleImageLoader.js"></script> <script src="../exampleMetaDataProvider.js"></script> <script> var axialElement1 = $('#axial1').get(0); var axialElement2 = $('#axial2').get(0); var axialElement3 = $('#axial3').get(0); var axialImageIds = [ 'example://1', 'example://2' ] var axialStack1 = { currentImageIdIndex : 0, imageIds: axialImageIds }; var axialStack2 = { currentImageIdIndex : 0, imageIds: axialImageIds }; var axialStack3 = { currentImageIdIndex : 0, imageIds: axialImageIds }; var synchronizer = new cornerstoneTools.Synchronizer("CornerstoneImageRendered", cornerstoneTools.wwwcSynchronizer); // image enable the dicomImage element and the mouse inputs cornerstone.enable(axialElement1); cornerstone.enable(axialElement2); cornerstone.enable(axialElement3); cornerstoneTools.mouseInput.enable(axialElement1); cornerstoneTools.mouseWheelInput.enable(axialElement1); cornerstoneTools.mouseInput.enable(axialElement2); cornerstoneTools.mouseWheelInput.enable(axialElement2); cornerstoneTools.mouseInput.enable(axialElement3); cornerstoneTools.mouseWheelInput.enable(axialElement3); cornerstone.loadImage(axialImageIds[0]).then(function(image) { // display this image cornerstone.displayImage(axialElement1, image); cornerstone.displayImage(axialElement2, image); cornerstone.displayImage(axialElement3, image); // set the stack as tool state cornerstoneTools.addStackStateManager(axialElement1, ['stack', 'linkedStacks']); cornerstoneTools.addStackStateManager(axialElement2, ['stack', 'linkedStacks']); cornerstoneTools.addStackStateManager(axialElement3, ['stack', 'linkedStacks']); cornerstoneTools.addToolState(axialElement1, 'stack', axialStack1); cornerstoneTools.addToolState(axialElement2, 'stack', axialStack2); cornerstoneTools.addToolState(axialElement3, 'stack', axialStack3); // Enable all tools we want to use with this element cornerstoneTools.stackScrollWheel.activate(axialElement1); cornerstoneTools.stackScrollWheel.activate(axialElement2); cornerstoneTools.stackScrollWheel.activate(axialElement3); cornerstoneTools.wwwc.activate(axialElement1, 1); cornerstoneTools.wwwc.activate(axialElement2, 1); cornerstoneTools.wwwc.activate(axialElement3, 1); synchronizer.add(axialElement1); synchronizer.add(axialElement2); synchronizer.add(axialElement3); function activate(id) { $('a').removeClass('active'); $(id).addClass('active'); } $('#invert').click(function() { var viewport = cornerstone.getViewport(axialElement1); if (viewport.invert === true) { viewport.invert = false; } else { viewport.invert = true; } cornerstone.setViewport(axialElement1, viewport); return false; }); $('#add').click(function() { activate("#add"); synchronizer.add(axialElement1); synchronizer.add(axialElement2); synchronizer.add(axialElement3); return false; }); $('#remove').click(function() { activate("#remove"); synchronizer.remove(axialElement1); synchronizer.remove(axialElement2); synchronizer.remove(axialElement3); return false; }); $('#add3').click(function() { activate("#add3"); synchronizer.add(axialElement3); return false; }); $('#remove3').click(function() { activate("#remove3"); synchronizer.remove(axialElement3); return false; }); }); </script> </html>