diff --git a/Packages/ohif-core/client/components/bootstrap/dialog/simple.html b/Packages/ohif-core/client/components/bootstrap/dialog/simple.html new file mode 100644 index 000000000..777bc1bd7 --- /dev/null +++ b/Packages/ohif-core/client/components/bootstrap/dialog/simple.html @@ -0,0 +1,19 @@ + diff --git a/Packages/ohif-core/client/components/bootstrap/dialog/simple.js b/Packages/ohif-core/client/components/bootstrap/dialog/simple.js new file mode 100644 index 000000000..25debff5a --- /dev/null +++ b/Packages/ohif-core/client/components/bootstrap/dialog/simple.js @@ -0,0 +1,44 @@ +import { Template } from 'meteor/templating'; +import { _ } from 'meteor/underscore'; +import { OHIF } from 'meteor/ohif:core'; + +Template.dialogSimple.onCreated(() => { + const instance = Template.instance(); + + instance.close = () => { + const $modal = instance.$('.modal'); + $modal.on('hidden.bs.modal', () => instance.data.promiseResolve()).modal('hide'); + }; +}); + +Template.dialogSimple.onRendered(() => { + const instance = Template.instance(); + + // Allow options ovewrite + const modalOptions = _.extend({ + backdrop: 'static', + keyboard: false + }, instance.data.modalOptions); + + const $modal = instance.$('.modal'); + + // Create the bootstrap modal + $modal.modal(modalOptions); + + const position = instance.data.position; + if (position) { + OHIF.ui.repositionDialog($modal, position.x, position.y); + } +}); + +Template.dialogSimple.events({ + keydown(event) { + const instance = Template.instance(); + const keyCode = event.keyCode || event.which; + + if (keyCode === 27) { + instance.close(); + event.stopPropagation(); + } + } +}); diff --git a/Packages/ohif-core/client/components/bootstrap/index.js b/Packages/ohif-core/client/components/bootstrap/index.js index 7352cc6fc..54858771b 100644 --- a/Packages/ohif-core/client/components/bootstrap/index.js +++ b/Packages/ohif-core/client/components/bootstrap/index.js @@ -5,6 +5,8 @@ import './dialog/form.html'; import './dialog/form.js'; import './dialog/login.html'; import './dialog/login.js'; +import './dialog/simple.html'; +import './dialog/simple.js'; import './dialog/unsavedChangesDialog.html'; import './dialog/unsavedChangesDialog.js'; diff --git a/Packages/ohif-core/client/ui/dialog/form.js b/Packages/ohif-core/client/ui/dialog/display.js similarity index 95% rename from Packages/ohif-core/client/ui/dialog/form.js rename to Packages/ohif-core/client/ui/dialog/display.js index b094c5470..12127d551 100644 --- a/Packages/ohif-core/client/ui/dialog/form.js +++ b/Packages/ohif-core/client/ui/dialog/display.js @@ -3,7 +3,7 @@ import { Blaze } from 'meteor/blaze'; import { _ } from 'meteor/underscore'; import { OHIF } from 'meteor/ohif:core'; -OHIF.ui.showFormDialog = (templateName, dialogData) => { +OHIF.ui.showDialog = (templateName, dialogData) => { // Check if the given template exists const template = Template[templateName]; if (!template) { diff --git a/Packages/ohif-core/client/ui/dialog/spatial.js b/Packages/ohif-core/client/ui/dialog/spatial.js index 2482c206d..94919bec4 100644 --- a/Packages/ohif-core/client/ui/dialog/spatial.js +++ b/Packages/ohif-core/client/ui/dialog/spatial.js @@ -23,7 +23,7 @@ OHIF.ui.repositionDialog = ($modal, x, y) => { $dialog.css({ left, top - }).trigger('spatialChanged'); + }).trigger('spatialChanged').one('transitionend', () => $dialog.trigger('spatialChanged')); // Switch the modal to its previous visibility state $modal.toggle(isVisible); diff --git a/Packages/ohif-core/client/ui/index.js b/Packages/ohif-core/client/ui/index.js index d21d570a2..48cc0e7f1 100644 --- a/Packages/ohif-core/client/ui/index.js +++ b/Packages/ohif-core/client/ui/index.js @@ -1,6 +1,6 @@ import './bounded/bounded.js'; import './dimensional/dimensional.js'; -import './dialog/form.js'; +import './dialog/display.js'; import './dialog/spatial.js'; import './dialog/unsavedChangesDialog.js'; import './draggable/draggable.js'; diff --git a/Packages/ohif-core/client/ui/unsavedChanges/unsavedChanges.js b/Packages/ohif-core/client/ui/unsavedChanges/unsavedChanges.js index b5d22330a..7a672a79a 100644 --- a/Packages/ohif-core/client/ui/unsavedChanges/unsavedChanges.js +++ b/Packages/ohif-core/client/ui/unsavedChanges/unsavedChanges.js @@ -417,7 +417,7 @@ export const unsavedChanges = { title: 'You have unsaved changes!', message: "Your changes will be lost if you don't save them before leaving the current page... Are you sure you want to proceed?" }, options); - OHIF.ui.showFormDialog('dialogConfirm', dialogOptions).then(function() { + OHIF.ui.showDialog('dialogConfirm', dialogOptions).then(function() { // Unsaved changes exist but user confirms action... shouldProceed = true; callback.call(null, shouldProceed, hasChanges); diff --git a/Packages/ohif-design/styles/common/global.styl b/Packages/ohif-design/styles/common/global.styl index 7344e0aec..38b5f695d 100644 --- a/Packages/ohif-design/styles/common/global.styl +++ b/Packages/ohif-design/styles/common/global.styl @@ -9,6 +9,10 @@ html hr body .table > thead > tr > th theme('border-color', '$uiBorderColor') +body ol + margin: 0 + padding-left: 1em + label.form-group width: 100% diff --git a/Packages/ohif-lesiontracker/client/compatibility/deleteLesionKeyboardTool.js b/Packages/ohif-lesiontracker/client/compatibility/deleteLesionKeyboardTool.js index 347717df0..b229ceb5a 100644 --- a/Packages/ohif-lesiontracker/client/compatibility/deleteLesionKeyboardTool.js +++ b/Packages/ohif-lesiontracker/client/compatibility/deleteLesionKeyboardTool.js @@ -81,7 +81,7 @@ // TODO= Refactor this so the confirmation dialog is an // optional settable callback in the tool's configuration - OHIF.ui.showFormDialog('dialogConfirm', dialogSettings).then(() => { + OHIF.ui.showDialog('dialogConfirm', dialogSettings).then(() => { removeMeasurementTimepoint(nearbyToolData.tool, nearbyToolData.index, nearbyToolData.toolType, diff --git a/Packages/ohif-lesiontracker/client/compatibility/nonTargetTool.js b/Packages/ohif-lesiontracker/client/compatibility/nonTargetTool.js index 879a6ad6e..483bb83b6 100644 --- a/Packages/ohif-lesiontracker/client/compatibility/nonTargetTool.js +++ b/Packages/ohif-lesiontracker/client/compatibility/nonTargetTool.js @@ -40,7 +40,7 @@ import { toolManager } from 'meteor/ohif:viewerbase'; delete measurementData.isCreating; - OHIF.ui.showFormDialog('dialogNonTargetMeasurement', { + OHIF.ui.showDialog('dialogNonTargetMeasurement', { position: getPosition(eventData), title: 'Select Lesion Location', element: eventData.element, @@ -53,7 +53,7 @@ import { toolManager } from 'meteor/ohif:viewerbase'; return; } - OHIF.ui.showFormDialog('dialogNonTargetMeasurement', { + OHIF.ui.showDialog('dialogNonTargetMeasurement', { position: getPosition(eventData), title: 'Change Lesion Location', element: eventData.element, diff --git a/Packages/ohif-lesiontracker/client/components/dialog/nonTargetMeasurement.js b/Packages/ohif-lesiontracker/client/components/dialog/nonTargetMeasurement.js index 4c1d50fd5..dd44c98e0 100644 --- a/Packages/ohif-lesiontracker/client/components/dialog/nonTargetMeasurement.js +++ b/Packages/ohif-lesiontracker/client/components/dialog/nonTargetMeasurement.js @@ -44,7 +44,7 @@ Template.dialogNonTargetMeasurement.onCreated(() => { message: 'Are you sure you want to remove this Non-Target measurement?' }; - OHIF.ui.showFormDialog('dialogConfirm', dialogSettings) + OHIF.ui.showDialog('dialogConfirm', dialogSettings) .then(instance.removeMeasurement); instance.closeDialog(); diff --git a/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.js b/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.js index 86eaea83a..c7cbe094f 100644 --- a/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.js +++ b/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.js @@ -67,7 +67,7 @@ Template.longitudinalStudyListContextMenu.helpers({ Template.longitudinalStudyListContextMenu.replaces(defaultTemplate); Template[defaultTemplate].inheritsHelpersFrom('longitudinalStudyListContextMenu'); -StudyList.functions.launchStudyAssociation = () => OHIF.ui.showFormDialog('dialogStudyAssociation'); +StudyList.functions.launchStudyAssociation = () => OHIF.ui.showDialog('dialogStudyAssociation'); StudyList.functions.removeTimepointAssociations = removeTimepointAssociations; StudyList.functions.exportSelectedStudies = exportSelectedStudies; StudyList.functions.viewStudies = viewStudies; @@ -86,7 +86,7 @@ function removeTimepointAssociations($study, event) { } }; - OHIF.ui.showFormDialog('dialogConfirm', dialogSettings).then(() => { + OHIF.ui.showDialog('dialogConfirm', dialogSettings).then(() => { // Get a Cursor pointing to the selected Studies from the StudyList const selectedStudies = OHIF.studylist.getSelectedStudies(); diff --git a/Packages/ohif-measurements/client/components/measurementTable/index.js b/Packages/ohif-measurements/client/components/measurementTable/index.js index 85daee164..0b85914e2 100644 --- a/Packages/ohif-measurements/client/components/measurementTable/index.js +++ b/Packages/ohif-measurements/client/components/measurementTable/index.js @@ -26,3 +26,5 @@ import './measurementTableTimepointCell/measurementTableTimepointCell.js'; import './measurementTableTimepointHeader/measurementTableTimepointHeader.html'; import './measurementTableTimepointHeader/measurementTableTimepointHeader.styl'; import './measurementTableTimepointHeader/measurementTableTimepointHeader.js'; + +import './measurementTableWarnings/measurementTableWarningsDialog.html'; diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js b/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js index 942e9246c..b964e7453 100644 --- a/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js +++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTableRow/measurementTableRow.js @@ -1,42 +1,41 @@ -import { Meteor } from 'meteor/meteor'; import { Template } from 'meteor/templating'; import { OHIF } from 'meteor/ohif:core'; import { _ } from 'meteor/underscore'; -function doneCallback(measurementData, deleteTool) { - // If a Lesion or Non-Target is removed via a dialog - // opened by the Lesion Table, we should clear the data for - // the specified Timepoint Cell - if (deleteTool === true) { - Meteor.call('removeMeasurement', measurementData.id, function(error, response) { - if (error) { - OHIF.log.warn(error); - } - }); - } -} +Template.measurementTableRow.onCreated(() => { + const instance = Template.instance(); -// Delete a lesion if Ctrl+D or DELETE is pressed while a lesion is selected -const keys = { - D: 68, - DELETE: 46 -}; - -Template.measurementTableRow.helpers({ - hasWarnings() { - const toolsGroupsMap = this.measurementApi.toolsGroupsMap; - const measurementTypeId = this.rowItem.measurementTypeId; - const measurementNumber = this.rowItem.measurementNumber; - const groupedNonConformities = this.conformanceCriteria.groupedNonConformities.get() || {}; + instance.getWarningMessages = () => { + const measurementTypeId = instance.data.rowItem.measurementTypeId; + const measurementNumber = instance.data.rowItem.measurementNumber; + const groupedNonConformities = instance.data.conformanceCriteria.groupedNonConformities.get() || {}; const nonConformitiesByMeasurementTypeId = groupedNonConformities[measurementTypeId] || {}; const nonConformitiesByMeasurementNumbers = nonConformitiesByMeasurementTypeId.measurementNumbers || {}; const nonConformitiesByMeasurementNumber = nonConformitiesByMeasurementNumbers[measurementNumber] || {}; - return nonConformitiesByMeasurementNumber.messages && nonConformitiesByMeasurementNumber.messages.length; + return nonConformitiesByMeasurementNumber.messages || []; + }; +}); + +Template.measurementTableRow.helpers({ + hasWarnings() { + return !!Template.instance().getWarningMessages().length; } }); Template.measurementTableRow.events({ + 'click .measurementRowSidebar .warning-icon'(event, instance) { + event.stopPropagation(); + OHIF.ui.showDialog('measurementTableWarningsDialog', { + title: 'Criteria Nonconformities', + messages: instance.getWarningMessages(), + position: { + x: event.clientX, + y: event.clientY + } + }); + }, + 'click .measurementRowSidebar'(event, instance) { const $row = instance.$('.measurementTableRow'); const rowItem = instance.data.rowItem; @@ -70,10 +69,14 @@ Template.measurementTableRow.events({ 'click .js-delete'(event, instance) { const dialogSettings = { title: 'Delete measurements', - message: 'Are you sure you want to delete the measurement across all timepoints?' + message: 'Are you sure you want to delete the measurement across all timepoints?', + position: { + x: event.clientX, + y: event.clientY + } }; - OHIF.ui.showFormDialog('dialogConfirm', dialogSettings).then(formData => { + OHIF.ui.showDialog('dialogConfirm', dialogSettings).then(formData => { const measurementTypeId = instance.data.rowItem.measurementTypeId; const measurement = instance.data.rowItem.entries[0]; const measurementNumber = measurement.measurementNumber; diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTableTimepointCell/measurementTableTimepointCell.js b/Packages/ohif-measurements/client/components/measurementTable/measurementTableTimepointCell/measurementTableTimepointCell.js index e4fe28371..1e27c090e 100644 --- a/Packages/ohif-measurements/client/components/measurementTable/measurementTableTimepointCell/measurementTableTimepointCell.js +++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTableTimepointCell/measurementTableTimepointCell.js @@ -84,7 +84,7 @@ Template.measurementTableTimepointCell.events({ message: 'Are you sure you want to delete this measurement?' }; - OHIF.ui.showFormDialog('dialogConfirm', dialogSettings).then(() => { + OHIF.ui.showDialog('dialogConfirm', dialogSettings).then(() => { const measurementTypeId = instance.data.rowItem.measurementTypeId; const measurement = instance.data.rowItem.entries[0]; const measurementNumber = measurement.measurementNumber; diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTableWarnings/measurementTableWarningsDialog.html b/Packages/ohif-measurements/client/components/measurementTable/measurementTableWarnings/measurementTableWarningsDialog.html new file mode 100644 index 000000000..285938c68 --- /dev/null +++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTableWarnings/measurementTableWarningsDialog.html @@ -0,0 +1,9 @@ + diff --git a/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js b/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js index 0cb646b68..422185c28 100644 --- a/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js +++ b/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js @@ -1,5 +1,7 @@ -import { OHIF } from 'meteor/ohif:core'; +import { ReactiveVar } from 'meteor/reactive-var'; +import { Tracker } from 'meteor/tracker'; import { _ } from 'meteor/underscore'; +import { OHIF } from 'meteor/ohif:core'; import { CriteriaEvaluator } from './CriteriaEvaluator'; import * as evaluations from './evaluations'; @@ -49,7 +51,7 @@ class ConformanceCriteria { const toolsGroupsMap = this.measurementApi.toolsGroupsMap; nonConformities.forEach(nonConformity => { - if(nonConformity.isGlobal) { + if (nonConformity.isGlobal) { groups.globals = groups.globals || { messages: [] }; groups.globals.messages.push(nonConformity.message); @@ -64,11 +66,11 @@ class ConformanceCriteria { const measureNumber = measurement.measurementNumber; let measurementNumbers = group.measurementNumbers[measureNumber]; - if(!measurementNumbers) { + if (!measurementNumbers) { measurementNumbers = group.measurementNumbers[measureNumber] = { messages: [], measurements: [] - } + }; } measurementNumbers.messages.push(nonConformity.message); @@ -76,8 +78,6 @@ class ConformanceCriteria { }); }); - console.log('>>>>> groups: ', groups); - return groups; } @@ -96,12 +96,12 @@ class ConformanceCriteria { getEvaluators(timepointId, trialCriteriaType) { const evaluators = []; const trialCriteriaTypeId = trialCriteriaType.id.toLowerCase(); - const evaluation = evaluations[trialCriteriaTypeId] - - if(evaluation) { + const evaluation = evaluations[trialCriteriaTypeId]; + + if (evaluation) { const evaluationTimepoint = evaluation[timepointId]; - if(evaluationTimepoint) { + if (evaluationTimepoint) { evaluators.push(new CriteriaEvaluator(evaluationTimepoint)); } } @@ -127,7 +127,7 @@ class ConformanceCriteria { const timepointId = measurement.timepointId; const timepoint = this.timepointApi.timepoints.findOne({ timepointId }); - if((timepointType !== 'both') && (timepoint.timepointType !== timepointType)) { + if ((timepointType !== 'both') && (timepoint.timepointType !== timepointType)) { return; } diff --git a/Packages/ohif-study-list/client/components/studyContextMenu/studyContextMenu.js b/Packages/ohif-study-list/client/components/studyContextMenu/studyContextMenu.js index 4bbd1449b..33eeaddba 100644 --- a/Packages/ohif-study-list/client/components/studyContextMenu/studyContextMenu.js +++ b/Packages/ohif-study-list/client/components/studyContextMenu/studyContextMenu.js @@ -48,7 +48,7 @@ function exportSelectedStudies($study, event) { const studiesCount = selectedStudies.length; const studyText = studiesCount > 1 ? 'Studies' : 'Study'; - OHIF.ui.showFormDialog('dialogConfirm', { + OHIF.ui.showDialog('dialogConfirm', { element: event.element, title: `Export ${studyText}`, message: `Would you like to export ${studiesCount} ${studyText.toLowerCase()}?` diff --git a/Packages/ohif-study-list/client/lib/exportStudies.js b/Packages/ohif-study-list/client/lib/exportStudies.js index f6cde8739..ff5eee2a7 100644 --- a/Packages/ohif-study-list/client/lib/exportStudies.js +++ b/Packages/ohif-study-list/client/lib/exportStudies.js @@ -41,7 +41,7 @@ const exportQueriedStudiesWithProgress = studiesToExport => { const exportFilesCount = getNumberOfFilesToExport(studiesToExport); let exportHandler; - return OHIF.ui.showFormDialog('dialogProgress', { + return OHIF.ui.showDialog('dialogProgress', { title: 'Exporting Studies...', message: `Exported files: 0 / ${exportFilesCount}`, total: getNumberOfFilesToExport(studiesToExport), diff --git a/Packages/ohif-study-list/client/lib/queryStudies.js b/Packages/ohif-study-list/client/lib/queryStudies.js index 184f8554d..77fa77154 100644 --- a/Packages/ohif-study-list/client/lib/queryStudies.js +++ b/Packages/ohif-study-list/client/lib/queryStudies.js @@ -32,7 +32,7 @@ queryStudies = function(studiesToQuery, options) { } queryStudiesWithProgress = function(studiesToQuery) { - return OHIF.ui.showFormDialog('dialogProgress', { + return OHIF.ui.showDialog('dialogProgress', { title: 'Querying Studies...', message: `Queried: 0 / ${studiesToQuery.length}`, total: studiesToQuery.length, diff --git a/StandaloneViewer/SampleClientOnlyBuild/1b141e5df4cc5763349d5ad09402ac283977d7af.js b/StandaloneViewer/SampleClientOnlyBuild/1b141e5df4cc5763349d5ad09402ac283977d7af.js index 4f25a2b57..89dbf030c 100644 --- a/StandaloneViewer/SampleClientOnlyBuild/1b141e5df4cc5763349d5ad09402ac283977d7af.js +++ b/StandaloneViewer/SampleClientOnlyBuild/1b141e5df4cc5763349d5ad09402ac283977d7af.js @@ -146,7 +146,7 @@ n._simpleSchema=t,n._schema=t.schema(),n._schemaKeys=o.keys(n._schema),n._invali !function(){var e=Package.meteor.Meteor,t=Package.meteor.global,n=Package.meteor.meteorEnv,o=Package.jquery.$,r=Package.jquery.jQuery,i=Package.underscore._,a=Package["templating-runtime"].Template,u=Package["reactive-var"].ReactiveVar,l=Package["clinical:router"].Router,c=Package["clinical:router"].RouteController,s=Package["aldeed:simple-schema"].SimpleSchema,p=Package["aldeed:simple-schema"].MongoObject,m=Package.modules.meteorInstall,d=Package.modules.Buffer,f=Package.modules.process,h=Package["ecmascript-runtime"].Symbol,v=Package["ecmascript-runtime"].Map,g=Package["ecmascript-runtime"].Set,k=Package["babel-runtime"].meteorBabelHelpers,b=Package.promise.Promise,w=Package["iron:core"].Iron,y=Package.webapp.WebApp,x=Package.logging.Log,j=Package.deps.Tracker,T=Package.deps.Deps,I=Package.session.Session,C=Package["ddp-client"].DDP,_=Package.mongo.Mongo,M=Package.ui.Blaze,S=Package.ui.UI,H=Package.ui.Handlebars,F=Package.spacebars.Spacebars,O=Package.check.check,$=Package.check.Match,D=Package.random.Random,P=Package.ejson.EJSON,z=Package["launch-screen"].LaunchScreen,A=Package.htmljs.HTML,E,R=m({node_modules:{meteor:{"ohif:core":{"main.js":["meteor/meteor",function(e,t,n){n.export({OHIF:function(){return r}});var o;n.import("meteor/meteor",{Meteor:function(e){o=e}});var r={log:{},ui:{},viewer:{}};o.isDevelopment&&o.isClient&&(window.OHIF=r)}],client:{"index.js":["./lib","./helpers","./components","./ui","./routes.js",function(e,t,n){n.import("./lib"),n.import("./helpers"),n.import("./components"),n.import("./ui"),n.import("./routes.js")}],"routes.js":["meteor/clinical:router",function(e,t,n){var o;n.import("meteor/clinical:router",{Router:function(e){o=e}}),o.route("/playground",function(){this.render("componentPlayground")})}],components:{"index.js":["./base","./bootstrap","./playground/playground.html","./playground/playground.styl","./playground/playground.js",function(e,t,n){n.import("./base"),n.import("./bootstrap"),n.import("./playground/playground.html"),n.import("./playground/playground.styl"),n.import("./playground/playground.js")}],base:{"component.js":["babel-runtime/helpers/classCallCheck","meteor/ohif:core",function(e,t,n){var o;n.import("babel-runtime/helpers/classCallCheck",{default:function(e){o=e}});var r;n.import("meteor/ohif:core",{OHIF:function(e){r=e}});var i=function(){function e(t){o(this,e),t.view._component=this,t.sections={},this.templateInstance=t,this.registeredItems=new g}return e.prototype.registerSelf=function(){function e(){var e=r.blaze.getParentComponent(this.templateInstance.view);e&&(this.parent=e,e.registeredItems.add(this))}return e}(),e.prototype.unregisterSelf=function(){function e(){var e=r.blaze.getParentComponent(this.templateInstance.view);e&&(delete this.parent,e.registeredItems.delete(this))}return e}(),e}();r.Component=i}],"index.js":["./component.js","./mixin.js","./template.js","./section/section.html","./section/section.js","./mixins/action.js","./mixins/button.js","./mixins/checkbox.js","./mixins/component.js","./mixins/form.js","./mixins/formItem.js","./mixins/group.js","./mixins/groupRadio.js","./mixins/input.js","./mixins/link.js","./mixins/schemaData.js","./mixins/select.js","./mixins/select2.js","./templates/button.html","./templates/custom.html","./templates/div.html","./templates/form.html","./templates/input.html","./templates/link.html","./templates/select.html","./wrappers/label.html","./wrappers/labelContent.html",function(e,t,n){n.import("./component.js"),n.import("./mixin.js"),n.import("./template.js"),n.import("./section/section.html"),n.import("./section/section.js"),n.import("./mixins/action.js"),n.import("./mixins/button.js"),n.import("./mixins/checkbox.js"),n.import("./mixins/component.js"),n.import("./mixins/form.js"),n.import("./mixins/formItem.js"),n.import("./mixins/group.js"),n.import("./mixins/groupRadio.js"),n.import("./mixins/input.js"),n.import("./mixins/link.js"),n.import("./mixins/schemaData.js"),n.import("./mixins/select.js"),n.import("./mixins/select2.js"),n.import("./templates/button.html"),n.import("./templates/custom.html"),n.import("./templates/div.html"),n.import("./templates/form.html"),n.import("./templates/input.html"),n.import("./templates/link.html"),n.import("./templates/select.html"),n.import("./wrappers/label.html"),n.import("./wrappers/labelContent.html")}],"mixin.js":["babel-runtime/helpers/classCallCheck","meteor/ohif:core","meteor/underscore",function(e,t,n){var o;n.import("babel-runtime/helpers/classCallCheck",{default:function(e){o=e}});var r;n.import("meteor/ohif:core",{OHIF:function(e){r=e}});var i;n.import("meteor/underscore",{_:function(e){i=e}}),r.mixins={};var a=function(){function e(t){var n=t.dependencies,r=t.composition;o(this,e),this.dependencies=n||"",this.composition=r}return e.prototype.init=function(){function t(t,n,o,r){var a=this,u=this.dependencies.split(" ");i.each(u,function(i){if(i){var u=e.getMixin(i);if(u===a)throw new Error("Mixin "+i+" has a cyclic dependency.");u.init(t,n,o,r)}}),this.apply(t,n,o,r)}return t}(),e.prototype.apply=function(){function e(e,t,n,o){if(!i.contains(n,this)){var r=this.composition;i.each(o,function(n){var o=n;"onMixins"===o&&(o="onRendered"),"onData"===n&&r[n]?r[n](t):r[n]&&e[o](r[n])}),n.push(this)}}return e}(),e.initData=function(){function t(t){var n=t.mixins.split(" ");i.each(n,function(n){if(n){var o=e.getMixin(n);o.init(null,t,[],["onData"])}})}return t}(),e.initAll=function(){function t(t,n){var o=n.mixins.split(" ");i.each(o,function(o){if(o){var r=e.getMixin(o);r.init(t,n,[],["onCreated","onRendered","onDestroyed","events","helpers"]),r.init(t,n,[],["onMixins"])}})}return t}(),e.getMixin=function(){function e(e){var t=r.mixins[e];if(!t)throw new Error("Mixin "+e+" not found.");return t}return e}(),e}();r.Mixin=a}],"template.js":["meteor/templating","meteor/blaze","meteor/underscore","meteor/ohif:core",function(e,t,n){var o;n.import("meteor/templating",{Template:function(e){o=e}});var r;n.import("meteor/blaze",{Blaze:function(e){r=e}});var i;n.import("meteor/underscore",{_:function(e){i=e}});var a;n.import("meteor/ohif:core",{OHIF:function(e){a=e}}),o.baseComponent=new o("baseComponent",function(){}),o.baseComponent.constructView=function(e,t){var n=o.currentData();if(n){n.base||(n.base="baseCustom");var u=o[n.base];if(!u)throw new Error("Template "+n.base+" not found.");var l=a.blaze.cloneTemplate(u,n.base+"Component");l.renderFunction=u.renderFunction,a.Mixin.initData(n);var c=[];if(n.wrappers){var s=n.wrappers.split(" ");i.each(s,function(e){return e&&c.push(e)})}for(var p=[],m=function i(){var u=function n(){return l.constructView(e,t)};return l.onCreated(function(){var e=o.instance();e.component=new a.Component(e),e.wrapper=p[0]||e,p.forEach(function(t){t.view._wrapperComponent=e.component,t.component=e.component})}),a.Mixin.initAll(l,n),r.With(n,u)},d=void 0,f=function e(){var i=o[d];if(!i)throw new Error("Template "+d+" not found.");var u=a.blaze.cloneTemplate(i),l=m,c=function e(){return u.onCreated(function(){return p.push(o.instance())}),u.constructView(l,t)};m=function e(){return r.With(n,c)}};d=c.shift();)f();return m(e,t)}}}],mixins:{"action.js":["meteor/ohif:core","meteor/templating",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}});var r;n.import("meteor/templating",{Template:function(e){r=e}}),o.mixins.action=new o.Mixin({dependencies:"formItem",composition:{onRendered:function(){function e(){var e=r.instance(),t=e.component;t.$element.addClass("form-action")}return e}(),events:{"click .form-action":function(){function e(e,t){var n=t.component,o=t.data,r=o.action,i=o.params,a=n.getApi();a&&r&&"function"==typeof a[r]&&a[r].call(this,i)}return e}()}}})}],"button.js":["meteor/ohif:core","meteor/templating",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}});var r;n.import("meteor/templating",{Template:function(e){r=e}}),o.mixins.button=new o.Mixin({dependencies:"formItem",composition:{onRendered:function(){function e(){var e=r.instance(),t=e.component;t.$element=e.$("button").first()}return e}()}})}],"checkbox.js":["meteor/ohif:core","meteor/templating","meteor/underscore",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}});var r;n.import("meteor/templating",{Template:function(e){r=e}});var i;n.import("meteor/underscore",{_:function(e){i=e}}),o.mixins.checkbox=new o.Mixin({dependencies:"input",composition:{onCreated:function(){function e(){var e=r.instance(),t=e.component;t.value=function(e){var n=i.isUndefined(e);return n?t.parseData(t.$element.is(":checked")):void t.$element.prop("checked",e)}}return e}()}})}],"component.js":["meteor/ohif:core","meteor/templating",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}});var r;n.import("meteor/templating",{Template:function(e){r=e}}),o.mixins.component=new o.Mixin({composition:{}})}],"form.js":["babel-runtime/helpers/typeof","meteor/ohif:core","meteor/templating","meteor/tracker","meteor/underscore","meteor/jquery",function(e,t,n){var o;n.import("babel-runtime/helpers/typeof",{default:function(e){o=e}});var r;n.import("meteor/ohif:core",{OHIF:function(e){r=e}});var i;n.import("meteor/templating",{Template:function(e){i=e}});var a;n.import("meteor/tracker",{Tracker:function(e){a=e}});var u;n.import("meteor/underscore",{_:function(e){u=e}});var l;n.import("meteor/jquery",{$:function(e){l=e}}),r.mixins.form=new r.Mixin({dependencies:"group",composition:{onCreated:function(){function e(){var e=i.instance(),t=e.component;t.isForm=!0,t.isValidatedAlready=!1,t.validationObserver=new a.Dependency,e.data.pathKey="",t.validationRan=u.debounce(function(){t.validationObserver.changed()},200);var n=t.validate;t.validate=function(){var o=n();return t.isValidatedAlready=!0,t.schema&&t.schema._invalidKeys.length&&e.$(".state-error :input:first").focus(),o}}return e}(),onRendered:function(){function e(){var e=i.instance(),t=e.component;t.$style=t.$element=e.$("form").first(),t.$element[0].onsubmit=function(){return!1}}return e}(),events:{"click .validation-error-container a":function(){function e(e,t){var n=l(e.currentTarget).attr("data-target");t.$('.state-error[data-key="'+n+'"]').find(":input:first").focus()}return e}()},helpers:{validationErrors:function(){function e(){var e=i.instance(),t=e.component;if(t.validationObserver.depend(),t.schema&&t.schema._invalidKeys.length){var n=function(){var e=[];return t.schema._invalidKeys.forEach(function(n){var o=t.schema._schema[n.name].label,r=t.schema.keyErrorMessage(n.name);r=r.replace(o,""+o+""),e.push({key:n.name,message:F.SafeString(r)})}),{v:e}}();if("object"===("undefined"==typeof n?"undefined":o(n)))return n.v}}return e}()}}})}],"formItem.js":["meteor/ohif:core","meteor/templating","meteor/tracker","meteor/meteor","meteor/underscore","meteor/jquery",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}});var r;n.import("meteor/templating",{Template:function(e){r=e}});var i;n.import("meteor/tracker",{Tracker:function(e){i=e}});var a;n.import("meteor/meteor",{Meteor:function(e){a=e}});var u;n.import("meteor/underscore",{_:function(e){u=e}});var l;n.import("meteor/jquery",{$:function(e){l=e}}),o.mixins.formItem=new o.Mixin({dependencies:"schemaData",composition:{onCreated:function(){function e(){var e=r.instance(),t=e.component;t.changeObserver=new i.Dependency,t.registerSelf(),t.$element=l(),t.$style=l(),t.$wrapper=l(),t.value=function(e){var n=u.isUndefined(e);return n?t.parseData(t.$element.val()):void t.$element.val(e).trigger("change")},t.disable=function(e){t.$element.prop("disabled",!!e)},t.readonly=function(e){t.$element.prop("readonly",!!e)},t.show=function(e){var n=e?"show":"hide";t.$wrapper[n]()},t.hasFocus=function(){var e=l(":focus")[0],n=l.contains(t.$wrapper[0],e),o=t.$wrapper[0]===e;return n||o},t.state=function(e,n){t.$wrapper.toggleClass("state-"+e,!!n)},t.error=function(e){t.state("error",e),e?t.$wrapper.attr("data-error",e):t.$wrapper.removeAttr("data-error",e)},t.toggleTooltip=function(e,n){if(e&&n){if(t.$wrapper.next(".tooltip").length)return;t.$wrapper.tooltip({trigger:"manual",title:n}).tooltip("show")}else t.$wrapper.tooltip("destroy")},t.toggleMessage=function(e){if(!e)return void a.setTimeout(function(){t.hasFocus()||t.toggleTooltip(!1)},100);var n=t.$wrapper.attr("data-error");n&&t.toggleTooltip(!0,n)},t.getForm=function(){for(var e=t;e;)if(e=e.parent,e&&e.isForm)return e},t.getApi=function(){var n=e.data.api;if(!n){if(t.isForm)return;var o=t.getForm();if(!o)return;return o.getApi()}return n},t.validate=function(){var n,r=t.getForm(),i=r&&r.schema,a=e.data.pathKey;if(!a||!i||!t.$wrapper.is(":visible"))return!0;var u=o.object.getNestedObject((n={},n[a]=t.value(),n)),l=i.validateOne(u,a);return r.validationRan(),l?(t.error(!1),!0):(t.error(i.keyErrorMessage(a)),!1)},t.depend=function(){return t.changeObserver.depend()}}return e}(),onRendered:function(){function e(){var e=r.instance(),t=e.component;t.$element=e.$(":input").first(),t.$wrapper=e.wrapper.$("*").first(),t.$wrapper.attr("data-key",e.data.pathKey)}return e}(),onDestroyed:function(){function e(){var e=r.instance();e.component.unregisterSelf()}return e}(),onMixins:function(){function e(){var e=r.instance(),t=e.component;t.$style.length||(t.$style=t.$element),t.$element.data("component",t),t.$wrapper.data("component",t)}return e}(),events:{change:function(){function e(e,t){var n=t.component;if(e.currentTarget===n.$element[0]){n.changeObserver.changed();var o=n.getForm();o&&o.isValidatedAlready&&n.validate()}}return e}(),focus:function(){function e(e,t){var n=t.component;n.isGroup||n.isCustomFocus||(e.stopPropagation(),n.toggleMessage(!0))}return e}(),blur:function(){function e(e,t){var n=t.component;n.isGroup||n.isCustomFocus||(e.stopPropagation(),n.toggleMessage(!1))}return e}()}}})}],"group.js":["babel-runtime/helpers/typeof","meteor/ohif:core","meteor/templating","meteor/underscore",function(e,t,n){var o;n.import("babel-runtime/helpers/typeof",{default:function(e){o=e}});var r;n.import("meteor/ohif:core",{OHIF:function(e){r=e}});var i;n.import("meteor/templating",{Template:function(e){i=e}});var a;n.import("meteor/underscore",{_:function(e){a=e}}),r.mixins.group=new r.Mixin({dependencies:"formItem",composition:{onCreated:function(){function e(){var e=i.instance(),t=e.component;t.isGroup=!0,e.autorun(function(){var n=e.data.schema;n instanceof u&&(n=n.get()),t.schema=n&&n.newContext()}),t.value=function(n){var r=a.isUndefined(n),i=e.data.arrayValues,u=i?[]:{};if(r)return t.registeredItems.forEach(function(e){if(i)u.push(e.value());else{var t=e.templateInstance.data.key;t&&(u[t]=e.value())}}),u;var l="object"===("undefined"==typeof n?"undefined":o(n))?n:u;if(l){var c=0;t.registeredItems.forEach(function(e){var t=i?c:e.templateInstance.data.key,n=a.isUndefined(l[t])?null:l[t];e.value(n),c++}),t.$element.trigger("change")}},t.item=function(e){var n=void 0;return t.registeredItems.forEach(function(t){var o=t.templateInstance.data.key;o===e&&(n=t)}),n};var n=t.validate;t.validate=function(){var o=!0;return t.isForm&&!t.schema?o:(e.data.pathKey&&!n()&&(o=!1),t.registeredItems.forEach(function(t){var n=t.templateInstance.data.key;!n&&!e.data.arrayValues||t.validate()||(o=!1)}),o)},t.disable=function(e){t.registeredItems.forEach(function(t){return t.disable(e)})},t.readonly=function(e){t.registeredItems.forEach(function(t){return t.readonly(e)})}}return e}(),onRendered:function(){function e(){var e=i.instance(),t=e.component;t.$element=e.$(".component-group").first()}return e}()}})}],"groupRadio.js":["meteor/ohif:core","meteor/templating","meteor/underscore","meteor/jquery",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}});var r;n.import("meteor/templating",{Template:function(e){r=e}});var i;n.import("meteor/underscore",{_:function(e){i=e}});var a;n.import("meteor/jquery",{$:function(e){a=e}}),o.mixins.groupRadio=new o.Mixin({dependencies:"group",composition:{onCreated:function(){function e(){var e=r.instance(),t=e.component;t.value=function(e){var n=i.isUndefined(e),o=[];t.registeredItems.forEach(function(e){return o.push(e.$element[0])});var r=a(o);return n?t.parseData(r.filter(":checked").val()):void r.filter("[value='"+e+"']").prop("checked",!0).trigger("change")}}return e}()}})}],"input.js":["meteor/ohif:core","meteor/templating",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}});var r;n.import("meteor/templating",{Template:function(e){r=e}}),o.mixins.input=new o.Mixin({dependencies:"formItem",composition:{onRendered:function(){function e(){var e=r.instance(),t=e.component;t.$element=e.$("input").first()}return e}()}})}],"link.js":["meteor/ohif:core","meteor/templating",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}});var r;n.import("meteor/templating",{Template:function(e){r=e}}),o.mixins.link=new o.Mixin({dependencies:"formItem",composition:{onRendered:function(){function e(){var e=r.instance(),t=e.component;t.$element=e.$("a").first()}return e}(),events:{"click a":function(){function e(e,t){t.data.action&&e.preventDefault()}return e}()}}})}],"schemaData.js":["meteor/ohif:core","meteor/blaze","meteor/templating","meteor/reactive-var","meteor/underscore",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}});var r;n.import("meteor/blaze",{Blaze:function(e){r=e}});var i;n.import("meteor/templating",{Template:function(e){i=e}});var a;n.import("meteor/reactive-var",{ReactiveVar:function(e){a=e}});var u;n.import("meteor/underscore",{_:function(e){u=e}});var l=function e(t,n){var o=t&&t.schema;if(t&&!o){var r=t.getForm();o=r&&r.schema}if(n&&o){var i=u.clone(o._schema[n]);if(i)return Array.isArray(i.type())&&u.extend(i,o._schema[n+".$"]),i}};o.mixins.schemaData=new o.Mixin({dependencies:"component",composition:{onData:function(){function e(){var e=i.currentData(),t=o.blaze.getParentComponent(r.currentView),n=t&&t.templateInstance.data.pathKey,c=t&&t.templateInstance.data.arrayValues;if(e.pathKey=e.key||(c?"$":""),e.pathKey&&"string"==typeof n){var s=n?n+".":"";e.pathKey=""+s+e.pathKey}var p=l(t,e.pathKey);if(p&&(e.label||(e.label=new a(p.label)),u.isUndefined(e.min)&&p.min&&(e.min=p.min),u.isUndefined(e.max)&&p.max&&(e.max=p.max),p.emptyOption&&(e.emptyOption=p.emptyOption),!e.items&&Array.isArray(p.allowedValues))){for(var m=[],d=p.allowedValues,f=p.valuesLabels||[],h=0;h')})},"form.html":["./template.form.js",function(e,t,n){n.exports=e("./template.form.js")}],"template.form.js":function(){a.__checkName("dropdownForm"),a.dropdownForm=new a("Template.dropdownForm",function(){var e=this;return M._TemplateWith(function(){return{class:F.call("dropdown"),api:F.call(F.dot(e.lookup("."),"api")),hideValidationBox:F.call(!0)}},function(){return F.include(e.lookupTemplate("form"),function(){return["\n ",F.include(e.lookupTemplate("dropdownBackdrop")),"\n ",A.UL({class:"dropdown-menu"},"\n ",M._InOuterTemplateScope(e,function(){return F.include(function(){return F.call(e.templateContentBlock)})}),"\n "),"\n "]})})})},"form.js":["meteor/templating","meteor/blaze","meteor/jquery","meteor/underscore",function(e,t,n){var o;n.import("meteor/templating",{Template:function(e){o=e}});var r;n.import("meteor/blaze",{Blaze:function(e){r=e}});var i;n.import("meteor/jquery",{$:function(e){i=e}});var a;n.import("meteor/underscore",{_:function(e){a=e}}),o.dropdownForm.onRendered(function(){var e=o.instance(),t=e.$(".dropdown");t.addClass("open"),t.find("ul.dropdown-menu li a").addClass("noselect"),e.destroyView=function(){a.isFunction(e.data.destroyView)?e.data.destroyView():r.remove(e.view)}}),o.dropdownForm.events({"click .dropdown":function(){function e(e,t){var n=i(e.target);n.hasClass("disabled")?(e.preventDefault(),e.stopPropagation()):t.destroyView()}return e}()})}]},form:{"button.html":["./template.button.js",function(e,t,n){n.exports=e("./template.button.js")}],"template.button.js":function(){a.__checkName("button"),a.button=new a("Template.button",function(){var e=this;return M._TemplateWith(function(){return F.dataMustache(e.lookup("extend"),e.lookup("."),F.kw({base:"baseButton",mixins:F.dataMustache(e.lookup("concat"),"button action ",F.dot(e.lookup("."),"mixins"))}))},function(){return F.include(e.lookupTemplate("baseComponent"),function(){return["\n ",M._InOuterTemplateScope(e,function(){return F.include(function(){return F.call(e.templateContentBlock)})}),"\n "]})})})},"form.html":["./template.form.js",function(e,t,n){n.exports=e("./template.form.js")}],"template.form.js":function(){a.__checkName("form"),a.form=new a("Template.form",function(){var e=this;return M._TemplateWith(function(){return F.dataMustache(e.lookup("extend"),e.lookup("."),F.kw({base:"baseForm",mixins:F.dataMustache(e.lookup("concat"),"form ",F.dot(e.lookup("."),"mixins"))}))},function(){return F.include(e.lookupTemplate("baseComponent"),function(){return["\n ",M._InOuterTemplateScope(e,function(){return F.include(function(){return F.call(e.templateContentBlock)})}),"\n "]})})})},"group.html":["./template.group.js",function(e,t,n){n.exports=e("./template.group.js")}],"template.group.js":function(){a.__checkName("group"),a.group=new a("Template.group",function(){var e=this;return M._TemplateWith(function(){return F.dataMustache(e.lookup("extend"),e.lookup("."),F.kw({class:F.dataMustache(e.lookup("concat"),"component-group ",F.dot(e.lookup("."),"class")),base:"baseDiv",mixins:F.dataMustache(e.lookup("concat"),"group ",F.dot(e.lookup("."),"mixins"))}))},function(){return F.include(e.lookupTemplate("baseComponent"),function(){return["\n ",M._InOuterTemplateScope(e,function(){return F.include(function(){return F.call(e.templateContentBlock)})}),"\n "]})})})},"link.html":["./template.link.js",function(e,t,n){n.exports=e("./template.link.js")}],"template.link.js":function(){a.__checkName("link"),a.link=new a("Template.link",function(){var e=this;return M._TemplateWith(function(){return F.dataMustache(e.lookup("extend"),e.lookup("."),F.kw({base:"baseLink",mixins:F.dataMustache(e.lookup("concat"),"link action ",F.dot(e.lookup("."),"mixins"))}))},function(){return F.include(e.lookupTemplate("baseComponent"),function(){return["\n ",M._InOuterTemplateScope(e,function(){return F.include(function(){return F.call(e.templateContentBlock)})}),"\n "]})})})}},input:{"checkbox.html":["./template.checkbox.js",function(e,t,n){n.exports=e("./template.checkbox.js")}],"template.checkbox.js":function(){a.__checkName("inputCheckbox"),a.inputCheckbox=new a("Template.inputCheckbox",function(){var e=this;return M._TemplateWith(function(){return F.dataMustache(e.lookup("extend"),e.lookup("."),F.kw({base:"baseInput",type:"checkbox",mixins:F.dataMustache(e.lookup("concat"),"checkbox ",F.dot(e.lookup("."),"mixins")),labelAfter:F.dataMustache(e.lookup("valueIf"),F.dataMustache(e.lookup("isUndefined"),F.dot(e.lookup("."),"labelAfter")),!0,F.dot(e.lookup("."),"labelAfter")),labelClass:F.dataMustache(e.lookup("concat"),"checkboxLabel ",F.dot(e.lookup("."),"labelClass")),wrappers:F.dataMustache(e.lookup("concat"),"",F.dataMustache(e.lookup("valueIf"),e.lookup("reactive"),F.dot(e.lookup("."),"label"),"wrapperLabel ",""),F.dot(e.lookup("."),"wrappers"))}))},function(){return F.include(e.lookupTemplate("baseComponent"),function(){return["\n ",M._InOuterTemplateScope(e,function(){return F.include(function(){return F.call(e.templateContentBlock)})}),"\n "]})})})},"groupRadio.html":["./template.groupRadio.js",function(e,t,n){n.exports=e("./template.groupRadio.js")}],"template.groupRadio.js":function(){a.__checkName("groupRadio"),a.groupRadio=new a("Template.groupRadio",function(){var e=this;return M._TemplateWith(function(){return F.dataMustache(e.lookup("extend"),e.lookup("."),F.kw({class:F.dataMustache(e.lookup("concat"),"group-radio ",F.dot(e.lookup("."),"class")),mixins:F.dataMustache(e.lookup("concat"),"groupRadio ",F.dot(e.lookup("."),"mixins")),wrappers:F.dataMustache(e.lookup("concat"),"",F.dataMustache(e.lookup("valueIf"),e.lookup("reactive"),F.dot(e.lookup("."),"label"),"wrapperLabel ",""),F.dot(e.lookup("."),"wrappers")),labelAsDiv:!0}))},function(){return F.include(e.lookupTemplate("group"),function(){return["\n ",M._InOuterTemplateScope(e,function(){return F.include(function(){return F.call(e.templateContentBlock)})}),"\n ",M.Each(function(){return{_sequence:F.dataMustache(e.lookup("reactive"),F.dot(e.lookup("."),"items")),_variable:"item"}},function(){return["\n ",M._TemplateWith(function(){return{class:F.call(F.dot(e.lookup("."),"radioClass")),name:F.call(F.dot(e.lookup("."),"key")),value:F.call(F.dot(e.lookup("item"),"value")),label:F.call(F.dot(e.lookup("item"),"label")),checked:F.call(F.dataMustache(e.lookup("eq"),F.dot(e.lookup("item"),"value"),F.dataMustache(e.lookup("reactive"),F.dot(e.lookup("."),"value"))))}},function(){return F.include(e.lookupTemplate("inputRadio"))}),"\n "]}),"\n "]})})})},"hidden.html":["./template.hidden.js",function(e,t,n){n.exports=e("./template.hidden.js")}],"template.hidden.js":function(){a.__checkName("inputHidden"),a.inputHidden=new a("Template.inputHidden",function(){var e=this;return M._TemplateWith(function(){return F.dataMustache(e.lookup("extend"),e.lookup("."),F.kw({base:"baseInput",type:"hidden",mixins:F.dataMustache(e.lookup("concat"),"input ",F.dot(e.lookup("."),"mixins"))}))},function(){return F.include(e.lookupTemplate("baseComponent"))})})},"password.html":["./template.password.js",function(e,t,n){n.exports=e("./template.password.js")}],"template.password.js":function(){a.__checkName("inputPassword"),a.inputPassword=new a("Template.inputPassword",function(){var e=this;return M._TemplateWith(function(){return F.dataMustache(e.lookup("extend"),e.lookup("."),F.kw({type:"password"}))},function(){return F.include(e.lookupTemplate("inputText"),function(){return["\n ",M._InOuterTemplateScope(e,function(){return F.include(function(){return F.call(e.templateContentBlock)})}),"\n "]})})})},"radio.html":["./template.radio.js",function(e,t,n){n.exports=e("./template.radio.js")}],"template.radio.js":function(){a.__checkName("inputRadio"),a.inputRadio=new a("Template.inputRadio",function(){var e=this;return M._TemplateWith(function(){return F.dataMustache(e.lookup("extend"),e.lookup("."),F.kw({base:"baseInput",type:"radio",mixins:F.dataMustache(e.lookup("concat"),"input ",F.dot(e.lookup("."),"mixins")),labelAfter:F.dataMustache(e.lookup("valueIf"),F.dataMustache(e.lookup("isUndefined"),F.dot(e.lookup("."),"labelAfter")),!0,F.dot(e.lookup("."),"labelAfter")),labelClass:F.dataMustache(e.lookup("concat"),"radioLabel ",F.dot(e.lookup("."),"labelClass")),wrappers:F.dataMustache(e.lookup("concat"),"",F.dataMustache(e.lookup("valueIf"),e.lookup("reactive"),F.dot(e.lookup("."),"label"),"wrapperLabel ",""),F.dot(e.lookup("."),"wrappers"))}))},function(){return F.include(e.lookupTemplate("baseComponent"),function(){return["\n ",M._InOuterTemplateScope(e,function(){return F.include(function(){return F.call(e.templateContentBlock)})}),"\n "]})})})},"range.html":["./template.range.js",function(e,t,n){n.exports=e("./template.range.js")}],"template.range.js":function(){a.__checkName("inputRange"),a.inputRange=new a("Template.inputRange",function(){var e=this;return M._TemplateWith(function(){return F.dataMustache(e.lookup("extend"),e.lookup("."),F.kw({base:"baseInput",type:"range",class:F.dataMustache(e.lookup("concat"),"form-control ",F.dot(e.lookup("."),"class")),mixins:F.dataMustache(e.lookup("concat"),"input ",F.dot(e.lookup("."),"mixins")),wrappers:F.dataMustache(e.lookup("concat"),"",F.dataMustache(e.lookup("valueIf"),e.lookup("reactive"),F.dot(e.lookup("."),"label"),"wrapperLabel ",""),F.dot(e.lookup("."),"wrappers"))}))},function(){return F.include(e.lookupTemplate("baseComponent"),function(){return["\n ",M._InOuterTemplateScope(e,function(){return F.include(function(){return F.call(e.templateContentBlock)})}),"\n "]})})})},"select.html":["./template.select.js",function(e,t,n){n.exports=e("./template.select.js")}],"template.select.js":function(){a.__checkName("inputSelect"),a.inputSelect=new a("Template.inputSelect",function(){var e=this;return M._TemplateWith(function(){return F.dataMustache(e.lookup("extend"),e.lookup("."),F.kw({base:"baseSelect",mixins:F.dataMustache(e.lookup("concat"),"select2 ",F.dot(e.lookup("."),"mixins")),wrappers:F.dataMustache(e.lookup("concat"),"",F.dataMustache(e.lookup("valueIf"),e.lookup("reactive"),F.dot(e.lookup("."),"label"),"wrapperLabel ",""),F.dot(e.lookup("."),"wrappers")),options:F.dataMustache(e.lookup("clone"),F.dot(e.lookup("."),"options"),F.kw({multiple:F.dataMustache(e.lookup("valueIf"),F.dot(e.lookup("."),"multiple"),!0,!1),minimumResultsForSearch:F.dataMustache(e.lookup("valueIf"),F.dot(e.lookup("."),"hideSearch"),-1,F.dot(e.lookup("."),"minimumResultsForSearch"))}))}))},function(){return F.include(e.lookupTemplate("baseComponent"),function(){return["\n ",M._InOuterTemplateScope(e,function(){return F.include(function(){return F.call(e.templateContentBlock)})}),"\n "]})})})},"text.html":["./template.text.js",function(e,t,n){n.exports=e("./template.text.js")}],"template.text.js":function(){a.__checkName("inputText"),a.inputText=new a("Template.inputText",function(){var e=this;return M._TemplateWith(function(){return F.dataMustache(e.lookup("extend"),e.lookup("."),F.kw({base:"baseInput",class:F.dataMustache(e.lookup("concat"),"form-control ",F.dot(e.lookup("."),"class")),mixins:F.dataMustache(e.lookup("concat"),"input ",F.dot(e.lookup("."),"mixins")),wrappers:F.dataMustache(e.lookup("concat"),"",F.dataMustache(e.lookup("valueIf"),e.lookup("reactive"),F.dot(e.lookup("."),"label"),"wrapperLabel ",""),F.dot(e.lookup("."),"wrappers"))}))},function(){return F.include(e.lookupTemplate("baseComponent"),function(){return["\n ",M._InOuterTemplateScope(e,function(){return F.include(function(){return F.call(e.templateContentBlock)})}),"\n "]})})})}}},playground:{"playground.html":["./template.playground.js",function(e,t,n){n.exports=e("./template.playground.js")}],"template.playground.js":function(){a.__checkName("componentPlayground"),a.componentPlayground=new a("Template.componentPlayground",function(){var e=this;return A.DIV({class:"component-playground"},"\n ",M._TemplateWith(function(){return{threeColumns:F.call(!0),hideCommon:F.call(!0)}},function(){return F.include(e.lookupTemplate("measureFlow"))}),"\n ")})},"playground.js":function(){a.componentPlayground.onRendered(function(){var e=a.instance();e.$(".measure-flow").draggable()})},"playground.styl":["./playground.styl.css",function(e,t,n){n.exports=e("./playground.styl.css")}],"playground.styl.css":["meteor/modules",function(e,t,n){n.exports=e("meteor/modules").addStyles(".component-playground {\n height: 100vh;\n}\n")}]}},helpers:{"blaze.js":["meteor/templating","meteor/session","meteor/reactive-var",function(e,t,n){var o;n.import("meteor/templating",{Template:function(e){o=e}});var r;n.import("meteor/session",{Session:function(e){r=e}});var i;n.import("meteor/reactive-var",{ReactiveVar:function(e){i=e}}),o.registerHelper("instance",function(){return o.instance()}),o.registerHelper("session",function(e){return r.get(e)}),o.registerHelper("reactive",function(e){return e instanceof i?e.get():e})}],"data.js":["babel-runtime/helpers/toConsumableArray","babel-runtime/helpers/typeof","meteor/underscore","meteor/templating",function(e,t,n){var o;n.import("babel-runtime/helpers/toConsumableArray",{default:function(e){o=e}});var r;n.import("babel-runtime/helpers/typeof",{default:function(e){r=e}});var i;n.import("meteor/underscore",{_:function(e){i=e}});var a;n.import("meteor/templating",{Template:function(e){a=e}});var u=function e(){for(var t=arguments.length,n=Array(t),o=0;ot}),r.registerHelper("lt",function(e,t){return e=t}),r.registerHelper("lte",function(e,t){return e<=t}),r.registerHelper("not",function(e){return!e}),r.registerHelper("and",function(){for(var e=arguments.length,t=Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:"_component",n=e;n;)if(n=n.originalParentView||n.parentView,n&&n[t])return n[t]}}],"cornerstone.js":["babel-runtime/helpers/typeof","meteor/ohif:core","meteor/underscore",function(e,t,n){var r;n.import("babel-runtime/helpers/typeof",{default:function(e){r=e}});var i;n.import("meteor/ohif:core",{OHIF:function(e){i=e}});var a;n.import("meteor/underscore",{_:function(e){a=e}}),i.cornerstone={},i.cornerstone.pixelToPage=function(e,t){var n=cornerstone.getEnabledElement(e),i={x:0,y:0};if(!n||"object"!==("undefined"==typeof t?"undefined":r(t)))return i;var a=n.canvas,u=o(a).offset();i.x+=u.left,i.y+=u.top;var l=cornerstone.pixelToCanvas(e,t);return i.x+=l.x,i.y+=l.y,i},i.cornerstone.repositionTextBoxWhileDragging=function(e,t){var n=e.element,r=cornerstone.getEnabledElement(n),i=o(n),u=r.image,l=function e(){var n=t.handles,o=n.textBox,r=function e(t){return a.pick(n[t],["x","y"])},i=r("start"),l=r("end"),c=function e(t){var n=i[t],o=l[t],r=Math.min(n,o),a=Math.max(n,o);return r+(a-r)/2},s={};s.x=c("x"),s.y=c("y");var p={};p.x=u.width/2,p.y=u.height/2;var m={};m.x=s.x2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],u=new RegExp(i.trim(t),"i");return r.each(e,function(e){if(e){var i=r.isString(n)?e[n]:e;r.isString(i)&&u.test(i)&&a.push(e),r.isObject(e)&&o.string.search(e,t,n,a)}}),a},o.string.encodeId=function(e){if(""===e||"string"!=typeof e)return"_";var t=function e(t){return"_"+t[0].charCodeAt(0).toString(16)+"_"};return e.replace(/[^a-zA-Z0-9-]/g,t)}}],"ui.js":["meteor/ohif:core","meteor/meteor",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}});var r;n.import("meteor/meteor",{Meteor:function(e){r=e}});var i=r.settings&&r.settings.public&&r.settings.public.ui;o.uiSettings=i||{}}],"user.js":["meteor/ohif:core",function(t,n,o){var r;o.import("meteor/ohif:core",{OHIF:function(e){r=e}}),r.user={},r.user.validate=function(){if(!e.userId())throw new e.Error("not-authorized")},r.user.getData=function(t){r.user.validate();var n=e.user().profile,o=n&&n.persistent;if(o)return o[t]},r.user.setData=function(t,n){r.user.validate(),e.call("userDataSet",t,n)}}],"utils.js":["meteor/ohif:core",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}}),o.utils={},o.utils.sortBy=function(){var e=[].slice.call(arguments),t=e.length;return function(n,o){var r,i,a,u,l,c,s,p;for(p=0;pi&&(s=1*c),0===s);p++);return s}}}],"viewer.js":["meteor/ohif:core",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}}),o.viewer={},o.viewer.getDisplaySetSequenceMap=function(){var e=window.layoutManager.viewportData,t=new v;return e.forEach(function(e,n){var o=i.findWhere(window.layoutManager.studies,{studyInstanceUid:e.studyInstanceUid})||window.layoutManager.studies[0],r=o.displaySets,a=i.findWhere(r,{displaySetInstanceUid:e.displaySetInstanceUid}),u=i.indexOf(r,a);u=u<0?9999:u;var l=t.get(o);l||(l=[],t.set(o,l)),l.push({viewportIndex:n,displaySetIndex:u})}),t},o.viewer.isDisplaySetsSequenced=function(e){var t=!0,n=e||o.viewer.getDisplaySetSequenceMap();return n.forEach(function(e,n){var o=null,r=null;e.forEach(function(e,n){var i=e.viewportIndex,a=e.displaySetIndex;9999===a||null===r||null===o||null===a||i-1===r&&a-1===o||(t=!1),r=i,o=a})}),t},o.viewer.canMoveDisplaySets=function(e){var t=o.uiSettings.displaySetNavigationMultipleViewports,n=o.uiSettings.displaySetNavigationLoopOverSeries;if(!window.layoutManager)return!1;var r=o.viewer.getDisplaySetSequenceMap(),i=o.viewer.isDisplaySetsSequenced(r),a=t?null:I.get("activeViewport");if(e&&!n){var u=!0;if(r.forEach(function(e,n){var o=e[null!==a?a:e.length-1];if(o){var r=o.displaySetIndex,i=e.length,l=n.displaySets.length,c=t?l%i||i:1,s=l-c;9999!==r&&r!==s&&(u=!1)}}),(!t||i)&&u)return!1}if(!e&&!n){var l=!0;if(a>=0&&r.forEach(function(e,t){var n=e[null!==a?a:0];if(n){var o=n.displaySetIndex,r=e.length;9999!==o&&o-r!==-r&&(l=!1)}}),(!t||i)&&l)return!1}return!0},o.viewer.moveSingleViewportDisplaySets=function(e,t){var n=o.uiSettings.displaySetNavigationLoopOverSeries,r=window.layoutManager.viewportData[e],a=i.findWhere(window.layoutManager.studies,{studyInstanceUid:r.studyInstanceUid})||window.layoutManager.studies[0],u=a.displaySets,l=i.findWhere(u,{displaySetInstanceUid:r.displaySetInstanceUid}),c=i.indexOf(u,l);if(t){if(c++,c>=u.length){if(!n)return;c=0}}else if(c--,c<0){if(!n)return;c=u.length-1}var s=u[c];window.layoutManager.rerenderViewportWithNewDisplaySet(e,s)},o.viewer.moveMultipleViewportDisplaySets=function(e){var t=o.uiSettings.displaySetNavigationLoopOverSeries,n=new o.viewer.getDisplaySetSequenceMap,r=o.viewer.isDisplaySetsSequenced(n),i=[];n.forEach(function(n,o){n.sort(function(e,t){return e.displaySetIndex>t.displaySetIndex});var a=o.displaySets,u=n[0].displaySetIndex,l=n.length,c=u%l,s=c?u-c:u,p=e?1:-1;s+=l*p;var m=a.length;if(s>=m){var d=m%l||l,f=m-d;if(u+l!==f+l)s=f;else{if(!t)return;s=0}}else if(s<0)if(u>0)s=0;else{if(!t)return;s=m-1-(m-1)%l}else r||(s=0);n.forEach(function(e,t){var n=e.viewportIndex,o=s+t,r=a[o]||{};i.push(r)})});var a=o.utils.sortBy({name:"studyInstanceUid"},{name:"instanceNumber"},{name:"seriesNumber"});i.sort(function(e,t){return a(e,t)}),i.forEach(function(e,t){window.layoutManager.rerenderViewportWithNewDisplaySet(t,e)})},o.viewer.moveDisplaySets=function(e){if(o.uiSettings.displaySetNavigationMultipleViewports)o.viewer.moveMultipleViewportDisplaySets(e);else{var t=I.get("activeViewport");o.viewer.moveSingleViewportDisplaySets(t,e)}}}]},ui:{"index.js":["./bounded/bounded.js","./dialog/form.js","./dialog/spatial.js","./draggable/draggable.js","./dropdown/form.js","./resizable/resizable.js","./unsavedChanges/unsavedChanges.js",function(e,t,n){n.import("./bounded/bounded.js"),n.import("./dialog/form.js"),n.import("./dialog/spatial.js"),n.import("./draggable/draggable.js"),n.import("./dropdown/form.js"),n.import("./resizable/resizable.js"),n.import("./unsavedChanges/unsavedChanges.js")}],bounded:{"bounded.js":["babel-runtime/helpers/classCallCheck","meteor/ohif:core",function(e,t,n){var r;n.import("babel-runtime/helpers/classCallCheck",{default:function(e){r=e}});var a;n.import("meteor/ohif:core",{OHIF:function(e){a=e}}),o.fn.bounded=function(e){return i.each(this,function(t){var n=o(t).data("boundedInstance");"destroy"===e&&n?(o(t).removeData("boundedInstance"),n.destroy()):n?n.options(e):o(t).data("boundedInstance",new u(t,e))}),this};var u=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};r(this,e),this.element=t, -this.$element=o(t),this.options(n),this.setBoundedFlag(!1)}return e.prototype.options=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.boundingElement,n=e.allowResizing;this.boundingElement=t,this.$boundingElement=o(this.boundingElement),this.allowResizing=n,"fixed"===this.$element.css("position")&&(this.boundingElement=window),this.destroy(),this.init()}return e}(),e.prototype.init=function(){function e(){var e=this;this.defineEventHandlers(),this.attachEventHandlers(),this.$element.addClass("bounded"),setTimeout(function(){return e.$element.trigger("spatialChanged")})}return e}(),e.prototype.destroy=function(){function e(){this.detachEventHandlers(),this.$element.removeClass("bounded")}return e}(),e.spatialInfo=function(){function e(e){var t={};if(!e||e===window){var n=o(window),r=n.outerWidth(),i=n.outerHeight();return{width:r,height:i,x0:0,y0:0,x1:r,y1:i}}var a=o(e),u=e.style;u.width&&u.width.indexOf("px")>-1?t.width=parseInt(u.width):t.width=a.outerWidth(),u.height&&u.height.indexOf("px")>-1?t.height=parseInt(u.height):t.height=a.outerHeight();var l="fixed"===a.css("position")?"position":"offset",c=a[l]();return t.x0=c.left,t.y0=c.top,t.x1=t.x0+t.width,t.y1=t.y0+t.height,t}return e}(),e.prototype.defineEventHandlers=function(){function t(){var t=this;this.spatialChangedHandler=function(n){var o=e.spatialInfo(t.element),r=e.spatialInfo(t.boundingElement);t.allowResizing&&o.width>r.width?(t.$element.width(r.width),t.$element.css("left",r.x0),t.setBoundedFlag(!0)):o.x0r.x1&&(t.$element.css("left",r.x1-o.width),t.setBoundedFlag(!0)),t.allowResizing&&o.height>r.height?(t.$element.height(r.height),t.$element.css("top",r.y0),t.setBoundedFlag(!0)):o.y0r.y1&&(t.$element.css("top",r.y1-o.height),t.setBoundedFlag(!0))}}return t}(),e.prototype.attachEventHandlers=function(){function e(){this.$element.on("spatialChanged",this.spatialChangedHandler),this.$boundingElement.on("resize",this.spatialChangedHandler)}return e}(),e.prototype.detachEventHandlers=function(){function e(){this.$element.off("spatialChanged",this.spatialChangedHandler),this.$boundingElement.off("resize",this.spatialChangedHandler)}return e}(),e.prototype.setBoundedFlag=function(){function e(e){this.$element.data("wasBounded",e)}return e}(),e}();a.ui.Bounded=u}]},dialog:{"form.js":["meteor/templating","meteor/blaze","meteor/underscore","meteor/ohif:core",function(e,t,n){var o;n.import("meteor/templating",{Template:function(e){o=e}});var r;n.import("meteor/blaze",{Blaze:function(e){r=e}});var i;n.import("meteor/underscore",{_:function(e){i=e}});var a;n.import("meteor/ohif:core",{OHIF:function(e){a=e}}),a.ui.showFormDialog=function(e,t){var n=o[e];if(!n)throw{name:"TEMPLATE_NOT_FOUND",message:"Template "+e+" not found."};var a=void 0,u=void 0,l=new b(function(e,t){a=e,u=t}),c=i.extend({},t,{promise:l,promiseResolve:a,promiseReject:u}),s=r.renderWithData(n,c,document.body),p=function e(){return r.remove(s)};return l.then(p,p),l}}],"spatial.js":["meteor/ohif:core",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}}),o.ui.repositionDialog=function(e,t,n){var o=e.find(".modal-dialog");o.css({margin:0,position:"fixed"}).bounded();var r=e.is(":visible");e.show();var i=o.outerHeight(),a=o.outerWidth(),u=parseInt(t-a/2),l=parseInt(n-i/2);o.css({left:u,top:l}).trigger("spatialChanged"),e.toggle(r)}}]},draggable:{"draggable.js":["meteor/ohif:core",function(e,t,n){var r;n.import("meteor/ohif:core",{OHIF:function(e){r=e}}),o.fn.draggable=function(){return r.ui.makeDraggable(this),this},r.ui.makeDraggable=function(e){function t(e){var t={x:e.clientX,y:e.clientY};return void 0===t.x&&(t.x=e.originalEvent.touches[0].pageX),void 0===t.y&&(t.y=e.originalEvent.touches[0].pageY),t}function n(n){if(!n.target.type||"range"!==n.target.type){var s=parseFloat(e.offset().top),p=parseFloat(e.offset().left),m=t(n);u=m.x-p,l=m.y-s,a.css("cursor","move"),e.css("cursor","move"),e.css({cursor:"move",left:p+"px",top:s+"px",bottom:"auto",right:"auto"}),o(document).on("mousemove",i),o(document).on("mouseup",r),o(document).on("touchmove",i),o(document).on("touchend",r),c&&(e.data("wasDragged",!0),c=!1)}}function r(){a.css("cursor","default"),e.css("cursor",E.defaultElementCursor),o(document).off("mousemove",i),o(document).off("touchmove",i)}function i(n){n.preventDefault();var o=parseFloat(e.outerWidth()),r=parseFloat(e.outerHeight()),i=parseFloat(a.width()),c=parseFloat(a.height()),s=t(n),p=s.x-u,m=s.y-l;p=Math.max(p,0),m=Math.max(m,0),p+o>i&&(p=i-o),m+r>c&&(m=c-r),e.css({left:p+"px",top:m+"px",bottom:"auto",right:"auto"})}var a=o(window),u,l,c=!0;E=E||{},E.defaultElementCursor=E.defaultElementCursor||"default",e.data("wasDragged",!1),e.on("mousedown",n),e.on("touchstart",n)}}]},dropdown:{"form.js":["meteor/templating","meteor/blaze","meteor/underscore","meteor/ohif:core",function(e,t,n){var o;n.import("meteor/templating",{Template:function(e){o=e}});var r;n.import("meteor/blaze",{Blaze:function(e){r=e}});var i;n.import("meteor/underscore",{_:function(e){i=e}});var a;n.import("meteor/ohif:core",{OHIF:function(e){a=e}}),a.ui.showFormDropdown=function(e,t){var n=o[e];if(!n)throw{name:"TEMPLATE_NOT_FOUND",message:"Template "+e+" not found."};var a=void 0,u=function e(){return r.remove(a)},l=i.extend({},t,{destroyView:u});a=r.renderWithData(n,l,document.body);var c=a.firstNode();return c}}]},resizable:{"resizable.js":["babel-runtime/helpers/classCallCheck","meteor/ohif:core",function(e,t,n){var r;n.import("babel-runtime/helpers/classCallCheck",{default:function(e){r=e}});var a;n.import("meteor/ohif:core",{OHIF:function(e){a=e}}),o.fn.resizable=function(e){return i.each(this,function(t){var n=o(t).data("resizableInstance");"destroy"===e&&n?(o(t).removeData("resizableInstance"),n.destroy()):n?n.options(e):o(t).data("resizableInstance",new u(t,e))}),this};var u=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};r(this,e),this.element=t,this.$element=o(t),this.options(n)}return e.prototype.options=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.boundSize,n=e.minWidth,o=e.minHeight;this.minWidth=n||this.$element.width()||16,this.minHeight=o||this.$element.height()||16,this.boundSize=t||8,this.destroy(),this.init()}return e}(),e.prototype.init=function(){function e(){this.defineEventHandlers();for(var e=-1;e<=1;e++)for(var t=-1;t<=1;t++)this.createBound(e,t);this.$element.addClass("resizable")}return e}(),e.prototype.destroy=function(){function e(){this.$element.removeClass("resizable resizing");var e=this.$element.find("resize-bound");e.remove(),this.detachEventHandlers(e)}return e}(),e.prototype.defineEventHandlers=function(){function e(){var e=this;this.initResizeHandler=function(t){var n=o(window);t.stopPropagation(),e.width=e.initialWidth=e.$element.width(),e.height=e.initialHeight=e.$element.height(),e.startWidth=e.width,e.startHeight=e.height,e.posX=parseInt(e.$element.css("left")),e.posY=parseInt(e.$element.css("top")),e.startPosX=e.posX,e.startPosY=e.posY,e.startX=t.clientX,e.startY=t.clientY,e.$element.addClass("resizing"),n.on("mousemove",t.data,e.resizeHandler),n.on("mouseup",t.data,e.endResizeHandler)},this.resizeHandler=function(t){var n=t.data,o=n.xDirection,r=n.yDirection,i=void 0,a=void 0;i=t.clientX<0?0:t.clientX,i=i>window.innerWidth?window.innerWidth:i,a=t.clientY<0?0:t.clientY,a=a>window.innerHeight?window.innerHeight:a;var u=(i-e.startX)*o,l=(a-e.startY)*r,c=u+e.startWidth,s=l+e.startHeight;e.width=c');n[0].onselectstart=function(){return!1},n.css("font-size",this.boundSize+"px");var r=["left","center","right"],i=["top","middle","bottom"];n.addClass("bound-"+r[e+1]),n.addClass("bound-"+i[t+1]),n.appendTo(this.$element),this.attachEventHandlers(n,e,t)}}return e}(),e}();a.ui.Resizable=u}]},unsavedChanges:{"unsavedChanges.js":["meteor/ohif:core","meteor/underscore",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}});var r;n.import("meteor/underscore",{_:function(e){r=e}}),o.ui.unsavedChanges=function(e,t){function n(e,t){var n={name:e};return t?(n.type="tree",n.children={}):(n.type="leaf",n.value=1),n}function o(e,t){var r=void 0,i=!1,a=t.shift();return"*"!==a&&(a in e?(r=e[a],t.length>0?i="tree"===r.type&&o(r.children,t):"leaf"===r.type&&(r.value++,i=!0)):(r=n(a,t.length>0),("tree"!==r.type||o(r.children,t))&&(e[a]=r,i=!0))),i}function r(e,t){var n=!1,o=t.shift();if("*"===o){for(o in k.sanitizeForInObject(e))e.hasOwnProperty(o)&&delete e[o];n=!0}else if(o in e)if(0===t.length)delete e[o],n=!0;else{var i=e[o];"tree"===i.type&&(n=r(i.children,t))}return n}function i(e,t){var n=void 0,o=0,r=t.shift();if("*"===r)for(r in k.sanitizeForInObject(e))e.hasOwnProperty(r)&&(n=e[r],"leaf"===n.type?o+=n.value:(t.unshift("*"),o+=i(n.children,t)));else r in e&&(n=e[r],"tree"===n.type?(0===t.length&&t.unshift("*"),o=i(n.children,t)):o=0===t.length?n.value:0);return o}var a={};return{set:function(){function e(e){return"string"==typeof e&&o(a,e.split("."))}return e}(),clear:function(){function e(e){return"string"==typeof e&&r(a,e.split("."))}return e}(),probe:function(){function e(e){return"string"==typeof e?i(a,e.split(".")):0}return e}(),checkBeforeAction:function(){function n(n,o,r){var i=void 0,a=void 0,u=void 0;if("function"==typeof o)if(i=this.probe(n),i>0){a=!0;var l=t.extend({title:"You have unsaved changes!",message:"Your changes will be lost if you don't save them before leaving the current page... Are you sure you want to proceed?"},r);e.ui.showFormDialog("dialogConfirm",l).then(function(){u=!0,o.call(null,u,a)},function(){u=!1,o.call(null,u,a)})}else a=!1,u=!0,o.call(null,u,a)}return n}()}}(o,r)}]}}},both:{"index.js":["./schema.js",function(e,t,n){n.import("./schema.js")}],"schema.js":["meteor/aldeed:simple-schema",function(e,t,n){var o;n.import("meteor/aldeed:simple-schema",{SimpleSchema:function(e){o=e}}),o.extendOptions({valuesLabels:$.Optional([String]),textOptional:$.Optional(Boolean)}),o.addValidator(function(){if(this.definition.optional!==!0&&this.definition.textOptional!==!0&&""===this.value)return"required"}),o.messages({maxCount:"[label] can not have more than [maxCount] values",minCount:"[label] must have at least [minCount] values",notAllowed:'[label] has an invalid value: "[value]"'})}]}}}}},{extensions:[".js",".json",".styl",".html"]}),B=R("./node_modules/meteor/ohif:core/main.js");R("./node_modules/meteor/ohif:core/client/index.js"),R("./node_modules/meteor/ohif:core/both/index.js"),"undefined"==typeof Package&&(Package={}),Package["ohif:core"]=B}(); +this.$element=o(t),this.options(n),this.setBoundedFlag(!1)}return e.prototype.options=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.boundingElement,n=e.allowResizing;this.boundingElement=t,this.$boundingElement=o(this.boundingElement),this.allowResizing=n,"fixed"===this.$element.css("position")&&(this.boundingElement=window),this.destroy(),this.init()}return e}(),e.prototype.init=function(){function e(){var e=this;this.defineEventHandlers(),this.attachEventHandlers(),this.$element.addClass("bounded"),setTimeout(function(){return e.$element.trigger("spatialChanged")})}return e}(),e.prototype.destroy=function(){function e(){this.detachEventHandlers(),this.$element.removeClass("bounded")}return e}(),e.spatialInfo=function(){function e(e){var t={};if(!e||e===window){var n=o(window),r=n.outerWidth(),i=n.outerHeight();return{width:r,height:i,x0:0,y0:0,x1:r,y1:i}}var a=o(e),u=e.style;u.width&&u.width.indexOf("px")>-1?t.width=parseInt(u.width):t.width=a.outerWidth(),u.height&&u.height.indexOf("px")>-1?t.height=parseInt(u.height):t.height=a.outerHeight();var l="fixed"===a.css("position")?"position":"offset",c=a[l]();return t.x0=c.left,t.y0=c.top,t.x1=t.x0+t.width,t.y1=t.y0+t.height,t}return e}(),e.prototype.defineEventHandlers=function(){function t(){var t=this;this.spatialChangedHandler=function(n){var o=e.spatialInfo(t.element),r=e.spatialInfo(t.boundingElement);t.allowResizing&&o.width>r.width?(t.$element.width(r.width),t.$element.css("left",r.x0),t.setBoundedFlag(!0)):o.x0r.x1&&(t.$element.css("left",r.x1-o.width),t.setBoundedFlag(!0)),t.allowResizing&&o.height>r.height?(t.$element.height(r.height),t.$element.css("top",r.y0),t.setBoundedFlag(!0)):o.y0r.y1&&(t.$element.css("top",r.y1-o.height),t.setBoundedFlag(!0))}}return t}(),e.prototype.attachEventHandlers=function(){function e(){this.$element.on("spatialChanged",this.spatialChangedHandler),this.$boundingElement.on("resize",this.spatialChangedHandler)}return e}(),e.prototype.detachEventHandlers=function(){function e(){this.$element.off("spatialChanged",this.spatialChangedHandler),this.$boundingElement.off("resize",this.spatialChangedHandler)}return e}(),e.prototype.setBoundedFlag=function(){function e(e){this.$element.data("wasBounded",e)}return e}(),e}();a.ui.Bounded=u}]},dialog:{"form.js":["meteor/templating","meteor/blaze","meteor/underscore","meteor/ohif:core",function(e,t,n){var o;n.import("meteor/templating",{Template:function(e){o=e}});var r;n.import("meteor/blaze",{Blaze:function(e){r=e}});var i;n.import("meteor/underscore",{_:function(e){i=e}});var a;n.import("meteor/ohif:core",{OHIF:function(e){a=e}}),a.ui.showDialog=function(e,t){var n=o[e];if(!n)throw{name:"TEMPLATE_NOT_FOUND",message:"Template "+e+" not found."};var a=void 0,u=void 0,l=new b(function(e,t){a=e,u=t}),c=i.extend({},t,{promise:l,promiseResolve:a,promiseReject:u}),s=r.renderWithData(n,c,document.body),p=function e(){return r.remove(s)};return l.then(p,p),l}}],"spatial.js":["meteor/ohif:core",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}}),o.ui.repositionDialog=function(e,t,n){var o=e.find(".modal-dialog");o.css({margin:0,position:"fixed"}).bounded();var r=e.is(":visible");e.show();var i=o.outerHeight(),a=o.outerWidth(),u=parseInt(t-a/2),l=parseInt(n-i/2);o.css({left:u,top:l}).trigger("spatialChanged"),e.toggle(r)}}]},draggable:{"draggable.js":["meteor/ohif:core",function(e,t,n){var r;n.import("meteor/ohif:core",{OHIF:function(e){r=e}}),o.fn.draggable=function(){return r.ui.makeDraggable(this),this},r.ui.makeDraggable=function(e){function t(e){var t={x:e.clientX,y:e.clientY};return void 0===t.x&&(t.x=e.originalEvent.touches[0].pageX),void 0===t.y&&(t.y=e.originalEvent.touches[0].pageY),t}function n(n){if(!n.target.type||"range"!==n.target.type){var s=parseFloat(e.offset().top),p=parseFloat(e.offset().left),m=t(n);u=m.x-p,l=m.y-s,a.css("cursor","move"),e.css("cursor","move"),e.css({cursor:"move",left:p+"px",top:s+"px",bottom:"auto",right:"auto"}),o(document).on("mousemove",i),o(document).on("mouseup",r),o(document).on("touchmove",i),o(document).on("touchend",r),c&&(e.data("wasDragged",!0),c=!1)}}function r(){a.css("cursor","default"),e.css("cursor",E.defaultElementCursor),o(document).off("mousemove",i),o(document).off("touchmove",i)}function i(n){n.preventDefault();var o=parseFloat(e.outerWidth()),r=parseFloat(e.outerHeight()),i=parseFloat(a.width()),c=parseFloat(a.height()),s=t(n),p=s.x-u,m=s.y-l;p=Math.max(p,0),m=Math.max(m,0),p+o>i&&(p=i-o),m+r>c&&(m=c-r),e.css({left:p+"px",top:m+"px",bottom:"auto",right:"auto"})}var a=o(window),u,l,c=!0;E=E||{},E.defaultElementCursor=E.defaultElementCursor||"default",e.data("wasDragged",!1),e.on("mousedown",n),e.on("touchstart",n)}}]},dropdown:{"form.js":["meteor/templating","meteor/blaze","meteor/underscore","meteor/ohif:core",function(e,t,n){var o;n.import("meteor/templating",{Template:function(e){o=e}});var r;n.import("meteor/blaze",{Blaze:function(e){r=e}});var i;n.import("meteor/underscore",{_:function(e){i=e}});var a;n.import("meteor/ohif:core",{OHIF:function(e){a=e}}),a.ui.showFormDropdown=function(e,t){var n=o[e];if(!n)throw{name:"TEMPLATE_NOT_FOUND",message:"Template "+e+" not found."};var a=void 0,u=function e(){return r.remove(a)},l=i.extend({},t,{destroyView:u});a=r.renderWithData(n,l,document.body);var c=a.firstNode();return c}}]},resizable:{"resizable.js":["babel-runtime/helpers/classCallCheck","meteor/ohif:core",function(e,t,n){var r;n.import("babel-runtime/helpers/classCallCheck",{default:function(e){r=e}});var a;n.import("meteor/ohif:core",{OHIF:function(e){a=e}}),o.fn.resizable=function(e){return i.each(this,function(t){var n=o(t).data("resizableInstance");"destroy"===e&&n?(o(t).removeData("resizableInstance"),n.destroy()):n?n.options(e):o(t).data("resizableInstance",new u(t,e))}),this};var u=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};r(this,e),this.element=t,this.$element=o(t),this.options(n)}return e.prototype.options=function(){function e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.boundSize,n=e.minWidth,o=e.minHeight;this.minWidth=n||this.$element.width()||16,this.minHeight=o||this.$element.height()||16,this.boundSize=t||8,this.destroy(),this.init()}return e}(),e.prototype.init=function(){function e(){this.defineEventHandlers();for(var e=-1;e<=1;e++)for(var t=-1;t<=1;t++)this.createBound(e,t);this.$element.addClass("resizable")}return e}(),e.prototype.destroy=function(){function e(){this.$element.removeClass("resizable resizing");var e=this.$element.find("resize-bound");e.remove(),this.detachEventHandlers(e)}return e}(),e.prototype.defineEventHandlers=function(){function e(){var e=this;this.initResizeHandler=function(t){var n=o(window);t.stopPropagation(),e.width=e.initialWidth=e.$element.width(),e.height=e.initialHeight=e.$element.height(),e.startWidth=e.width,e.startHeight=e.height,e.posX=parseInt(e.$element.css("left")),e.posY=parseInt(e.$element.css("top")),e.startPosX=e.posX,e.startPosY=e.posY,e.startX=t.clientX,e.startY=t.clientY,e.$element.addClass("resizing"),n.on("mousemove",t.data,e.resizeHandler),n.on("mouseup",t.data,e.endResizeHandler)},this.resizeHandler=function(t){var n=t.data,o=n.xDirection,r=n.yDirection,i=void 0,a=void 0;i=t.clientX<0?0:t.clientX,i=i>window.innerWidth?window.innerWidth:i,a=t.clientY<0?0:t.clientY,a=a>window.innerHeight?window.innerHeight:a;var u=(i-e.startX)*o,l=(a-e.startY)*r,c=u+e.startWidth,s=l+e.startHeight;e.width=c');n[0].onselectstart=function(){return!1},n.css("font-size",this.boundSize+"px");var r=["left","center","right"],i=["top","middle","bottom"];n.addClass("bound-"+r[e+1]),n.addClass("bound-"+i[t+1]),n.appendTo(this.$element),this.attachEventHandlers(n,e,t)}}return e}(),e}();a.ui.Resizable=u}]},unsavedChanges:{"unsavedChanges.js":["meteor/ohif:core","meteor/underscore",function(e,t,n){var o;n.import("meteor/ohif:core",{OHIF:function(e){o=e}});var r;n.import("meteor/underscore",{_:function(e){r=e}}),o.ui.unsavedChanges=function(e,t){function n(e,t){var n={name:e};return t?(n.type="tree",n.children={}):(n.type="leaf",n.value=1),n}function o(e,t){var r=void 0,i=!1,a=t.shift();return"*"!==a&&(a in e?(r=e[a],t.length>0?i="tree"===r.type&&o(r.children,t):"leaf"===r.type&&(r.value++,i=!0)):(r=n(a,t.length>0),("tree"!==r.type||o(r.children,t))&&(e[a]=r,i=!0))),i}function r(e,t){var n=!1,o=t.shift();if("*"===o){for(o in k.sanitizeForInObject(e))e.hasOwnProperty(o)&&delete e[o];n=!0}else if(o in e)if(0===t.length)delete e[o],n=!0;else{var i=e[o];"tree"===i.type&&(n=r(i.children,t))}return n}function i(e,t){var n=void 0,o=0,r=t.shift();if("*"===r)for(r in k.sanitizeForInObject(e))e.hasOwnProperty(r)&&(n=e[r],"leaf"===n.type?o+=n.value:(t.unshift("*"),o+=i(n.children,t)));else r in e&&(n=e[r],"tree"===n.type?(0===t.length&&t.unshift("*"),o=i(n.children,t)):o=0===t.length?n.value:0);return o}var a={};return{set:function(){function e(e){return"string"==typeof e&&o(a,e.split("."))}return e}(),clear:function(){function e(e){return"string"==typeof e&&r(a,e.split("."))}return e}(),probe:function(){function e(e){return"string"==typeof e?i(a,e.split(".")):0}return e}(),checkBeforeAction:function(){function n(n,o,r){var i=void 0,a=void 0,u=void 0;if("function"==typeof o)if(i=this.probe(n),i>0){a=!0;var l=t.extend({title:"You have unsaved changes!",message:"Your changes will be lost if you don't save them before leaving the current page... Are you sure you want to proceed?"},r);e.ui.showDialog("dialogConfirm",l).then(function(){u=!0,o.call(null,u,a)},function(){u=!1,o.call(null,u,a)})}else a=!1,u=!0,o.call(null,u,a)}return n}()}}(o,r)}]}}},both:{"index.js":["./schema.js",function(e,t,n){n.import("./schema.js")}],"schema.js":["meteor/aldeed:simple-schema",function(e,t,n){var o;n.import("meteor/aldeed:simple-schema",{SimpleSchema:function(e){o=e}}),o.extendOptions({valuesLabels:$.Optional([String]),textOptional:$.Optional(Boolean)}),o.addValidator(function(){if(this.definition.optional!==!0&&this.definition.textOptional!==!0&&""===this.value)return"required"}),o.messages({maxCount:"[label] can not have more than [maxCount] values",minCount:"[label] must have at least [minCount] values",notAllowed:'[label] has an invalid value: "[value]"'})}]}}}}},{extensions:[".js",".json",".styl",".html"]}),B=R("./node_modules/meteor/ohif:core/main.js");R("./node_modules/meteor/ohif:core/client/index.js"),R("./node_modules/meteor/ohif:core/both/index.js"),"undefined"==typeof Package&&(Package={}),Package["ohif:core"]=B}(); !function(){var Meteor=Package.meteor.Meteor,global=Package.meteor.global,meteorEnv=Package.meteor.meteorEnv,$=Package.jquery.$,jQuery=Package.jquery.jQuery,cornerstone,dicomParser,cornerstoneTools,cornerstoneWADOImageLoader,cornerstoneMath;"undefined"==typeof cornerstone&&(cornerstone={internal:{},rendering:{}}),function(e){"use strict";function i(i){if(void 0===i)throw"disable: element element must not be undefined";for(var t=e.getEnabledElements(),r=0;ri.timeStamp?-1:e.timeStamph;){var t=d[d.length-1];m-=t.sizeInBytes,delete u[t.imageId],t.imagePromise.reject(),d.pop(),$(e).trigger("CornerstoneImageCachePromiseRemoved",{imageId:t.imageId})}var r=e.imageCache.getCacheInfo();$(e).trigger("CornerstoneImageCacheFull",r)}}function r(e,i){if(void 0===e)throw"getImagePromise: imageId must not be undefined";if(void 0===i)throw"getImagePromise: imagePromise must not be undefined";if(u.hasOwnProperty(e)===!0)throw"putImagePromise: imageId already in cache";var r={loaded:!1,imageId:e,sharedCacheKey:void 0,imagePromise:i,timeStamp:new Date,sizeInBytes:0};u[e]=r,d.push(r),i.then(function(e){if(r.loaded=!0,void 0===e.sizeInBytes)throw"putImagePromise: image does not have sizeInBytes property or";if(void 0===e.sizeInBytes.toFixed)throw"putImagePromise: image.sizeInBytes is not a number";e.sharedCacheKey?(r.sizeInBytes=e.sizeInBytes,r.sharedCacheKey=e.sharedCacheKey,c[e.sharedCacheKey]?c[e.sharedCacheKey]++:(c[e.sharedCacheKey]=1,m+=r.sizeInBytes)):(r.sizeInBytes=e.sizeInBytes,m+=r.sizeInBytes),t()})}function n(e){if(void 0===e)throw"getImagePromise: imageId must not be undefined";var i=u[e];if(void 0!==i)return i.timeStamp=new Date,i.imagePromise}function a(e){if(void 0===e)throw"removeImagePromise: imageId must not be undefined";var i=u[e];if(void 0===i)throw"removeImagePromise: imageId must not be undefined";return d.splice(d.indexOf(i),1),d.sharedCacheKey?1===c[d.sharedCacheKey]?(m-=i.sizeInBytes,delete c[d.sharedCacheKey]):c[d.sharedCacheKey]--:m-=i.sizeInBytes,delete u[e],s(i.imagePromise,i.imageId),i.imagePromise}function o(){return{maximumSizeInBytes:h,cacheSizeInBytes:m,numberOfImagesCached:d.length}}function s(e,i){e.then(function(t){t.decache&&t.decache(),e.reject(),delete u[i]}).always(function(){delete u[i]})}function f(){for(;d.length>0;){var e=d.pop();s(e.imagePromise,e.imageId)}m=0}function l(e,i){var t=u[e];t&&t.imagePromise.then(function(e){var t=i-e.sizeInBytes;e.sizeInBytes=i,m+=t})}var u={},c={},d=[],h=1073741824,m=0;e.imageCache={putImagePromise:r,getImagePromise:n,removeImagePromise:a,setMaximumSizeBytes:i,getCacheInfo:o,purgeCache:f,cachedImages:d,changeImageIdCacheSize:l}}(cornerstone),function(e,i){"use strict";function t(t){var r=t.indexOf(":"),n=t.substring(0,r),a=s[n],o;return void 0===a||null===a?void 0!==f?o=f(t):void 0:(o=a(t),o.then(function(t){e(i).trigger("CornerstoneImageLoaded",{image:t})}),o)}function r(e){if(void 0===e)throw"loadImage: parameter imageId must not be undefined";var r=i.imageCache.getImagePromise(e);if(void 0!==r)return r;if(r=t(e),void 0===r)throw"loadImage: no image loader for imageId";return r}function n(e){if(void 0===e)throw"loadAndCacheImage: parameter imageId must not be undefined";var r=i.imageCache.getImagePromise(e);if(void 0!==r)return r;if(r=t(e),void 0===r)throw"loadAndCacheImage: no image loader for imageId";return i.imageCache.putImagePromise(e,r),r}function a(e,i){s[e]=i}function o(e){var i=f;return f=e,i}var s={},f;i.loadImage=r,i.loadAndCacheImage=n,i.registerImageLoader=a,i.registerUnknownImageLoader=o}($,cornerstone),function(e){"use strict";function i(i,t){var r=new e.internal.Transform;r.translate(i.canvas.width/2,i.canvas.height/2);var n=i.viewport.rotation;0!==n&&r.rotate(n*Math.PI/180);var a=i.viewport.scale,o=i.viewport.scale;return i.image.rowPixelSpacing=r?t:e.lut[n]}}function r(e,r,n){return n?t(n):i(e,r)}e.internal.getModalityLUT=r}(cornerstone),function(e){"use strict";function i(e,i,t){var r=e.minPixelValue,n=0,a=0,o=e.width*e.height*4,s=e.getPixelData(),f=i,l=t;if(r<0)for(;a>i,r=e.lut[e.lut.length-1]>>i,n=e.firstValueMapped+e.lut.length-1;return function(a){return a=n?r:e.lut[a-e.firstValueMapped]>>i}}function r(e,r,n){return n?t(n):i(e,r)}e.internal.getVOILUT=r}(cornerstone),function(e){"use strict";function i(i){var t=e.getEnabledElement(i);t.invalid=!0;var r={element:i};$(t.element).trigger("CornerstoneInvalidated",r)}e.invalidate=i}(cornerstone),function(e){"use strict";function i(i){var t=e.getEnabledElementsByImageId(i);t.forEach(function(i){e.drawImage(i,!0)})}e.invalidateImageId=i}(cornerstone),function(e){"use strict";function i(i,t,r){var n=e.getEnabledElement(i);if(void 0===n.image)throw"image has not been loaded yet";var a=n.image,o=i.getBoundingClientRect(),s=t-o.left-window.pageXOffset,f=r-o.top-window.pageYOffset,l={x:s,y:f},u=e.internal.getTransform(n);return u.invert(),u.transformPoint(l.x,l.y)}e.pageToPixel=i}(cornerstone),function(e){"use strict";function i(i,t){var r=e.getEnabledElement(i),n=e.internal.getTransform(r);return n.transformPoint(t.x,t.y)}e.pixelToCanvas=i}(cornerstone),function(e){"use strict";function i(e){o.width=e.width,o.height=e.height,s=o.getContext("2d"),s.fillStyle="white",s.fillRect(0,0,o.width,o.height),f=s.getImageData(0,0,e.width,e.height)}function t(i,t){return void 0!==i.lut&&i.lut.windowCenter===t.voi.windowCenter&&i.lut.windowWidth===t.voi.windowWidth&&i.lut.invert===t.invert?i.lut:(e.generateLut(i,t.voi.windowWidth,t.voi.windowCenter,t.invert),i.lut.windowWidth=t.voi.windowWidth,i.lut.windowCenter=t.voi.windowCenter,i.lut.invert=t.invert,i.lut)}function r(e,i){return i.imageId!==l||u.windowCenter!==e.viewport.voi.windowCenter||u.windowWidth!==e.viewport.voi.windowWidth||u.invert!==e.viewport.invert||u.rotation!==e.viewport.rotation||u.hflip!==e.viewport.hflip||u.vflip!==e.viewport.vflip}function n(n,a,l){if(255===n.viewport.voi.windowWidth&&128===n.viewport.voi.windowCenter&&n.viewport.invert===!1&&a.getCanvas&&a.getCanvas())return a.getCanvas();if(r(n,a)===!1&&l!==!0)return o;o.width===a.width&&o.height==a.height||i(a);var u=t(a,n.viewport);return e.storedColorPixelDataToCanvasImageData(a,u,f.data),s.putImageData(f,0,0),o}function a(i,t){if(void 0===i)throw"drawImage: enabledElement parameter must not be undefined";var r=i.image;if(void 0===r)throw"drawImage: image must be loaded before it can be drawn";var a=i.canvas.getContext("2d");a.setTransform(1,0,0,1,0,0),a.fillStyle="black",a.fillRect(0,0,i.canvas.width,i.canvas.height),i.viewport.pixelReplication===!0?(a.imageSmoothingEnabled=!1,a.mozImageSmoothingEnabled=!1):(a.imageSmoothingEnabled=!0,a.mozImageSmoothingEnabled=!0),a.save(),e.setToPixelCoordinateSystem(i,a);var o;o=i.options&&i.options.renderer&&"webgl"===i.options.renderer.toLowerCase()?e.webGL.renderer.render(i):n(i,r,t),a.drawImage(o,0,0,r.width,r.height,0,0,r.width,r.height),a.restore(),l=r.imageId,u.windowCenter=i.viewport.voi.windowCenter,u.windowWidth=i.viewport.voi.windowWidth,u.invert=i.viewport.invert,u.rotation=i.viewport.rotation,u.hflip=i.viewport.hflip,u.vflip=i.viewport.vflip}var o=document.createElement("canvas"),s,f,l,u={};e.rendering.colorImage=a,e.renderColorImage=a}(cornerstone),function(e){"use strict";function i(e){s.width=e.width,s.height=e.height,f=s.getContext("2d"),f.fillStyle="white",f.fillRect(0,0,s.width,s.height),l=f.getImageData(0,0,e.width,e.height)}function t(e,i){return!e&&!i||!(!e||!i)&&e.id!==i.id}function r(i,r,n){return void 0!==i.lut&&i.lut.windowCenter===r.voi.windowCenter&&i.lut.windowWidth===r.voi.windowWidth&&t(i.lut.modalityLUT,r.modalityLUT)&&t(i.lut.voiLUT,r.voiLUT)&&i.lut.invert===r.invert&&n!==!0?i.lut:(e.generateLut(i,r.voi.windowWidth,r.voi.windowCenter,r.invert,r.modalityLUT,r.voiLUT),i.lut.windowWidth=r.voi.windowWidth,i.lut.windowCenter=r.voi.windowCenter,i.lut.invert=r.invert,i.lut.voiLUT=r.voiLUT,i.lut.modalityLUT=r.modalityLUT,i.lut)}function n(e,i){return i.imageId!==u||c.windowCenter!==e.viewport.voi.windowCenter||c.windowWidth!==e.viewport.voi.windowWidth||c.invert!==e.viewport.invert||c.rotation!==e.viewport.rotation||c.hflip!==e.viewport.hflip||c.vflip!==e.viewport.vflip||c.modalityLUT!==e.viewport.modalityLUT||c.voiLUT!==e.viewport.voiLUT}function a(t,a,o){if(n(t,a)===!1&&o!==!0)return s;s.width===a.width&&s.height==a.height||i(a);var u=r(a,t.viewport,o);return e.storedPixelDataToCanvasImageData(a,u,l.data),f.putImageData(l,0,0),s}function o(i,t){if(void 0===i)throw"drawImage: enabledElement parameter must not be undefined";var r=i.image;if(void 0===r)throw"drawImage: image must be loaded before it can be drawn";var n=i.canvas.getContext("2d");n.setTransform(1,0,0,1,0,0),n.fillStyle="black",n.fillRect(0,0,i.canvas.width,i.canvas.height),i.viewport.pixelReplication===!0?(n.imageSmoothingEnabled=!1,n.mozImageSmoothingEnabled=!1):(n.imageSmoothingEnabled=!0,n.mozImageSmoothingEnabled=!0),e.setToPixelCoordinateSystem(i,n);var o;o=i.options&&i.options.renderer&&"webgl"===i.options.renderer.toLowerCase()?e.webGL.renderer.render(i):a(i,r,t),n.drawImage(o,0,0,r.width,r.height,0,0,r.width,r.height),u=r.imageId,c.windowCenter=i.viewport.voi.windowCenter,c.windowWidth=i.viewport.voi.windowWidth,c.invert=i.viewport.invert,c.rotation=i.viewport.rotation,c.hflip=i.viewport.hflip,c.vflip=i.viewport.vflip,c.modalityLUT=i.viewport.modalityLUT,c.voiLUT=i.viewport.voiLUT}var s=document.createElement("canvas"),f,l,u,c={};e.rendering.grayscaleImage=o,e.renderGrayscaleImage=o}(cornerstone),function(e){"use strict";function i(i,t){if(void 0===i)throw"drawImage: enabledElement parameter must not be undefined";var r=i.image;if(void 0===r)throw"drawImage: image must be loaded before it can be drawn";var n=i.canvas.getContext("2d");n.setTransform(1,0,0,1,0,0),n.fillStyle="black",n.fillRect(0,0,i.canvas.width,i.canvas.height),i.viewport.pixelReplication===!0?(n.imageSmoothingEnabled=!1,n.mozImageSmoothingEnabled=!1):(n.imageSmoothingEnabled=!0,n.mozImageSmoothingEnabled=!0),e.setToPixelCoordinateSystem(i,n),i.viewport.voi.windowWidth===i.image.windowWidth&&i.viewport.voi.windowCenter===i.image.windowCenter&&i.viewport.invert===!1?n.drawImage(r.getImage(),0,0,r.width,r.height,0,0,r.width,r.height):e.renderColorImage(i,t)}e.rendering.webImage=i,e.renderWebImage=i}(cornerstone),function(e){"use strict";function i(i){var t=e.getEnabledElement(i),r=e.internal.getDefaultViewport(t.canvas,t.image);t.viewport=r,e.updateImage(i)}e.reset=i}(cornerstone),function(e){"use strict";function i(e,i){i.width=e.clientWidth,i.height=e.clientHeight,i.style.width=e.clientWidth+"px",i.style.height=e.clientHeight+"px"}function t(t,r){var n=e.getEnabledElement(t);i(t,n.canvas),void 0!==n.image&&(r===!0?e.fitToWindow(t):e.updateImage(t))}e.resize=t}(cornerstone),function(e){"use strict";function i(i,t,r){if(void 0===i)throw"setToPixelCoordinateSystem: parameter enabledElement must not be undefined";if(void 0===t)throw"setToPixelCoordinateSystem: parameter context must not be undefined";var n=e.internal.calculateTransform(i,r);t.setTransform(n.m[0],n.m[1],n.m[2],n.m[3],n.m[4],n.m[5],n.m[6])}e.setToPixelCoordinateSystem=i}(cornerstone),function(e){"use strict";function i(i,t){var r=e.getEnabledElement(i);r.viewport.scale=t.scale,r.viewport.translation.x=t.translation.x,r.viewport.translation.y=t.translation.y,r.viewport.voi.windowWidth=t.voi.windowWidth,r.viewport.voi.windowCenter=t.voi.windowCenter,r.viewport.invert=t.invert,r.viewport.pixelReplication=t.pixelReplication,r.viewport.rotation=t.rotation,r.viewport.hflip=t.hflip,r.viewport.vflip=t.vflip,r.viewport.modalityLUT=t.modalityLUT,r.viewport.voiLUT=t.voiLUT,r.viewport.voi.windowWidth<1e-6&&(r.viewport.voi.windowWidth=1e-6),r.viewport.scale<1e-4&&(r.viewport.scale=.25),360!==r.viewport.rotation&&r.viewport.rotation!==-360||(r.viewport.rotation=0),e.updateImage(i)}e.setViewport=i}(cornerstone),function(e){"use strict";function i(i,t){var r=e.getEnabledElement(i);if(void 0===r.image)throw"updateImage: image has not been loaded yet";e.drawImage(r,t)}e.updateImage=i}(cornerstone),function(e){"use strict";function i(e,i,t){var r=e.createShader(t);e.shaderSource(r,i),e.compileShader(r);var n=e.getShaderParameter(r,e.COMPILE_STATUS);if(!n&&!e.isContextLost()){var a=e.getShaderInfoLog(r);console.error("Could not compile shader:\n"+a)}return r}function t(e,i,t){var r=e.createProgram();e.attachShader(r,i),e.attachShader(r,t),e.linkProgram(r);var n=e.getProgramParameter(r,e.LINK_STATUS);if(!n&&!e.isContextLost()){var a=e.getProgramInfoLog(r);console.error("WebGL program filed to link:\n"+a)}return r}function r(e,r,n){var a=i(e,r,e.VERTEX_SHADER),o=i(e,n,e.FRAGMENT_SHADER);return t(e,a,o)}e.webGL||(e.webGL={}),e.webGL.createProgramFromString=r}(cornerstone),function(e){"use strict";function i(){return v}function t(){for(var i in e.webGL.shaders){console.log("WEBGL: Loading shader",i);var t=e.webGL.shaders[i];t.attributes={},t.uniforms={},t.vert=e.webGL.vertexShader,t.program=e.webGL.createProgramFromString(g,t.vert,t.frag),t.attributes.texCoordLocation=g.getAttribLocation(t.program,"a_texCoord"),g.enableVertexAttribArray(t.attributes.texCoordLocation),t.attributes.positionLocation=g.getAttribLocation(t.program,"a_position"),g.enableVertexAttribArray(t.attributes.positionLocation),t.uniforms.resolutionLocation=g.getUniformLocation(t.program,"u_resolution")}}function r(){return e.webGL.isWebGLInitialized===!0?void console.log("WEBGL Renderer already initialized"):void(s(v)&&(d(),t(),console.log("WEBGL Renderer initialized!"),e.webGL.isWebGLInitialized=!0))}function n(e,i,t){e.bufferData(e.ARRAY_BUFFER,new Float32Array([i,t,0,t,i,0,0,0]),e.STATIC_DRAW)}function a(e){e.preventDefault(),console.warn("WebGL Context Lost!")}function o(i){i.preventDefault(),e.webGL.isWebGLInitialized=!1,e.webGL.textureCache.purgeCache(),r(),console.log("WebGL Context Restored.")}function s(i){g=null;try{var t={preserveDrawingBuffer:!0};e.webGL.debug===!0&&WebGLDebugUtils&&(v=WebGLDebugUtils.makeLostContextSimulatingCanvas(v)),g=i.getContext("webgl",t)||i.getContext("experimental-webgl",t),i.removeEventListener("webglcontextlost",a,!1),i.addEventListener("webglcontextlost",a,!1),i.removeEventListener("webglcontextrestored",o,!1),i.addEventListener("webglcontextrestored",o,!1)}catch(e){throw"Error creating WebGL context"}return g||(console.error("Unable to initialize WebGL. Your browser may not support it."),g=null),g}function f(e){if(e.color)return"rgb";var i="int";return e.minPixelValue>=0&&(i="u"+i),i+=e.maxPixelValue>255?"16":"8"}function l(i){var t=f(i);if(e.webGL.shaders.hasOwnProperty(t))return e.webGL.shaders[t];var r=e.webGL.shaders.rgb;return r}function u(i){var t=e.webGL.textureCache.getImageTexture(i.imageId);return t||(t=c(i),e.webGL.textureCache.putImageTexture(i,t)),t.texture}function c(i){var t={uint8:g.LUMINANCE,int8:g.LUMINANCE_ALPHA,uint16:g.LUMINANCE_ALPHA,int16:g.RGB,rgb:g.RGB},r={int8:1,uint16:2,int16:3,rgb:3},n=f(i),a=t[n],o=g.createTexture();g.bindTexture(g.TEXTURE_2D,o),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MIN_FILTER,g.NEAREST),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MAG_FILTER,g.NEAREST),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE),g.pixelStorei(g.UNPACK_ALIGNMENT,1);var s=e.webGL.dataUtilities[n].storedPixelDataToImageData(i,i.width,i.height);g.texImage2D(g.TEXTURE_2D,0,a,i.width,i.height,0,a,g.UNSIGNED_BYTE,s);var l=i.width*i.height*r[n],u={texture:o,sizeInBytes:l};return u}function d(){T=g.createBuffer(),g.bindBuffer(g.ARRAY_BUFFER,T),g.bufferData(g.ARRAY_BUFFER,new Float32Array([1,1,0,1,1,0,0,0]),g.STATIC_DRAW),y=g.createBuffer(),g.bindBuffer(g.ARRAY_BUFFER,y),g.bufferData(g.ARRAY_BUFFER,new Float32Array([1,1,0,1,1,0,0,0]),g.STATIC_DRAW)}function h(e,i,t,r,a){g.clearColor(1,0,0,1),g.viewport(0,0,r,a),g.clear(g.COLOR_BUFFER_BIT|g.DEPTH_BUFFER_BIT),g.useProgram(e.program),g.bindBuffer(g.ARRAY_BUFFER,y),g.vertexAttribPointer(e.attributes.texCoordLocation,2,g.FLOAT,!1,0,0),g.bindBuffer(g.ARRAY_BUFFER,T),g.vertexAttribPointer(e.attributes.positionLocation,2,g.FLOAT,!1,0,0);for(var o in i){var s=g.getUniformLocation(e.program,o);if(!s)throw"Could not access location for uniform: "+o;var f=i[o],l=f.type,u=f.value;"i"==l?g.uniform1i(s,u):"f"==l?g.uniform1f(s,u):"2f"==l&&g.uniform2f(s,u[0],u[1])}n(g,r,a),g.activeTexture(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,t),g.drawArrays(g.TRIANGLE_STRIP,0,4)}function m(e){var i=e.image;v.width=i.width,v.height=i.height;var t=e.viewport,r=l(i),n=u(i),a={u_resolution:{type:"2f",value:[i.width,i.height]},wc:{type:"f",value:t.voi.windowCenter},ww:{type:"f",value:t.voi.windowWidth},slope:{type:"f",value:i.slope},intercept:{type:"f",value:i.intercept},invert:{type:"i",value:t.invert?1:0}};return h(r,a,n,i.width,i.height),v}function b(){var e={failIfMajorPerformanceCaveat:!0};try{var i=document.createElement("canvas");return!!window.WebGLRenderingContext&&(i.getContext("webgl",e)||i.getContext("experimental-webgl",e))}catch(e){return!1}}e.webGL||(e.webGL={});var v=document.createElement("canvas"),w,p,g,k,_,y,T;e.webGL.isWebGLInitialized=!1,e.webGL.renderer={render:m,initRenderer:r,getRenderCanvas:i,isWebGLAvailable:b}}(cornerstone),function(e){"use strict";function i(e){for(var i=e.getPixelData(),t=3,r=new Uint8Array(e.width*e.height*t),n=0,a=0;a>8,10),r[n++]=i[a]<0?0:1}return r}e.webGL||(e.webGL={}),e.webGL.shaders||(e.webGL.shaders={}),e.webGL.dataUtilities||(e.webGL.dataUtilities={});var t={};e.webGL.dataUtilities.int16={storedPixelDataToImageData:i},t.frag="precision mediump float;uniform sampler2D u_image;uniform float ww;uniform float wc;uniform float slope;uniform float intercept;uniform int invert;varying vec2 v_texCoord;void main() {vec4 color = texture2D(u_image, v_texCoord);float intensity = color.r*256.0 + color.g*65536.0;if (color.b == 0.0)intensity = -intensity;intensity = intensity * slope + intercept;float center0 = wc - 0.5;float width0 = max(ww, 1.0);intensity = (intensity - center0) / width0 + 0.5;intensity = clamp(intensity, 0.0, 1.0);gl_FragColor = vec4(intensity, intensity, intensity, 1.0);if (invert == 1)gl_FragColor.rgb = 1.0 - gl_FragColor.rgb;}",e.webGL.shaders.int16=t}(cornerstone),function(e){"use strict";function i(e){for(var i=e.getPixelData(),t=2,r=new Uint8Array(e.width*e.height*t),n=0,a=0;a>8,10)}return r}e.webGL||(e.webGL={}),e.webGL.shaders||(e.webGL.shaders={}),e.webGL.dataUtilities||(e.webGL.dataUtilities={});var t={};e.webGL.dataUtilities.uint16={storedPixelDataToImageData:i},t.frag="precision mediump float;uniform sampler2D u_image;uniform float ww;uniform float wc;uniform float slope;uniform float intercept;uniform int invert;varying vec2 v_texCoord;void main() {vec4 color = texture2D(u_image, v_texCoord);float intensity = color.r*256.0 + color.a*65536.0;intensity = intensity * slope + intercept;float center0 = wc - 0.5;float width0 = max(ww, 1.0);intensity = (intensity - center0) / width0 + 0.5;intensity = clamp(intensity, 0.0, 1.0);gl_FragColor = vec4(intensity, intensity, intensity, 1.0);if (invert == 1)gl_FragColor.rgb = 1.0 - gl_FragColor.rgb;}",e.webGL.shaders.uint16=t}(cornerstone),function(e){"use strict";function i(e){for(var i=e.getPixelData(),t=new Uint8Array(i.length),r=0;ri.timeStamp?-1:e.timeStampu;){var t=l[l.length-1];c-=t.sizeInBytes,delete f[t.imageId],l.pop(),$(e).trigger("CornerstoneWebGLTextureRemoved",{imageId:t.imageId})}var r=e.imageCache.getCacheInfo();console.log("CornerstoneWebGLTextureCacheFull"),$(e).trigger("CornerstoneWebGLTextureCacheFull",r)}}function r(e,i){var r=e.imageId;if(void 0===e)throw"putImageTexture: image must not be undefined";if(void 0===r)throw"putImageTexture: imageId must not be undefined";if(void 0===i)throw"putImageTexture: imageTexture must not be undefined";if(f.hasOwnProperty(r)===!0)throw"putImageTexture: imageId already in cache";var n={imageId:r,imageTexture:i,timeStamp:new Date,sizeInBytes:i.sizeInBytes};if(f[r]=n,l.push(n),void 0===i.sizeInBytes)throw"putImageTexture: imageTexture does not have sizeInBytes property or";if(void 0===i.sizeInBytes.toFixed)throw"putImageTexture: imageTexture.sizeInBytes is not a number";c+=n.sizeInBytes,t()}function n(e){if(void 0===e)throw"getImageTexture: imageId must not be undefined";var i=f[e];if(void 0!==i)return i.timeStamp=new Date,i.imageTexture}function a(e){if(void 0===e)throw"removeImageTexture: imageId must not be undefined";var i=f[e];if(void 0===i)throw"removeImageTexture: imageId must not be undefined";return l.splice(l.indexOf(i),1),c-=i.sizeInBytes,delete f[e],i.imageTexture}function o(){return{maximumSizeInBytes:u,cacheSizeInBytes:c,numberOfImagesCached:l.length}}function s(){for(;l.length>0;){var e=l.pop();delete f[e.imageId]}c=0}var f={},l=[],u=268435456,c=0;e.webGL.textureCache={putImageTexture:r,getImageTexture:n,removeImageTexture:a,setMaximumSizeBytes:i,getCacheInfo:o,purgeCache:s,cachedImages:l}}(cornerstone),function(e){"use strict";e.webGL||(e.webGL={}),e.webGL.vertexShader="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;void main() {vec2 zeroToOne = a_position / u_resolution;vec2 zeroToTwo = zeroToOne * 2.0;vec2 clipSpace = zeroToTwo - 1.0;gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);v_texCoord = a_texCoord;}"}(cornerstone);var cornerstoneMath=function(e){"use strict";return void 0===e&&(e={}),e.Vector3=function(e,i,t){this.x=e||0,this.y=i||0,this.z=t||0},e.Vector3.prototype={constructor:e.Vector3,set:function(e,i,t){return this.x=e,this.y=i,this.z=t,this},setX:function(e){return this.x=e,this},setY:function(e){return this.y=e,this},setZ:function(e){return this.z=e,this},setComponent:function(e,i){switch(e){case 0:this.x=i;break;case 1:this.y=i;break;case 2:this.z=i;break;default:throw new Error("index is out of range: "+e)}},getComponent:function(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},add:function(e,i){return void 0!==i?(console.warn("DEPRECATED: Vector3's .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(e,i)):(this.x+=e.x,this.y+=e.y,this.z+=e.z,this)},addScalar:function(e){return this.x+=e,this.y+=e,this.z+=e,this},addVectors:function(e,i){return this.x=e.x+i.x,this.y=e.y+i.y,this.z=e.z+i.z,this},sub:function(e,i){return void 0!==i?(console.warn("DEPRECATED: Vector3's .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(e,i)):(this.x-=e.x,this.y-=e.y,this.z-=e.z,this)},subVectors:function(e,i){return this.x=e.x-i.x,this.y=e.y-i.y,this.z=e.z-i.z,this},multiply:function(e,i){return void 0!==i?(console.warn("DEPRECATED: Vector3's .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(e,i)):(this.x*=e.x,this.y*=e.y,this.z*=e.z,this)},multiplyScalar:function(e){return this.x*=e,this.y*=e,this.z*=e,this},multiplyVectors:function(e,i){return this.x=e.x*i.x,this.y=e.y*i.y,this.z=e.z*i.z,this},applyAxisAngle:function(){var i;return function(t,r){return void 0===i&&(i=new e.Quaternion),this.applyQuaternion(i.setFromAxisAngle(t,r)),this}}(),applyMatrix3:function(e){var i=this.x,t=this.y,r=this.z,n=e.elements;return this.x=n[0]*i+n[3]*t+n[6]*r,this.y=n[1]*i+n[4]*t+n[7]*r,this.z=n[2]*i+n[5]*t+n[8]*r,this},applyMatrix4:function(e){var i=this.x,t=this.y,r=this.z,n=e.elements;return this.x=n[0]*i+n[4]*t+n[8]*r+n[12],this.y=n[1]*i+n[5]*t+n[9]*r+n[13],this.z=n[2]*i+n[6]*t+n[10]*r+n[14],this},applyProjection:function(e){var i=this.x,t=this.y,r=this.z,n=e.elements,a=1/(n[3]*i+n[7]*t+n[11]*r+n[15]);return this.x=(n[0]*i+n[4]*t+n[8]*r+n[12])*a,this.y=(n[1]*i+n[5]*t+n[9]*r+n[13])*a,this.z=(n[2]*i+n[6]*t+n[10]*r+n[14])*a,this},applyQuaternion:function(e){var i=this.x,t=this.y,r=this.z,n=e.x,a=e.y,o=e.z,s=e.w,f=s*i+a*r-o*t,l=s*t+o*i-n*r,u=s*r+n*t-a*i,c=-n*i-a*t-o*r;return this.x=f*s+c*-n+l*-o-u*-a,this.y=l*s+c*-a+u*-n-f*-o,this.z=u*s+c*-o+f*-a-l*-n,this},transformDirection:function(e){var i=this.x,t=this.y,r=this.z,n=e.elements;return this.x=n[0]*i+n[4]*t+n[8]*r,this.y=n[1]*i+n[5]*t+n[9]*r,this.z=n[2]*i+n[6]*t+n[10]*r,this.normalize(),this},divide:function(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this},divideScalar:function(e){if(0!==e){var i=1/e;this.x*=i,this.y*=i,this.z*=i}else this.x=0,this.y=0,this.z=0;return this},min:function(e){return this.x>e.x&&(this.x=e.x),this.y>e.y&&(this.y=e.y),this.z>e.z&&(this.z=e.z),this},max:function(e){return this.xi.x&&(this.x=i.x),this.yi.y&&(this.y=i.y),this.zi.z&&(this.z=i.z),this},clampScalar:function(){var i,t;return function(r,n){return void 0===i&&(i=new e.Vector3,t=new e.Vector3),i.set(r,r,r),t.set(n,n,n),this.clamp(i,t)}}(),floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.multiplyScalar(-1)},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length())},setLength:function(e){var i=this.length();return 0!==i&&e!==i&&this.multiplyScalar(e/i),this},lerp:function(e,i){return this.x+=(e.x-this.x)*i,this.y+=(e.y-this.y)*i,this.z+=(e.z-this.z)*i,this},cross:function(e,i){if(void 0!==i)return console.warn("DEPRECATED: Vector3's .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(e,i);var t=this.x,r=this.y,n=this.z;return this.x=r*e.z-n*e.y,this.y=n*e.x-t*e.z,this.z=t*e.y-r*e.x,this},crossVectors:function(e,i){var t=e.x,r=e.y,n=e.z,a=i.x,o=i.y,s=i.z;return this.x=r*s-n*o,this.y=n*a-t*s,this.z=t*o-r*a,this},projectOnVector:function(){var i,t;return function(r){return void 0===i&&(i=new e.Vector3),i.copy(r).normalize(),t=this.dot(i),this.copy(i).multiplyScalar(t)}}(),projectOnPlane:function(){var i;return function(t){return void 0===i&&(i=new e.Vector3),i.copy(this).projectOnVector(t),this.sub(i)}}(),reflect:function(){var i;return function(t){return void 0===i&&(i=new e.Vector3),this.sub(i.copy(t).multiplyScalar(2*this.dot(t)))}}(),angleTo:function(i){var t=this.dot(i)/(this.length()*i.length());return Math.acos(e.clamp(t,-1,1))},distanceTo:function(e){return Math.sqrt(this.distanceToSquared(e))},distanceToSquared:function(e){var i=this.x-e.x,t=this.y-e.y,r=this.z-e.z;return i*i+t*t+r*r},setEulerFromRotationMatrix:function(e,i){console.error("REMOVED: Vector3's setEulerFromRotationMatrix has been removed in favor of Euler.setFromRotationMatrix(), please update your code.")},setEulerFromQuaternion:function(e,i){console.error("REMOVED: Vector3's setEulerFromQuaternion: has been removed in favor of Euler.setFromQuaternion(), please update your code.")},getPositionFromMatrix:function(e){return console.warn("DEPRECATED: Vector3's .getPositionFromMatrix() has been renamed to .setFromMatrixPosition(). Please update your code."),this.setFromMatrixPosition(e)},getScaleFromMatrix:function(e){return console.warn("DEPRECATED: Vector3's .getScaleFromMatrix() has been renamed to .setFromMatrixScale(). Please update your code."),this.setFromMatrixScale(e)},getColumnFromMatrix:function(e,i){return console.warn("DEPRECATED: Vector3's .getColumnFromMatrix() has been renamed to .setFromMatrixColumn(). Please update your code."),this.setFromMatrixColumn(e,i)},setFromMatrixPosition:function(e){return this.x=e.elements[12],this.y=e.elements[13],this.z=e.elements[14],this},setFromMatrixScale:function(e){var i=this.set(e.elements[0],e.elements[1],e.elements[2]).length(),t=this.set(e.elements[4],e.elements[5],e.elements[6]).length(),r=this.set(e.elements[8],e.elements[9],e.elements[10]).length();return this.x=i,this.y=t,this.z=r,this},setFromMatrixColumn:function(e,i){var t=4*e,r=i.elements;return this.x=r[t],this.y=r[t+1],this.z=r[t+2],this},equals:function(e){return e.x===this.x&&e.y===this.y&&e.z===this.z},fromArray:function(e){return this.x=e[0],this.y=e[1],this.z=e[2],this},toArray:function(){return[this.x,this.y,this.z]},clone:function(){return new e.Vector3(this.x,this.y,this.z)}},e}(cornerstoneMath),cornerstoneMath=function(e){"use strict";return void 0===e&&(e={}),e.Line3=function(i,t){this.start=void 0!==i?i:new e.Vector3,this.end=void 0!==t?t:new e.Vector3},e.Line3.prototype={constructor:e.Line3,set:function(e,i){return this.start.copy(e),this.end.copy(i),this},copy:function(e){return this.start.copy(e.start),this.end.copy(e.end),this},center:function(i){var t=i||new e.Vector3;return t.addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(i){var t=i||new e.Vector3;return t.subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(i,t){var r=t||new e.Vector3;return this.delta(r).multiplyScalar(i).add(this.start)},closestPointToPointParameter:function(){var i=new e.Vector3,t=new e.Vector3;return function(r,n){i.subVectors(r,this.start),t.subVectors(this.end,this.start);var a=t.dot(t),o=t.dot(i),s=o/a;return n&&(s=e.Math.clamp(s,0,1)),s}}(),closestPointToPoint:function(i,t,r){var n=this.closestPointToPointParameter(i,t),a=r||new e.Vector3;return this.delta(a).multiplyScalar(n).add(this.start)},applyMatrix4:function(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this},equals:function(e){return e.start.equals(this.start)&&e.end.equals(this.end)},clone:function(){return(new e.Line3).copy(this)},intersectLine:function(e){var i=this.end.clone().sub(this.start),t=e.end.clone().sub(e.start),r=e.start.clone().sub(this.start),n=i.clone().cross(t),a=r.clone().cross(t);if(0!==r.dot(i)){var o=a.dot(n)/n.lengthSq();if(!(o>1||isNaN(o))){var s=this.start.clone().add(i.clone().multiplyScalar(o)),f=s.clone().sub(e.start).lengthSq()+s.clone().sub(e.end).lengthSq();return f<=e.distanceSq()?s:void 0}}}},e}(cornerstoneMath),cornerstoneMath=function(e){"use strict";function i(e){return e*e}function t(e,t){return i(e.x-t.x)+i(e.y-t.y)}function r(e,i){var r=t(e.start,e.end);if(0===r)return t(i,e.start);var n=((i.x-e.start.x)*(e.end.x-e.start.x)+(i.y-e.start.y)*(e.end.y-e.start.y))/r;if(n<0)return t(i,e.start);if(n>1)return t(i,e.end);var a={x:e.start.x+n*(e.end.x-e.start.x),y:e.start.y+n*(e.end.y-e.start.y)};return t(i,a)}function n(e,i){return Math.sqrt(r(e,i))}function a(i,t){var r={},n=i.start.x,a=i.start.y,o=i.end.x,s=i.end.y,f=t.start.x,l=t.start.y,u=t.end.x,c=t.end.y,d,h,m,b,v,w,p,g,k,_,y,T;if(d=s-a,m=n-o,v=o*a-n*s,k=d*f+m*l+v,_=d*u+m*c+v,(0===k||0===_||e.sign(k)!==e.sign(_))&&(h=c-l,b=f-u,w=u*l-f*c,p=h*n+b*a+w,g=h*o+b*s+w,0===p||0===g||e.sign(p)!==e.sign(g))){y=d*b-h*m,T=m*w-b*v;var M=parseFloat(T/y);T=h*v-d*w;var C=parseFloat(T/y);return r.x=M,r.y=C,r}}return void 0===e&&(e={}),e.lineSegment={distanceToPoint:n,intersectLine:a},e}(cornerstoneMath),cornerstoneMath=function(e){"use strict";function i(e,i,t){return et?t:e}function t(e){var i=Math.PI/180;return e*i}function r(e){var i=180/Math.PI;return e*i}function n(e){return"number"==typeof e?e?e<0?-1:1:e===e?0:NaN:NaN}return void 0===e&&(e={}),e.clamp=i,e.degToRad=t,e.radToDeg=r,e.sign=n,e}(cornerstoneMath),cornerstoneMath=function(e){"use strict";return void 0===e&&(e={}),e.Matrix4=function e(i,t,r,n,a,o,s,f,l,u,c,d,h,m,b,v){this.elements=new Float32Array(16);var w=this.elements;w[0]=void 0!==i?i:1,w[4]=t||0,w[8]=r||0,w[12]=n||0,w[1]=a||0,w[5]=void 0!==o?o:1,w[9]=s||0,w[13]=f||0,w[2]=l||0,w[6]=u||0,w[10]=void 0!==c?c:1,w[14]=d||0,w[3]=h||0,w[7]=m||0,w[11]=b||0,w[15]=void 0!==v?v:1},e.Matrix4.prototype.makeRotationFromQuaternion=function(e){var i=this.elements,t=e.x,r=e.y,n=e.z,a=e.w,o=t+t,s=r+r,f=n+n,l=t*o,u=t*s,c=t*f,d=r*s,h=r*f,m=n*f,b=a*o,v=a*s,w=a*f;return i[0]=1-(d+m),i[4]=u-w,i[8]=c+v,i[1]=u+w,i[5]=1-(l+m),i[9]=h-b,i[2]=c-v,i[6]=h+b,i[10]=1-(l+d),i[3]=0,i[7]=0,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,this},e.Matrix4.prototype.multiplyMatrices=function(e,i){var t=e.elements,r=i.elements,n=this.elements,a=t[0],o=t[4],s=t[8],f=t[12],l=t[1],u=t[5],c=t[9],d=t[13],h=t[2],m=t[6],b=t[10],v=t[14],w=t[3],p=t[7],g=t[11],k=t[15],_=r[0],y=r[4],T=r[8],M=r[12],C=r[1],x=r[5],E=r[9],S=r[13],A=r[2],P=r[6],I=r[10],L=r[14],D=r[3],R=r[7],O=r[11],B=r[15];return n[0]=a*_+o*C+s*A+f*D,n[4]=a*y+o*x+s*P+f*R,n[8]=a*T+o*E+s*I+f*O,n[12]=a*M+o*S+s*L+f*B,n[1]=l*_+u*C+c*A+d*D,n[5]=l*y+u*x+c*P+d*R,n[9]=l*T+u*E+c*I+d*O,n[13]=l*M+u*S+c*L+d*B,n[2]=h*_+m*C+b*A+v*D,n[6]=h*y+m*x+b*P+v*R,n[10]=h*T+m*E+b*I+v*O,n[14]=h*M+m*S+b*L+v*B,n[3]=w*_+p*C+g*A+k*D,n[7]=w*y+p*x+g*P+k*R,n[11]=w*T+p*E+g*I+k*O,n[15]=w*M+p*S+g*L+k*B,this},e.Matrix4.prototype.multiply=function(e,i){return void 0!==i?(console.warn("DEPRECATED: Matrix4's .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(e,i)):this.multiplyMatrices(this,e)},e.Matrix4.prototype.getInverse=function(e,i){var t=this.elements,r=e.elements,n=r[0],a=r[4],o=r[8],s=r[12],f=r[1],l=r[5],u=r[9],c=r[13],d=r[2],h=r[6],m=r[10],b=r[14],v=r[3],w=r[7],p=r[11],g=r[15];t[0]=u*b*w-c*m*w+c*h*p-l*b*p-u*h*g+l*m*g,t[4]=s*m*w-o*b*w-s*h*p+a*b*p+o*h*g-a*m*g,t[8]=o*c*w-s*u*w+s*l*p-a*c*p-o*l*g+a*u*g,t[12]=s*u*h-o*c*h-s*l*m+a*c*m+o*l*b-a*u*b,t[1]=c*m*v-u*b*v-c*d*p+f*b*p+u*d*g-f*m*g,t[5]=o*b*v-s*m*v+s*d*p-n*b*p-o*d*g+n*m*g,t[9]=s*u*v-o*c*v-s*f*p+n*c*p+o*f*g-n*u*g,t[13]=o*c*d-s*u*d+s*f*m-n*c*m-o*f*b+n*u*b,t[2]=l*b*v-c*h*v+c*d*w-f*b*w-l*d*g+f*h*g,t[6]=s*h*v-a*b*v-s*d*w+n*b*w+a*d*g-n*h*g,t[10]=a*c*v-s*l*v+s*f*w-n*c*w-a*f*g+n*l*g,t[14]=s*l*d-a*c*d-s*f*h+n*c*h+a*f*b-n*l*b,t[3]=u*h*v-l*m*v-u*d*w+f*m*w+l*d*p-f*h*p,t[7]=a*m*v-o*h*v+o*d*w-n*m*w-a*d*p+n*h*p,t[11]=o*l*v-a*u*v-o*f*w+n*u*w+a*f*p-n*l*p,t[15]=a*u*d-o*l*d+o*f*h-n*u*h-a*f*m+n*l*m;var k=n*t[0]+f*t[4]+d*t[8]+v*t[12];if(0===k){var _="Matrix4.getInverse(): can't invert matrix, determinant is 0";if(i)throw new Error(_);return console.warn(_),this.identity(),this}return this.multiplyScalar(1/k),this},e.Matrix4.prototype.applyToVector3Array=function(){var i=new e.Vector3;return function(e,t,r){void 0===t&&(t=0),void 0===r&&(r=e.length);for(var n=0,a=t,o;n0||t<0&&i>0},intersectLine:function(){var i=new e.Vector3;return function(t,r){var n=r||new e.Vector3,a=t.delta(i),o=this.normal.dot(a);if(0!==o){var s=-(t.start.dot(this.normal)+this.constant)/o;if(!(s<0||s>1))return n.copy(a).multiplyScalar(s).add(t.start)}else if(0===this.distanceToPoint(t.start))return n.copy(t.start)}}(),intersectPlane:function(i){var t=this.normal.clone().cross(i.normal),r=new e.Vector3,n={origin:r,direction:t};if(this.normal.clone().cross(i.normal).length<1e-10)return n.direction=new e.Vector3,n;var a=this.constant,o=i.constant,s=this.normal.clone().dot(i.normal),f=-(a-o*s)/(1-s*s),l=-(o-a*s)/(1-s*s);return n.origin=this.normal.clone().multiplyScalar(f).add(i.normal.clone().multiplyScalar(l)),n},coplanarPoint:function(i){var t=i||new e.Vector3;return t.copy(this.normal).multiplyScalar(-this.constant)},translate:function(e){return this.constant=this.constant-e.dot(this.normal),this},equals:function(e){return e.normal.equals(this.normal)&&e.constant==this.constant},clone:function(){return(new e.Plane).copy(this)}},e}(cornerstoneMath),cornerstoneMath=function(e){"use strict";function i(e){return{x:e.pageX,y:e.pageY}}function t(e,i){return{x:e.x-i.x,y:e.y-i.y}}function r(e){return{x:e.x,y:e.y}}function n(e,i){return Math.sqrt(a(e,i))}function a(e,i){var r=t(e,i);return r.x*r.x+r.y*r.y}function o(e,i){return!(e.xi.left+i.width||e.yi.top+i.height)}function s(i,t){var r=[],n;i.forEach(function(i,a){var o=e.point.distance(i,t);r.push(o),n=0===a?o:Math.min(o,n)});var a=r.indexOf(n);return i[a]}return void 0===e&&(e={}),e.point={subtract:t,copy:r,pageToPoint:i,distance:n,distanceSquared:a,insideRect:o,findClosestPoint:s},e}(cornerstoneMath),cornerstoneMath=function(e){"use strict";return void 0===e&&(e={}),e.Quaternion=function e(i,t,r,n){this.x=i||0,this.y=t||0,this.z=r||0,this.w=void 0!==n?n:1},e.Quaternion.prototype.setFromAxisAngle=function(e,i){var t=i/2,r=Math.sin(t);return this.x=e.x*r,this.y=e.y*r,this.z=e.z*r,this.w=Math.cos(t),this},e.Quaternion.prototype.multiplyQuaternions=function(e,i){var t=e.x,r=e.y,n=e.z,a=e.w,o=i.x,s=i.y,f=i.z,l=i.w;return this.x=t*l+a*o+r*f-n*s,this.y=r*l+a*s+n*o-t*f,this.z=n*l+a*f+t*s-r*o,this.w=a*l-t*o-r*s-n*f,this},e.Quaternion.prototype.setFromRotationMatrix=function(e){var i=e.elements,t=i[0],r=i[4],n=i[8],a=i[1],o=i[5],s=i[9],f=i[2],l=i[6],u=i[10],c=t+o+u,d;return c>0?(d=.5/Math.sqrt(c+1),this.w=.25/d,this.x=(l-s)*d,this.y=(n-f)*d,this.z=(a-r)*d):t>o&&t>u?(d=2*Math.sqrt(1+t-o-u),this.w=(l-s)/d,this.x=.25*d,this.y=(r+a)/d,this.z=(n+f)/d):o>u?(d=2*Math.sqrt(1+o-t-u),this.w=(n-f)/d,this.x=(r+a)/d,this.y=.25*d,this.z=(s+l)/d):(d=2*Math.sqrt(1+u-t-o),this.w=(a-r)/d,this.x=(n+f)/d,this.y=(s+l)/d,this.z=.25*d),this},e}(cornerstoneMath),cornerstoneMath=function(e){"use strict";function i(e){var i={start:{x:e.left,y:e.top},end:{x:e.left+e.width,y:e.top}},t={start:{x:e.left+e.width,y:e.top},end:{x:e.left+e.width,y:e.top+e.height}},r={start:{x:e.left+e.width,y:e.top+e.height},end:{x:e.left,y:e.top+e.height}},n={start:{x:e.left,y:e.top+e.height},end:{x:e.left,y:e.top}},a=[i,t,r,n];return a}function t(i,t,r){void 0===r&&(r=5);var n=e.lineSegment.distanceToPoint(t,i);return n=0?i.width>=0?!(a.bottomRight.x<=o.topLeft.x||o.bottomRight.x<=a.topLeft.x):!(a.bottomRight.x<=o.bottomRight.x||o.topLeft.x<=a.topLeft.x):i.width>=0?!(a.topLeft.x<=o.topLeft.x||o.bottomRight.x<=a.bottomRight.x):!(a.topLeft.x<=o.bottomRight.x||o.topLeft.x<=a.bottomRight.x),r=e.height>=0?i.height>=0?!(a.bottomRight.y<=o.topLeft.y||o.bottomRight.y<=a.topLeft.y):!(a.bottomRight.y<=o.bottomRight.y||o.topLeft.y<=a.topLeft.y):i.height>=0?!(a.topLeft.y<=o.topLeft.y||o.bottomRight.y<=a.bottomRight.y):!(a.topLeft.y<=o.bottomRight.y||o.top<=a.bottomRight.y),t&&r}function o(e,i){var t={topLeft:{},bottomRight:{}};if(a(e,i)){var r=n(e),o=n(i);return e.width>=0?i.width>=0?(t.topLeft.x=Math.max(r.topLeft.x,o.topLeft.x),t.bottomRight.x=Math.min(r.bottomRight.x,o.bottomRight.x)):(t.topLeft.x=Math.max(r.topLeft.x,o.bottomRight.x),t.bottomRight.x=Math.min(r.bottomRight.x,o.topLeft.x)):i.width>=0?(t.topLeft.x=Math.min(r.topLeft.x,o.bottomRight.x),t.bottomRight.x=Math.max(r.bottomRight.x,o.topLeft.x)):(t.topLeft.x=Math.min(r.topLeft.x,o.topLeft.x),t.bottomRight.x=Math.max(r.bottomRight.x,o.bottomRight.x)),e.height>=0?i.height>=0?(t.topLeft.y=Math.max(r.topLeft.y,o.topLeft.y),t.bottomRight.y=Math.min(r.bottomRight.y,o.bottomRight.y)):(t.topLeft.y=Math.max(r.topLeft.y,o.bottomRight.y),t.bottomRight.y=Math.min(r.bottomRight.y,o.topLeft.y)):i.height>=0?(t.topLeft.y=Math.min(r.topLeft.y,o.bottomRight.y),t.bottomRight.y=Math.max(r.bottomRight.y,o.topLeft.y)):(t.topLeft.y=Math.min(r.topLeft.y,o.topLeft.y),t.bottomRight.y=Math.max(r.bottomRight.y,o.bottomRight.y)),t}}return void 0===e&&(e={}),e.rect={distanceToPoint:r,getIntersectionRect:o},e}(cornerstoneMath);"undefined"==typeof cornerstone&&(cornerstone={}),"undefined"==typeof dicomParser&&(dicomParser={}),"undefined"==typeof cornerstoneTools&&(cornerstoneTools={referenceLines:{},orientation:{}}),function(e,i,t){"use strict";function r(t){clearTimeout(o),o=setTimeout(function(){var r=t.target.parentNode;if(t.deltaY){var n,a;void 0!==t.pageX&&void 0!==t.pageY&&(n=t.pageX,a=t.pageY);var o=i.pageToPixel(r,n,a),s,f=40,l=800;s=2===t.deltaMode?t.deltaY*l:1===t.deltaMode?t.deltaY*f:t.deltaY;var u=t.deltaY<0?-1:1,c={element:r,viewport:i.getViewport(r),image:i.getEnabledElement(r).image,direction:u,wheelDeltaPixels:s,pageX:n,pageY:a,imageX:o.x,imageY:o.y};e(r).trigger("CornerstoneToolsMouseWheel",c)}},s)}function n(e){a(e),t.addWheelListener(e,r)}function a(e){t.removeWheelListener(e,r)}var o,s=1;t.mouseWheelInput={enable:n,disable:a}}($,cornerstone,cornerstoneTools),function(e,i,t,r){"use strict";function n(){c=!1}function a(i){e(i.element).trigger("CornerstoneToolsMouseDownActivate",i)}function o(n){var a=n.currentTarget,o="CornerstoneToolsMouseDoubleClick",s={page:t.point.pageToPoint(n),image:i.pageToPixel(a,n.pageX,n.pageY),client:{x:n.clientX,y:n.clientY}};s.canvas=i.pixelToCanvas(a,s.image);var f=r.copyPoints(s),l={event:n,which:n.which,viewport:i.getViewport(a),image:i.getEnabledElement(a).image,element:a,startPoints:s,lastPoints:f,currentPoints:s,deltaPoints:{x:0,y:0},type:o},u=e.Event(o,l);e(l.element).trigger(u,l)}function s(o){function s(n){var a="CornerstoneToolsMouseDrag",o={page:t.point.pageToPoint(n),image:i.pageToPixel(u,n.pageX,n.pageY),client:{x:n.clientX,y:n.clientY}};o.canvas=i.pixelToCanvas(u,o.image);var s={page:t.point.subtract(o.page,v.page),image:t.point.subtract(o.image,v.image),client:t.point.subtract(o.client,v.client),canvas:t.point.subtract(o.canvas,v.canvas)},f={which:g,viewport:i.getViewport(u),image:i.getEnabledElement(u).image,element:u,startPoints:b,lastPoints:v,currentPoints:o,deltaPoints:s,type:a};return e(f.element).trigger(a,f),v=r.copyPoints(o),r.pauseEvent(n)}function l(r){clearTimeout(d);var n="CornerstoneToolsMouseUp";c&&(n="CornerstoneToolsMouseClick");var a={page:t.point.pageToPoint(r),image:i.pageToPixel(u,r.pageX,r.pageY),client:{x:r.clientX,y:r.clientY}};a.canvas=i.pixelToCanvas(u,a.image);var o={page:t.point.subtract(a.page,v.page),image:t.point.subtract(a.image,v.image),client:t.point.subtract(a.client,v.client),canvas:t.point.subtract(a.canvas,v.canvas)},h={event:r,which:g,viewport:i.getViewport(u),image:i.getEnabledElement(u).image,element:u,startPoints:b,lastPoints:v,currentPoints:a,deltaPoints:o,type:n},m=e.Event(n,h);e(h.element).trigger(m,h),e(document).off("mousemove",s),e(document).off("mouseup",l),e(h.element).on("mousemove",f),c=!0}d=setTimeout(n,h);var u=o.currentTarget,m="CornerstoneToolsMouseDown";e(u).off("mousemove",f);var b={page:t.point.pageToPoint(o),image:i.pageToPixel(u,o.pageX,o.pageY),client:{x:o.clientX,y:o.clientY}};b.canvas=i.pixelToCanvas(u,b.image);var v=r.copyPoints(b),w={event:o,which:o.which,viewport:i.getViewport(u),image:i.getEnabledElement(u).image,element:u,startPoints:b,lastPoints:v,currentPoints:b,deltaPoints:{x:0,y:0},type:m},p=e.Event(m,w);if(e(w.element).trigger(p,w),p.isImmediatePropagationStopped()===!1&&a(w)===!0)return r.pauseEvent(o);var g=o.which;return e(document).on("mousemove",s),e(document).on("mouseup",l),r.pauseEvent(o)}function f(n){var a=n.currentTarget,o="CornerstoneToolsMouseMove",s={page:t.point.pageToPoint(n),image:i.pageToPixel(a,n.pageX,n.pageY),client:{x:n.clientX,y:n.clientY}};s.canvas=i.pixelToCanvas(a,s.image);var f=r.copyPoints(s),l=n.which,u={page:t.point.pageToPoint(n),image:i.pageToPixel(a,n.pageX,n.pageY),client:{x:n.clientX,y:n.clientY}};u.canvas=i.pixelToCanvas(a,u.image);var c={page:t.point.subtract(u.page,f.page),image:t.point.subtract(u.image,f.image),client:t.point.subtract(u.client,f.client),canvas:t.point.subtract(u.canvas,f.canvas)},d={which:l,viewport:i.getViewport(a),image:i.getEnabledElement(a).image,element:a,startPoints:s,lastPoints:f,currentPoints:u,deltaPoints:c,type:o};e(a).trigger(o,d),f=r.copyPoints(u)}function l(i){e(i).off("mousedown",s),e(i).off("mousemove",f),e(i).off("dblclick",o)}function u(i){l(i),e(i).on("mousedown",s),e(i).on("mousemove",f),e(i).on("dblclick",o)}var c,d,h=200;r.mouseInput={enable:u,disable:l}}($,cornerstone,cornerstoneMath,cornerstoneTools),function(e,i,t,r){"use strict";function n(n){console.log(n.type);var a=n.target.parentNode,o,_;switch(n.preventDefault(),(n.pointers&&n.pointers.length>1||n.originalEvent&&n.originalEvent.touches&&n.originalEvent.touches.length>1)&&(w=!1,clearTimeout(v)),n.type){case"tap":w=!1,clearTimeout(v),u={page:t.point.pageToPoint(n.pointers[0]),image:i.pageToPixel(a,n.pointers[0].pageX,n.pointers[0].pageY),client:{x:n.pointers[0].clientX,y:n.pointers[0].clientY}},u.canvas=i.pixelToCanvas(a,u.image),_="CornerstoneToolsTap",h={event:n,viewport:i.getViewport(a),image:i.getEnabledElement(a).image,element:a,currentPoints:u,type:_,isTouchEvent:!0},o=e.Event(_,h),e(a).trigger(o,h);break;case"doubletap":w=!1,clearTimeout(v),u={page:t.point.pageToPoint(n.pointers[0]),image:i.pageToPixel(a,n.pointers[0].pageX,n.pointers[0].pageY),client:{x:n.pointers[0].clientX,y:n.pointers[0].clientY}},u.canvas=i.pixelToCanvas(a,u.image),_="CornerstoneToolsDoubleTap",h={event:n,viewport:i.getViewport(a),image:i.getEnabledElement(a).image,element:a,currentPoints:u,type:_,isTouchEvent:!0},o=e.Event(_,h),e(a).trigger(o,h);break;case"pinchstart":w=!1,clearTimeout(v),s=1;break;case"pinchmove":if(w=!1,clearTimeout(v),k===!0){s=n.scale,k=!1;break}var y=(n.scale-s)/s;l={page:n.center,image:i.pageToPixel(a,n.center.x,n.center.y)},l.canvas=i.pixelToCanvas(a,l.image),_="CornerstoneToolsTouchPinch",h={event:n,startPoints:l,viewport:i.getViewport(a),image:i.getEnabledElement(a).image,element:a,direction:n.scale<1?1:-1,scaleChange:y,type:_,isTouchEvent:!0},o=e.Event(_,h),e(a).trigger(o,h),s=n.scale;break;case"touchstart":s=1,clearTimeout(v),clearTimeout(m),m=setTimeout(function(){l={page:t.point.pageToPoint(n.originalEvent.touches[0]),image:i.pageToPixel(a,n.originalEvent.touches[0].pageX,n.originalEvent.touches[0].pageY),client:{x:n.originalEvent.touches[0].clientX,y:n.originalEvent.touches[0].clientY}},l.canvas=i.pixelToCanvas(a,l.image),_="CornerstoneToolsTouchStart",n.originalEvent.touches.length>1&&(_="CornerstoneToolsMultiTouchStart"),h={event:n,viewport:i.getViewport(a),image:i.getEnabledElement(a).image,element:a,startPoints:l,currentPoints:l,type:_,isTouchEvent:!0},o=e.Event(_,h),e(a).trigger(o,h),o.isImmediatePropagationStopped()===!1&&(_="CornerstoneToolsTouchStartActive",n.originalEvent.touches.length>1&&(_="CornerstoneToolsMultiTouchStartActive"),h.type=_,e(a).trigger(_,h)),c=r.copyPoints(l)},50),w=!0,g=0,v=setTimeout(function(){w&&(u={page:t.point.pageToPoint(n.originalEvent.touches[0]),image:i.pageToPixel(a,n.originalEvent.touches[0].pageX,n.originalEvent.touches[0].pageY),client:{x:n.originalEvent.touches[0].clientX,y:n.originalEvent.touches[0].clientY}},u.canvas=i.pixelToCanvas(a,l.image),_="CornerstoneToolsTouchPress",h={event:n,viewport:i.getViewport(a),image:i.getEnabledElement(a).image,element:a,currentPoints:u,type:_,isTouchEvent:!0},o=e.Event(_,h),e(a).trigger(o,h))},b);break;case"touchend":s=1,w=!1,clearTimeout(v),setTimeout(function(){l={page:t.point.pageToPoint(n.originalEvent.changedTouches[0]),image:i.pageToPixel(a,n.originalEvent.changedTouches[0].pageX,n.originalEvent.changedTouches[0].pageY),client:{x:n.originalEvent.changedTouches[0].clientX,y:n.originalEvent.changedTouches[0].clientY}},l.canvas=i.pixelToCanvas(a,l.image),_="CornerstoneToolsTouchEnd",h={event:n,viewport:i.getViewport(a),image:i.getEnabledElement(a).image,element:a,startPoints:l,currentPoints:l,type:_,isTouchEvent:!0},o=e.Event(_,h),e(a).trigger(o,h)},50);break;case"panmove":u={page:t.point.pageToPoint(n.pointers[0]),image:i.pageToPixel(a,n.pointers[0].pageX,n.pointers[0].pageY),client:{x:n.pointers[0].clientX,y:n.pointers[0].clientY}},u.canvas=i.pixelToCanvas(a,u.image),d={page:t.point.subtract(u.page,c.page),image:t.point.subtract(u.image,c.image),client:t.point.subtract(u.client,c.client),canvas:t.point.subtract(u.canvas,c.canvas)},g+=Math.sqrt(d.page.x*d.page.x+d.page.y*d.page.y),g>p&&(w=!1,clearTimeout(v)),_="CornerstoneToolsTouchDrag",n.pointers.length>1&&(_="CornerstoneToolsMultiTouchDrag"),h={viewport:i.getViewport(a),image:i.getEnabledElement(a).image,element:a,startPoints:l,lastPoints:c,currentPoints:u,deltaPoints:d,numPointers:n.pointers.length,type:_,isTouchEvent:!0},o=e.Event(_,h),e(a).trigger(o,h),c=r.copyPoints(u);break;case"panstart":u={page:t.point.pageToPoint(n.pointers[0]),image:i.pageToPixel(a,n.pointers[0].pageX,n.pointers[0].pageY),client:{x:n.pointers[0].clientX,y:n.pointers[0].clientY