From bb9d04d569460c41e1645f59294ebe40d4d312df Mon Sep 17 00:00:00 2001 From: Bruno Alves de Faria Date: Mon, 20 Mar 2017 17:13:41 -0300 Subject: [PATCH] Adjusting Standalone Viewer to the new structure --- .../client/components/header/header.html | 4 +- .../client/components/header/header.styl | 3 + .../StandaloneViewer/.meteor/packages | 2 + .../StandaloneViewer/.meteor/versions | 5 ++ .../flexboxLayout/flexboxLayout.html | 4 +- .../components/flexboxLayout/flexboxLayout.js | 4 +- .../standaloneViewer/standaloneViewer.html | 24 ++---- .../standaloneViewer/standaloneViewer.styl | 72 ++-------------- .../standaloneViewerMain.html | 5 +- .../standaloneViewerMain.js | 2 + .../standaloneViewerMain.styl | 2 +- .../toolbarSection/toolbarSection.html | 3 +- .../toolbarSection/toolbarSection.js | 5 +- .../client/components/viewer/viewer.html | 22 ++--- .../client/components/viewer/viewer.js | 3 + .../StandaloneViewer/client/config.js | 16 ++-- .../client/cornerstoneWebImageLoader.js | 2 +- .../StandaloneViewer/client/head.html | 2 +- .../StandaloneViewer/client/log.js | 3 - StandaloneViewer/StandaloneViewer/routes.js | 37 ++++---- .../StandaloneViewer/server/collections.js | 84 +++++++++---------- 21 files changed, 129 insertions(+), 175 deletions(-) delete mode 100644 StandaloneViewer/StandaloneViewer/client/log.js diff --git a/Packages/ohif-header/client/components/header/header.html b/Packages/ohif-header/client/components/header/header.html index a61b4ad15..14c21f73b 100644 --- a/Packages/ohif-header/client/components/header/header.html +++ b/Packages/ohif-header/client/components/header/header.html @@ -5,9 +5,7 @@ {{>section 'brand'}} {{>section 'headerAfterBrand'}} - - {{>section 'headerMenu'}} - + {{>section 'headerMenu'}} {{>UI.contentBlock}} diff --git a/Packages/ohif-header/client/components/header/header.styl b/Packages/ohif-header/client/components/header/header.styl index 885e72192..551e89ffd 100644 --- a/Packages/ohif-header/client/components/header/header.styl +++ b/Packages/ohif-header/client/components/header/header.styl @@ -18,6 +18,9 @@ body>.header text-decoration: none theme('color', '$defaultColor') + &:empty + display: none + &.header-big height: $topBarExpandedHeight background-color: rgba(21, 25, 30, 0.7) diff --git a/StandaloneViewer/StandaloneViewer/.meteor/packages b/StandaloneViewer/StandaloneViewer/.meteor/packages index ef0be5dea..702b3dea3 100644 --- a/StandaloneViewer/StandaloneViewer/.meteor/packages +++ b/StandaloneViewer/StandaloneViewer/.meteor/packages @@ -20,6 +20,7 @@ shell-server@0.2.1 # Server-side component of the `meteor shell` comm # OHIF Packages ohif:core +ohif:header ohif:design ohif:cornerstone ohif:viewerbase @@ -34,6 +35,7 @@ aldeed:simple-schema@1.5.3 stylus@2.513.8 iron:router session@1.1.7 +u2622:persistent-session@0.4.4 practicalmeteor:loglevel reactive-dict@1.1.8 twbs:bootstrap diff --git a/StandaloneViewer/StandaloneViewer/.meteor/versions b/StandaloneViewer/StandaloneViewer/.meteor/versions index 5dbeb0fed..7f6e4fd1e 100644 --- a/StandaloneViewer/StandaloneViewer/.meteor/versions +++ b/StandaloneViewer/StandaloneViewer/.meteor/versions @@ -6,6 +6,7 @@ aldeed:schema-index@1.1.1 aldeed:simple-schema@1.5.3 aldeed:template-extension@4.0.0 allow-deny@1.0.5 +amplify@1.0.0 autoupdate@1.3.12 babel-compiler@6.13.0 babel-runtime@1.0.1 @@ -76,9 +77,12 @@ ohif:cornerstone@0.0.1 ohif:design@0.0.1 ohif:dicom-services@0.0.1 ohif:hanging-protocols@0.0.1 +ohif:header@0.0.1 ohif:log@0.0.1 ohif:metadata@0.0.1 ohif:study-list@0.0.1 +ohif:themes@0.0.1 +ohif:themes-common@0.0.1 ohif:viewerbase@0.0.1 ohif:wadoproxy@0.0.1 ordered-dict@1.0.9 @@ -110,6 +114,7 @@ templating-runtime@1.2.15 templating-tools@1.0.5 tracker@1.1.1 twbs:bootstrap@3.3.6 +u2622:persistent-session@0.4.4 ui@1.0.12 underscore@1.0.10 url@1.0.11 diff --git a/StandaloneViewer/StandaloneViewer/client/components/flexboxLayout/flexboxLayout.html b/StandaloneViewer/StandaloneViewer/client/components/flexboxLayout/flexboxLayout.html index 66a6acd26..4683dbc9c 100644 --- a/StandaloneViewer/StandaloneViewer/client/components/flexboxLayout/flexboxLayout.html +++ b/StandaloneViewer/StandaloneViewer/client/components/flexboxLayout/flexboxLayout.html @@ -1,10 +1,10 @@ diff --git a/StandaloneViewer/StandaloneViewer/client/components/flexboxLayout/flexboxLayout.js b/StandaloneViewer/StandaloneViewer/client/components/flexboxLayout/flexboxLayout.js index 243885966..06206fabe 100644 --- a/StandaloneViewer/StandaloneViewer/client/components/flexboxLayout/flexboxLayout.js +++ b/StandaloneViewer/StandaloneViewer/client/components/flexboxLayout/flexboxLayout.js @@ -1,5 +1,7 @@ +import { Template } from 'meteor/templating'; + Template.flexboxLayout.events({ - 'transitionend .sidebarMenu'(event) { + 'transitionend .sidebarMenu'(event, instance) { if (!event.target.classList.contains('sidebarMenu')) { return; } diff --git a/StandaloneViewer/StandaloneViewer/client/components/standaloneViewer/standaloneViewer.html b/StandaloneViewer/StandaloneViewer/client/components/standaloneViewer/standaloneViewer.html index 8523847ee..33289bf06 100644 --- a/StandaloneViewer/StandaloneViewer/client/components/standaloneViewer/standaloneViewer.html +++ b/StandaloneViewer/StandaloneViewer/client/components/standaloneViewer/standaloneViewer.html @@ -1,17 +1,11 @@ diff --git a/StandaloneViewer/StandaloneViewer/client/components/standaloneViewer/standaloneViewer.styl b/StandaloneViewer/StandaloneViewer/client/components/standaloneViewer/standaloneViewer.styl index 8f7395275..b77244f5e 100644 --- a/StandaloneViewer/StandaloneViewer/client/components/standaloneViewer/standaloneViewer.styl +++ b/StandaloneViewer/StandaloneViewer/client/components/standaloneViewer/standaloneViewer.styl @@ -1,78 +1,24 @@ @import "{ohif:design}/app" -$expandedHeight = 160px +body>.header -.logoImage - display: inline-block - height: 100% - float: left - -.topBar - height: $topBarHeight - padding: 10px 10px 0 - theme('color', '$textPrimaryColor') - theme('background-color', '$primaryBackgroundColor') - transition(all 0.5s ease) - - &>.clearfix - position: relative - - .brandSection + .brand height: 30px display: inline-block text-decoration: none - .logoImage + .logo-image + display: inline-block + fill: transparent + float: left + height: 100% margin: 0 8px 0 0 width: 30px - .logoText + .logo-text display: inline-block font-family: $logoFontFamily + font-size: 14px font-weight: $logoFontWeight theme('color', '$textPrimaryColor') line-height: 30px - - .studyListLinkSection - theme('border-left', '%s solid $uiBorderColor' % $uiBorderThickness) - margin: 3px 0 0 10px - padding: 0 0 0 10px - - .btn - theme('color', '$textSecondaryColor') - cursor: pointer - font-size: 13px - font-weight: 500 - line-height: 26px - - &:hover - theme('color', '$hoverColor') - - &:active - theme('color', '$activeColor') - - &.studyList - background-color: rgba(21, 25, 30, 0.7) - height: $expandedHeight - padding-left: $studyListPadding - padding-right: $studyListPadding - - .brandSection - height: 100% - width: 80% - line-height: $expandedHeight - 10px - - .logoImage - width: 50px - margin: 0 20px 0 0 - - .logoText - font-size: 30px - - .studyListLinkSection - border: none - left: 0 - margin: 0 - padding: 0 - position: absolute - top: 0 diff --git a/StandaloneViewer/StandaloneViewer/client/components/standaloneViewerMain/standaloneViewerMain.html b/StandaloneViewer/StandaloneViewer/client/components/standaloneViewerMain/standaloneViewerMain.html index a74844419..8d3d1dd11 100644 --- a/StandaloneViewer/StandaloneViewer/client/components/standaloneViewerMain/standaloneViewerMain.html +++ b/StandaloneViewer/StandaloneViewer/client/components/standaloneViewerMain/standaloneViewerMain.html @@ -1,6 +1,5 @@ \ No newline at end of file + diff --git a/StandaloneViewer/StandaloneViewer/client/components/standaloneViewerMain/standaloneViewerMain.js b/StandaloneViewer/StandaloneViewer/client/components/standaloneViewerMain/standaloneViewerMain.js index d74da00db..672b029db 100644 --- a/StandaloneViewer/StandaloneViewer/client/components/standaloneViewerMain/standaloneViewerMain.js +++ b/StandaloneViewer/StandaloneViewer/client/components/standaloneViewerMain/standaloneViewerMain.js @@ -1,3 +1,5 @@ +import { Meteor } from 'meteor/meteor'; +import { Template } from 'meteor/templating'; import { OHIF } from 'meteor/ohif:core'; import 'meteor/ohif:viewerbase'; diff --git a/StandaloneViewer/StandaloneViewer/client/components/standaloneViewerMain/standaloneViewerMain.styl b/StandaloneViewer/StandaloneViewer/client/components/standaloneViewerMain/standaloneViewerMain.styl index 4b308c602..f7aec7c0d 100644 --- a/StandaloneViewer/StandaloneViewer/client/components/standaloneViewerMain/standaloneViewerMain.styl +++ b/StandaloneViewer/StandaloneViewer/client/components/standaloneViewerMain/standaloneViewerMain.styl @@ -11,7 +11,7 @@ #imageViewerViewports padding-right: 0 !important // Top remove odd borders from non-existant right Sidebar - + .viewportContainer theme('border', '%s solid $uiBorderColorDark' % $viewportBorderThickness) float: left diff --git a/StandaloneViewer/StandaloneViewer/client/components/toolbarSection/toolbarSection.html b/StandaloneViewer/StandaloneViewer/client/components/toolbarSection/toolbarSection.html index 616e03650..fb58ebd2b 100644 --- a/StandaloneViewer/StandaloneViewer/client/components/toolbarSection/toolbarSection.html +++ b/StandaloneViewer/StandaloneViewer/client/components/toolbarSection/toolbarSection.html @@ -4,8 +4,7 @@
{{>roundedButtonGroup leftSidebarToggleButtonData}}
- {{> toolbarSectionTools - toolbarButtons=toolbarButtons}} + {{>toolbarSectionTools toolbarButtons=toolbarButtons}} diff --git a/StandaloneViewer/StandaloneViewer/client/components/toolbarSection/toolbarSection.js b/StandaloneViewer/StandaloneViewer/client/components/toolbarSection/toolbarSection.js index caff47fdb..923d46e88 100644 --- a/StandaloneViewer/StandaloneViewer/client/components/toolbarSection/toolbarSection.js +++ b/StandaloneViewer/StandaloneViewer/client/components/toolbarSection/toolbarSection.js @@ -1,3 +1,4 @@ +import { Template } from 'meteor/templating'; import { OHIF } from 'meteor/ohif:core'; import 'meteor/ohif:viewerbase'; @@ -85,7 +86,7 @@ Template.toolbarSection.helpers({ iconClasses: 'fa fa-trash' }); - var buttonData = []; + const buttonData = []; buttonData.push({ id: 'zoom', @@ -220,7 +221,7 @@ Template.toolbarSection.onRendered(function() { const disabledToolButtons = states.disabledToolButtons; const allToolbarButtons = $('#toolbar').find('button'); if (disabledToolButtons && disabledToolButtons.length > 0) { - for (var i = 0; i < allToolbarButtons.length; i++) { + for (let i = 0; i < allToolbarButtons.length; i++) { const toolbarButton = allToolbarButtons[i]; $(toolbarButton).prop('disabled', false); diff --git a/StandaloneViewer/StandaloneViewer/client/components/viewer/viewer.html b/StandaloneViewer/StandaloneViewer/client/components/viewer/viewer.html index f5e9a6041..92901841e 100644 --- a/StandaloneViewer/StandaloneViewer/client/components/viewer/viewer.html +++ b/StandaloneViewer/StandaloneViewer/client/components/viewer/viewer.html @@ -1,15 +1,15 @@ \ No newline at end of file + diff --git a/StandaloneViewer/StandaloneViewer/client/components/viewer/viewer.js b/StandaloneViewer/StandaloneViewer/client/components/viewer/viewer.js index 473c335ac..669369ca5 100644 --- a/StandaloneViewer/StandaloneViewer/client/components/viewer/viewer.js +++ b/StandaloneViewer/StandaloneViewer/client/components/viewer/viewer.js @@ -69,6 +69,9 @@ Template.viewer.onCreated(() => { OHIF.viewer.data.activeViewport = 0; } + // Store the viewer data in session for further user + Session.setPersistent('ViewerData', OHIF.viewer.data); + Session.set('activeViewport', OHIF.viewer.data.activeViewport || 0); // @TypeSafeStudies diff --git a/StandaloneViewer/StandaloneViewer/client/config.js b/StandaloneViewer/StandaloneViewer/client/config.js index dba72a935..0b1d9e0b5 100644 --- a/StandaloneViewer/StandaloneViewer/client/config.js +++ b/StandaloneViewer/StandaloneViewer/client/config.js @@ -3,15 +3,15 @@ import { OHIF } from 'meteor/ohif:core'; import { cornerstoneWADOImageLoader } from 'meteor/ohif:cornerstone'; Meteor.startup(function() { - const maxWebWorkers = Math.max(navigator.hardwareConcurrency - 1, 1); + const maxWebWorkers = Math.max(navigator.hardwareConcurrency - 1, 1); const config = { - maxWebWorkers: maxWebWorkers, - startWebWorkersOnDemand: true, - webWorkerPath : OHIF.utils.absoluteUrl('packages/ohif_cornerstone/public/js/cornerstoneWADOImageLoaderWebWorker.es5.js'), + maxWebWorkers: maxWebWorkers, + startWebWorkersOnDemand: true, + webWorkerPath: OHIF.utils.absoluteUrl('packages/ohif_cornerstone/public/js/cornerstoneWADOImageLoaderWebWorker.es5.js'), taskConfiguration: { - 'decodeTask' : { - loadCodecsOnStartup : true, - initializeCodecsOnStartup: false, + decodeTask: { + loadCodecsOnStartup: true, + initializeCodecsOnStartup: false, codecsPath: OHIF.utils.absoluteUrl('packages/ohif_cornerstone/public/js/cornerstoneWADOImageLoaderCodecs.es5.js'), usePDFJS: false } @@ -19,4 +19,4 @@ Meteor.startup(function() { }; cornerstoneWADOImageLoader.webWorkerManager.initialize(config); -}); \ No newline at end of file +}); diff --git a/StandaloneViewer/StandaloneViewer/client/cornerstoneWebImageLoader.js b/StandaloneViewer/StandaloneViewer/client/cornerstoneWebImageLoader.js index 12102bc3c..079b117ee 100644 --- a/StandaloneViewer/StandaloneViewer/client/cornerstoneWebImageLoader.js +++ b/StandaloneViewer/StandaloneViewer/client/cornerstoneWebImageLoader.js @@ -161,4 +161,4 @@ cornerstoneWebImageLoader = {}; cornerstone.registerImageLoader('https', loadImage); cornerstoneWebImageLoader.configure = configure; return cornerstone; -}($, cornerstone, cornerstoneWebImageLoader)); \ No newline at end of file +}($, cornerstone, cornerstoneWebImageLoader)); diff --git a/StandaloneViewer/StandaloneViewer/client/head.html b/StandaloneViewer/StandaloneViewer/client/head.html index 4e64038b6..948416d3a 100644 --- a/StandaloneViewer/StandaloneViewer/client/head.html +++ b/StandaloneViewer/StandaloneViewer/client/head.html @@ -8,4 +8,4 @@ - \ No newline at end of file + diff --git a/StandaloneViewer/StandaloneViewer/client/log.js b/StandaloneViewer/StandaloneViewer/client/log.js deleted file mode 100644 index 7af377eb9..000000000 --- a/StandaloneViewer/StandaloneViewer/client/log.js +++ /dev/null @@ -1,3 +0,0 @@ -// Create application logger using loglevel -// https://atmospherejs.com/spacejamio/loglevel -log = loglevel.createAppLogger('StandaloneViewer', defaultLevel = 'info'); diff --git a/StandaloneViewer/StandaloneViewer/routes.js b/StandaloneViewer/StandaloneViewer/routes.js index d7cecc83e..ab7fc41e7 100644 --- a/StandaloneViewer/StandaloneViewer/routes.js +++ b/StandaloneViewer/StandaloneViewer/routes.js @@ -1,6 +1,10 @@ +import { Meteor } from 'meteor/meteor'; +import { Router } from 'meteor/iron:router'; +import { OHIF } from 'meteor/ohif:core'; + if (Meteor.isClient) { // Disconnect from the Meteor Server since we don't need it - console.log('Disconnecting from the Meteor server'); + OHIF.log.info('Disconnecting from the Meteor server'); Meteor.disconnect(); Router.configure({ @@ -15,31 +19,31 @@ if (Meteor.isClient) { let id = this.params.id; if (!id) { - id = 'testId'; + id = 'testId'; } // Define a request to the server to retrieve the study data // as JSON, given an ID that was in the Route - var oReq = new XMLHttpRequest(); + const oReq = new XMLHttpRequest(); // Add event listeners for request failure - oReq.addEventListener("error", () => { - console.warn("An error occurred while retrieving the JSON data"); + oReq.addEventListener('error', () => { + OHIF.log.warn('An error occurred while retrieving the JSON data'); }); const self = this; // When the JSON has been returned, parse it into a JavaScript Object // and render the OHIF Viewer with this data - oReq.addEventListener("load", function() { + oReq.addEventListener('load', function() { // Parse the response content // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseText if (!this.responseText) { - console.warn('Response was undefined'); + OHIF.log.warn('Response was undefined'); return; } - console.log(JSON.stringify(this.responseText, null, 2)); + OHIF.log.info(JSON.stringify(this.responseText, null, 2)); const parsed = JSON.parse(this.responseText); @@ -60,8 +64,8 @@ if (Meteor.isClient) { // Open the Request to the server for the JSON data // In this case we have a server-side route called /api/ // which responds to GET requests with the study data - console.log('Sending Request to: ' + "/api/" + id); - oReq.open("GET", "/api/" + id); + OHIF.log.info(`Sending Request to: /api/${id}`); + oReq.open('GET', `/api/${id}`); // Fire the request the server oReq.send(); @@ -70,7 +74,6 @@ if (Meteor.isClient) { }); } - // This is ONLY for demo purposes. if (Meteor.isServer) { // You can test this with: @@ -79,19 +82,19 @@ if (Meteor.isServer) { // Or by going to: // http://localhost:3000/api/testId - Router.route('/api/:id', {where: 'server'}).get(function () { + Router.route('/api/:id', { where: 'server' }).get(function() { // "this" is the RouteController instance. // "this.response" is the Connect response object // "this.request" is the Connect request object const id = this.params.id; // Find the relevant study data from the Collection given the ID - var data = RequestStudies.findOne({transactionId: id}); + const data = RequestStudies.findOne({ transactionId: id }); // Set the response headers to return JSON to any server - this.response.setHeader("Content-Type", "application/json"); - this.response.setHeader("Access-Control-Allow-Origin", "*"); - this.response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); + this.response.setHeader('Content-Type', 'application/json'); + this.response.setHeader('Access-Control-Allow-Origin', '*'); + this.response.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept'); // Change the response text depending on the available study data if (!data) { @@ -104,4 +107,4 @@ if (Meteor.isServer) { // Finalize the response this.response.end(); }); -} \ No newline at end of file +} diff --git a/StandaloneViewer/StandaloneViewer/server/collections.js b/StandaloneViewer/StandaloneViewer/server/collections.js index 466589a77..c0ab40d72 100644 --- a/StandaloneViewer/StandaloneViewer/server/collections.js +++ b/StandaloneViewer/StandaloneViewer/server/collections.js @@ -1,3 +1,5 @@ +import { Meteor } from 'meteor/meteor'; + // Create a Collection to store data RequestStudies = new Meteor.Collection('requestStudies'); @@ -6,32 +8,32 @@ RequestStudies.remove({}); // Insert our test data RequestStudies.insert({ - 'transactionId': 'testId', - 'studies': [{ - 'studyInstanceUid': '23.23.21.3.32', - 'patientName': 'Patient Name', - 'seriesList': [{ - 'seriesInstanceUid': '1.23.2.32.1.2.1.3.2', - 'seriesDescription': 'Wikipedia Samples', - 'instances': [ + transactionId: 'testId', + studies: [{ + studyInstanceUid: '23.23.21.3.32', + patientName: 'Patient Name', + seriesList: [{ + seriesInstanceUid: '1.23.2.32.1.2.1.3.2', + seriesDescription: 'Wikipedia Samples', + instances: [ { - 'sopInstanceUid': '1.2.3.2.32.18.8', - 'rows': 1, // TODO: Remove all requirement for this - 'url': 'https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg' + sopInstanceUid: '1.2.3.2.32.18.8', + rows: 1, // TODO: Remove all requirement for this + url: 'https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg' }, { - 'sopInstanceUid': '1.2.3.2.32.18.9', - 'rows': 1, - 'url': 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Sample_Floorplan.jpg/800px-Sample_Floorplan.jpg' + sopInstanceUid: '1.2.3.2.32.18.9', + rows: 1, + url: 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Sample_Floorplan.jpg/800px-Sample_Floorplan.jpg' } ] }, { - 'seriesInstanceUid': '1.33.2.32.1.2.1.3.2', - 'seriesDescription': 'JPS-sample', - 'instances': [ + seriesInstanceUid: '1.33.2.32.1.2.1.3.2', + seriesDescription: 'JPS-sample', + instances: [ { - 'sopInstanceUid': '1.2.3.2.32.18.10', - 'rows': 1, - 'url': 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c7/JPS-sample.jpg/800px-JPS-sample.jpg' + sopInstanceUid: '1.2.3.2.32.18.10', + rows: 1, + url: 'https://upload.wikimedia.org/wikipedia/commons/thumb/c/c7/JPS-sample.jpg/800px-JPS-sample.jpg' } ] }] @@ -40,36 +42,34 @@ RequestStudies.insert({ // Insert our test data RequestStudies.insert({ - 'transactionId': 'testDICOMs', - 'studies': [{ - 'studyInstanceUid': '23.23.21.3.32', - 'patientName': 'Patient Name', - 'seriesList': [{ - 'seriesInstanceUid': '1.23.2.32.1.2.1.3.2', - 'seriesDescription': 'T-1', - 'instances': [ + transactionId: 'testDICOMs', + studies: [{ + studyInstanceUid: '23.23.21.3.32', + patientName: 'Patient Name', + seriesList: [{ + seriesInstanceUid: '1.23.2.32.1.2.1.3.2', + seriesDescription: 'T-1', + instances: [ { - 'sopInstanceUid': '1.2.3.2.32.18.8', - 'rows': 1, // TODO: Remove all requirement for this - 'url': 'dicomweb://cornerstonetech.org/images/ClearCanvas/MRStudy/1.2.840.113619.2.5.1762583153.215519.978957063.80.dcm' + sopInstanceUid: '1.2.3.2.32.18.8', + rows: 1, // TODO: Remove all requirement for this + url: 'dicomweb://cornerstonetech.org/images/ClearCanvas/MRStudy/1.2.840.113619.2.5.1762583153.215519.978957063.80.dcm' }, { - 'sopInstanceUid': '1.2.3.2.32.18.9', - 'rows': 1, - 'url': 'dicomweb://cornerstonetech.org/images/ClearCanvas/MRStudy/1.2.840.113619.2.5.1762583153.215519.978957063.81.dcm' + sopInstanceUid: '1.2.3.2.32.18.9', + rows: 1, + url: 'dicomweb://cornerstonetech.org/images/ClearCanvas/MRStudy/1.2.840.113619.2.5.1762583153.215519.978957063.81.dcm' } ] }, { - 'seriesInstanceUid': '1.33.2.32.1.2.1.3.2', - 'seriesDescription': 'COR T-1', - 'instances': [ + seriesInstanceUid: '1.33.2.32.1.2.1.3.2', + seriesDescription: 'COR T-1', + instances: [ { - 'sopInstanceUid': '1.2.3.2.32.18.10', - 'rows': 1, - 'url': 'dicomweb://cornerstonetech.org/images/ClearCanvas/MRStudy/1.2.840.113619.2.5.1762583153.215519.978957063.136.dcm' + sopInstanceUid: '1.2.3.2.32.18.10', + rows: 1, + url: 'dicomweb://cornerstonetech.org/images/ClearCanvas/MRStudy/1.2.840.113619.2.5.1762583153.215519.978957063.136.dcm' } ] }] }] }); - -