@ohif/extension-dicom-pdf 1.1.2 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"dist/1.index.umd.js","sourceRoot":""}
@@ -1 +0,0 @@
1
- (window.webpackJsonpOHIFExtDicomPdf=window.webpackJsonpOHIFExtDicomPdf||[]).push([[2],{114:function(e,t){},115:function(e,t){},116:function(e,t){},117:function(e,t){},124:function(e,t,n){var r=n(125);"string"==typeof r&&(r=[[e.i,r,""]]);var i={insert:"head",singleton:!1};n(127)(r,i);r.locals&&(e.exports=r.locals)},125:function(e,t,n){(e.exports=n(126)(!1)).push([e.i,".DicomPDFViewport {\n --header-height: 50px;\n}\n\n.DicomPDFViewport #toolbar {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n color: #fff;\n padding: 0.5em;\n border-bottom: var(--ui-border-thickness) solid var(--ui-border-color);\n height: var(--header-height);\n}\n\n.DicomPDFViewport #canvas {\n height: calc(100% - var(--header-height));\n overflow-y: scroll;\n}\n\n.DicomPDFViewport #text-layer {\n height: 100%;\n margin-top: var(--header-height);\n}\n\n.DicomPDFViewport #pdf-canvas-container {\n position: relative;\n}\n\n.DicomPDFViewport canvas, #text-layer {\n display: block;\n margin: 0 auto;\n overflow: hidden;\n}\n\n.DicomPDFViewport #toolbar button {\n color: currentColor;\n background-color: transparent;\n font: inherit;\n border: var(--ui-border-thickness) solid var(--ui-border-color);\n border-radius: 3px;\n padding: 0.25em 0.5em;\n margin-right: 0.5em;\n cursor: pointer;\n}\n\n.DicomPDFViewport #text-layer {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n opacity: 0.2;\n line-height: 1;\n}\n\n.DicomPDFViewport #text-layer>span {\n color: transparent;\n position: absolute;\n white-space: pre;\n cursor: text;\n -webkit-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n}\n",""])},219:function(e){e.exports=JSON.parse('{"both":{"Location":{}},"baseline":{"TargetType":{},"MaxTargetsPerOrgan":{"limit":2},"MaxTargets":{"limit":5},"MeasurementsLength":[{"longAxis":10,"longAxisSliceThicknessMultiplier":2,"modalityIn":["CT","MR"],"locationNotIn":["Lymph Node"],"message":"Extranodal lesions must be >= 10mm long axis AND >= double the acquisition slice thickness by CT and MR"},{"shortAxis":20,"longAxis":20,"modalityIn":["PX","XA"],"locationNotIn":["Lymph Node"],"message":"Extranodal lesions must be >= 20mm on chest x-ray (although x-rays rarely used for clinical trial assessment)"},{"shortAxis":15,"shortAxisSliceThicknessMultiplier":2,"modalityIn":["CT","MR"],"locationIn":["Lymph Node"],"message":"Nodal lesions must be >= 15mm short axis AND >= double the acquisition slice thickness by CT and MR"}]},"followup":{}}')},261:function(e,t,n){"use strict";n.r(t);var r=n(39),i=n(254),o=n(2),a=n.n(o),s=n(50),u=n.n(s);function c(e){return a.a.createElement(a.a.Fragment,null,e.children)}c.propTypes={id:u.a.string.isRequired,init:u.a.func.isRequired,destroy:u.a.func.isRequired,children:u.a.node};var l=c,f=n(11),p=n.n(f),d=n(71),m=n.n(d),y={any:function(e,t,n){var r=e[t];if(!(r instanceof Float64Array||r instanceof Float32Array||r instanceof Int32Array||r instanceof Int16Array||r instanceof Int8Array||r instanceof Uint32Array||r instanceof Uint16Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray))return new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Expected a typed array.")},float64:function(e,t,n){if(!(e[t]instanceof Float64Array))return new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Expected a Float64Array.")},float32:function(e,t,n){if(!(e[t]instanceof Float32Array))return new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Expected a Float32Array.")},float:function(e,t,n){if(!(e[t]instanceof Float64Array||e[t]instanceof Float32Array))return new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Expected a Float32Array or Float64Array.")},int32:function(e,t,n){if(!(e[t]instanceof Int32Array))return new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Expected an Int32Array.")},int16:function(e,t,n){if(!(e[t]instanceof Int16Array))return new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Expected an In16Array.")},int8:function(e,t,n){if(!(e[t]instanceof Int8Array))return new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Expected an Int8Array.")},int:function(e,t,n){if(!(e[t]instanceof Int32Array||e[t]instanceof Int16Array||e[t]instanceof Int8Array))return new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Expected an Int32Array, In16Array, or Int8Array.")},uint32:function(e,t,n){if(!(e[t]instanceof Uint32Array))return new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Expected a Uint32Array.")},uint16:function(e,t,n){if(!(e[t]instanceof Uint16Array))return new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Expected a Uint16Array.")},uint8:function(e,t,n){if(!(e[t]instanceof Uint8Array))return new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Expected a Uint8Array.")},uint8clamped:function(e,t,n){if(!(e[t]instanceof Uint8ClampedArray))return new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Expected a Uint8ClampedArray.")},uint:function(e,t,n){if(!(e[t]instanceof Uint32Array||e[t]instanceof Uint16Array||e[t]instanceof Uint8Array||e[t]instanceof Uint8ClampedArray))return new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Expected a Uint32Array, Uint16Array, Uint8Array, or Uint8ClampedArray.")}},h=(n(124),n(128)),v=n.n(h);function g(e){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function I(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(n,!0).forEach((function(t){E(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function S(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function w(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){S(o,r,i,a,s,"next",e)}function s(e){S(o,r,i,a,s,"throw",e)}a(void 0)}))}}function O(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function P(e){return(P=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function D(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function T(e,t){return(T=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function E(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}m.a.GlobalWorkerOptions.workerSrc=v.a;var k={ENCAPSULATED_PDF:"1.2.840.10008.5.1.4.1.1.104.1"},_=function(e){function t(e){var n,r,i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,i=P(t).call(this,e),n=!i||"object"!==g(i)&&"function"!=typeof i?D(r):i,E(D(n),"updatePDFCanvas",w(regeneratorRuntime.mark((function e(){var t,r,i,o,a,s,u,c,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.state,r=t.pdf,i=t.scale,o=t.currentPageIndex,a=n.canvas.getContext("2d"),e.next=4,r.getPage(o);case 4:return s=e.sent,u=s.getViewport({scale:i}),n.canvas.height=u.height,n.canvas.width=u.width,c={canvasContext:a,viewport:u},e.next=11,s.render(c);case 11:return e.next=13,s.getTextContent();case 13:l=e.sent,n.textLayer.innerHTML="",n.textLayer.style.height=u.height+"px",n.textLayer.style.width=u.width+"px",m.a.renderTextLayer({textContent:l,container:n.textLayer,viewport:u,textDivs:[]});case 18:case"end":return e.stop()}}),e)})))),E(D(n),"getPDFFileUrl",(function(e,t){var n=t;if(e){if(e.string("x00080016")!==k.ENCAPSULATED_PDF)throw new Error("This is not a DICOM-encapsulated PDF");var r=e.elements.x00420011,i=r.dataOffset,o=i+r.length;n=e.byteArray.slice(i,o)}var a=new Blob([n],{type:"application/pdf"});return URL.createObjectURL(a)})),E(D(n),"onPageChange",function(){var e=w(regeneratorRuntime.mark((function e(t){var r,i,o,a,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.state,i=r.currentPageIndex,o=r.pdf,a=i,"prev"!==(s=t.target.getAttribute("data-pager"))){e.next=8;break}if(1!==i){e.next=6;break}return e.abrupt("return");case 6:a-=1,i<0&&(a=0);case 8:if("next"!==s){e.next=13;break}if(i!==o.numPages-1){e.next=11;break}return e.abrupt("return");case 11:a+=1,i>o.numPages-1&&(a=o.numPages-1);case 13:n.setState((function(e){return I({},e,{currentPageIndex:a})}));case 14:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),E(D(n),"onZoomChange",(function(){var e=n.state.scale,t=event.target.getAttribute("data-pager");"+"===t&&(e+=.25),"-"===t&&(e-=.25),n.setState((function(t){return I({},t,{scale:e})}))})),E(D(n),"parseByteArray",(function(e){var t;try{t=p.a.parseDicom(e,{untilTag:""})}catch(e){n.setState((function(t){return I({},t,{error:e})}))}return t})),E(D(n),"setViewportActiveHandler",(function(){var e=n.props,t=e.setViewportActive,r=e.viewportIndex;r!==e.activeViewportIndex&&t(r)})),E(D(n),"downloadPDFCanvas",(function(){var e=n.state.fileURL,t=document.createElement("a");t.href=e,t.download=e.substr(e.lastIndexOf("/")+1),document.body.appendChild(t),t.click(),document.body.removeChild(t)})),n.state={fileURL:null,error:null,currentPageIndex:1,pdf:null,scale:1},n.canvas=Object(o.createRef)(),n.textLayer=Object(o.createRef)(),n}var n,r,i,s;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&T(e,t)}(t,e),n=t,(r=[{key:"componentDidMount",value:(s=w(regeneratorRuntime.mark((function e(){var t,n,r,i,o=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.props.rawPdf,n=!t&&this.parseByteArray(this.props.byteArray),r=this.getPDFFileUrl(n,this.props.byteArray),this.setState((function(e){return I({},e,{fileURL:r})})),this.props.useNative){e.next=9;break}return e.next=7,m.a.getDocument(r).promise;case 7:i=e.sent,this.setState((function(e){return I({},e,{pdf:i})}),(function(){return o.updatePDFCanvas()}));case 9:case"end":return e.stop()}}),e,this)}))),function(){return s.apply(this,arguments)})},{key:"componentDidUpdate",value:function(e,t){var n=this.state,r=n.currentPageIndex,i=n.scale,o=t.scale!==i&&i>0,a=t.currentPageIndex!==r&&r>0;(o||a)&&this.updatePDFCanvas()}},{key:"render",value:function(){var e=this,t=this.state,n=t.fileURL,r=t.pdf,i=t.error;return a.a.createElement("div",{className:"DicomPDFViewport",onClick:this.setViewportActiveHandler,onScroll:this.setViewportActiveHandler,style:{width:"100%",height:"100%"}},this.props.useNative?a.a.createElement("object",{"aria-label":"PDF Viewer",data:n,type:"application/pdf",width:"100%",height:"100%"}):a.a.createElement(a.a.Fragment,null,a.a.createElement("div",{id:"toolbar"},a.a.createElement("div",{id:"pager"},r&&r.numPages>1&&a.a.createElement(a.a.Fragment,null,a.a.createElement("button",{"data-pager":"prev",onClick:this.onPageChange},"<"),a.a.createElement("button",{"data-pager":"next",onClick:this.onPageChange},">")),a.a.createElement("button",{"data-pager":"-",onClick:this.onZoomChange},"-"),a.a.createElement("button",{"data-pager":"+",onClick:this.onZoomChange},"+"),a.a.createElement("button",{onClick:this.downloadPDFCanvas},"Download"))),a.a.createElement("div",{id:"canvas"},a.a.createElement("div",{id:"pdf-canvas-container"},a.a.createElement("canvas",{id:"pdf-canvas",ref:function(t){return e.canvas=t}}),a.a.createElement("div",{id:"text-layer",ref:function(t){return e.textLayer=t}})))),i&&a.a.createElement("h2",null,JSON.stringify(i)))}}])&&O(n.prototype,r),i&&O(n,i),t}(o.Component);E(_,"propTypes",{byteArray:y.uint8,rawPdf:u.a.bool,useNative:u.a.bool,viewportData:u.a.object,activeViewportIndex:u.a.number,setViewportActive:u.a.func,viewportIndex:u.a.number}),E(_,"defaultProps",{useNative:!1});var x=_,j=n(9);function M(e){return(M="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function N(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function A(e){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function C(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function R(e,t){return(R=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function U(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var V=r.a.utils.DicomLoaderService,L=function(e){function t(){var e,n,r,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,a=new Array(o),s=0;s<o;s++)a[s]=arguments[s];return r=this,n=!(i=(e=A(t)).call.apply(e,[this].concat(a)))||"object"!==M(i)&&"function"!=typeof i?C(r):i,U(C(n),"state",{byteArray:null,rawPdf:!1,error:null}),n}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&R(e,t)}(t,e),n=t,i=[{key:"init",value:function(){console.log("DicomPDFViewport init()")}},{key:"destroy",value:function(){console.log("DicomPDFViewport destroy()")}}],(r=[{key:"componentDidMount",value:function(){var e=this,t=this.props.viewportData,n=t.displaySet,r=t.studies;if(n.metadata&&n.metadata.EncapsulatedDocument){var i=n.metadata.EncapsulatedDocument,o=i.InlineBinary;if(i.BulkDataURI,o){var a=atob(o),s=Object(j.a)(a);return void this.setState({byteArray:s,rawPdf:!0})}}V.findDicomDataPromise(n,r).then((function(t){return e.setState({byteArray:new Uint8Array(t)})}),(function(t){throw e.setState({error:t}),new Error(t)}))}},{key:"render",value:function(){var e=this.props,n=e.setViewportActive,r=e.viewportIndex,i=e.activeViewportIndex,o=this.state,s=o.byteArray,u=o.error,c=o.rawPdf,f={id:t.id,init:t.init,destroy:t.destroy};return a.a.createElement(l,f,s&&a.a.createElement(x,{byteArray:s,rawPdf:c,setViewportActive:n,viewportIndex:r,activeViewportIndex:i}),u&&a.a.createElement("h2",null,JSON.stringify(u)))}}])&&N(n.prototype,r),i&&N(n,i),t}(o.Component);U(L,"propTypes",{studies:u.a.object,displaySet:u.a.object,viewportIndex:u.a.number,viewportData:u.a.object,activeViewportIndex:u.a.number,setViewportActive:u.a.func}),U(L,"id","DicomPDFViewportPDF");var F=L,q=r.a.redux.actions.setViewportActive,H=Object(i.a)((function(e,t){return{activeViewportIndex:e.viewports.activeViewportIndex}}),(function(e,t){var n=t.viewportIndex;return{setViewportActive:function(){e(q(n))}}}))(F);t.default=H},39:function(e,t,n){"use strict";var r={};n.r(r),n.d(r,"arrowAnnotate",(function(){return Kn})),n.d(r,"bidirectional",(function(){return Jn})),n.d(r,"ellipticalRoi",(function(){return $n})),n.d(r,"circleRoi",(function(){return Xn})),n.d(r,"freehandMouse",(function(){return Zn})),n.d(r,"length",(function(){return Qn})),n.d(r,"nonTarget",(function(){return er})),n.d(r,"rectangleRoi",(function(){return tr})),n.d(r,"angle",(function(){return nr})),n.d(r,"targetCR",(function(){return rr})),n.d(r,"targetNE",(function(){return ir})),n.d(r,"targetUN",(function(){return or}));var i={};n.r(i),n.d(i,"LocationSchema",(function(){return Rr})),n.d(i,"LocationCriterion",(function(){return Ur})),n.d(i,"MaxTargetsPerOrganSchema",(function(){return Gr})),n.d(i,"MaxTargetsPerOrganCriterion",(function(){return Br})),n.d(i,"MaxTargetsSchema",(function(){return $r})),n.d(i,"MaxTargetsCriterion",(function(){return Xr})),n.d(i,"MeasurementsLengthSchema",(function(){return ri})),n.d(i,"MeasurementsLengthCriterion",(function(){return ii})),n.d(i,"ModalitySchema",(function(){return li})),n.d(i,"ModalityCriterion",(function(){return fi})),n.d(i,"NonTargetResponseSchema",(function(){return vi})),n.d(i,"NonTargetResponseCriterion",(function(){return gi})),n.d(i,"TargetTypeSchema",(function(){return Pi})),n.d(i,"TargetTypeCriterion",(function(){return Di}));var o={};n.r(o),n.d(o,"recist11",(function(){return Mi}));var a=n(41),s=n(7);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var l=function(){function e(t){var n=this,r=t.commandsManager,i=t.servicesManager,o=t.api,s=t.appConfig,u=void 0===s?{}:s;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.modules={},this.registeredExtensionIds=[],this.registeredExtensionVesions={},this.moduleTypeNames=Object.values(a.a),this._commandsManager=r,this._servicesManager=i,this._appConfig=u,this._api=o,this.moduleTypeNames.forEach((function(e){n.modules[e]=[]}))}var t,n,r;return t=e,(n=[{key:"registerExtensions",value:function(e){var t=this;e.forEach((function(e){if(Array.isArray(e)){var n=u(e,2),r=n[0],i=n[1];t.registerExtension(r,i)}else t.registerExtension(e)}))}},{key:"registerExtension",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e){var r=e.id,i=e.version;r||(r=Math.random().toString(36).substr(2,5),s.a.warn("Extension ID not set. Using random string ID: ".concat(r))),this.registeredExtensionIds.includes(r)?s.a.warn("Extension ID ".concat(r," has already been registered. Exiting before duplicating modules.")):(e.preRegistration&&e.preRegistration({servicesManager:this._servicesManager,commandsManager:this._commandsManager,appConfig:this._appConfig,configuration:n}),this.moduleTypeNames.forEach((function(i){var o=t._getExtensionModule(i,e,r,n);o&&(t._initSpecialModuleTypes(i,o),t.modules[i].push({extensionId:r,module:o}))})),this.registeredExtensionIds.push(r),this.registeredExtensionVesions[r]=i)}else s.a.warn("Attempting to register a null/undefined extension. Exiting early.")}},{key:"_getExtensionModule",value:function(e,t,n,r){var i,o="get"+((i=e).charAt(0).toUpperCase()+i.substr(1)),a=t[o];if(a)try{var u=a({servicesManager:this._servicesManager,commandsManager:this._commandsManager,appConfig:this._appConfig,configuration:r,api:this._api,extensionManager:this});return u||s.a.warn("Null or undefined returned when registering the ".concat(o," module for the ").concat(n," extension")),u}catch(e){s.a.error("Exception thrown while trying to call ".concat(o," for the ").concat(n," extension"))}}},{key:"_initSpecialModuleTypes",value:function(e,t){switch(e){case"commandsModule":var n=t.definitions,r=t.defaultContext;if(!n||0===Object.keys(n).length)return void s.a.warn("Commands Module contains no command definitions");this._initCommandsModule(n,r)}}},{key:"_initCommandsModule",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"VIEWER";this._commandsManager.getContext(n)||this._commandsManager.createContext(n),Object.keys(e).forEach((function(r){var i=e[r];i.context&&!t._commandsManager.getContext(i.context)&&t._commandsManager.createContext(i.context),t._commandsManager.registerCommand(i.context||n,r,i)}))}}])&&c(t.prototype,n),r&&c(t,r),e}();function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function p(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var d=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.services={},this.registeredServiceNames=[]}var t,n,r;return t=e,(n=[{key:"registerService",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e?e.name?this.registeredServiceNames.includes(e.name)?s.a.warn("Service name ".concat(e.name," has already been registered. Exiting before duplicating services.")):e.create?(this.services[e.name]=e.create({configuration:t}),this.registeredServiceNames.push(e.name)):s.a.warn("Service create factory function not defined. Exiting early."):s.a.warn("Service name not set. Exiting early."):s.a.warn("Attempting to register a null/undefined service. Exiting early.")}},{key:"registerServices",value:function(e){var t=this;e.forEach((function(e){if(Array.isArray(e)){var n=f(e,2),r=n[0],i=n[1];t.registerService(r,i)}else t.registerService(e)}))}}])&&p(t.prototype,n),r&&p(t,r),e}();function m(e){return(m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var h=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.getAppState,r=t.getActiveContexts;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.contexts={},n&&r||s.a.warn("CommandsManager was instantiated without getAppState() or getActiveContexts()"),this._getAppState=n,this._getActiveContexts=r}var t,n,r;return t=e,(n=[{key:"createContext",value:function(e){if(e)return this.contexts[e]?this.clearContext(e):void(this.contexts[e]={})}},{key:"getContext",value:function(e){var t=this.contexts[e];if(t)return t}},{key:"clearContext",value:function(e){e&&(this.contexts[e]={})}},{key:"registerCommand",value:function(e,t,n){if("object"===m(n)){var r=this.getContext(e);r&&(r[t]=n)}}},{key:"getCommand",value:function(e,t){var n,r=this,i=[];if(t){var o=this.getContext(t);o&&i.push(o)}else this._getActiveContexts().forEach((function(e){var t=r.getContext(e);t&&i.push(t)}));if(0!==i.length)return i.forEach((function(t){t[e]&&(n=t[e])})),n}},{key:"runCommand",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=this.getCommand(e,n);if(r){var i=r.commandFn,o=r.storeContexts,a=void 0===o?[]:o,u=r.options,c={},l=this._getAppState();return a.forEach((function(e){c[e]=l[e]})),c=Object.assign({},c,u,t),"function"!=typeof i?void s.a.warn('No commandFn was defined for command "'.concat(e,'"')):i(c)}s.a.warn('Command "'.concat(e,'" not found in current context'))}}])&&y(t.prototype,n),r&&y(t,r),e}(),v=n(17);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(n,!0).forEach((function(t){I(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function I(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function S(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var O=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.hotkeyDefinitions={},this.hotkeyDefaults=[],this.isEnabled=!0,t||s.a.warn("HotkeysManager instantiated without a commandsManager. Hotkeys will be unable to find and run commands."),this._servicesManager=n,this._commandsManager=t}var t,n,r;return t=e,(n=[{key:"record",value:function(e){return v.a.record(e)}},{key:"disable",value:function(){this.isEnabled=!1,v.a.pause()}},{key:"enable",value:function(){this.isEnabled=!0,v.a.unpause()}},{key:"setHotkeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];try{var n=this._getValidDefinitions(t);n.forEach((function(t){return e.registerHotkeys(t)}))}catch(e){var r=this._servicesManager.services,i=r.UINotificationService,o=r.LoggerService,a="Erro while setting hotkeys";o.error({error:e,message:a}),i.show({title:"Hotkeys Manager",message:a,type:"error"})}}},{key:"setDefaultHotKeys",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=this._getValidDefinitions(e);this.hotkeyDefaults=t}},{key:"_getValidDefinitions",value:function(e){return Array.isArray(e)?S(e):this._parseToArrayLike(e)}},{key:"_parseToArrayLike",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=b({},t);return Object.entries(n).map((function(t){return e._parseToHotKeyObj(t[0],t[1])}))}},{key:"_parseToHotKeyObj",value:function(e,t){return b({commandName:e},t)}},{key:"registerHotkeys",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.commandName,n=e.keys,r=e.label;if(arguments.length>1&&arguments[1],t){var i=this.hotkeyDefinitions[t];if(i){var o=i.keys;this._unbindHotkeys(t,o),s.a.info("Unbinding ".concat(t," from ").concat(o))}this.hotkeyDefinitions[t]={keys:n,label:r},this._bindHotkeys(t,n),s.a.info("Binding ".concat(t," to ").concat(n))}else s.a.warn('No command was defined for hotkey "'.concat(n,'"'))}},{key:"restoreDefaultBindings",value:function(){this.setHotkeys(this.hotkeyDefaults)}},{key:"destroy",value:function(){this.hotkeyDefaults=[],this.hotkeyDefinitions={},v.a.reset()}},{key:"_bindHotkeys",value:function(e,t){var n=this;if(""!==t&&void 0!==t){var r=t instanceof Array?t.join("+"):t;v.a.bind(r,(function(t){t.preventDefault(),t.stopPropagation(),n._commandsManager.runCommand(e,{evt:t})}))}}},{key:"_unbindHotkeys",value:function(e,t){if(""!==t&&void 0!==t)if(t instanceof Array){var n=t.join("+");this._unbindHotkeys(e,n)}else v.a.unbind(t)}}])&&w(t.prototype,n),r&&w(t,r),e}(),P=n(1),D=n(5),T=n(19),E=n(217);function k(e,t,n){return(k=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&_(i,n.prototype),i}).apply(null,arguments)}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function x(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function j(e){return(j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function M(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function N(e){return e.getData().metadata.ImagePositionPatient}var A=function(){function e(t){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),!0!==Array.isArray(t))throw new T.a("ImageSet expects an array of images");Object.defineProperty(this,"images",{enumerable:!1,configurable:!1,writable:!1,value:t}),Object.defineProperty(this,"uid",{enumerable:!1,configurable:!1,writable:!1,value:Object(D.a)()})}var t,n,r;return t=e,(n=[{key:"getUID",value:function(){return this.uid}},{key:"setAttribute",value:function(e,t){this[e]=t}},{key:"getAttribute",value:function(e){return this[e]}},{key:"setAttributes",value:function(e){if("object"===j(e)&&null!==e){var t=Object.prototype.hasOwnProperty;for(var n in e)t.call(e,n)&&(this[n]=e[n])}}},{key:"getImage",value:function(e){return this.images[e]}},{key:"sortBy",value:function(e){return this.images.sort(e)}},{key:"sortByImagePositionPatient",value:function(){var e=this.images,t=N(e[0]),n=new E.Vector3(t[0],t[1],t[2]),r=e[0].getData().metadata.ImageOrientationPatient,i=new E.Vector3(r[0],r[1],r[2]).cross(new E.Vector3(r[3],r[4],r[5])),o=e.map((function(e){var t=k(E.Vector3,x(N(e)));return{distance:n.clone().sub(t).dot(i),image:e}}));o.sort((function(e,t){return t.distance-e.distance}));var a=o.map((function(e){return e.image}));e.sort((function(e,t){return a.indexOf(e)-a.indexOf(t)}))}}])&&M(t.prototype,n),r&&M(t,r),e}();function C(e){return(C="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function R(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var U=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Object.defineProperty(this,"_data",{configurable:!1,enumerable:!1,writable:!1,value:t}),Object.defineProperty(this,"_uid",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(this,"_custom",{configurable:!1,enumerable:!1,writable:!1,value:Object.create(null)})}var t,n,r;return t=e,r=[{key:"isValidUID",value:function(e){return"string"===C(e)&&e.length>0}},{key:"isValidIndex",value:function(e){return"number"===C(e)&&e>=0&&(0|e)===e}},{key:"isValidCallback",value:function(e){return"function"===C(e)}}],(n=[{key:"getData",value:function(){return this._data}},{key:"getDataProperty",value:function(e){var t,n=this._data;return(n instanceof Object||"object"===C(n)&&null!==n)&&(t=n[e]),t}},{key:"getObjectID",value:function(){return this._uid}},{key:"setCustomAttribute",value:function(e,t){this._custom[e]=t}},{key:"getCustomAttribute",value:function(e){return this._custom[e]}},{key:"customAttributeExists",value:function(e){return e in this._custom}},{key:"setCustomAttributes",value:function(e){var t=Object.prototype.hasOwnProperty,n=this._custom;for(var r in e)t.call(e,r)&&(n[r]=e[r])}}])&&R(t.prototype,n),r&&R(t,r),e}();function V(e){return(V="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function L(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function F(e){return(F=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function q(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function H(e,t){return(H=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var G=function(e){function t(e,n){var r,i,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),i=this,r=!(o=F(t).call(this,e,n))||"object"!==V(o)&&"function"!=typeof o?q(i):o,Object.defineProperties(q(r),{_imageId:{configurable:!0,enumerable:!1,writable:!0,value:null}}),r._definePublicProperties(),r}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&H(e,t)}(t,e),n=t,i=[{key:"getIndexedValue",value:function(e,t,n){var r=n;if("string"===V(e)){var i=-1!==e.indexOf("\\");if(r=e,i){var o=e.split("\\");if(U.isValidIndex(t)){var a=o[t];r="string"!==V(a)?n:a}else r=o}}return r}}],(r=[{key:"_definePublicProperties",value:function(){Object.defineProperty(this,"SOPInstanceUID",{configurable:!1,enumerable:!1,get:function(){return this.getSOPInstanceUID()}})}},{key:"getStudyInstanceUID",value:function(){return this.getTagValue("StudyInstanceUID",null)}},{key:"getSeriesInstanceUID",value:function(){return this.getTagValue("SeriesInstanceUID",null)}},{key:"getSOPInstanceUID",value:function(){return this.getTagValue("SOPInstanceUID",null)}},{key:"getStringValue",value:function(e,n,r){var i=this.getTagValue(e,r);return"string"!==V(i)&&"undefined"!==V(i)&&(i=i.toString()),t.getIndexedValue(i,n,r)}},{key:"getFloatValue",value:function(e,n,r){var i=this.getTagValue(e,r);return(i=t.getIndexedValue(i,n,r))instanceof Array?(i.forEach((function(e,t){i[t]=parseFloat(e)})),i):"string"===V(i)?parseFloat(i):i}},{key:"getIntValue",value:function(e,n,r){var i=this.getTagValue(e,r);return(i=t.getIndexedValue(i,n,r))instanceof Array?(i.forEach((function(e,t){i[t]=parseFloat(e)})),i):"string"===V(i)?parseInt(i):i}},{key:"getTagValue",value:function(e,t){throw new T.a("InstanceMetadata::getTagValue is not overriden. Please, override it in a specialized class. See OHIFInstanceMetadata for example")}},{key:"equals",value:function(e){return e===this||e instanceof t&&e.getSOPInstanceUID()===this.getSOPInstanceUID()}},{key:"tagExists",value:function(e){throw new T.a("InstanceMetadata::tagExists is not overriden. Please, override it in a specialized class. See OHIFInstanceMetadata for example")}},{key:"getImageId",value:function(e){throw new T.a("InstanceMetadata::getImageId is not overriden. Please, override it in a specialized class. See OHIFInstanceMetadata for example")}}])&&L(n.prototype,r),i&&L(n,i),t}(U);function B(e){return(B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function W(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function z(e){return(z=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function K(e,t){return(K=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var J=function(e){function t(e,n){var r,i,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),i=this,r=!(o=z(t).call(this,e,n))||"object"!==B(o)&&"function"!=typeof o?Y(i):o,Object.defineProperties(Y(r),{_seriesInstanceUID:{configurable:!0,enumerable:!1,writable:!0,value:null},_instances:{configurable:!1,enumerable:!1,writable:!1,value:[]},_firstInstance:{configurable:!1,enumerable:!1,writable:!0,value:null}}),r._definePublicProperties(),r}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&K(e,t)}(t,e),n=t,(r=[{key:"_definePublicProperties",value:function(){Object.defineProperty(this,"seriesInstanceUID",{configurable:!1,enumerable:!1,get:function(){return this.getSeriesInstanceUID()}})}},{key:"getSeriesInstanceUID",value:function(){return this._seriesInstanceUID}},{key:"addInstance",value:function(e){var t=!1;return e instanceof G&&void 0===this.getInstanceByUID(e.getSOPInstanceUID())&&(this._instances.push(e),t=!0),t}},{key:"getFirstInstance",value:function(){var e=this._firstInstance;if(!(e instanceof G)){e=null;var t=this.getInstanceByIndex(0);t instanceof G&&(this._firstInstance=t,e=t)}return e}},{key:"getInstanceByIndex",value:function(e){var t;return U.isValidIndex(e)&&(t=this._instances[e]),t}},{key:"getInstanceByUID",value:function(e){var t;return U.isValidUID(e)&&(t=this._instances.find((function(t){return t.getSOPInstanceUID()===e}))),t}},{key:"getInstanceCount",value:function(){return this._instances.length}},{key:"forEachInstance",value:function(e){U.isValidCallback(e)&&this._instances.forEach((function(t,n){e.call(null,t,n)}))}},{key:"indexOfInstance",value:function(e){return this._instances.indexOf(e)}},{key:"findInstance",value:function(e){if(U.isValidCallback(e))return this._instances.find((function(t,n){return e.call(null,t,n)}))}},{key:"equals",value:function(e){return e===this||e instanceof t&&e.getSeriesInstanceUID()===this.getSeriesInstanceUID()}}])&&W(n.prototype,r),i&&W(n,i),t}(U),X=n(4),Z=["1.2.840.10008.5.1.4.1.1.1","1.2.840.10008.5.1.4.1.1.1.1","1.2.840.10008.5.1.4.1.1.1.1.1","1.2.840.10008.5.1.4.1.1.1.2","1.2.840.10008.5.1.4.1.1.1.2.1","1.2.840.10008.5.1.4.1.1.1.3","1.2.840.10008.5.1.4.1.1.1.3.1","1.2.840.10008.5.1.4.1.1.2","1.2.840.10008.5.1.4.1.1.2.1","1.2.840.10008.5.1.4.1.1.2.2","1.2.840.10008.5.1.4.1.1.3.1","1.2.840.10008.5.1.4.1.1.4","1.2.840.10008.5.1.4.1.1.4.1","1.2.840.10008.5.1.4.1.1.4.3","1.2.840.10008.5.1.4.1.1.4.4","1.2.840.10008.5.1.4.1.1.6.1","1.2.840.10008.5.1.4.1.1.7","1.2.840.10008.5.1.4.1.1.7.1","1.2.840.10008.5.1.4.1.1.7.2","1.2.840.10008.5.1.4.1.1.7.3","1.2.840.10008.5.1.4.1.1.7.4","1.2.840.10008.5.1.4.1.1.12.1","1.2.840.10008.5.1.4.1.1.12.1.1","1.2.840.10008.5.1.4.1.1.12.2","1.2.840.10008.5.1.4.1.1.12.2.1","1.2.840.10008.5.1.4.1.1.13.1.1","1.2.840.10008.5.1.4.1.1.13.1.2","1.2.840.10008.5.1.4.1.1.13.1.3","1.2.840.10008.5.1.4.1.1.13.1.4","1.2.840.10008.5.1.4.1.1.13.1.5","1.2.840.10008.5.1.4.1.1.14.1","1.2.840.10008.5.1.4.1.1.14.2","1.2.840.10008.5.1.4.1.1.20","1.2.840.10008.5.1.4.1.1.77.1.1","1.2.840.10008.5.1.4.1.1.77.1.1.1","1.2.840.10008.5.1.4.1.1.77.1.2","1.2.840.10008.5.1.4.1.1.77.1.2.1","1.2.840.10008.5.1.4.1.1.77.1.3","1.2.840.10008.5.1.4.1.1.77.1.4","1.2.840.10008.5.1.4.1.1.77.1.4.1","1.2.840.10008.5.1.4.1.1.77.1.5.1","1.2.840.10008.5.1.4.1.1.77.1.5.2","1.2.840.10008.5.1.4.1.1.77.1.5.4","1.2.840.10008.5.1.4.1.1.77.1.6","1.2.840.10008.5.1.4.1.1.128","1.2.840.10008.5.1.4.1.1.130","1.2.840.10008.5.1.4.1.1.128.1","1.2.840.10008.5.1.4.1.1.481.1"],Q=function(e){return!!e&&-1!==Z.indexOf(e)},ee={DATASET_4D:"datasetis4D",VARYING_IMAGESDIMENSIONS:"imagesdimensionsvarying",VARYING_IMAGESCOMPONENTS:"imagescomponentsvarying",VARYING_IMAGESORIENTATION:"imagesorientationvarying",MISSING_FRAMES:"missingframes",IRREGULAR_SPACING:"irregularspacing",MULTIFFRAMES:"multiframe"};function te(e){if(!e.length)return{value:!1};var t=e[0].getData().metadata,n=t.Modality,r=t.NumberOfFrames>1;return se.includes(n)&&(r||1!==e.length)?r?{value:!1,reconstructionIssues:[ee.MULTIFRAMES]}:function(e){for(var t=e.length,n=e[0].getData().metadata,r=n.Rows,i=n.Columns,o=n.SamplesPerPixel,a=n.ImageOrientationPatient,s=[],u=1;u<t;++u){var c=e[u].getData().metadata,l=c.Rows,f=c.Columns,p=c.SamplesPerPixel,d=c.ImageOrientationPatient;if(l!==r||f!==i?s.push(ee.VARYING_IMAGESDIMENSIONS):p!==o?s.push(ee.VARYING_IMAGESCOMPONENTS):ne(d,a)||s.push(ee.VARYING_IMAGESORIENTATION),0!==s.length)break}(function(e){for(var t=e.length,n=0;n<t;++n){var r=e[n].getData().metadata;if(r&&void 0!==r&&r.ImagePositionPatient&&void 0!==r.ImagePositionPatient)for(var i=n+1;i<t;++i){var o=e[i].getData().metadata;if(o&&void 0!==o&&o.ImagePositionPatient&&void 0!==o.ImagePositionPatient&&ne(r.ImagePositionPatient,o.ImagePositionPatient))return!0}}return!1})(e)&&s.push(ee.DATASET_4D);return{value:0===s.length,reconstructionIssues:s}}(e):{value:!1}}function ne(e,t){if(void 0!==e&&void 0!==!t)return Math.abs(e[0]-t[0])<ie&&Math.abs(e[1]-t[1])<ie&&Math.abs(e[2]-t[2])<ie}var re=.1,ie=.01;function oe(e,t){if(!(Math.abs(e-t)<t*re)){var n=e/t,r=Math.round(n);return Math.abs(e-r*t)/r<re*t?{issue:ee.MISSING_FRAMES,missingFrames:r-1}:{issue:ee.IRREGULAR_SPACING}}}function ae(e,t){return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)+Math.pow(e[2]-t[2],2))}var se=["MR","CT","PT","NM"],ue=n(3),ce=Object.freeze(["SEG","DOC","RTSTRUCT","SR","KO","PR"]);function le(e){return ce.includes(e)}var fe=n(0);function pe(e){return(pe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function de(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function me(e){return(me=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ye(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function he(e,t){return(he=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ve=function(e){function t(e,n){var r,i,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),i=this,r=!(o=me(t).call(this,e,n))||"object"!==pe(o)&&"function"!=typeof o?ye(i):o,Object.defineProperties(ye(r),{_studyInstanceUID:{configurable:!0,enumerable:!1,writable:!0,value:null},_series:{configurable:!1,enumerable:!1,writable:!1,value:[]},_displaySets:{configurable:!1,enumerable:!1,writable:!1,value:[]},_derivedDisplaySets:{configurable:!1,enumerable:!1,writable:!1,value:[]},_firstSeries:{configurable:!1,enumerable:!1,writable:!0,value:null},_firstInstance:{configurable:!1,enumerable:!1,writable:!0,value:null}}),r._definePublicProperties(),r}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&he(e,t)}(t,e),n=t,i=[{key:"getReferencedDisplaySet",value:function(e,t){var n=[];t.forEach((function(e){n=n.concat(e.displaySets)}));var r=n.filter((function(t){return t.displaySetInstanceUID!==e.displaySetInstanceUID})),i=e.metadata,o=function(e,t){var n;if(e.SourceImageSequence)n=e.SourceImageSequence;else{var r=Oe(e.PerFrameFunctionalGroupsSequence)[0];if(r){var i=r.DerivationImageSequence;n=i}}if(n){for(var o,a=Oe(n),s=0;s<a.length;s++){var u=a[s].ReferencedSOPInstanceUID;if((o=we(t,u))&&0!==o.length)break}return o}}(i,r),a=!o||0===o.length;if(a&&(o=function(e){if(e.ReferencedSeriesSequence){var t=Oe(e.ReferencedSeriesSequence);return t.map((function(e){return e.SeriesInstanceUID}))}}(i)),(a=!o||0===o.length)&&(o=function(e,t){if(e.ReferencedImageSequence){for(var n,r=Oe(e.ReferencedImageSequence),i=0;i<r.length;i++){var o=r[i].ReferencedSOPInstanceUID;if(o&&(n=we(t,o))&&0!==n.length)break}return n}}(i,r)),o&&0!==o.length)return r.find((function(e){return o.includes(e.SeriesInstanceUID)}))}}],(r=[{key:"_definePublicProperties",value:function(){Object.defineProperty(this,"studyInstanceUID",{configurable:!1,enumerable:!1,get:function(){return this.getStudyInstanceUID()}})}},{key:"getDisplaySets",value:function(){return this._displaySets.slice()}},{key:"_createDisplaySetsForSeries",value:function(e,t){var n=this,r=[];if(!(t.getInstanceCount()>0)){var i=new A([]),o=t.getData();return i.setAttributes({displaySetInstanceUID:i.uid,SeriesInstanceUID:o.SeriesInstanceUID,SeriesDescription:o.SeriesDescription,SeriesNumber:o.SeriesNumber,Modality:o.Modality}),r.push(i),r}var a=function(e){var t=new Set;return e.forEachInstance((function(e){var n=e.getTagValue("SOPClassUID");t.add(n)})),Array.from(t)}(t);if(e&&e.length>0){var s=function(e,t,n,r){if(1===r.length){var i=r[0],o=e.map((function(e){return e.module})).filter((function(e){return e.sopClassUIDs.includes(i)}));if(o&&o.length){var a=o[0],s=P.a.getAuthorizationHeader(),u=ue.a.getHTTPErrorHandler(),c=new ge({url:n.getData().wadoRoot,headers:s,errorInterceptor:u,requestHooks:[Object(fe.a)()]}),l=a.getDisplaySetFromSeries(t,n,c,s);if(l&&!l.Modality){var f=t.getFirstInstance();l.Modality=f.getTagValue("Modality")}return l}}else console.warn("getDisplaySetFromSopClassPlugin: More than one SOPClassUID in the same series is not yet supported.")}(e,t,n,a);if(s)return s.sopClassModule=!0,s.isDerived&&this._addDerivedDisplaySet(s),r.push(s),r}var u=[];if(t.forEachInstance((function(e){var i;if(Q(e.getTagValue("SOPClassUID"))||e.getTagValue("Rows"))be(e)?((i=Ie(t,[e])).setAttributes({sopClassUIDs:a,isClip:!0,SeriesInstanceUID:t.getSeriesInstanceUID(),StudyInstanceUID:n.getStudyInstanceUID(),numImageFrames:e.getTagValue("NumberOfFrames"),InstanceNumber:e.getTagValue("InstanceNumber"),AcquisitionDatetime:e.getTagValue("AcquisitionDateTime")}),r.push(i)):Se(e.Modality)?((i=Ie(t,[e])).setAttributes({sopClassUIDs:a,StudyInstanceUID:n.getStudyInstanceUID(),SeriesInstanceUID:t.getSeriesInstanceUID(),InstanceNumber:e.getTagValue("InstanceNumber"),AcquisitionDatetime:e.getTagValue("AcquisitionDateTime")}),r.push(i)):u.push(e);else{var o=new A([]),s=t.getData();o.setAttributes({displaySetInstanceUID:o.uid,SeriesDate:s.SeriesDate,SeriesTime:s.SeriesTime,SeriesInstanceUID:t.getSeriesInstanceUID(),SeriesNumber:e.getTagValue("SeriesNumber"),SeriesDescription:e.getTagValue("SeriesDescription"),numImageFrames:e.getTagValue("NumberOfFrames"),frameRate:e.getTagValue("FrameTime"),Modality:e.getTagValue("Modality"),isMultiFrame:!1,StudyInstanceUID:n.getStudyInstanceUID(),InstanceNumber:e.getTagValue("InstanceNumber"),AcquisitionDatetime:e.getTagValue("AcquisitionDateTime"),isReconstructable:!1,isModalitySupported:!1,metadata:e.getData().metadata}),r.push(o)}})),u.length){var c=Ie(t,u);c.setAttribute("StudyInstanceUID",n.getStudyInstanceUID()),c.setAttributes({sopClassUIDs:a}),r.push(c)}return r}},{key:"_addDerivedDisplaySet",value:function(e){this._derivedDisplaySets.push(e)}},{key:"_addDerivedDisplaySets",value:function(e){var t=this;e.map((function(e){return t._derivedDisplaySets.push(e)}))}},{key:"getDerivedDatasets",value:function(e){var n=this,r=e.Modality,i=e.referencedSeriesInstanceUID,o=e.referencedFrameOfReferenceUID,a=this._derivedDisplaySets;return r&&(a=a.filter((function(e){return e.Modality===r}))),i&&(a=a.filter((function(e){return t.getReferencedDisplaySet(e,[n]).SeriesInstanceUID===i}))),o&&(a=a.filter((function(e){return e.FrameOfReferenceUID===o}))),a}},{key:"createDisplaySets",value:function(e){var t=this;return this.getSeriesCount()?(this.forEachSeries((function(n){t._createDisplaySetsForSeries(e,n).forEach((function(e){return t._insertDisplaySet(e)}))})),this._displaySets):[]}},{key:"createAndAddDisplaySetsForSeries",value:function(e,t){var n=this;if(!this.containsSeries(t))return!1;for(var r=this._createDisplaySetsForSeries(e,t),i=this._displaySets.length-1;i>=0;i--)this._displaySets[i].SeriesInstanceUID===t.getSeriesInstanceUID()&&this._displaySets.splice(i,1);return r.forEach((function(e){n.addDisplaySet(e)})),!0}},{key:"addDisplaySet",value:function(e){return!!(e instanceof A||e.sopClassModule)&&(this._insertDisplaySet(e),!0)}},{key:"forEachDisplaySet",value:function(e){U.isValidCallback(e)&&this._displaySets.forEach((function(t,n){e.call(null,t,n)}))}},{key:"_insertDisplaySet",value:function(e){var t,n=e.SeriesNumber,r=this._displaySets,i=r.length;if(le(e.Modality)){for(var o,a=0;a<r.length;a++)if(le(r[a].Modality)){o=a;break}o||(o=r.length);for(var s=o;s<r.length;s++)if(r[s].SeriesNumber!==n||t||(t=s),r[s].SeriesNumber>n){i=s;break}}else for(var u=0;u<r.length;u++)if(r[u].SeriesNumber!==n||t||(t=u),r[u].SeriesNumber>n||le(r[u].Modality)){i=u;break}if(void 0!==t&&e.SeriesDate)for(var c="".concat(e.SeriesDate).concat(e.SeriesTime),l=t;l<i;l++){var f=r[l];if(f.SeriesDate&&"".concat(f.SeriesDate).concat(f.SeriesTime)<c){i=l;break}}this._displaySets.some((function(t){return t.displaySetInstanceUID===e.displaySetInstanceUID}))||(this._displaySets.splice(i,0,e),this.displaySets=this._displaySets)}},{key:"findDisplaySet",value:function(e){if(U.isValidCallback(e))return this._displaySets.find((function(t,n){return e.call(null,t,n)}))}},{key:"getDisplaySetCount",value:function(){return this._displaySets.length}},{key:"getStudyInstanceUID",value:function(){return this._studyInstanceUID}},{key:"getSeries",value:function(){return this._series.slice()}},{key:"addSeries",value:function(e){var t=!1;return e instanceof J&&void 0===this.getSeriesByUID(e.getSeriesInstanceUID())&&(this._series.push(e),t=!0),t}},{key:"updateSeries",value:function(e,t){var n=this._series.findIndex((function(t){return t.getSeriesInstanceUID()===e}));if(n<0)return!1;if(!(t instanceof J))throw new Error("Series must be an instance of SeriesMetadata");return this._series[n]=t,!0}},{key:"getSeriesByIndex",value:function(e){var t;return U.isValidIndex(e)&&(t=this._series[e]),t}},{key:"getSeriesByUID",value:function(e){var t;return U.isValidUID(e)&&(t=this._series.find((function(t){return t.getSeriesInstanceUID()===e}))),t}},{key:"containsSeries",value:function(e){return e instanceof J&&this._series.indexOf(e)>=0}},{key:"getSeriesCount",value:function(){return this._series.length}},{key:"getInstanceCount",value:function(){return this._series.reduce((function(e,t){return e+t.getInstanceCount()}),0)}},{key:"forEachSeries",value:function(e){U.isValidCallback(e)&&this._series.forEach((function(t,n){e.call(null,t,n)}))}},{key:"indexOfSeries",value:function(e){return this._series.indexOf(e)}},{key:"equals",value:function(e){return e===this||e instanceof t&&e.getStudyInstanceUID()===this.getStudyInstanceUID()}},{key:"getFirstSeries",value:function(){var e=this._firstSeries;if(!(e instanceof J)){e=null;var t=this.getSeriesByIndex(0);t instanceof J&&(this._firstSeries=t,e=t)}return e}},{key:"getFirstImageId",value:function(e){try{return this.findDisplaySet((function(t){return t.displaySetInstanceUID===e})).images[0].getImageId()}catch(e){return console.error("Failed to retrieve image metadata"),null}}},{key:"getFirstInstance",value:function(){var e=this._firstInstance;if(!(e instanceof G)){e=null;var t=this.getFirstSeries();if(t instanceof J){var n=t.getFirstInstance();n instanceof G&&(this._firstInstance=n,e=n)}}return e}},{key:"findSeriesAndInstanceByInstance",value:function(e){var t;if(U.isValidCallback(e)){var n,r=this._series.find((function(t){return(n=t.findInstance(e))instanceof G}));r instanceof J&&(t={series:r,instance:n})}return t||{}}},{key:"findSeriesByInstance",value:function(e){return this.findSeriesAndInstanceByInstance(e).series}},{key:"findInstance",value:function(e){return this.findSeriesAndInstanceByInstance(e).instance}}])&&de(n.prototype,r),i&&de(n,i),t}(U),ge=X.a.DICOMwebClient,be=function(e){return e.getTagValue("NumberOfFrames")>1},Ie=function(e,t){var n=t[0],r=new A(t),i=e.getData();r.setAttributes({displaySetInstanceUID:r.uid,SeriesDate:i.SeriesDate,SeriesTime:i.SeriesTime,SeriesInstanceUID:e.getSeriesInstanceUID(),SeriesNumber:n.getTagValue("SeriesNumber"),SeriesDescription:n.getTagValue("SeriesDescription"),numImageFrames:t.length,frameRate:n.getTagValue("FrameTime"),Modality:n.getTagValue("Modality"),isMultiFrame:be(n)});r.sortBy((function(e,t){return(parseInt(e.getTagValue("InstanceNumber",0))||0)-(parseInt(t.getTagValue("InstanceNumber",0))||0)})),r.setAttribute("InstanceNumber",r.getImage(0).getTagValue("InstanceNumber"));var o=te(t);r.isReconstructable=o.value;var a=void 0;if(r.isReconstructable){r.sortByImagePositionPatient();var s=o.reconstructionIssues.find((function(e){return e===ReconstructionIssues.DATASET_4D}));a=function(e,t){var n=e.length,r=e[0].getData().metadata.ImagePositionPatient,i=[],o=0;if(n>2){var a=e[n-1].getData().metadata.ImagePositionPatient;if(r&&a)for(var s=ae(r,a)/(n-1),u=r,c=1;c<n;++c){var l=e[c].getData().metadata.ImagePositionPatient,f=ae(l,u);if(!(t&&f<.001)){var p=oe(f,s);if(p){var d=p.issue;if(d===ee.MISSING_FRAMES)o+=p.missingFrames;else if(d===ee.IRREGULAR_SPACING){i.push(d);break}}u=l}}}return{isUniform:0===i.length,missingFrames:o,reconstructionIssues:i}}(r.images,s),r.isReconstructable=a.isUniform,a.missingFrames&&(r.missingFrames=a.missingFrames)}return r.displayReconstructableInfo||(r.reconstructionIssues=a?o.reconstructionIssues.concat(a.reconstructionIssues):o.reconstructionIssues),r.isModalitySupported=!0,r},Se=function(e){return"CR"===e||"MG"===e||"DX"===e};function we(e,t){for(var n=e.filter((function(e){return e instanceof A})),r=0;r<n.length;r++){var i=n[r].images;if(i)for(var o=0;o<i.length;o++){var a=i[o];if(a&&a.SOPInstanceUID===t)return[a.getData().metadata.SeriesInstanceUID]}}}function Oe(e){return Array.isArray(e)?e:[e]}var Pe=n(18),De=n.n(Pe),Te=n(24),Ee=n.n(Te),ke=n(218),_e=n.n(ke),xe=n(15),je=n(16);function Me(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ne(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Me(n,!0).forEach((function(t){Ce(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Me(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ae(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Re=function(){},Ue=function(){function e(t,n){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Ce(this,"options",{order:"closest",displaySetCount:1,onImageCached:Re,requestType:"prefetch",preventCache:!1,prefetchDisplaySetsTimeout:300,maxNumPrefetchRequests:100,includeActiveDisplaySet:!1}),Ce(this,"cacheFullHandler",(function(){log.warn("Cache full"),r.stopPrefetching()})),this.studies=t||[],n&&(this.options=Ne({},this.options,{},n),this.options.requestType="prefetch"),De.a.events.addEventListener("cornerstoneimagecachefull.StudyPrefetcher",this.cacheFullHandler)}var t,n,r;return t=e,r=[{key:"getInstance",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;return e.instance||(e.instance=new e(t,n)),n&&(this.options=Ne({},this.options,{},n),this.options.requestType="prefetch"),e.instance}}],(n=[{key:"destroy",value:function(){this.stopPrefetching(),De.a.events.removeEventListener("cornerstoneimagecachefull.StudyPrefetcher",this.cacheFullHandler)}},{key:"setStudies",value:function(e){this.stopPrefetching(),this.studies=e}},{key:"getElement",value:function(){return this.element}},{key:"prefetch",value:function(e,t){if(this.studies&&this.studies.length){this.element=e;try{this.enabledElement=De.a.getEnabledElement(e)}catch(e){throw new Error("Failed to find the enabled element")}this.stopPrefetching(),this.prefetchDisplaySets(t)}}},{key:"stopPrefetching",value:function(){De.a.imageLoadPoolManager.clearRequestStack("prefetch")}},{key:"prefetchDisplaySetsAsync",value:function(e,t){var n=this;try{this.enabledElement=De.a.getEnabledElement(e)}catch(e){throw new Error("Failed to find the enabled element")}t=t||this.options.prefetchDisplaySetsTimeout,clearTimeout(this.prefetchDisplaySetsHandler),this.prefetchDisplaySetsHandler=setTimeout((function(){n.prefetchDisplaySets(e)}),t)}},{key:"prefetchDisplaySets",value:function(e){var t=this.getDisplaySetsToPrefetch(e),n=this.getImageIdsFromDisplaySets(t);this.prefetchImageIds(n)}},{key:"prefetchImageIds",value:function(e){var t,n=this,r=this.filterCachedImageIds(e),i=De.a.imageLoadPoolManager;i.maxNumRequests=Ne({},i.maxNumRequests,{prefetch:this.options.maxNumPrefetchRequests}),t=this.options.preventCache?function(e){return De.a.loadImage(e)}:function(e){return De.a.loadAndCacheImage(e)},r.forEach((function(e){i.addRequest(t.bind(n,e),n.options.requestType,{imageId:e})}))}},{key:"getStudy",value:function(e){var t=De.a.metaData.get("StudyInstanceUID",e.imageId);return this.studies.find((function(e){return e.getData().StudyInstanceUID===t}))}},{key:"getSeries",value:function(e,t){var n=De.a.metaData.get("SeriesInstanceUID",t.imageId);return e.getSeriesByUID(n)}},{key:"getInstance",value:function(e,t){var n=De.a.metaData.get("instance",t.imageId);return e.getInstanceByUID(n.SOPInstanceUID)}},{key:"getDisplaySetByUID",value:function(e){var t;return this.studies.forEach((function(n){var r=n.displaySets.find((function(t){return t.displaySetInstanceUID===e}));r&&(t=r)})),t}},{key:"getDisplaySetBySOPInstanceUID",value:function(e,t){return e.find((function(e){return e.images.some((function(e){return e.SOPInstanceUID===t.SOPInstanceUID}))}))}},{key:"getActiveViewportImage",value:function(){if(this.enabledElement)return this.enabledElement.image}},{key:"getDisplaySetsToPrefetch",value:function(e){var t=this.getActiveViewportImage();if(!t)return[];var n=this.getStudy(t),r=this.getSeries(n,t),i=this.getInstance(r,t),o=n.displaySets,a=e?this.getDisplaySetByUID(e):this.getDisplaySetBySOPInstanceUID(o,i),s=this.options.order,u=this[{topdown:"getFirstDisplaySets",downward:"getNextDisplaySets",upward:"getPreviousDisplaySets",closest:"getClosestDisplaySets",all:"getAllDisplaySets"}[s]];return u?u.call(this,o,a,this.options.displaySetCount,this.options.includeActiveDisplaySet):(s&&log.warn("Invalid prefetch order configuration (".concat(s,")")),[])}},{key:"getAllDisplaySets",value:function(e,t,n,r){for(var i=e.length,o=[],a=0;a<i;a++){var s=e[a];o.push(s)}return o}},{key:"getFirstDisplaySets",value:function(e,t,n,r){for(var i=e.length,o=[],a=0;a<i&&n;a++){var s=e[a];(r||s!==t)&&(o.push(s),n--)}return o}},{key:"getPreviousDisplaySets",value:function(e,t,n,r){var i=e.indexOf(t),o=r?i+1:i;return e.slice(0,o).reverse().slice(0,n)}},{key:"getNextDisplaySets",value:function(e,t,n,r){var i=e.indexOf(t),o=r?i:i+1,a=Math.min(o+n,e.length);return e.slice(o,a)}},{key:"getClosestDisplaySets",value:function(e,t,n,r){var i=e.indexOf(t),o=e.length,a=[],s=i-1,u=i+1;for(r&&(a.push(e[i]),n--);(s>=0||u<o)&&n;)s>=0&&(a.push(e[s]),n--,s--),u<o&&n&&(a.push(e[u]),n--,u++);return a}},{key:"getImageIdsFromDisplaySets",value:function(e){var t=this,n=[];return e.forEach((function(e){n=n.concat(t.getImageIdsFromDisplaySet(e))})),n}},{key:"getImageIdsFromDisplaySet",value:function(e){var t=[];return!e.images||e.images.length<1?[]:(e.images.forEach((function(e){var n=e.numFrames;if(n>1)for(var r=0;r<n;r++){var i=Object(je.a)(e,r);t.push(i)}else{var o=Object(je.a)(e);t.push(o)}})),t)}},{key:"filterCachedImageIds",value:function(e){var t=this;return e.filter((function(e){return!t.isImageCached(e)}))}},{key:"isImageCached",value:function(e){var t=De.a.imageCache.imageCache[e];return t&&t.sizeInBytes}}])&&Ae(t.prototype,n),r&&Ae(t,r),e}();function Ve(e){return(Ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Le(e,t){return!t||"object"!==Ve(t)&&"function"!=typeof t?qe(e):t}function Fe(e){return(Fe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function qe(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function He(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ge(e,t)}function Ge(e,t){return(Ge=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Be(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function We(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ze(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ye(e,t,n){return t&&ze(e.prototype,t),n&&ze(e,n),e}var Ke=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};We(this,e),this.id=e.getNewId(),this.stack=t,this.statsItemsLimit=n.statsItemsLimit||2,this.stats={items:[],total:0,elapsedTime:0,speed:0},this._setProgressData=n._setProgressData,this._clearProgressById=n._clearProgressById,this._addStatsData(0),this._updateProgress()}return Ye(e,[{key:"_addStatsData",value:function(e){var t=new Date,n=this.stats,r=n.items,i={value:e,date:t};for(r.push(i),n.total+=i.value;r.length>this.statsItemsLimit;){var o=r.shift();n.total-=o.value}if(r.length>1){var a=r[0];n.elapsedTime=(i.date.getTime()-a.date.getTime())/1e3,n.speed=(n.total-a.value)/n.elapsedTime}}},{key:"_getProgressId",value:function(){return"StackProgress:"+this.stack.displaySetInstanceUID}},{key:"_clearProgress",value:function(){var e=this._getProgressId();this._clearProgressById(e)}},{key:"startListening",value:function(){throw new Error("`startListening` must be implemented by child classes")}},{key:"stopListening",value:function(){throw new Error("`stopListening` must be implemented by child classes")}},{key:"destroy",value:function(){this.stopListening(),this._clearProgress()}}],[{key:"getNewId",value:function(){var e=(new Date).getTime().toString().slice(-8),t=parseInt(1e9*Math.random());return e.toString()+t.toString()}}]),e}(),Je=function(e){function t(e,n){var r;return We(this,t),Be(qe(r=Le(this,Fe(t).call(this,e,n))),"_imageLoadProgressEventHandler",(function(e){var t=e.detail,n=r._convertImageIdToDataSetUrl(t.imageId),i=t.loaded-r._lastLoaded;!r._dataSetUrl!==n&&(r._addStatsData(i),r._updateProgress(t),r._lastLoaded=t.loaded)})),r.imageLoadProgressEventHandler=r._imageLoadProgressEventHandler.bind(qe(r)),r._dataSetUrl=r._getDataSetUrl(e),r._lastLoaded=0,r._checkCachedData(),r.startListening(),r}return He(t,e),Ye(t,[{key:"_checkCachedData",value:function(){var e=Ee.a.wadouri.dataSetCacheManager.get(this._dataSetUrl);if(e){var t=e.byteArray.length;this._updateProgress({percentComplete:100,loaded:t,total:t})}}},{key:"_getImageLoadProgressEventName",value:function(){return"cornerstoneimageloadprogress."+this.id}},{key:"startListening",value:function(){var e=this._getImageLoadProgressEventName();this.stopListening(),De.a.events.addEventListener(e,this.imageLoadProgressEventHandle)}},{key:"stopListening",value:function(){var e=this._getImageLoadProgressEventName();De.a.events.removeEventListener(e,this.imageLoadProgressEventHandle)}},{key:"_updateProgress",value:function(e){var t=this._getProgressId(),n={multiFrame:!1,percentComplete:(e=e||{}).percentComplete,bytesLoaded:e.loaded,bytesTotal:e.total,bytesPerSecond:this.stats.speed};this._setProgressData(t,n)}},{key:"_convertImageIdToDataSetUrl",value:function(e){return e=(e=(e=e.replace(/^(dicomweb:|wadouri:)/i,"")).replace(/frame=\d+&?/i,"")).replace(/&$/,"")}},{key:"_getDataSetUrl",value:function(e){var t=e.imageIds[0];return this._convertImageIdToDataSetUrl(t)}}]),t}(Ke),$e={OnProgress:"StudyLoadingListenerEvents.OnProgress"};function Xe(e,t){var n=window.Symbol?Symbol("unique"):/unique/;var r=[e,Promise.resolve(n)];Promise.race(r).then((function(e){return t(e===n?"pending":"fulfilled")}),(function(e){return t("rejected")}))}var Ze=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};We(this,t),r.statsItemsLimit=20,(n=Le(this,Fe(t).call(this,e,r))).imageLoadedEventHandler=n._imageLoadedEventHandler.bind(qe(n)),n.imageCachePromiseRemovedEventHandler=n._imageCachePromiseRemovedEventHandler.bind(qe(n)),n.imageDataMap=n._convertImageIdsArrayToMap(e.imageIds),n.framesStatus=n._createArray(e.imageIds.length,!1),n.loadedCount=0,n._debouncedSetProgressData=_e()((function(){var e;(e=n)._setProgressData.apply(e,arguments);var t=Ue.getInstance();t.prefetch(t.getElement())}),300);return n._checkCachedData(!0),n.startListening(),n}return He(t,e),Ye(t,[{key:"_convertImageIdsArrayToMap",value:function(e){for(var t=new Map,n=0;n<e.length;n++)t.set(e[n],{index:n,loaded:!1});return t}},{key:"_createArray",value:function(e,t){for(var n=[],r=0;r<e;r++)n[r]=t;return n}},{key:"isImageCached",value:function(e){var t=De.a.imageCache.imageCache[e];return t&&t.sizeInBytes}},{key:"_checkCachedData",value:function(){for(var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=this.stack.imageIds,r=function(r){var i=n[r],o=De.a.imageCache.getImageLoadObject(i);e.isImageCached(i)&&e._updateFrameStatus(i,!0,t),o&&o.promise&&Xe(o.promise,(function(n){"fulfilled"===n&&e._updateFrameStatus(i,!0,t)}))},i=0;i<n.length;i++)r(i)}},{key:"_getImageLoadedEventName",value:function(){return"".concat(De.a.EVENTS.IMAGE_LOADED,".").concat(this.id)}},{key:"_getImageCachePromiseRemoveEventName",value:function(){return"".concat(De.a.EVENTS.IMAGE_CACHE_PROMISE_REMOVED,".").concat(this.id)}},{key:"_imageLoadedEventHandler",value:function(e){this._updateFrameStatus(e.detail.image.imageId,!0)}},{key:"_imageCachePromiseRemovedEventHandler",value:function(e){this._updateFrameStatus(e.detail.imageId,!1)}},{key:"startListening",value:function(){var e=this._getImageLoadedEventName(),t=this._getImageCachePromiseRemoveEventName();this.stopListening(),De.a.events.addEventListener(e,this.imageLoadedEventHandler),De.a.events.addEventListener(t,this.imageCachePromiseRemovedEventHandler)}},{key:"stopListening",value:function(){var e=this._getImageLoadedEventName(),t=this._getImageCachePromiseRemoveEventName();De.a.events.removeEventListener(e,this.imageLoadedEventHandler),De.a.events.removeEventListener(t,this.imageCachePromiseRemovedEventHandler)}},{key:"_updateFrameStatus",value:function(e,t,n){var r=this.imageDataMap.get(e);r&&r.loaded!==t&&(t&&this._addStatsData(1),r.loaded=t,this.framesStatus[r.index]=t,this.loadedCount+=t?1:-1,this._updateProgress(n))}},{key:"_setProgressData",value:function(e,t){throw new Error("The _setProgressData function must be provided in StudyLoadingListener's options")}},{key:"_clearProgressById",value:function(e){throw new Error("The _clearProgressById function must be provided in StudyLoadingListener's options")}},{key:"_updateProgress",value:function(e){var t=this.stack.imageIds.length,n=this.loadedCount,r=t-n,i=Math.round(n/t*100),o=this._getProgressId(),a={multiFrame:!0,totalFramesCount:t,loadedFramesCount:n,loadingFramesCount:r,percentComplete:i,framesPerSecond:this.stats.speed,framesStatus:this.framesStatus};e?this._debouncedSetProgressData(o,a):this._setProgressData(o,a)}},{key:"_logProgress",value:function(){for(var e=this.stack.imageIds.length,t=this.stack.displaySetInstanceUID,n="[",r=0;r<e;r++){var i=this.framesStatus[r]?"|":".";n+="".concat(i)}n+="]",console.info("".concat(t,": ").concat(n))}}]),t}(Ke),Qe=function(){function e(t){We(this,e),this.listeners={},this.options=t}return Ye(e,[{key:"addStack",value:function(e,t){if(e){var n=e.displaySetInstanceUID;if(!this.listeners[n]){var r=this._createListener(e,t);r&&(this.listeners[n]=r)}}}},{key:"addStudy",value:function(e){var t=this;e.displaySets.forEach((function(n){var r=xe.a.findOrCreateStack(e,n);if(!r)return console.warn("Skipping adding displaySet to StudyLoadingListener"),void console.warn(n);t.addStack(r,{isMultiFrame:n.isMultiFrame})}))}},{key:"addStudies",value:function(e){var t=this;e&&e.length&&e.forEach((function(e){return t.addStudy(e)}))}},{key:"clear",value:function(){for(var e=Object.keys(this.listeners),t=e.length,n=0;n<t;n++){var r=e[n];this.listeners[r].destroy()}this.listeners={}}},{key:"_createListener",value:function(e,t){return"wadors"!==this._getSchema(e)&&t.isMultiFrame?new Je(e,this.options):new Ze(e,this.options)}},{key:"_getSchema",value:function(e){var t=e.imageIds[0];if(t){var n=t.indexOf(":");return t.substring(0,n)}}}],[{key:"getInstance",value:function(t){var n={_setProgressData:function(e,t){var n=new CustomEvent($e.OnProgress,{detail:{progressId:e,progressData:t}});document.dispatchEvent(n)},_clearProgressById:function(e){var t=new CustomEvent($e.OnProgress,{detail:{progressId:e,percentComplete:0}});document.dispatchEvent(t)}};return e._instance||(e._instance=new e(t||n)),e._instance}}]),e}();function et(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}Be(Qe,"events",$e);var tt=Symbol("subscriptions"),nt=Symbol("lastSubscriptionId"),rt=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this[tt]={},this[nt]=0}var t,n,r;return t=e,(n=[{key:"subscribe",value:function(e,t){if(void 0===e)throw new Error("Event name is required");if("function"!=typeof t)throw new Error("Callback must be a function");this[tt].hasOwnProperty(e)||(this[tt][e]={});var n="sub".concat(this[nt]++);this[tt][e][n]=t}},{key:"unsubscribe",value:function(e,t){var n=this[tt][e]||{};for(var r in n)t?n[r]===t&&delete n[r]:delete n[r]}},{key:"publish",value:function(e){if(void 0===e)throw new Error("Event name is required");for(var t=this[tt][e]||{},n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];for(var o in t)t[o].apply(t,r)}}])&&et(t.prototype,n),r&&et(t,r),e}();function it(e){return(it="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ot(e){return(ot=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function at(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function st(e,t){return(st=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ut=Object.freeze({OnLog:"onLog"}),ct=new(function(e){function t(){var e,n,r,i,o,a,s;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var u=arguments.length,c=new Array(u),l=0;l<u;l++)c[l]=arguments[l];return r=this,n=!(i=(e=ot(t)).call.apply(e,[this].concat(c)))||"object"!==it(i)&&"function"!=typeof i?at(r):i,o=at(n),s=ut,(a="EVENTS")in o?Object.defineProperty(o,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[a]=s,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&st(e,t)}(t,e),t}(rt)),lt=n(13),ft=n(6);function pt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var dt=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,r;return t=e,(n=[{key:"getByInstanceUID",value:function(e){throw new T.a("StudyMetadataSource::getByInstanceUID is not overriden. Please, override it in a specialized class. See OHIFStudyMetadataSource for example")}},{key:"loadStudy",value:function(e){throw new T.a("StudyMetadataSource::loadStudy is not overriden. Please, override it in a specialized class. See OHIFStudyMetadataSource for example")}}])&&pt(t.prototype,n),r&&pt(t,r),e}(),mt=n(25),yt=function(e){var t=e["00081115"],n=[];return t&&t.Value&&t.Value.forEach((function(e){var t=P.a.getString(e["0020000E"]),r=e["0008114A"],i=[];r.Value.forEach((function(e){i.push({referencedSOPClassUID:P.a.getString(e["00081150"]),referencedSOPInstanceUID:P.a.getString(e["00081155"])})})),n.push({referencedSeriesInstanceUID:t,referencedInstanceSequence:i})})),n};function ht(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function vt(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){ht(o,r,i,a,s,"next",e)}function s(e){ht(o,r,i,a,s,"throw",e)}a(void 0)}))}}function gt(e,t){return{series:[],seriesMap:Object.create(null),seriesLoader:null,wadoUriRoot:e.wadoUriRoot,wadoRoot:e.wadoRoot,qidoRoot:e.qidoRoot,PatientName:P.a.getName(t["00100010"]),PatientID:P.a.getString(t["00100020"]),PatientAge:P.a.getNumber(t["00101010"]),PatientSize:P.a.getNumber(t["00101020"]),PatientWeight:P.a.getNumber(t["00101030"]),AccessionNumber:P.a.getString(t["00080050"]),StudyTime:P.a.getString(t["00080030"]),StudyDate:P.a.getString(t["00080020"]),FrameOfReferenceUID:P.a.getString(t["00200052"]),ReferencedSeriesSequence:yt(t),modalities:P.a.getString(t["00080061"]),StudyDescription:P.a.getString(t["00081030"]),NumberOfStudyRelatedInstances:P.a.getString(t["00201208"]),StudyInstanceUID:P.a.getString(t["0020000D"]),InstitutionName:P.a.getString(t["00080080"])}}function bt(e,t,n,r){var i=[];i.push("requestType=WADO"),i.push("studyUID=".concat(t)),i.push("seriesUID=".concat(n)),i.push("objectUID=".concat(r)),i.push("contentType=application/dicom"),i.push("transferSyntax=*");var o=i.join("&");return"".concat(e.wadoUriRoot,"?").concat(o)}function It(e,t,n,r){return"".concat(e.wadoRoot,"/studies/").concat(t,"/series/").concat(n,"/instances/").concat(r)}function St(e,t,n,r,i){var o=It(e,t,n,r);return i=null!=i||1,"".concat(o,"/frames/").concat(i)}function wt(e,t,n){return Ot.apply(this,arguments)}function Ot(){return(Ot=vt(regeneratorRuntime.mark((function e(t,n,r){var i,o,a,s,u,c,l,f,p,d,m,y,h,v;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,lt.a.addInstance(r,{server:t});case 2:if(i=e.sent,o=i.StudyInstanceUID,a=i.SeriesInstanceUID,s=i.SOPInstanceUID,(u=n.seriesMap[a])?(void 0===u.SeriesDate&&(u.SeriesDate=i.SeriesDate),void 0===u.SeriesTime&&(u.SeriesTime=i.SeriesTime)):(u={SeriesInstanceUID:a,SeriesDescription:i.SeriesDescription,Modality:i.Modality,SeriesNumber:i.SeriesNumber,SeriesDate:i.SeriesDate,SeriesTime:i.SeriesTime,instances:[]},n.seriesMap[a]=u,n.series.push(u)),c=bt(t,o,a,s),l=It(t,o,a,s),f=St(t,o,a,s),p={metadata:i,baseWadoRsUri:l,wadouri:c,wadorsuri:f,wadoRoot:t.wadoRoot,imageRendering:t.imageRendering,thumbnailRendering:t.thumbnailRendering},u.instances.push(p),"wadors"===p.thumbnailRendering||"wadors"===p.imageRendering)if(d=Object.assign(r),m=p.metadata.NumberOfFrames)for(y=0;y<m;y++)h=Object(mt.a)(p,y),Ee.a.wadors.metaDataManager.add(h,d);else v=Object(mt.a)(p),Ee.a.wadors.metaDataManager.add(v,d);return e.abrupt("return",p);case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Pt(e,t,n){return Dt.apply(this,arguments)}function Dt(){return(Dt=vt(regeneratorRuntime.mark((function e(t,n,r){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(r.map((function(e){return wt(t,n,e)}))));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Tt=function(){var e=vt(regeneratorRuntime.mark((function e(t,n){var r,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(Array.isArray(n)&&n.length>0)){e.next=6;break}return r=n[0],i=gt(t,r),e.next=5,Pt(t,i,n);case 5:return e.abrupt("return",i);case 6:throw new Error("Failed to create study out of provided SOP instance list");case 7:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}();function Et(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function kt(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){Et(o,r,i,a,s,"next",e)}function s(e){Et(o,r,i,a,s,"throw",e)}a(void 0)}))}}function _t(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var xt=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.server=t,this.studyInstanceUID=n,this.filters=r}var t,n,r,i,o,a,s,u,c;return t=e,(n=[{key:"execLoad",value:(c=kt(regeneratorRuntime.mark((function e(){var t,n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.configLoad();case 2:return e.next=4,this.preLoad();case 4:return t=e.sent,e.next=7,this.load(t);case 7:return n=e.sent,e.next=10,this.posLoad(n);case 10:return r=e.sent,e.abrupt("return",r);case 12:case"end":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})},{key:"runLoaders",value:(u=kt(regeneratorRuntime.mark((function e(t){var n,r,i,o,a,s,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=!0,i=!1,o=void 0,e.prev=3,a=t[Symbol.iterator]();case 5:if(r=(s=a.next()).done){e.next=21;break}return u=s.value,e.prev=7,e.next=10,u();case 10:if(!(n=e.sent)||!n.length){e.next=13;break}return e.abrupt("break",21);case 13:e.next=18;break;case 15:throw e.prev=15,e.t0=e.catch(7),e.t0;case 18:r=!0,e.next=5;break;case 21:e.next=27;break;case 23:e.prev=23,e.t1=e.catch(3),i=!0,o=e.t1;case 27:e.prev=27,e.prev=28,r||null==a.return||a.return();case 30:if(e.prev=30,!i){e.next=33;break}throw o;case 33:return e.finish(30);case 34:return e.finish(27);case 35:if(!t.next().done||n){e.next=37;break}throw new Error("RetrieveMetadataLoader failed");case 37:return e.abrupt("return",n);case 38:case"end":return e.stop()}}),e,null,[[3,23,27,35],[7,15],[28,,30,34]])}))),function(e){return u.apply(this,arguments)})},{key:"configLoad",value:(s=kt(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(){return s.apply(this,arguments)})},{key:"preLoad",value:(a=kt(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(){return a.apply(this,arguments)})},{key:"load",value:(o=kt(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return o.apply(this,arguments)})},{key:"posLoad",value:(i=kt(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}}),e)}))),function(e){return i.apply(this,arguments)})}])&&_t(t.prototype,n),r&&_t(t,r),e}();function jt(e){return(jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Mt(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function Nt(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){Mt(o,r,i,a,s,"next",e)}function s(e){Mt(o,r,i,a,s,"throw",e)}a(void 0)}))}}function At(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ct(e,t){return!t||"object"!==jt(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Rt(e){return(Rt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ut(e,t){return(Ut=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Vt=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Ct(this,Rt(t).apply(this,arguments))}var n,r,i,o,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ut(e,t)}(t,e),n=t,(r=[{key:"getOptions",value:function(){var e={studyInstanceUID:this.studyInstanceUID},t=this.filters.seriesInstanceUID;return t&&(e.seriesInstanceUID=t),e}},{key:"getLoaders",value:regeneratorRuntime.mark((function e(){var t,n,r,i,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=[],n=this.studyInstanceUID,r=this.filters,i=(r=void 0===r?{}:r).seriesInstanceUID,o=this.client,i&&t.push(o.retrieveSeriesMetadata.bind(o,{studyInstanceUID:n,seriesInstanceUID:i})),t.push(o.retrieveStudyMetadata.bind(o,{studyInstanceUID:n})),e.delegateYield(t,"t0",7);case 7:case"end":return e.stop()}}),e,this)}))},{key:"configLoad",value:function(){var e=this.server,t=new X.a.DICOMwebClient({url:e.wadoRoot,headers:P.a.getAuthorizationHeader(e),errorInterceptor:ue.a.getHTTPErrorHandler(),requestHooks:[Object(fe.a)()]});this.client=t}},{key:"load",value:(a=Nt(regeneratorRuntime.mark((function e(t){var n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.getLoaders(),r=this.runLoaders(n),e.abrupt("return",r);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"posLoad",value:(o=Nt(regeneratorRuntime.mark((function e(t){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.server,e.abrupt("return",Tt(n,t));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})}])&&At(n.prototype,r),i&&At(n,i),t}(xt);function Lt(e){return(Lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ft(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function qt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ht(e,t){return!t||"object"!==Lt(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Gt(e,t,n){return(Gt="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=Bt(e)););return e}(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(n):i.value}})(e,t,n||e)}function Bt(e){return(Bt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Wt(e,t){return(Wt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var zt,Yt,Kt,Jt=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=Ht(this,Bt(t).call(this,e))).staticWado=e.staticWado,n}var n,r,i,o,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Wt(e,t)}(t,e),n=t,(r=[{key:"searchForStudies",value:(o=regeneratorRuntime.mark((function e(n){var r,i,o,a=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.staticWado){e.next=2;break}return e.abrupt("return",Gt(Bt(t.prototype),"searchForStudies",this).call(this,n));case 2:return e.next=4,Gt(Bt(t.prototype),"searchForStudies",this).call(this,n);case 4:if(r=e.sent,i=n.queryParams){e.next=8;break}return e.abrupt("return",r);case 8:return o=r.filter((function(e){for(var n=0,r=Object.keys(t.filterKeys);n<r.length;n++){var o=r[n];if(!a.filterItem(o,i,e))return!1}return!0})),e.abrupt("return",o);case 10:case"end":return e.stop()}}),e,this)})),a=function(){var e=this,t=arguments;return new Promise((function(n,r){var i=o.apply(e,t);function a(e){Ft(i,n,r,a,s,"next",e)}function s(e){Ft(i,n,r,a,s,"throw",e)}a(void 0)}))},function(e){return a.apply(this,arguments)})},{key:"compareValues",value:function(e,t){var n=this;if(Array.isArray(e))return e.find((function(e){return n.compareValues(e,t)}));if(Array.isArray(t))return t.find((function(t){return n.compareValues(e,t)}));if(t&&t.Alphabetic&&(t=t.Alphabetic),"string"==typeof t){if(0===t.length)return!0;if(0===e.length||"*"===e)return!0;if("*"===e[0]&&"*"===e[e.length-1])return console.log("Comparing ".concat(t," to ").concat(e.substring(1,e.length-1))),-1!=t.indexOf(e.substring(1,e.length-1));if("*"===e[e.length-1])return-1!=t.indexOf(e.substring(0,e.length-1));if("*"===e[0])return t.indexOf(e.substring(1))===t.length-e.length+1}return e===t}},{key:"compareDateRange",value:function(e,t){if(!t)return!0;var n=e.indexOf("-");if(-1===n)return this.compareValues(e,t);var r=e.substring(0,n),i=e.substring(n+1);return(!r||t>=r)&&(!i||t<=i)}},{key:"filterItem",value:function(e,n,r){var i=t.filterKeys[e]||e;if(!n)return!0;var o=n[e]||n[i];if(!o)return!0;var a=r[e]||r[i];if(!a)return!1;if("DA"==a.vr)return this.compareDateRange(o,a.Value[0]);var s=a.Value;return this.compareValues(o,s)&&!0}}])&&qt(n.prototype,r),i&&qt(n,i),t}(X.a.DICOMwebClient);Kt={StudyInstanceUID:"0020000D",PatientName:"00100010","00100020":"mrn",PatientID:"00100020",StudyDescription:"00081030",StudyDate:"00080020",ModalitiesInStudy:"00080061",AccessionNumber:"00080050"},(Yt="filterKeys")in(zt=Jt)?Object.defineProperty(zt,Yt,{value:Kt,enumerable:!0,configurable:!0,writable:!0}):zt[Yt]=Kt;var $t=n(21),Xt=Symbol("INFO");function Zt(e){var t=e[Xt];if(!t){var n=P.a.getString(e["00080060"],"").toUpperCase();t=Object.freeze({Modality:n,isLowPriority:le(n),SeriesInstanceUID:P.a.getString(e["0020000E"]),SeriesNumber:P.a.getNumber(e["00200011"],0)||0}),e[Xt]=t}return t}var Qt={default:function(e,t){return e.SeriesNumber-t.SeriesNumber},seriesInfoSortingCriteria:function(e,t){var n=Zt(e),r=Zt(t);return!n.isLowPriority&&r.isLowPriority?-1:n.isLowPriority&&!r.isLowPriority?1:n.SeriesNumber-r.SeriesNumber}},en={default:function(e,t){return e.InstanceNumber-t.InstanceNumber}},tn={seriesSortCriteria:Qt,instancesSortCriteria:en},nn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Qt.default;return e.sort(t)},rn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:en.default;return e.sort(t)};function on(e){return(on="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function an(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function sn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function un(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function cn(e,t){return!t||"object"!==on(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ln(e){return(ln=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function fn(e,t){return(fn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function pn(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function dn(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){pn(o,r,i,a,s,"next",e)}function s(e){pn(o,r,i,a,s,"throw",e)}a(void 0)}))}}var mn=$t.a.data.DicomMetaDictionary.naturalizeDataset;function yn(e,t,n){var r;t.seriesLoader=Object.freeze({hasNext:function(){return n.hasNext()},next:(r=dn(regeneratorRuntime.mark((function r(){var i;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,n.next();case 2:return i=r.sent,r.next=5,Pt(e,t,i.sopInstances);case 5:return r.abrupt("return",t.seriesMap[i.seriesInstanceUID]);case 6:case"end":return r.stop()}}),r)}))),function(){return r.apply(this,arguments)})})}function hn(e,t,n){return Object.freeze({hasNext:function(){return n.length>0},next:(r=dn(regeneratorRuntime.mark((function r(){var i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return i=n.shift(),r.next=3,e.retrieveSeriesMetadata({studyInstanceUID:t,seriesInstanceUID:i});case 3:return o=r.sent,r.abrupt("return",{studyInstanceUID:t,seriesInstanceUID:i,sopInstances:o});case 5:case"end":return r.stop()}}),r)}))),function(){return r.apply(this,arguments)})});var r}var vn=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),cn(this,ln(t).apply(this,arguments))}var n,r,i,o,a,s;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&fn(e,t)}(t,e),n=t,(r=[{key:"configLoad",value:function(){var e=this.server,t=new Jt(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?an(n,!0).forEach((function(t){sn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):an(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e,{url:e.qidoRoot,headers:P.a.getAuthorizationHeader(e),errorInterceptor:ue.a.getHTTPErrorHandler(),requestHooks:[Object(fe.b)()]}));this.client=t}},{key:"getPreLoaders",value:regeneratorRuntime.mark((function e(){var t,n,r,i,o,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=[],n=this.studyInstanceUID,r=this.filters,i=(r=void 0===r?{}:r).seriesInstanceUID,o=this.client,i&&(a={studyInstanceUID:n,queryParams:{SeriesInstanceUID:i}},t.push(o.searchForSeries.bind(o,a))),t.push(o.searchForSeries.bind(o,{studyInstanceUID:n})),e.delegateYield(t,"t0",7);case 7:case"end":return e.stop()}}),e,this)}))},{key:"preLoad",value:(s=dn(regeneratorRuntime.mark((function e(){var t,n,r,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.getPreLoaders(),e.next=3,this.runLoaders(t);case 3:return n=e.sent,r=nn(n,tn.seriesSortCriteria.seriesInfoSortingCriteria),i=r.map((function(e){return Zt(e).SeriesInstanceUID})),e.abrupt("return",{seriesInstanceUIDsMap:i,seriesData:n});case 7:case"end":return e.stop()}}),e,this)}))),function(){return s.apply(this,arguments)})},{key:"load",value:(a=dn(regeneratorRuntime.mark((function e(t){var n,r,i,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.client,r=this.studyInstanceUID,i=hn(n,r,t.seriesInstanceUIDsMap),e.next=4,i.next();case 4:return o=e.sent,e.abrupt("return",{sopInstances:o.sopInstances,asyncLoader:i,seriesData:t.seriesData});case 6:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"posLoad",value:(o=dn(regeneratorRuntime.mark((function e(t){var n,r,i,o,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.server,r=t.sopInstances,i=t.asyncLoader,o=t.seriesData,e.next=4,Tt(n,r);case 4:return a=e.sent,o.map(mn).forEach((function(e,t){var n={SeriesInstanceUID:e.SeriesInstanceUID,SeriesDescription:e.SeriesDescription,SeriesNumber:e.SeriesNumber,Modality:e.Modality,instances:[]};a.series[t]?a.series[t]=Object.assign(n,a.series[t]):a.series[t]=n,a.seriesMap[e.SeriesInstanceUID]=a.series[t]})),i.hasNext()&&yn(n,a,i),e.abrupt("return",a);case 9:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})}])&&un(n.prototype,r),i&&un(n,i),t}(xt);function gn(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function bn(){var e;return e=regeneratorRuntime.mark((function e(t,n){var r,i,o,a,s=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=s.length>2&&void 0!==s[2]?s[2]:{},i=0!=t.enableStudyLazyLoad?vn:Vt,o=new i(t,n,r),a=o.execLoad(),e.abrupt("return",a);case 5:case"end":return e.stop()}}),e)})),(bn=function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){gn(o,r,i,a,s,"next",e)}function s(e){gn(o,r,i,a,s,"throw",e)}a(void 0)}))}).apply(this,arguments)}var In=function(e,t){return bn.apply(this,arguments)};function Sn(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var wn="RetrieveStudyMetadata",On=new Map;function Pn(e,t,n){var r,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!e)throw new Error("".concat(wn,": Required 'server' parameter not provided."));if(!t)throw new Error("".concat(wn,": Required 'StudyInstanceUID' parameter not provided."));return On.has(t)?On.get(t):(r=n&&n.seriesInstanceUID&&i?function(e,t,n){var r=n.seriesInstanceUID.split(",");return new Promise((function(i,o){var a=[];r.forEach((function(r){var i=Object.assign({},n,{seriesInstanceUID:r});a.push(In(e,t,i))})),Promise.all(a).then((function(e){var t=e[0],n=[];e.forEach((function(e){n=[].concat(Sn(n),Sn(e.series))})),t.series=n,i(t)}),o)}))}(e,t,n):In(e,t,n),On.set(t,r),r)}function Dn(e){return(Dn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Tn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function En(e,t){return!t||"object"!==Dn(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function kn(e){return(kn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _n(e,t){return(_n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var xn=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),En(this,kn(t).apply(this,arguments))}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_n(e,t)}(t,e),n=t,i=[{key:"_updateStudyCollections",value:function(e){var t=e.getData();t.selected=!0,t.displaySets=e.getDisplaySets(),ft.a.add(e)}}],(r=[{key:"getByInstanceUID",value:function(e,t){return Pn(e,t)}},{key:"loadStudy",value:function(e){var n=this;if(!(e instanceof ve))throw new T.a("OHIFStudyMetadataSource::loadStudy study is not an instance of StudyMetadata");return new Promise((function(r,i){var o=e.getStudyInstanceUID();if(e instanceof ve)return OHIF.viewer.Studies.findBy({StudyInstanceUID:o})||t._updateStudyCollections(e),void r(e);n.getByInstanceUID(o).then((function(e){var n=new ve(e,e.StudyInstanceUID);n.createDisplaySets(),t._updateStudyCollections(n),r(n)})).catch(i)}))}}])&&Tn(n.prototype,r),i&&Tn(n,i),t}(dt),jn=n(23),Mn={OHIFStudyMetadataSource:xn,MetadataProvider:lt.a,CommandsManager:h,HotkeysManager:O,LogManager:ct,ImageSet:A,PubSub:rt,StudyPrefetcher:Ue,StudyLoadingListener:Qe,StackLoadingListener:Ze,DICOMFileLoadingListener:Je,StudyMetadata:ve,SeriesMetadata:J,InstanceMetadata:G,TypeSafeCollection:jn.a,OHIFError:T.a,StudyMetadataSource:dt};function Nn(e,t,n){var r={};return n.forEach((function(n){var i=P.a.getString(n["0020000E"]),o=r[i];o||(o={SeriesInstanceUID:i,SeriesNumber:P.a.getString(n["00200011"]),instances:[]},r[i]=o,o.push(o));var a=P.a.getString(n["00080018"]),s=e.wadoUriRoot+"?requestType=WADO&studyUID="+t+"&seriesUID="+i+"&objectUID="+a+"&contentType=application%2Fdicom";o.instances.push({SOPClassUID:P.a.getString(n["00080016"]),SOPInstanceUID:a,uri:s,InstanceNumber:P.a.getString(n["00200013"])})})),[]}function An(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Cn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Rn(e){if(!e)return"";var t=e.getFullYear().toString(),n=(e.getMonth()+1).toString(),r=e.getDate().toString();return t="0".repeat(4-t.length).concat(t),n="0".repeat(2-n.length).concat(n),r="0".repeat(2-r.length).concat(r),"".concat(t,n,r)}function Un(e){var t=[];if(e&&e.length)return e.forEach((function(e){return t.push({StudyInstanceUID:P.a.getString(e["0020000D"]),StudyDate:P.a.getString(e["00080020"]),StudyTime:P.a.getString(e["00080030"]),AccessionNumber:P.a.getString(e["00080050"]),referringPhysicianName:P.a.getString(e["00080090"]),PatientName:P.a.getName(e["00100010"]),PatientID:P.a.getString(e["00100020"]),PatientBirthdate:P.a.getString(e["00100030"]),patientSex:P.a.getString(e["00100040"]),studyId:P.a.getString(e["00200010"]),numberOfStudyRelatedSeries:P.a.getString(e["00201206"]),numberOfStudyRelatedInstances:P.a.getString(e["00201208"]),StudyDescription:P.a.getString(e["00081030"]),modalities:P.a.getString(P.a.getModalities(e["00080060"],e["00080061"]))})})),t}function Vn(e,t){var n=e.staticWado,r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?An(n,!0).forEach((function(t){Cn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):An(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e,{url:e.qidoRoot,headers:P.a.getAuthorizationHeader(e),errorInterceptor:ue.a.getHTTPErrorHandler(),requestHooks:[Object(fe.a)()]}),i=n?new Jt(r):new X.a.DICOMwebClient(r);e.qidoSupportsIncludeField=void 0===e.qidoSupportsIncludeField||e.qidoSupportsIncludeField;var o={queryParams:function(e,t){var n=["00081030","00080060"].join(","),r={PatientName:e.PatientName,PatientID:e.PatientID,AccessionNumber:e.AccessionNumber,StudyDescription:e.StudyDescription,ModalitiesInStudy:e.ModalitiesInStudy,limit:e.limit,offset:e.offset,fuzzymatching:e.fuzzymatching,includefield:t?n:"all"};if(e.studyDateFrom||e.studyDateTo){var i=Rn(new Date(e.studyDateFrom)),o=Rn(new Date(e.studyDateTo));r.StudyDate="".concat(i,"-").concat(o)}if(e.StudyInstanceUID){var a=e.StudyInstanceUID;a=(a=Array.isArray(a)?a.join():a).replace(/[^0-9.]+/g,"\\"),r.StudyInstanceUID=a}var s={};return Object.keys(r).forEach((function(e){void 0!==r[e]&&""!==r[e]&&(s[e]=r[e])})),s}(t,e.qidoSupportsIncludeField)};return i.searchForStudies(o).then(Un)}var Ln={RetrieveMetadata:In},Fn={Studies:Vn,Instances:function(e,t){var n={url:e.qidoRoot,headers:P.a.getAuthorizationHeader(e),errorInterceptor:ue.a.getHTTPErrorHandler()},r=new X.a.DICOMwebClient(n),i=(getQIDOQueryParams(filter,e.qidoSupportsIncludeField),{studyInstanceUID:t});return r.searchForInstances(i).then((function(n){return{wadoUriRoot:e.wadoUriRoot,StudyInstanceUID:t,series:Nn(e,t,n.data)}}))}};var qn=new Map;var Hn={services:{QIDO:Fn,WADO:Ln},loadingDict:{},retrieveStudyMetadata:Pn,deleteStudyMetadataPromise:function(e){On.has(e)&&On.delete(e)},retrieveStudiesMetadata:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=[];t.forEach((function(t){var o=Pn(e,t,n,r);i.push(o)}));var o=Promise.all(i);return o.catch((function(e){return s.a.warn(e)})),o},getStudyBoxData:!1,searchStudies:function(e,t){var n={qidoRoot:e.qidoRoot,filter:t},r=JSON.stringify(n);if(qn.has(r))return qn.get(r);var i=Vn(e,t);return qn.set(r,i),i},sortStudy:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Qt.default,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:en.default;if(!e||!e.series)throw new Error("Insufficient study data was provided to sortStudy");return nn(e.series,n),t&&e.series.forEach((function(e){rn(e.instances,r)})),e}},Gn=n(40),Bn=function(e,t){var n;return e.find((function(e){return!!e.images&&!!(n=e.images.find((function(e){return e.getSOPInstanceUID()===t})))})),n},Wn=Mn.LogManager,zn=function(e,t,n,r){return[e,t,n,r].join("_")},Yn=function(e,t){var n,r=$t.a.data.DicomMessage.readFile(e),i=$t.a.data.DicomMetaDictionary.naturalizeDataset(r.dict),o=$t.a.adapters.Cornerstone.MeasurementReport;try{n=o.generateToolState(i)}catch(e){var a=i.SeriesDescription||"";return void Wn.publish(Wn.EVENTS.OnLog,{title:"Failed to parse ".concat(a," measurement report"),type:"warning",message:e.message||"",notify:!0})}var s={},u=0;return Object.keys(n).forEach((function(e){var r=n[e];s[e]=[],r.forEach((function(n){var r=Bn(t,n.sopInstanceUid),i=r._study,o=r._series,a=i.StudyInstanceUID,c=i.PatientID,l=o.SeriesInstanceUID,f=n.sopInstanceUid,p=n.frameIndex,d=zn(a,l,f,p),m=r.getImageId();if(m){var y=Object.assign({},n,{imageId:m,imagePath:d,SOPInstanceUID:f,SeriesInstanceUID:l,StudyInstanceUID:a,PatientID:c,measurementNumber:++u,timepointId:"TimepointId",toolType:e,_id:m+u});s[e].push(y)}}))})),s},Kn={id:"ArrowAnnotate",name:"ArrowAnnotate",toolGroup:"allTools",cornerstoneToolType:"ArrowAnnotate",options:{measurementTable:{displayFunction:function(e){return e.text||""}},caseProgress:{include:!0,evaluate:!0}}},Jn={id:"Bidirectional",name:"Target",toolGroup:"allTools",cornerstoneToolType:"Bidirectional",options:{measurementTable:{displayFunction:function(e){return e.shortestDiameter?e.longestDiameter+" x "+e.shortestDiameter:e.longestDiameter}},caseProgress:{include:!0,evaluate:!0}}},$n={id:"EllipticalRoi",name:"Ellipse",toolGroup:"allTools",cornerstoneToolType:"EllipticalRoi",options:{measurementTable:{displayFunction:function(e){var t="",n=e.cachedStats;return n&&n.mean&&!isNaN(n.mean)&&(t=n.mean.toFixed(2)+" HU"),t}},caseProgress:{include:!0,evaluate:!0}}},Xn={id:"CircleRoi",name:"Circle",toolGroup:"allTools",cornerstoneToolType:"CircleRoi",options:{measurementTable:{displayFunction:function(e){var t="",n=e.cachedStats;return n&&n.mean&&!isNaN(n.mean)&&(t=n.mean.toFixed(2)+" HU"),t}},caseProgress:{include:!0,evaluate:!0}}},Zn={id:"FreehandMouse",name:"Freehand",toolGroup:"allTools",cornerstoneToolType:"FreehandMouse",options:{measurementTable:{displayFunction:function(e){var t="";return e.meanStdDev&&e.meanStdDev.mean&&!isNaN(e.meanStdDev.mean)&&(t=e.meanStdDev.mean.toFixed(2)+" HU"),t}},caseProgress:{include:!0,evaluate:!0}}},Qn={id:"Length",name:"Length",toolGroup:"allTools",cornerstoneToolType:"Length",options:{measurementTable:{displayFunction:function(e){var t="";return e.length&&!isNaN(e.length)&&(t=e.length.toFixed(2)+" mm"),t}},caseProgress:{include:!0,evaluate:!0}}},er={id:"NonTarget",name:"Non-Target",toolGroup:"allTools",cornerstoneToolType:"NonTarget",options:{measurementTable:{displayFunction:function(e){return e.response}},caseProgress:{include:!0,evaluate:!0}}},tr={id:"RectangleRoi",name:"Rectangle",toolGroup:"allTools",cornerstoneToolType:"RectangleRoi",options:{measurementTable:{displayFunction:function(e){var t="",n=e.cachedStats;return n&&n.mean&&!isNaN(n.mean)&&(t=n.mean.toFixed(2)+" HU"),t}},caseProgress:{include:!0,evaluate:!0}}},nr={id:"Angle",name:"Angle",toolGroup:"allTools",cornerstoneToolType:"Angle",options:{measurementTable:{displayFunction:function(e){var t="";return e.rAngle&&!isNaN(e.rAngle)&&(t=e.rAngle.toFixed(2)+String.fromCharCode(parseInt("00B0",16))),t}},caseProgress:{include:!0,evaluate:!0}}},rr={id:"TargetCR",name:"CR Target",toolGroup:"allTools",cornerstoneToolType:"TargetCR",options:{measurementTable:{displayFunction:function(e){return e.response}},caseProgress:{include:!0,evaluate:!0}}},ir={id:"TargetNE",name:"NE Target",toolGroup:"allTools",cornerstoneToolType:"TargetNE",options:{measurementTable:{displayFunction:function(e){return e.response}},caseProgress:{include:!0,evaluate:!0}}},or={id:"TargetUN",name:"UN Target",toolGroup:"allTools",cornerstoneToolType:"TargetUN",options:{measurementTable:{displayFunction:function(e){return e.response}},caseProgress:{include:!0,evaluate:!0}}},ar=[];Object.keys(r).forEach((function(e){return ar.push(r[e])}));var sr={measurementTools:[{id:"allTools",name:"Measurements",childTools:ar,options:{caseProgress:{include:!0,evaluate:!0}}}],newLesions:[{id:"newTargets",name:"New Targets",toolGroupId:"targets"},{id:"newNonTargets",name:"New Non-Targets",toolGroupId:"nonTargets"}],dataExchange:{retrieve:function(e,t){return s.a.error("retrieveMeasurements"),Promise.resolve()},store:function(e,t){return s.a.error("storeMeasurements"),Promise.resolve()}}};function ur(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function cr(e,t,n){return t&&ur(e.prototype,t),n&&ur(e,n),e}function lr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var pr=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?lr(n,!0).forEach((function(t){fr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lr(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},{dataExchange:{retrieve:function(e){return s.a.error("retrieveTimepoints"),Promise.resolve()},store:function(e){return s.a.error("storeTimepoints"),Promise.resolve()},remove:function(e){return s.a.error("removeTimepoint"),Promise.resolve()},update:function(e,t){return s.a.error("updateTimepoint"),Promise.resolve()},disassociate:function(e,t){return s.a.error("disassociateStudy"),Promise.resolve()}}}),dr={prebaseline:"Pre-Baseline",baseline:"Baseline",followup:"Follow-up"},mr=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),e.Instance)return e.Instance.initialize(t,n),e.Instance;this.initialize(t,n),e.Instance=this}return cr(e,null,[{key:"setConfiguration",value:function(e){Object.assign(pr,e)}},{key:"getConfiguration",value:function(){return pr}}]),cr(e,[{key:"initialize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.currentTimepointId=e,this.comparisonTimepointKey=t.comparisonTimepointKey||"baseline",this.options=t,this.timepoints=[]}},{key:"onTimepointsUpdated",value:function(){"function"==typeof this.options.onTimepointsUpdated?this.options.onTimepointsUpdated(Object.assign([],this.timepoints)):s.a.warn("Timepoints update callback is not defined")}},{key:"calculateVisitNumber",value:function(e){var t=this.timepoints.sort((function(e,t){return e.visitDate>t.visitDate?1:-1})).find((function(t){return t.PatientID===e.PatientID&&t.timepointType===e.timepointType})).map((function(e){return e.timepointId})).indexOf(e.timepointId)+1;if(!t)throw new Error("Current timepoint was not in the list of relevant timepoints?");return t}},{key:"retrieveTimepoints",value:function(e){var t=this,n=pr.dataExchange.retrieve;if("function"==typeof n)return new Promise((function(r,i){n(e).then((function(e){s.a.info("Timepoint data retrieval"),e.forEach((function(e){var n=t.timepoints.findIndex((function(t){return t.timepointId===e.timepointId}));n<0?t.timepoints.push(e):t.timepoints[n]=e})),t.onTimepointsUpdated(),r()})).catch((function(e){s.a.error("Timepoint retrieval function failed: ".concat(e)),i(e)}))}));s.a.error("Timepoint retrieval function has not been configured.")}},{key:"storeTimepoints",value:function(){var e=pr.dataExchange.store;"function"==typeof e?(s.a.info("Preparing to store timepoints"),s.a.info(JSON.stringify(this.timepoints,null,2)),e(this.timepoints).then((function(){return s.a.info("Timepoint storage completed")}))):s.a.error("Timepoint store function has not been configured.")}},{key:"disassociateStudy",value:function(e,t){var n=this,r=pr.dataExchange.disassociate;"function"==typeof r?r(e,t).then((function(){s.a.info("Disassociation completed"),n.timepoints=[],n.retrieveTimepoints({})})):s.a.error("Study disassociate function has not been configured.")}},{key:"removeTimepoint",value:function(e){var t=this,n=pr.dataExchange.remove;if("function"==typeof n){var r={timepointId:e};s.a.info("Preparing to remove timepoint"),s.a.info(JSON.stringify(r,null,2)),n(r).then((function(){s.a.info("Timepoint removal completed");var n=t.timepoints.findIndex((function(t){return t.timepointId===e}));n>-1&&t.timepoints.splice(n,1),t.onTimepointsUpdated()}))}else s.a.error("Timepoint remove function has not been configured.")}},{key:"updateTimepoint",value:function(e,t){var n=this,r=pr.dataExchange.update;if("function"==typeof r){var i={timepointId:e};s.a.info("Preparing to update timepoint"),s.a.info(JSON.stringify(i,null,2)),s.a.info(JSON.stringify(t,null,2)),r(i,t).then((function(){s.a.info("Timepoint updated completed");var r=n.timepoints.findIndex((function(t){return t.timepointId===e}));r>-1&&(n.timepoints[r]=Object.assign({},n.timepoints[r],t)),n.onTimepointsUpdated()}))}else s.a.error("Timepoint update function has not been configured.")}},{key:"all",value:function(e){return(e?this.timepoints.filter(e):this.timepoints).sort((function(e,t){return e.visitDate<t.visitDate?1:-1}))}},{key:"current",value:function(){var e=this;return this.timepoints.find((function(t){return t.timepointId===e.currentTimepointId}))}},{key:"lock",value:function(){var e=this,t=this.timepoints.findIndex((function(t){return t.timepointId===e.currentTimepointId}));t<0||(this.timepoints[t]=Object.assign({},this.timepoints[t],{locked:!0}))}},{key:"prior",value:function(){var e=this.current();if(e)return this.all().find((function(t){return t.visitDate<e.visitDate}))}},{key:"currentAndPrior",value:function(){var e=[],t=this.current();t&&e.push(t);var n=this.prior();return t&&n&&n.timepointId!==t.timepointId&&e.push(n),e}},{key:"currentAndComparison",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.comparisonTimepointKey,t=this.current(),n=this.comparison(e),r=[t];return n&&!r.find((function(e){return e.timepointId===n.timepointId}))&&r.push(n),r}},{key:"isRebaseline",value:function(e){var t=e?this.timepoints.find((function(t){return t.timepointId===e})):this.current();return!!t&&this.timepoints.filter((function(e){return"baseline"===e.timepointType&&e.visitDate<=t.visitDate})).length>1}},{key:"nextBaselineAfterCurrent",value:function(){var e=this.current();return this.timepoints.sort((function(e,t){return e.visitDate>t.visitDate?1:-1})).find((function(t){return t.visitDate>e.visitDate&&"baseline"===t.timepointType}))}},{key:"setCurrentTimepointId",value:function(e){this.currentTimepointId=e}},{key:"setUserComparison",value:function(e){this.userComparison=e}},{key:"comparison",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.comparisonTimepointKey;if(this.userComparison)return this.userComparison;var t=this.current();if(t){if("prebaseline"===t.timepointType){var n=this.nextBaselineAfterCurrent();if(n)return n}if("baseline"===t.timepointType){var r=this.prior();if(r)return r}var i=this[e]();if(!i||i.timepointId!==t.timepointId)return i}}},{key:"latestInitialTimepointAfterCurrent",value:function(){var e=this.current();if("followup"!==e.timepointType){var t=this.timepoints.sort((function(e,t){return e.visitDate>t.visitDate?1:-1})).filter((function(t){return t.visitDate>e.visitDate})),n=t.findIndex((function(e){return"followup"===e.timepointType}))-1;return n<0?t[t.length-1]:t[n]}}},{key:"initialTimepointIds",value:function(){var e=this.current();"prebaseline"!==e.timepointType&&"baseline"!==e.timepointType||(e=this.latestInitialTimepointAfterCurrent()||e);var t=e.visitDate,n=(this.timepoints.filter((function(e){return"prebaseline"===e.timepointType&&e.visitDate<=t}))||[]).map((function(e){return e.timepointId})),r=(this.timepoints.filter((function(e){return"baseline"===e.timepointType&&e.visitDate<=t}))||[]).map((function(e){return e.timepointId}));return n.concat(r)}},{key:"baseline",value:function(){var e=this.current().visitDate;return this.all().find((function(t){return"baseline"===t.timepointType&&t.visitDate<=e}))}},{key:"nadir",value:function(){var e=this.current(),t=this.all().find((function(t){return t.timepointId!==e.timepointId&&"nadir"===t.timepointKey&&t.visitDate<=e.visitDate}));return t||this.baseline()}},{key:"key",value:function(){var e=[this.current()],t=this.prior(),n=this.nadir(),r=this.baseline(),i=function(t){return!!e.find((function(e){return e.timepointId===t.timepointId}))};return t&&!1===i(t)&&e.push(t),n&&!1===i(n)&&e.push(n),r&&!1===i(r)&&e.push(r),e}},{key:"study",value:function(e){return this.all().filter((function(t){return t.studyInstanceUIDs.includes(e)}))}},{key:"name",value:function(e){var t=dr[e.timepointType];if("baseline"===e.timepointType)return"Baseline";if(e.visitNumber)return"".concat(t," ").concat(e.visitNumber);var n=this.calculateVisitNumber(e);return"".concat(t," ").concat(n)}},{key:"title",value:function(e){for(var t=this.name(e),n=this.all(),r=-1,i=null,o=0;o<n.length;o++){var a=n[o];if(this.currentTimepointId===a.timepointId&&(i=0),null!==i&&(r=i++),a.timepointId===e.timepointId)break}var s={0:["Current"],1:["Prior"]}[r]||[],u=this.nadir();u&&u.timepointId===e.timepointId&&s.push("Nadir");var c="";return s.length&&(c="(".concat(s.join(", "),")")),"".concat(t," ").concat(c)}}]),e}();fr(mr,"Instance",void 0);var yr=n(92),hr=n.n(yr),vr=function(e){if(e)switch(e.toolType){case"Bidirectional":case"TargetCR":case"TargetNE":case"TargetUN":return"Target ".concat(e.lesionNamingNumber);case"NonTarget":return"Non-Target ".concat(e.lesionNamingNumber)}},gr=function(e){return e.description};function br(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var Ir=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.split("_"),r=br(n,4),i=r[0],o=r[1],a=r[2],s=r[3],u=ft.a.get(i),c=u.getSeriesByUID(o),l=c.getInstanceByUID(a);return l.getImageId(s,t)};function Sr(e){return(Sr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function wr(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function Or(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Pr(e,t,n){return t&&Or(e.prototype,t),n&&Or(e,n),e}function Dr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Tr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Er=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Dr(n,!0).forEach((function(t){Tr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dr(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},sr),kr=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),e.Instance)return e.Instance.initialize(t,n),e.Instance;this.initialize(t,n),e.Instance=this}return Pr(e,null,[{key:"setConfiguration",value:function(e){Object.assign(Er,e)}},{key:"getConfiguration",value:function(){return Er}},{key:"getToolsGroupsMap",value:function(){var e={};return Er.measurementTools.forEach((function(t){t.childTools.forEach((function(n){return e[n.id]=t.id}))})),e}},{key:"getToolGroupTools",value:function(e){var t={};return Object.keys(e).forEach((function(n){var r=e[n];t[r]||(t[r]=[]),t[r].push(n)})),t}},{key:"getToolConfiguration",value:function(t){var n,r=e.getConfiguration(),i=e.getToolsGroupsMap()[t],o=r.measurementTools.find((function(e){return e.id===i}));return o&&(n=o.childTools.find((function(e){return e.id===t}))),{toolGroupId:i,toolGroup:o,tool:n}}},{key:"syncMeasurementAndToolData",value:function(t){s.a.info("syncMeasurementAndToolData");var n=vr(t);n&&(t.labels=[n]);var r=hr.a.globalImageIdSpecificToolStateManager.saveToolState(),i=t.StudyInstanceUID;if(ft.a.get(i)){var o=t.toolType,a=e.getToolConfiguration(o).tool;if(Array.isArray(a.childTools))a.childTools.forEach((function(n){var r=t[n];r&&(r._id=t._id,r.measurementNumber=t.measurementNumber,r.lesionNamingNumber=t.lesionNamingNumber,e.syncMeasurementAndToolData(r))}));else{var u=Ir(t.imagePath);r[u]||(r[u]={});var c=r[u][o],l=c&&c.data;if(l&&l.length){var f=r[u][o].data,p=!1;if(f.forEach((function(e){if(e._id===t._id)return p=!0,Object.assign(e,t),!1})),!0===p)return}else r[u][o]={data:[]};r[u][o].data.push(t),hr.a.globalImageIdSpecificToolStateManager.restoreToolState(r)}}}},{key:"isToolIncluded",value:function(e){return e.options&&e.options.caseProgress&&e.options.caseProgress.include}}]),Pr(e,[{key:"initialize",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.timepointApi=t,this.options=r,this.toolGroups={},this.tools={},this.toolsGroupsMap=e.getToolsGroupsMap(),this.toolGroupTools=e.getToolGroupTools(this.toolsGroupsMap),Er.measurementTools.forEach((function(e){n.toolGroups[e.id]=[],e.childTools.forEach((function(e){n.tools[e.id]=[]}))}))}},{key:"onMeasurementsUpdated",value:function(){"function"==typeof this.options.onMeasurementsUpdated?this.options.onMeasurementsUpdated(Object.assign({},this.tools)):s.a.warn("Measurements update callback is not defined")}},{key:"retrieveMeasurements",value:function(e,t){var n=this,r=Er.dataExchange.retrieve,i=Er.server;if("function"==typeof r)return new Promise((function(e,t){r(i).then((function(t){t&&(s.a.info("Measurement data retrieval"),s.a.info(t),Object.keys(t).forEach((function(e){t[e].forEach((function(e){var t=e.toolType;n.addMeasurement(t,e)}))}))),e(),n.syncMeasurementsAndToolData(),De.a.getEnabledElements().forEach((function(e){e.image&&De.a.updateImage(e.element)})),n.onMeasurementsUpdated()}),t)}));s.a.error("Measurement retrieval function has not been configured.")}},{key:"storeMeasurements",value:function(t){var n=this,r=Er.server,i=Er.dataExchange.store;if("function"==typeof i){var o={};Er.measurementTools.forEach((function(t){e.isToolIncluded(t)&&t.childTools.forEach((function(r){e.isToolIncluded(r)&&(o[t.id]||(o[t.id]=[]),o[t.id]=o[t.id].concat(n.tools[r.id]))}))}));var a=t?function(e){return e.timepointId===t}:null,u=this.timepointApi.all(a),c=u.map((function(e){return e.timepointId})),l={PatientID:u[0].PatientID,timepointIds:c};return s.a.info("Saving Measurements for timepoints:",u),i(o,l,r).then((function(e){return s.a.info("Measurement storage completed"),e}))}s.a.error("Measurement store function has not been configured.")}},{key:"calculateLesionNamingNumber",value:function(e){var t,n=e.sort((function(e,t){return e.lesionNamingNumber>t.lesionNamingNumber?1:e.lesionNamingNumber<t.lesionNamingNumber?-1:0}));for(t=1;t<n.length+1&&!(t<n[t-1].lesionNamingNumber);t++);return t}},{key:"fetch",value:function(e,t){var n=this;if(!this.toolGroups[e])throw new Error("MeasurementApi: No Collection with the id: ".concat(e));return(t?this.toolGroups[e].filter(t):this.toolGroups[e]).map((function(e){return e.toolId?n.tools[e.toolId].find((function(t){return t._id===e.toolItemId})):{lesionNamingNumber:e.lesionNamingNumber}}))}},{key:"getFirstMeasurement",value:function(t){var n=this,r=[];Er.measurementTools.forEach((function(t){if(!e.isToolIncluded(t))return!1;r=r.concat(t.childTools)}));var i=r.filter((function(t){return e.isToolIncluded(t)})),o=void 0;return i.every((function(e){return!(o=n.tools[e.id].find((function(e){return e.timepointId===t&&1===e.measurementNumber})))})),o}},{key:"lesionExistsAtTimepoints",value:function(e,t,n){return!!this.fetch(t,(function(e){return n.includes(e.timepointId)})).find((function(t){return t.lesionNamingNumber===e}))}},{key:"isNewLesionsMeasurement",value:function(t){if(t){var n=e.getToolConfiguration(t.toolType),r=n.tool.parentTool||t.toolType,i=this.timepointApi,o=this.tools[r].find((function(e){return e._id===t._id}))||{},a=o.timepointId||t.timepointId,s=o.lesionNamingNumber||t.lesionNamingNumber;if(i&&a&&n){var u=n.toolGroupId,c=i.timepoints.find((function(e){return e.timepointId===a})),l=i.initialTimepointIds();return!(!l||l.length<1||l.some((function(e){return e===c.timepointId})))&&!1===this.lesionExistsAtTimepoints(s,u,l)}}}},{key:"calculateLesionMaxMeasurementNumber",value:function(e,t){for(var n=this,r=(e?this.toolGroups[e]||[]:Object.keys(this.toolGroups).reduce((function(e,t){return e.push.apply(e,wr(n.toolGroups[t])),e}),[])).filter(t).sort((function(e,t){return e.measurementNumber<t.measurementNumber?1:-1})),i=function(e){var t=r[e],i=n.tools[t.toolId].find((function(e){return e._id===t.toolItemId}));if(!n.isNewLesionsMeasurement(i))return{v:i.measurementNumber}},o=0;o<r.length;o++){var a=i(o);if("object"===Sr(a))return a.v}return 0}},{key:"calculateNewLesionMaxMeasurementNumber",value:function(e,t){for(var n=this,r=this.toolGroups[e].filter(t).sort((function(e,t){return e.measurementNumber<t.measurementNumber?1:-1})),i=function(e){var t=r[e],i=n.tools[t.toolId].find((function(e){return e._id===t.toolItemId}));if(n.isNewLesionsMeasurement(i))return{v:i.measurementNumber}},o=0;o<r.length;o++){var a=i(o);if("object"===Sr(a))return a.v}return 0}},{key:"calculateMeasurementNumber",value:function(e){var t=this.toolsGroupsMap[e.toolType],n=function(t){return t._id!==e._id};if(!this.isNewLesionsMeasurement(e)){var r=this.calculateLesionMaxMeasurementNumber("targets",n);if("targets"===t)return r;if("nonTargets"===t){var i=this.calculateLesionMaxMeasurementNumber("nonTargets",n);return Math.max(r,i)}return this.calculateLesionMaxMeasurementNumber(null,n)}var o=this.calculateLesionMaxMeasurementNumber("targets",n),a=this.calculateLesionMaxMeasurementNumber("nonTargets",n),s=this.calculateNewLesionMaxMeasurementNumber("targets",n);if("targets"===t)return Math.max(o,a,s);if("nonTargets"===t){var u=this.calculateNewLesionMaxMeasurementNumber("nonTargets",n);return Math.max(o,a,s,u)}return 0}},{key:"getPreviousMeasurement",value:function(e){if(e){var t=e.timepointId,n=e.toolType,r=e.lesionNamingNumber;if(t&&n&&r){var i,o=this.toolsGroupsMap[e.toolType],a=e.additionalData&&e.additionalData.TrialPatientLocationUID;i=a?function(t){return t._id!==e._id&&t.additionalData&&t.additionalData.TrialPatientLocationUID===a}:function(t){return t._id!==e._id&&t.lesionNamingNumber===r};for(var s=this.toolGroupTools[o],u=0;u<s.length;u++){var c=s[u],l=this.tools[c].find(i);if(l)return l}}}}},{key:"hasDuplicateMeasurementNumber",value:function(e){var t=this;if(e){var n=e.toolType,r=e.measurementNumber;if(n&&r){var i=function(t){return t._id!==e._id&&t.measurementNumber===e.measurementNumber};return Er.measurementTools.filter((function(e){return"temp"!==e.id})).some((function(e){return!!t.toolGroups[e.id].find(i)||e.childTools.some((function(e){if(t.tools[e.id].find(i))return!0}))}))}}}},{key:"updateNumbering",value:function(e,t,n,r){e.filter(t).forEach((function(e){e[n]+=r}))}},{key:"updateMeasurementNumberForAllMeasurements",value:function(e,t){var n=this,r=function(t){return t._id!==e._id&&t.measurementNumber>=e.measurementNumber};Er.measurementTools.filter((function(e){return"temp"!==e.id})).forEach((function(e){n.updateNumbering(n.toolGroups[e.id],r,"measurementNumber",t),e.childTools.forEach((function(e){n.updateNumbering(n.tools[e.id],r,"measurementNumber",t)}))}))}},{key:"addMeasurement",value:function(e,t){var n,r=this.toolsGroupsMap[e],i=this.toolGroups[r],o=this.tools[e],a=o.find((function(e){return e.lesionNamingNumber===t.lesionNamingNumber&&e.toolType===t.toolType}));if(a&&a.location&&(t.location=a.location),a&&a.description&&(t.description=a.description),t._id=Object(D.a)(),t.StudyInstanceUID)n=this.timepointApi.study(t.StudyInstanceUID)[0];else{var s=t.timepointId;n=this.timepointApi.timepoints.find((function(e){return e.timepointId===s}))}if(n){var u=i.find((function(e){return!e.toolId&&e.timepointId===n.timepointId}));if(t.timepointId=n.timepointId,u)t.lesionNamingNumber=u.lesionNamingNumber,t.measurementNumber=u.measurementNumber,i.filter((function(e){return e.timepointId===n.timepointId&&e.lesionNamingNumber===t.lesionNamingNumber})).forEach((function(e){e.toolId=tool.id,e.toolItemId=t._id,e.createdAt=t.createdAt,e.measurementNumber=t.measurementNumber}));else{var c=i.filter((function(e){return e.timepointId===n.timepointId}));t.lesionNamingNumber=this.calculateLesionNamingNumber(c),t.measurementNumber=t.measurementNumber||this.calculateMeasurementNumber(t)+1}var l,f={timepointId:n.timepointId,lesionNamingNumber:t.lesionNamingNumber,measurementNumber:t.measurementNumber},p=this.getPreviousMeasurement(t);if(p){t.lesionNamingNumber=p.lesionNamingNumber,t.measurementNumber=p.measurementNumber,f.lesionNamingNumber=p.lesionNamingNumber,f.measurementNumber=p.measurementNumber,f.additionalData=t.additionalData||{},f.additionalData.TrialPatientLocationUID=p.additionalData&&p.additionalData.TrialPatientLocationUID,f.location=p.location,f.label=p.label,f.description=p.description,f.isSplitLesion=p.isSplitLesion,f.isNodal=p.isNodal;var d=gr(p);d&&(f.description=d)}else this.hasDuplicateMeasurementNumber(t)&&this.updateMeasurementNumberForAllMeasurements(t,1);var m=o.findIndex((function(e){return e._id===t._id}));return m>-1?(l=Object.assign({},o[m],f),o[m]=l):(l=Object.assign({},t,f),o.push(l)),u||i.push({toolId:e,toolItemId:l._id,timepointId:n.timepointId,StudyInstanceUID:l.StudyInstanceUID,createdAt:l.createdAt,lesionNamingNumber:l.lesionNamingNumber,measurementNumber:l.measurementNumber}),this.onMeasurementsUpdated(),l}}},{key:"updateMeasurement",value:function(e,t){var n=this.tools[e],r=n.findIndex((function(e){return e._id===t._id}));r<0||(n[r]=Object.assign({},t),this.onMeasurementsUpdated())}},{key:"onMeasurementRemoved",value:function(e,t){var n=this,r=t.lesionNamingNumber,i=t.measurementNumber,o=this.toolsGroupsMap[e],a=this.toolGroups[o],s=a.findIndex((function(e){return e.toolItemId===t._id}));if(!(s<0)){if(a.splice(s,1),a.filter((function(e){return e.measurementNumber===i})).map((function(e){return e.timepointId})).length<1){var u=function(e){return e.lesionNamingNumber>=r};this.updateNumbering(a,u,"lesionNamingNumber",-1);var c=Er.measurementTools.find((function(e){return e.id===o}));c&&c.childTools&&c.childTools.forEach((function(e){var t=n.tools[e.id];n.updateNumbering(t,u,"lesionNamingNumber",-1)})),this.updateMeasurementNumberForAllMeasurements(t,-1)}this.syncMeasurementsAndToolData(),this.onMeasurementsUpdated()}}},{key:"syncMeasurementsAndToolData",value:function(){var t=this;Er.measurementTools.forEach((function(n){e.isToolIncluded(n)&&n.childTools.forEach((function(n){e.isToolIncluded(n)&&t.tools[n.id].forEach((function(t){e.syncMeasurementAndToolData(t)}))}))}))}},{key:"deleteMeasurements",value:function(t,n,r){var i=this,o=Object.keys(r),a=this.toolGroups[n];if(a){var s=a.filter((function(e){return o.every((function(t){return e[t]===r[t]}))})),u=[];if(s.forEach((function(e){if(e.toolId){var t=i.tools[e.toolId],n=t.findIndex((function(t){return t._id===e.toolItemId}));n>-1&&(u.push(t[n]),t.splice(n,1))}})),u.length){var c=r.lesionNamingNumber||u[0].lesionNamingNumber,l=hr.a.globalImageIdSpecificToolStateManager.saveToolState();u.forEach((function(n){var r=[],o=e.getToolConfiguration(n.toolType).tool;Array.isArray(o.childTools)?o.childTools.forEach((function(e){var t=n[e];t&&r.push(t)})):r.push(n),r.forEach((function(e){var t=e.imagePath,r=e.toolType,i=Ir(t);if(i&&l[i]){var o=l[i][r],a=o&&o.data,s=a.find((function(e){return e._id===n._id}));if(s){var u=a.indexOf(s);a.splice(u,1)}}})),i.onMeasurementRemoved(t,n)})),hr.a.globalImageIdSpecificToolStateManager.restoreToolState(l);var f=Object.assign({},r);delete f.timepointId,delete f.lesionNamingNumber;var p=Object.keys(f);wr(new Set(u.map((function(e){return e.toolType})))).forEach((function(t){i.tools[t].filter((function(e){return e.lesionNamingNumber>c-1&&p.every((function(t){return e[t]===r[t]}))})).forEach((function(t){e.syncMeasurementAndToolData(t)}))}))}}}}]),e}();function _r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}Tr(kr,"Instance",void 0);var xr=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=t,this.criterionName=n}var t,n,r;return t=e,(n=[{key:"generateResponse",value:function(e,t){return{passed:!e,isGlobal:!t||!t.length,message:e,measurements:t,criterionName:this.criterionName}}},{key:"getNewTargetNumbers",value:function(e){var t=this.options,n=[],r=new Set;return t.newTarget&&(e.targets.forEach((function(e){var t=e.measurement.measurementNumber;"baseline"===e.timepoint.timepointType&&n.push(t)})),e.targets.forEach((function(e){var t=e.measurement.measurementNumber;"followup"===e.timepoint.timepointType&&(n.includes(t)||r.add(t))}))),r}}])&&_r(t.prototype,n),r&&_r(t,r),e}();function jr(e){return(jr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Mr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Nr(e,t){return!t||"object"!==jr(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Ar(e){return(Ar=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Cr(e,t){return(Cr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Rr={type:"object"},Ur=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return Nr(this,(e=Ar(t)).call.apply(e,[this].concat(r)))}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Cr(e,t)}(t,e),n=t,(r=[{key:"evaluate",value:function(e){var t,n=e.targets.concat(e.nonTargets),r=[];return n.forEach((function(e){var t=e.measurement;t.location||r.push(t)})),r.length&&(t="All measurements should have a location"),this.generateResponse(t,r)}}])&&Mr(n.prototype,r),i&&Mr(n,i),t}(xr);function Vr(e){return(Vr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Lr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Fr(e,t){return!t||"object"!==Vr(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function qr(e){return(qr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Hr(e,t){return(Hr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Gr={type:"object",properties:{limit:{label:"Max targets allowed per organ",type:"integer",minimum:1},newTarget:{label:"Flag to evaluate only new targets",type:"boolean"},isNodal:{label:"Filter to evaluate only nodal or extranodal measurements",type:"boolean"},message:{label:"Message to be displayed in case of nonconformity",type:"string"}},required:["limit"]},Br=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return Fr(this,(e=qr(t)).call.apply(e,[this].concat(r)))}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Hr(e,t)}(t,e),n=t,(r=[{key:"evaluate",value:function(e){var t,n=this.options,r={},i=[],o=this.getNewTargetNumbers(e);if(e.targets.forEach((function(e){var t=e.measurement,a=t.location,s=t.measurementNumber,u=t.isSplitLesion,c=t.isNodal;u||"boolean"==typeof c&&"boolean"==typeof n.isNodal&&n.isNodal!==c||(r[a]||(r[a]=new Set),n.newTarget&&!o.has(s)||r[a].add(s),r[a].size>n.limit&&i.push(t))})),i.length){var a=n.newTarget?"new ":"";t=n.message||"Each organ should not have more than ".concat(n.limit," ").concat(a,"targets.")}return this.generateResponse(t,i)}}])&&Lr(n.prototype,r),i&&Lr(n,i),t}(xr);function Wr(e){return(Wr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function zr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Yr(e,t){return!t||"object"!==Wr(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Kr(e){return(Kr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Jr(e,t){return(Jr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var $r={type:"object",properties:{limit:{label:"Max targets allowed in study",type:"integer",minimum:0},newTarget:{label:"Flag to evaluate only new targets",type:"boolean"},locationIn:{label:"Filter to evaluate only measurements with the specified locations",type:"array",items:{type:"string"},minItems:1,uniqueItems:!0},locationNotIn:{label:"Filter to evaluate only measurements without the specified locations",type:"array",items:{type:"string"},minItems:1,uniqueItems:!0},isNodal:{label:"Filter to evaluate only nodal or extranodal measurements",type:"boolean"},message:{label:"Message to be displayed in case of nonconformity",type:"string"}},required:["limit"]},Xr=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return Yr(this,(e=Kr(t)).call.apply(e,[this].concat(r)))}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Jr(e,t)}(t,e),n=t,(r=[{key:"evaluate",value:function(e){var t=this.options,n=this.getNewTargetNumbers(e),r=[];e.targets.forEach((function(e){var i=e.measurement,o=i.location,a=i.measurementNumber,s=i.isSplitLesion,u=i.isNodal;s||"boolean"==typeof u&&"boolean"==typeof t.isNodal&&t.isNodal!==u||t.newTarget&&!n.has(a)||t.locationIn&&-1===t.locationIn.indexOf(o)||t.locationNotIn&&t.locationNotIn.indexOf(o)>-1||r.push(a)}));var i,o="";if("boolean"==typeof t.isNodal&&(o=t.isNodal?"nodal ":"extranodal "),r.length>t.limit){var a=t.newTarget?"new ":"",s=1===t.limit?"":"s",u=0===t.limit?"":"more than ".concat(t.limit);i=t.message||"The study should not have ".concat(u," ").concat(a).concat(o,"target").concat(s,".")}return this.generateResponse(i)}}])&&zr(n.prototype,r),i&&zr(n,i),t}(xr);function Zr(e){return(Zr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Qr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ei(e,t){return!t||"object"!==Zr(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ti(e){return(ti=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ni(e,t){return(ni=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ri={type:"object",properties:{longAxis:{label:"Minimum length of long axis",type:"number",minimum:0},shortAxis:{label:"Minimum length of short axis",type:"number",minimum:0},longAxisSliceThicknessMultiplier:{label:"Length of long axis multiplier",type:"number",minimum:0},shortAxisSliceThicknessMultiplier:{label:"Length of short axis multiplier",type:"number",minimum:0},modalityIn:{label:"Filter to evaluate only measurements with the specified modalities",type:"array",items:{type:"string"},minItems:1,uniqueItems:!0},modalityNotIn:{label:"Filter to evaluate only measurements without the specified modalities",type:"array",items:{type:"string"},minItems:1,uniqueItems:!0},locationIn:{label:"Filter to evaluate only measurements with the specified locations",type:"array",items:{type:"string"},minItems:1,uniqueItems:!0},locationNotIn:{label:"Filter to evaluate only measurements without the specified locations",type:"array",items:{type:"string"},minItems:1,uniqueItems:!0},isNodal:{label:"Filter to evaluate only nodal or extranodal measurements",type:"boolean"},message:{label:"Message to be displayed in case of nonconformity",type:"string"}},anyOf:[{required:["message","longAxis"]},{required:["message","shortAxis"]},{required:["message","longAxisSliceThicknessMultiplier"]},{required:["message","shortAxisSliceThicknessMultiplier"]}]},ii=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return ei(this,(e=ti(t)).call.apply(e,[this].concat(r)))}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ni(e,t)}(t,e),n=t,(r=[{key:"evaluate",value:function(e){var t,n=[],r=this.options,i=r.longAxisSliceThicknessMultiplier,o=r.shortAxisSliceThicknessMultiplier;return e.targets.forEach((function(e){var t=e.metadata,a=e.measurement,s=a.location,u=a.longestDiameter,c=a.shortestDiameter,l=a.isNodal;if(a.childToolsCount){var f=a.bidirectional;u=f&&f.longestDiameter||0,c=f&&f.shortestDiameter||0}var p=t.SliceThickness,d=t.getTagValue("Modality")||"";"boolean"==typeof l&&"boolean"==typeof r.isNodal&&r.isNodal!==l||r.locationIn&&-1===r.locationIn.indexOf(s)||r.modalityIn&&-1===r.modalityIn.indexOf(d)||r.locationNotIn&&r.locationNotIn.indexOf(s)>-1||r.modalityNotIn&&r.modalityNotIn.indexOf(d)>-1||(r.longAxis&&u<r.longAxis||r.shortAxis&&c<r.shortAxis||i&&!isNaN(p)&&u<i*p||o&&!isNaN(p)&&c<o*p)&&n.push(a)})),n.length&&(t=r.message),this.generateResponse(t,n)}}])&&Qr(n.prototype,r),i&&Qr(n,i),t}(xr);function oi(e){return(oi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ai(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function si(e,t){return!t||"object"!==oi(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ui(e){return(ui=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ci(e,t){return(ci=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var li={type:"object",properties:{method:{label:'Specify if it\'s goinig to "allow" or "deny" the modalities',type:"string",enum:["allow","deny"]},measurementTypes:{label:"List of measurement types that will be evaluated",type:"array",items:{type:"string"},minItems:1,uniqueItems:!0},modalities:{label:"List of allowed/denied modalities",type:"array",items:{type:"string"},minItems:1,uniqueItems:!0}},required:["method","modalities"]},fi=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return si(this,(e=ui(t)).call.apply(e,[this].concat(r)))}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ci(e,t)}(t,e),n=t,(r=[{key:"evaluate",value:function(e){var t,n=this.options.measurementTypes||["targets"],r=new Set(this.options.modalities),i=this.options.method,o=[],a=new Set;if(n.forEach((function(t){e[t].forEach((function(e){var t=e.measurement,n=e.metadata.getTagValue("Modality")||"";("allow"===i&&!r.has(n)||"deny"===i&&r.has(n))&&(o.push(t),a.add(n))}))})),o.length){var s=Array.from(a),u=s.join(", "),c=s.length>1?"modalities":"Modality";t="The ".concat(c," ").concat(u," should not be used as a method of measurement")}return this.generateResponse(t,o)}}])&&ai(n.prototype,r),i&&ai(n,i),t}(xr);function pi(e){return(pi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function di(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function mi(e,t){return!t||"object"!==pi(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function yi(e){return(yi=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function hi(e,t){return(hi=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var vi={type:"object"},gi=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return mi(this,(e=yi(t)).call.apply(e,[this].concat(r)))}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&hi(e,t)}(t,e),n=t,(r=[{key:"evaluate",value:function(e){var t,n=e.nonTargets,r=[];return n.forEach((function(e){var t=e.measurement;"present"!==(t.response||"").toLowerCase()&&r.push(t)})),r.length&&(t='Non-targets can only be assessed as "present"'),this.generateResponse(t,r)}}])&&di(n.prototype,r),i&&di(n,i),t}(xr);function bi(e){return(bi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ii(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Si(e,t){return!t||"object"!==bi(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function wi(e){return(wi=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Oi(e,t){return(Oi=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Pi={type:"object"},Di=function(e){function t(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return Si(this,(e=wi(t)).call.apply(e,[this].concat(r)))}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Oi(e,t)}(t,e),n=t,(r=[{key:"evaluate",value:function(e){var t,n=e.targets,r=[];return n.forEach((function(e){var t=e.measurement;"Bidirectional"===t.toolType||t.bidirectional||r.push(t)})),r.length&&(t="Target lesions must have measurements (cannot be assessed as CR, UN/NE, EX)"),this.generateResponse(t,r)}}])&&Ii(n.prototype,r),i&&Ii(n,i),t}(xr),Ti=n(220),Ei=n.n(Ti);function ki(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var _i=Object.assign({},i),xi=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var r=this.getCriteriaValidator();if(this.criteria=[],!r(t)){var i="";throw r.errors.forEach((function(e){i+="\noptions".concat(e.dataPath," ").concat(e.message)})),new Error(i)}Object.keys(t).forEach((function(e){var r=t[e],i=_i["".concat(e,"Criterion")];(r instanceof Array?r:[r]).forEach((function(t){return n.criteria.push(new i(t,e))}))}))}var t,n,r;return t=e,r=[{key:"setCriterion",value:function(e,t){_i[e]=t}}],(n=[{key:"getMaxTargets",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=0;return this.criteria.forEach((function(n){var r=e===!!n.options.newTarget;if(n instanceof _i.MaxTargetsCriterion&&r){var i=n.options.limit;i>t&&(t=i)}})),t}},{key:"getCriteriaValidator",value:function(){if(e.criteriaValidator)return e.criteriaValidator;var t={properties:{},definitions:{}};return Object.keys(_i).forEach((function(e){if(_i[e].prototype instanceof xr){var n=e.replace(/Criterion$/,""),r="#/definitions/".concat(n);t.definitions[n]=_i["".concat(n,"Schema")],t.properties[n]={oneOf:[{$ref:r},{type:"array",items:{$ref:r}}]}}})),e.criteriaValidator=(new Ei.a).compile(t),e.criteriaValidator}},{key:"evaluate",value:function(e){var t=[];return this.criteria.forEach((function(n){var r=n.evaluate(e);r.passed||t.push(r)})),t}}])&&ki(t.prototype,n),r&&ki(t,r),e}(),ji=n(219),Mi=n.t(ji,2);function Ni(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function Ai(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function Ci(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){Ai(o,r,i,a,s,"next",e)}function s(e){Ai(o,r,i,a,s,"throw",e)}a(void 0)}))}}function Ri(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var Ui=Object.assign({},o),Vi=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.measurementApi=t,this.timepointApi=n,this.nonconformities=[],this.groupedNonConformities=[],this.maxTargets=null,this.maxNewTargets=null,this.options=r}var t,n,r,i,o;return t=e,n=[{key:"loadStudy",value:function(e){if("function"!=typeof this.options.loadStudy)throw new Error("loadStudy callback is not defined");return this.options.loadStudy(null,e)}},{key:"validate",value:(o=Ci(regeneratorRuntime.mark((function e(t){var n,r,i,o,a,s,u,c,l,f,p,d;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.getData("baseline"),r=this.getData("followup"),e.next=4,Promise.all([n,r]);case 4:return i=e.sent,o=Ni(i,2),a=o[0],s=o[1],(u={targets:[],nonTargets:[]}).targets=u.targets.concat(a.targets),u.targets=u.targets.concat(s.targets),u.nonTargets=u.nonTargets.concat(a.nonTargets),u.nonTargets=u.nonTargets.concat(s.nonTargets),this.maxTargets=null,this.maxNewTargets=null,c=this.validateTimepoint("both",t,u),l=this.validateTimepoint("baseline",t,a),f=this.validateTimepoint("followup",t,s),p=l.concat(f).concat(c),d=this.groupNonConformities(p),this.nonconformities=p,this.groupedNonConformities=d,console.warn("nonconformities"),console.warn(p),console.warn("groupedNonConformities"),console.warn(d),e.abrupt("return",p);case 27:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"groupNonConformities",value:function(e){var t={},n=this.measurementApi.toolsGroupsMap;return e.forEach((function(e){if(e.isGlobal)return t.globals=t.globals||{messages:[]},void t.globals.messages.push(e.message);e.measurements.forEach((function(r){var i=n[r.toolType];t[i]=t[i]||{measurementNumbers:{}};var o=t[i],a=r.measurementNumber,s=o.measurementNumbers[a];s||(s=o.measurementNumbers[a]={messages:[],measurements:[]}),s.messages.push(e.message),s.measurements.push(r)}))})),t}},{key:"validateTimepoint",value:function(e,t,n){var r=this,i=this.getEvaluators(e,t),o=[];return i.forEach((function(t){var i=t.getMaxTargets(!1),a=t.getMaxTargets(!0);i&&(r.maxTargets=i),a&&(r.maxNewTargets=a);var s=t.evaluate(n);s.length>0&&s.forEach((function(t){t.timepointType=e})),o=o.concat(s)})),o}},{key:"getEvaluators",value:function(e,t){var n=[];console.warn(Ui);var r=t.id.toLowerCase(),i=Ui[r];if(i){var o=i[e];o&&n.push(new xi(o))}return n}},{key:"getData",value:(i=Ci(regeneratorRuntime.mark((function e(t){var n,r,i,o=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n={targets:[],nonTargets:[]},r=[],(i=function(e){o.measurementApi.fetch(e).forEach((function(i){var a=i.StudyInstanceUID,s=i.timepointId,u=s&&o.timepointApi.timepoints.find((function(e){return e.timepointId===s}));if(u&&("both"===t||u.timepointType===t)){var c=o.loadStudy(a);c.then((function(t){n[e].push({measurement:i,metadata:t.getFirstInstance(),timepoint:u})}),(function(e){throw new Error(e)})),r.push(c)}}))})("targets"),i("nonTargets"),e.next=7,Promise.all(r);case 7:return e.abrupt("return",n);case 8:case"end":return e.stop()}}),e)}))),function(e){return i.apply(this,arguments)})}],r=[{key:"setEvaluationDefinitions",value:function(e,t){Ui[e]=t}}],n&&Ri(t.prototype,n),r&&Ri(t,r),e}(),Li=n(8),Fi=function(e){var t=De.a.getEnabledElement(e).image.imageId,n=De.a.metaData.get("instance",t),r=n.StudyInstanceUID,i=n.PatientID,o=n.SeriesInstanceUID,a=n.SOPInstanceUID,s=t.split("&frame"),u=void 0!==s[1]?Number(s[1]):0,c=[r,o,a,u].join("_");return{PatientID:i,StudyInstanceUID:r,SeriesInstanceUID:o,SOPInstanceUID:a,frameIndex:u,imagePath:c}};function qi(){De.a.getEnabledElements().forEach((function(e){e.image&&De.a.updateImage(e.element)}))}function Hi(e){var t=e.eventData,n=e.tool,r=kr.Instance;r||s.a.warn("Measurement API is not initialized");var i=t.measurementData,o=t.toolType;if(r.tools[o]&&i&&!i.cancelled){s.a.info("CornerstoneToolsMeasurementAdded");var a=Fi(t.element),u=Object.assign({},i,a,{lesionNamingNumber:i.lesionNamingNumber,userId:Li.a.getUserId(),toolType:o}),c=r.addMeasurement(o,u);Object.assign(i,c);var l=vr(i);l&&(i.labels=[l]),qi(),kr.isToolIncluded(n)}}var Gi=function(e){var t=e.eventData,n=e.tool,r=(e.toolGroupId,e.toolGroup,kr.Instance);r||s.a.warn("Measurement API is not initialized");var i=t.measurementData,o=r.tools[n.parentTool];if(o&&i&&!i.cancelled){s.a.info("CornerstoneToolsMeasurementAdded");var a=Fi(t.element),u=Object.assign(a,{userId:Li.a.getUserId()}),c=Object.assign({},i,u),l=o.find((function(e){return e.toolType===n.parentTool&&e.PatientID===a.PatientID&&null===e[n.attribute]}));if(l){var f=n.attribute;c.createdAt=new Date,l[f]=c,l.childToolsCount=(l.childToolsCount||0)+1,r.updateMeasurement(n.parentTool,l),i._id=l._id,i.lesionNamingNumber=l.lesionNamingNumber}else{var p={toolType:n.parentTool,lesionNamingNumber:i.lesionNamingNumber,userId:Li.a.getUserId(),PatientID:a.PatientID,StudyInstanceUID:a.StudyInstanceUID};p[n.attribute]=Object.assign({},i,u);var d=r.addMeasurement(n.parentTool,p);Object.assign(i,d)}var m=vr(i);m&&(i.labels=[m]),qi(),kr.isToolIncluded(n)}},Bi=function(e){var t=e.eventData,n=e.tool,r=(e.toolGroupId,e.toolGroup,kr.Instance);r||s.a.warn("Measurement API is not initialized");var i=t.measurementData,o=t.toolType,a=r.tools[o];if(a){s.a.info("CornerstoneToolsMeasurementModified");var u=a.find((function(e){return e._id===i._id}));u&&((u=Object.assign(u,i)).viewport=De.a.getViewport(t.element),r.updateMeasurement(o,u),kr.isToolIncluded(n))}},Wi=function(e){var t=e.eventData,n=e.tool,r=(e.toolGroupId,e.toolGroup,kr.Instance);r||s.a.warn("Measurement API is not initialized");var i=t.measurementData,o=r.tools[n.parentTool];if(o){s.a.info("CornerstoneToolsMeasurementModified");var a=o.find((function(e){return e._id===i._id})),u=a&&a[n.attribute];u&&((u=Object.assign(u,i)).viewport=De.a.getViewport(t.element),a[n.attribute]=u,r.updateMeasurement(n.parentTool,a),kr.isToolIncluded(n))}};function zi(e){var t=e.eventData,n=e.tool;e.toolGroupId,e.toolGroup;s.a.info("CornerstoneToolsMeasurementRemoved");var r=t.measurementData,i=t.toolType,o=kr.Instance;o||s.a.warn("Measurement API is not initialized");var a=o.tools[i];if(a){var u=o.toolsGroupsMap[i],c=a.find((function(e){return e._id===r._id}));if(c){var l=c.lesionNamingNumber,f=c.timepointId;o.deleteMeasurements(i,u,{lesionNamingNumber:l,timepointId:f}),qi(),kr.isToolIncluded(n)}}}var Yi=function(e){var t=e.eventData,n=e.tool;e.toolGroupId,e.toolGroup;s.a.info("CornerstoneToolsMeasurementRemoved");var r=t.measurementData,i=kr.Instance;i||s.a.warn("Measurement API is not initialized");var o=i.tools[n.parentTool];if(o){var a=o.findIndex((function(e){return e._id===r._id})),u=a>-1?o[a]:null;u&&(1===u.childToolsCount?(o.splice(a,1),i.onMeasurementRemoved(n.parentTool,u)):(u[n.attribute]=null,u.childToolsCount=(u.childToolsCount||0)-1,i.updateMeasurement(n.parentTool,u)),qi(),kr.isToolIncluded(n))}},Ki=function(e){var t=e.detail;return t.toolName&&(t.toolType=t.toolName),t},Ji={handleSingleMeasurementAdded:Hi,handleChildMeasurementAdded:Gi,handleSingleMeasurementModified:Bi,handleChildMeasurementModified:Wi,handleSingleMeasurementRemoved:zi,handleChildMeasurementRemoved:Yi,onAdded:function(e){var t=Ki(e),n=t.toolType,r=kr.getToolConfiguration(n),i=r.toolGroupId,o=r.toolGroup,a=r.tool,s={eventData:t,tool:a,toolGroupId:i,toolGroup:o};a&&(a.parentTool?Gi(s):Hi(s))},onModified:function(e){var t=Ki(e),n=t.toolType,r=kr.getToolConfiguration(n),i=r.toolGroupId,o=r.toolGroup,a=r.tool,s={eventData:t,tool:a,toolGroupId:i,toolGroup:o};a&&(a.parentTool?Wi(s):Bi(s))},onRemoved:function(e){var t=Ki(e),n=t.toolType,r=kr.getToolConfiguration(n),i=r.toolGroupId,o=r.toolGroup,a=r.tool,s={eventData:t,tool:a,toolGroupId:i,toolGroup:o};a&&(a.parentTool?Yi(s):zi(s))}},$i={id:"targets",name:"Targets",childTools:[Jn,rr,or,ir],options:{caseProgress:{include:!0,evaluate:!0}}},Xi={id:"nonTargets",name:"Non-Targets",childTools:[er],options:{caseProgress:{include:!0,evaluate:!0}}},Zi=n(57),Qi=n.n(Zi),eo=Qi()([Qn,$n]);eo.forEach((function(e){e.options=Object.assign({},e.options,{caseProgress:{include:!1,evaluate:!1}})}));var to={id:"temp",name:"Temporary",childTools:eo,options:{caseProgress:{include:!1,evaluate:!1}}},no=Qi()([$i,Xi,to]);no.forEach((function(e){e.childTools.forEach((function(t){t.toolGroup=e.id}))}));var ro={TimepointApi:mr,MeasurementApi:kr,ConformanceCriteria:Vi,MeasurementHandlers:Ji,ltTools:no,tools:r,getLabel:vr,getDescription:gr,getImageAttributes:Fi,getImageIdForImagePath:Ir},io=function(e){return!!$t.a.adapters.Cornerstone[e]},oo=function(e){var t=$t.a.adapters.Cornerstone.MeasurementReport,n=ro.getImageIdForImagePath,r={},i=[];return Object.keys(e).forEach((function(t){e[t].forEach((function(e){var t=e.toolType,o=e.imagePath;if(io(t)){var a=n(o);r[a]=r[a]||{},r[a][t]=r[a][t]||{data:[]},r[a][t].data.push(e)}else i.push(t)}))})),i.length>0&&s.a.warn("[DICOMSR] Tooltypes not supported: ".concat(i.join(", "))),{dataset:t.generateReport(r,De.a.metaData).dataset}},ao=function(e){var t=[];return e.forEach((function(e){e.getDisplaySets&&(t=t.concat(e.getDisplaySets()))})),t};function so(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}function uo(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){so(o,r,i,a,s,"next",e)}function s(e){so(o,r,i,a,s,"throw",e)}a(void 0)}))}}var co=function(){var e=uo(regeneratorRuntime.mark((function e(t,n,r){var i,o,a,s,u,c,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i={url:r,headers:P.a.getAuthorizationHeader(),errorInterceptor:ue.a.getHTTPErrorHandler(),requestHooks:[Object(fe.a)()]},o=new X.a.DICOMwebClient(i),a=t.getFirstInstance(),s={studyInstanceUID:a.getStudyInstanceUID(),seriesInstanceUID:a.getSeriesInstanceUID(),sopInstanceUID:a.getSOPInstanceUID()},e.next=6,o.retrieveInstance(s);case 6:return u=e.sent,c=ao(n),l=Yn(u,c),e.abrupt("return",l);case 10:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),lo=function(){var e=uo(regeneratorRuntime.mark((function e(t,n){var r,i,o,a,s,u,c,l,f,p,d,m;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=oo(t),i=r.dataset,o=$t.a.data,a=o.DicomMetaDictionary,s=o.DicomDict,u={FileMetaInformationVersion:i._meta.FileMetaInformationVersion.Value,MediaStorageSOPClassUID:i.SOPClassUID,MediaStorageSOPInstanceUID:i.SOPInstanceUID,TransferSyntaxUID:"1.2.840.10008.1.2.1",ImplementationClassUID:a.uid(),ImplementationVersionName:"dcmjs-0.0"},c=a.denaturalizeDataset(u),(l=new s(c)).dict=a.denaturalizeDataset(i),f=l.write(),p={url:n,headers:P.a.getAuthorizationHeader(),errorInterceptor:ue.a.getHTTPErrorHandler(),requestHooks:[Object(fe.a)()]},d=new X.a.DICOMwebClient(p),m={datasets:[f]},e.next=12,d.storeInstances(m);case 12:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),fo=function(e){var t=e.getFirstInstance().getData().metadata.SOPClassUID;return["1.2.840.10008.5.1.4.1.1.88.22","1.2.840.10008.5.1.4.1.1.11.1"].includes(t)},po=function(e,t){return e._data.SeriesDate>t._data.SeriesDate||e._data.SeriesDate===t._data.SeriesDate&&e._data.SeriesTime>t._data.SeriesTime},mo=function(e){var t;return e.forEach((function(e){(e.getSeries?e.getSeries():[]).forEach((function(e){e&&0!==e.getInstanceCount()&&fo(e)&&(t&&!po(e,t)||(t=e))}))})),t};function yo(e,t,n,r,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,i)}var ho={retrieveMeasurements:function(e){if(s.a.info("[DICOMSR] retrieveMeasurements"),!e||"dicomWeb"!==e.type)return s.a.error("[DICOMSR] DicomWeb server is required!"),Promise.reject({});var t=e.wadoRoot,n=Gn.a.studyMetadataManager.all(),r=mo(n);return r?co(r,n,t):Promise.resolve({})},storeMeasurements:function(){var e,t=(e=regeneratorRuntime.mark((function e(t,n,r){var i,o,a,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s.a.info("[DICOMSR] storeMeasurements"),r&&"dicomWeb"===r.type){e.next=4;break}return s.a.error("[DICOMSR] DicomWeb server is required!"),e.abrupt("return",Promise.reject({}));case 4:return i=r.wadoRoot,o=Object.keys(t)[0],a=t[o][0],u=a&&a.StudyInstanceUID,e.prev=8,e.next=11,lo(t,i);case 11:return u&&Hn.deleteStudyMetadataPromise(u),e.abrupt("return",{message:"Measurements saved successfully"});case 15:throw e.prev=15,e.t0=e.catch(8),s.a.error("[DICOMSR] Error while saving the measurements: ".concat(e.t0.message)),new Error("Error while saving the measurements.");case 19:case"end":return e.stop()}}),e,null,[[8,15]])})),function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){yo(o,r,i,a,s,"next",e)}function s(e){yo(o,r,i,a,s,"throw",e)}a(void 0)}))});return function(e,n,r){return t.apply(this,arguments)}}(),isToolSupported:io};function vo(e){return(vo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var go={metadataProvider:lt.a,getBoundingBox:function(e,t,n,r,i){"[object Array]"!==Object.prototype.toString.call(t)&&(t=[t]);var o=hr.a.textStyle.getFont(),a=hr.a.textStyle.getFontSize();e.save(),e.font=o,e.textBaseline="top";var s=0;t.forEach((function(t){var n=e.measureText(t).width;s=Math.max(s,n)}));var u={width:s+10,height:5+t.length*(a+5)};return i&&i.centering&&!0===i.centering.x&&(n-=u.width/2),i&&i.centering&&!0===i.centering.y&&(r-=u.height/2),u.left=n,u.top=r,e.restore(),u},pixelToPage:function(e,t){var n=De.a.getEnabledElement(e),r={x:0,y:0};if(!n||"object"!==vo(t))return r;var i=n.canvas,o=$(i).offset();r.x+=o.left,r.y+=o.top;var a=De.a.pixelToCanvas(e,t);return r.x+=a.x,r.y+=a.y,r},repositionTextBox:function(e,t,n){if(t.isCreating){var r=e.element,i=De.a.getEnabledElement(r),o=i.image,a=OHIF.uiSettings.autoPositionMeasurementsTextCallOuts,s={T:!a||a.includes("T"),R:!a||a.includes("R"),B:!a||a.includes("B"),L:!a||a.includes("L")},u=function(e,t){var n={};n.x=e.x/2,n.y=e.y/2;var r={};r.x=t.x<n.x?-1:1,r.y=t.y<n.y?-1:1;for(var i=r.x<0?t.x:e.x-t.x,o=(r.y<0?t.y:e.y-t.y)<i?"y":"x",a={"x-1":"L","y-1":"T",x1:"R",y1:"B"},u=0;u<4&&!s[a[o+r[o]]];)r[o]*=-1,o="x"===o?"y":"x",u++;return{directions:r,cornerAxis:o}},c=function(e,t,n){var r=t[e],i=n[e],o=Math.min(r,i);return o+(Math.max(r,i)-o)/2},l=t.handles,f=l.textBox,p=$(i.canvas),d=p.outerWidth(),m=p.outerHeight(),y=p.offset(),h={x:d,y:m},v={};v.x=f.boundingBox.width,v.y=f.boundingBox.height;var g=function(e){var t=l[e];return{x:t.x,y:t.y}},b=g("start"),I=g("end"),S={};S.x=c("x",b,I),S.y=c("y",b,I);var w={};w.x=o.width,w.y=o.height;for(var O,P=u(w,S),D=P.directions,T=P.cornerAxis,E=function(e,t,n){var r=e.element,i=e.canvas,o=e.image,a=De.a.pixelToCanvas(r,{x:0,y:0}),u=De.a.pixelToCanvas(r,{x:o.width,y:o.height}),c=$(i),l=c.outerWidth(),f=c.outerHeight(),p={};return p["x-1"]=s.L&&a.x>t,p["y-1"]=s.T&&a.y>n,p.x1=s.R&&l-u.x>t,p.y1=s.B&&f-u.y>n,p}(i,v.x,v.y),k=Object.assign({},D),_=T,x=!1,j=0;j<4;){if(E[_+k[_]]){x=!0;break}k[_]*=-1,_="x"===_?"y":"x",j++}if(x)O=(D=Object.assign({},D,k))[T=_]<0?0:w[T];else{var M=u(w=Object.assign({},w,h),De.a.pixelToCanvas(r,S));D=M.directions,T=M.cornerAxis;var N={x:D.x<0?y.left:y.left+d,y:D.y<0?y.top:y.top+m};O=De.a.pageToPixel(r,N.x,N.y)[T]}var A="x"===T?"y":"x",C=function(e,t){var n=De.a.pageToPixel(e,0,0),r=De.a.pageToPixel(e,t.x,t.y);return{x:r.x-n.x,y:r.y-n.y}}(r,v);f[T]=O,f[A]=S[A];var R=function(e,t,n,r){var i=(e=e||{}).centering||{},o=!!i.x,a=!!i.y,s=r.x/2,u=r.y/2,c={x:[],y:[]};if("x"===t){var l=a?0:u;c.x[-1]=o?s:0,c.x[1]=o?-s:-r.x,c.y[-1]=l,c.y[1]=l}else{var f=o?0:s;c.x[-1]=f,c.x[1]=f,c.y[-1]=a?u:0,c.y[1]=a?-u:-r.y}return c}(n,T,0,C);f[T]+=R[T][D[T]];var U=De.a.pixelToCanvas(r,f),V={x:U.x+v.x,y:U.y+v.y},L={x0:y.left,y0:y.top,x1:y.left+d,y1:y.top+m};if(U[A]<0){var F=L.x0,q=L.y0,H=De.a.pageToPixel(r,F,q);f[A]=H[A]}else if(V[A]>h[A]){var G=L.x1-v.x,B=L.y1-v.y,W=De.a.pageToPixel(r,G,B);f[A]=W[A]}}}};function bo(e){return(bo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Io(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function So(e,t){return!t||"object"!==bo(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function wo(e){return(wo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Oo(e,t){return(Oo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Po=function(e){function t(e,n,r,i){var o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(o=So(this,wo(t).call(this,e,i))).init(n,r),o}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Oo(e,t)}(t,e),n=t,(r=[{key:"init",value:function(e,t){var n=this.getData();Object.defineProperties(this,{_sopInstanceUID:{configurable:!1,enumerable:!1,writable:!1,value:n.SOPInstanceUID},_study:{configurable:!1,enumerable:!1,writable:!1,value:t},_series:{configurable:!1,enumerable:!1,writable:!1,value:e},_instance:{configurable:!1,enumerable:!1,writable:!1,value:n},_cache:{configurable:!1,enumerable:!1,writable:!1,value:Object.create(null)}})}},{key:"getTagValue",value:function(e,t,n){if(e in this._cache&&!0!==n)return this._cache[e];var r,i=this._instance.metadata;return e in i?r=i[e]:e in this._series?r=this._series[e]:e in this._study&&(r=this._study[e]),void 0!==r?(this._cache[e]=r,r):t}},{key:"tagExists",value:function(e){return e in this._instance.metadata||e in this._series||e in this._study}},{key:"getImageId",value:function(e,t){return null===this._imageId&&(this._imageId=Object(je.a)(this.getData(),e,t)),this._imageId}}])&&Io(n.prototype,r),i&&Io(n,i),t}(G);function Do(e){return(Do="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function To(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Eo(e,t){return!t||"object"!==Do(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ko(e){return(ko=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _o(e,t){return(_o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var xo=function(e){function t(e,n,r){var i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(i=Eo(this,ko(t).call(this,e,r))).init(n),i}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_o(e,t)}(t,e),n=t,(r=[{key:"init",value:function(e){var t=this,n=this.getData();Object.defineProperty(this,"_seriesInstanceUID",{configurable:!1,enumerable:!1,writable:!1,value:n.SeriesInstanceUID}),n.instances.forEach((function(r){t.addInstance(new Po(r,n,e))}))}}])&&To(n.prototype,r),i&&To(n,i),t}(J);function jo(e){return(jo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Mo(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function No(e,t){return!t||"object"!==jo(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Ao(e){return(Ao=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Co(e,t){return(Co=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ro={Metadata:U,StudyMetadata:ve,SeriesMetadata:J,InstanceMetadata:G,OHIFStudyMetadata:function(e){function t(e,n){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(r=No(this,Ao(t).call(this,e,n))).init(),r}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Co(e,t)}(t,e),n=t,(r=[{key:"init",value:function(){var e=this,t=this.getData();Object.defineProperty(this,"_studyInstanceUID",{configurable:!1,enumerable:!1,writable:!1,value:t.StudyInstanceUID}),t.series.forEach((function(n){e.addSeries(new xo(n,t))}))}}])&&Mo(n.prototype,r),i&&Mo(n,i),t}(ve),OHIFSeriesMetadata:xo,OHIFInstanceMetadata:Po},Uo=n(101),Vo=n.n(Uo);Vo.a.validators.equals=function(e,t,n,r){if(t&&e!==t.value)return n+"must equal "+t.value},Vo.a.validators.doesNotEqual=function(e,t,n){if(t&&e===t.value)return n+"cannot equal "+t.value},Vo.a.validators.contains=function(e,t,n){if(t&&e.indexOf&&-1===e.indexOf(t.value))return n+"must contain "+t.value},Vo.a.validators.doesNotContain=function(e,t,n){if(t&&e.indexOf&&-1!==e.indexOf(t.value))return n+"cannot contain "+t.value},Vo.a.validators.startsWith=function(e,t,n){if(t&&e.startsWith&&!e.startsWith(t.value))return n+"must start with "+t.value},Vo.a.validators.endsWith=function(e,t,n){if(t&&e.endsWith&&!e.endsWith(t.value))return n+"must end with "+t.value};var Lo={};function Fo(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var qo=Ro.InstanceMetadata,Ho=function(e,t){if(!(e instanceof qo))throw new T.a("HPMatcher::match metadataInstance must be an instance of InstanceMetadata");var n={format:"grouped"},r={passed:[],failed:[]},i=!1,o=0;return t.forEach((function(t){var a=t.attribute;if(Lo.hasOwnProperty(a)){var s=Lo[a];e.setCustomAttribute(a,s.callback(e))}var u,c=Fo({},a,t.constraint),l=Fo({},a,e.customAttributeExists(a)?e.getCustomAttribute(a):e.getTagValue(a));try{u=Vo()(l,c,[n])}catch(e){u=["Something went wrong during validation.",e]}u?(t.required&&(i=!0),r.failed.push({rule:t,errorMessages:u})):(o+=parseInt(t.weight,10),r.passed.push({rule:t}))})),i&&(o=0),{score:o,details:r,requiredFailed:i}},Go=n(14),Bo={};var Wo=[{id:"equals",name:"= (Equals)",validator:"equals",validatorOption:"value",description:"The attribute must equal this value."},{id:"doesNotEqual",name:"!= (Does not equal)",validator:"doesNotEqual",validatorOption:"value",description:"The attribute must not equal this value."},{id:"contains",name:"Contains",validator:"contains",validatorOption:"value",description:"The attribute must contain this value."},{id:"doesNotContain",name:"Does not contain",validator:"doesNotContain",validatorOption:"value",description:"The attribute must not contain this value."},{id:"startsWith",name:"Starts with",validator:"startsWith",validatorOption:"value",description:"The attribute must start with this value."},{id:"endsWith",name:"Ends with",validator:"endsWith",validatorOption:"value",description:"The attribute must end with this value."},{id:"onlyInteger",name:"Only Integers",validator:"numericality",validatorOption:"onlyInteger",description:"Real numbers won't be allowed."},{id:"greaterThan",name:"> (Greater than)",validator:"numericality",validatorOption:"greaterThan",description:"The attribute has to be greater than this value."},{id:"greaterThanOrEqualTo",name:">= (Greater than or equal to)",validator:"numericality",validatorOption:"greaterThanOrEqualTo",description:"The attribute has to be at least this value."},{id:"lessThanOrEqualTo",name:"<= (Less than or equal to)",validator:"numericality",validatorOption:"lessThanOrEqualTo",description:"The attribute can be this value at the most."},{id:"lessThan",name:"< (Less than)",validator:"numericality",validatorOption:"lessThan",description:"The attribute has to be less than this value."},{id:"odd",name:"Odd",validator:"numericality",validatorOption:"odd",description:"The attribute has to be odd."},{id:"even",name:"Even",validator:"numericality",validatorOption:"even",description:"The attribute has to be even."}];function zo(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}Object.freeze(Wo);var Yo=/^equals$/,Ko=function(){function e(t,n,r,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.id=Object(D.a)(),this.weight=i||1,t&&(this.attribute=t),n&&(this.constraint=n),this.required=void 0!==r&&r,this._constraintInfo=void 0,this._validatorAndValue=void 0}var t,n,r;return t=e,(n=[{key:"fromObject",value:function(e){this.id=e.id||Object(D.a)(),this.required=e.required,this.weight=e.weight,this.attribute=e.attribute,this.constraint=e.constraint}},{key:"getConstraintInfo",value:function(){var e=this._constraintInfo;if(void 0!==e)return e;var t=Object.keys(this.constraint)[0];return void 0!==t&&(e=Wo.find((function(e){return t===e.id}))),this._constraintInfo=e,e}},{key:"isRuleForPrior",value:function(){return"abstractPriorValue"===this.attribute}},{key:"getNumberOfPriorsReferenced",value:function(){if(!this.isRuleForPrior())return-1;var e=this.getConstraintValidatorAndValue(),t=e.value,n=e.validator,r=parseInt(t,10)||0;return Yo.test(n)?r<0?1:r:0}},{key:"getConstraintValidatorAndValue",value:function(){var e=this._validatorAndValue;if(void 0!==e)return e;var t=this.getConstraintInfo();if(void 0!==t){var n=t.validator,r=this.constraint[n];r&&(e={value:r[t.validatorOption],validator:t.id},this._validatorAndValue=e)}return e}}])&&zo(t.prototype,n),r&&zo(t,r),e}();function Jo(e){return(Jo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Xo(e,t){return!t||"object"!==Jo(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Zo(e){return(Zo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Qo(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ea(e,t)}function ea(e,t){return(ea=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ta=function(e){function t(){return $o(this,t),Xo(this,Zo(t).apply(this,arguments))}return Qo(t,e),t}(Ko),na=function(e){function t(){return $o(this,t),Xo(this,Zo(t).apply(this,arguments))}return Qo(t,e),t}(Ko),ra=function(e){function t(){return $o(this,t),Xo(this,Zo(t).apply(this,arguments))}return Qo(t,e),t}(Ko),ia=function(e){function t(){return $o(this,t),Xo(this,Zo(t).apply(this,arguments))}return Qo(t,e),t}(Ko),oa=function(e,t){return!(!e||!e.length)&&(e.forEach((function(e,n){if(e===t)return indexToRemove=n,!1})),void 0!==indexToRemove&&(e.splice(indexToRemove,1),!0))};function aa(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var sa=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.type=t,this.properties=n}var t,n,r;return t=e,(n=[{key:"fromObject",value:function(e){this.type=e.type,this.properties=e.properties}},{key:"getLayoutTemplateName",value:function(){switch(this.type){case"grid":return"gridLayout"}}},{key:"getNumViewports",value:function(){switch(this.type){case"grid":return this.properties.Rows*this.properties.Columns}}}])&&aa(t.prototype,n),r&&aa(t,r),e}();function ua(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var ca=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.viewportSettings={},this.imageMatchingRules=[],this.seriesMatchingRules=[],this.studyMatchingRules=[]}var t,n,r;return t=e,(n=[{key:"fromObject",value:function(e){var t=this;e.imageMatchingRules&&e.imageMatchingRules.forEach((function(e){var n=new ia;n.fromObject(e),t.imageMatchingRules.push(n)})),e.seriesMatchingRules&&e.seriesMatchingRules.forEach((function(e){var n=new ra;n.fromObject(e),t.seriesMatchingRules.push(n)})),e.studyMatchingRules&&e.studyMatchingRules.forEach((function(e){var n=new na;n.fromObject(e),t.studyMatchingRules.push(n)})),e.viewportSettings&&(this.viewportSettings=e.viewportSettings)}},{key:"removeRule",value:function(e){var t;e instanceof na?t=this.studyMatchingRules:e instanceof ra?t=this.seriesMatchingRules:e instanceof ia&&(t=this.imageMatchingRules),oa(t,e)}}])&&ua(t.prototype,n),r&&ua(t,r),e}();function la(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var fa=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.id=Object(D.a)(),this.name=n,this.viewportStructure=t,this.viewports=[],this.createdDate=new Date}var t,n,r;return t=e,(n=[{key:"createClone",value:function(t){var n=Object.assign({},this),r=new e;return n.id=r.id,r.fromObject(n),t&&(r.name=t),r}},{key:"fromObject",value:function(e){var t=this;this.id=e.id||Object(D.a)(),this.name=e.name,this.viewportStructure=new sa,this.viewportStructure.fromObject(e.viewportStructure),e.viewports&&e.viewports.forEach((function(e){var n=new ca;n.fromObject(e),t.viewports.push(n)}))}}])&&la(t.prototype,n),r&&la(t,r),e}();function pa(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var da=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.id=Object(D.a)(),this.locked=!1,this.hasUpdatedPriorsInformation=!1,this.name=t,this.createdDate=new Date,this.modifiedDate=new Date,Li.a.userLoggedIn&&Li.a.userLoggedIn()&&(this.createdBy=Li.a.getUserId(),this.modifiedBy=Li.a.getUserId()),this.availableTo=new Set,this.editableBy=new Set,this.protocolMatchingRules=[],this.stages=[],this.numberOfPriorsReferenced=-1}var t,n,r;return t=e,(n=[{key:"getNumberOfPriorsReferenced",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=!0!==e?this.numberOfPriorsReferenced:-1;return t>-1?t:(t=0,this.stages.forEach((function(e){e.viewports&&e.viewports.forEach((function(e){e.studyMatchingRules&&e.studyMatchingRules.forEach((function(e){var n=e.getNumberOfPriorsReferenced();n>t&&(t=n)}))}))})),this.numberOfPriorsReferenced=t,t)}},{key:"updateNumberOfPriorsReferenced",value:function(){this.getNumberOfPriorsReferenced(!0)}},{key:"protocolWasModified",value:function(){Li.a.userLoggedIn&&Li.a.userLoggedIn()&&(this.modifiedBy=Li.a.getUserId()),this.hasUpdatedPriorsInformation=!1,this.updateNumberOfPriorsReferenced(),this.modifiedDate=new Date}},{key:"fromObject",value:function(e){var t=this;this.id=e.id||Object(D.a)(),this.name=e.name,this.locked=!!e.locked,e.protocolMatchingRules&&e.protocolMatchingRules.forEach((function(e){var n=new ta;n.fromObject(e),t.protocolMatchingRules.push(n)})),e.stages&&e.stages.forEach((function(e){var n=new fa;n.fromObject(e),t.stages.push(n)}))}},{key:"createClone",value:function(t){var n=Object.assign({},this),r=new e;return n.id=r.id,r.fromObject(n),t&&(r.name=t),r.locked=!1,r}},{key:"addStage",value:function(e){this.stages.push(e),this.protocolWasModified()}},{key:"addProtocolMatchingRule",value:function(e){this.protocolMatchingRules.push(e),this.protocolWasModified()}},{key:"removeProtocolMatchingRule",value:function(e){oa(this.protocolMatchingRules,e)&&this.protocolWasModified()}}])&&pa(t.prototype,n),r&&pa(t,r),e}();function ma(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ya(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ha(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var va=Ro.StudyMetadata,ga=Ro.InstanceMetadata,ba=function(){function e(t,n,r,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ha(this,"matchedProtocols",new Map),ha(this,"matchedProtocolScores",{}),!(i instanceof dt))throw new T.a("ProtocolEngine::constructor studyMetadataSource is not an instance of StudyMetadataSource");if(!(n instanceof Array||n.every((function(e){return e instanceof va}))))throw new T.a("ProtocolEngine::constructor studies is not an array or it's items are not instances of StudyMetadata");this.protocolStore=t,this.studies=n,this.priorStudies=r instanceof Map?r:new Map,this.studyMetadataSource=i,this.options=o,this.reset(),this.newStageIds=[]}var t,n,r;return t=e,(n=[{key:"reset",value:function(){var e=this.getBestProtocolMatch();this.setHangingProtocol(e)}},{key:"getCurrentStageModel",value:function(){return this.protocol.stages[this.stage]}},{key:"findMatchByStudy",value:function(e){s.a.trace("ProtocolEngine::findMatchByStudy");var t=[],n=e.getFirstInstance(),r=this.getNumberOfAvailablePriors(e.getObjectID());return this.protocolStore.getProtocol().forEach((function(e){var i=e.protocolMatchingRules.slice();if(i&&!(e.getNumberOfPriorsReferenced()>r)){var o=Ho(n,i).score;o>0&&t.push({score:o,protocol:e})}})),t.length?(t.sort((function(e,t){return t.score-e.score})),s.a.trace("ProtocolEngine::findMatchByStudy matched",t),t):[{score:1,protocol:this.protocolStore.getProtocol("defaultProtocol")}]}},{key:"_clearMatchedProtocols",value:function(){this.matchedProtocols.clear(),this.matchedProtocolScores={}}},{key:"updateProtocolMatches",value:function(){var e=this;s.a.trace("ProtocolEngine::updateProtocolMatches"),this._clearMatchedProtocols(),this.studies.forEach((function(t){e.findMatchByStudy(t).forEach((function(t){var n=t.protocol;n&&(e.matchedProtocols.has(n.id)||(s.a.trace("ProtocolEngine::updateProtocolMatches inserting protocol match",t),e.matchedProtocols.set(n.id,n),e.matchedProtocolScores[n.id]=t.score))}))}))}},{key:"_largestKeyByValue",value:function(e){return Object.keys(e).reduce((function(t,n){return e[t]>e[n]?t:n}))}},{key:"_getHighestScoringProtocol",value:function(){if(!Object.keys(this.matchedProtocolScores).length)return this.protocolStore.getProtocol("defaultProtocol");var e=this._largestKeyByValue(this.matchedProtocolScores);return this.matchedProtocols.get(e)}},{key:"getBestProtocolMatch",value:function(){this.updateProtocolMatches();var e=this._getHighestScoringProtocol();return s.a.trace("ProtocolEngine::getBestProtocolMatch bestMatch",e),e}},{key:"getNumberOfAvailablePriors",value:function(e){return this.getAvailableStudyPriors(e).length}},{key:"getAvailableStudyPriors",value:function(e){var t=this.priorStudies.get(e);return t instanceof Array?t:[]}},{key:"matchImages",value:function(e,t){var n=this;s.a.trace("ProtocolEngine::matchImages");var r,i=e.studyMatchingRules,o=e.seriesMatchingRules,a=e.imageMatchingRules,u=[],c=this.studies[0],l=c.getFirstInstance(),f=0,p=0;c.setCustomAttribute("abstractPriorValue",0),l instanceof ga&&l.setCustomAttribute("abstractPriorValue",0),i.forEach((function(e){if("abstractPriorValue"===e.attribute){var i,o=Object.keys(e.constraint)[0],a=Object.keys(e.constraint[o])[0],u=e.constraint[o][a];if(u=parseInt(u,10),r||(r=n.getAvailableStudyPriors(c.getObjectID())),-1===u)i=r[r.length-1];else{var l=Math.max(u-1,0);i=r[l]}if(!i instanceof va)return;var f=i.getObjectID();if(n.studies.find((function(e){return e.getObjectID()===f})))return;n.studyMetadataSource.loadStudy(i).then((function(e){e.setCustomAttribute("abstractPriorValue",u);var r=e.getFirstInstance();r instanceof ga&&r.setCustomAttribute("abstractPriorValue",u),n.studies.push(e),n.updateViewports(t)}),(function(e){throw s.a.warn(e),new T.a("ProtocolEngine::matchImages could not get study metadata for the Study with the following ObjectID: ".concat(f))}))}})),this.studies.forEach((function(e){var t=Ho(e.getFirstInstance(),i);!0===t.requiredFailed||t.score<f||(f=t.score,e.forEachSeries((function(n){var r=Ho(n.getFirstInstance(),o);!0===r.requiredFailed||r.score<p||(p=r.score,n.forEachInstance((function(i,o){if(Q(i.getTagValue("SOPClassUID"))||i.getTagValue("Rows")){var s=Ho(i,a);if(!0!==s.requiredFailed){var c={passed:[],failed:[]};c.passed=c.passed.concat(s.details.passed),c.passed=c.passed.concat(r.details.passed),c.passed=c.passed.concat(t.details.passed),c.failed=c.failed.concat(s.details.failed),c.failed=c.failed.concat(r.details.failed),c.failed=c.failed.concat(t.details.failed);var l=s.score+r.score+t.score,f=i.getSOPInstanceUID(),p={StudyInstanceUID:e.getStudyInstanceUID(),SeriesInstanceUID:n.getSeriesInstanceUID(),SOPInstanceUID:f,currentImageIdIndex:o,matchingScore:l,matchDetails:c,sortingInfo:{score:l,study:i.getTagValue("StudyDate")+i.getTagValue("StudyTime"),series:parseInt(i.getTagValue("SeriesNumber")),instance:parseInt(i.getTagValue("InstanceNumber"))}},d=e.findDisplaySet((function(e){return e.images.find((function(e){return e.getSOPInstanceUID()===f}))}));d&&(p.displaySetInstanceUID=d.getUID(),p.imageId=i.getImageId()),u.push(p)}}})))})))}));var d=Object(Go.a)({name:"score",reverse:!0},{name:"study",reverse:!0},{name:"instance"},{name:"series"});u.sort((function(e,t){return d(e.sortingInfo,t.sortingInfo)}));var m=u[0];return s.a.trace("ProtocolEngine::matchImages bestMatch",m),{bestMatch:m,matchingScores:u}}},{key:"setLayout",value:function(e,t){if(e<1&&t<1)s.a.error("Invalid layout ".concat(e," x ").concat(t));else if("function"==typeof this.options.setLayout){for(var n=[],r=e*t,i=0;i<r;i++)n.push({});this.options.setLayout({numRows:e,numColumns:t,viewports:n})}else s.a.error("Hanging Protocol Engine setLayout callback is not defined")}},{key:"updateViewports",value:function(e){var t=this;if(s.a.trace("ProtocolEngine::updateViewports viewportIndex: ".concat(e)),this.getNumProtocolStages()){var n=this.getCurrentStageModel();if(n&&n.viewportStructure&&n.viewports&&n.viewports.length&&n.viewportStructure.getLayoutTemplateName()){var r=n.viewportStructure.properties;if(r){var i=[];this.matchDetails=[],n.viewports.forEach((function(e,n){var o=t.matchImages(e,n);t.matchDetails[n]=o;var a={},u=Object.keys(e.viewportSettings);u.forEach((function(t){var n=e.viewportSettings[t];"YES"===n?n=!0:"NO"===n&&(n=!1),a[t]=n}));var c=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ma(n,!0).forEach((function(t){ha(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ma(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({viewportIndex:n,viewport:a},r),l=[];u.forEach((function(t){Bo[t]&&l.push({id:t,value:e.viewportSettings[t]})})),c.renderedCallback=function(e){l.forEach((function(t){s.a.trace("ProtocolEngine::currentViewportData.renderedCallback Applying custom setting: ".concat(t.id)),s.a.trace("ProtocolEngine::currentViewportData.renderedCallback with value: ".concat(t.value)),Bo[t.id].callback(e,t.value)}))};for(var f=o.bestMatch,p=1,d=o.matchingScores.length;p<d&&i.find((function(e){return e.imageId===f.imageId}));)f=o.matchingScores[p],p++;f&&f.imageId&&(c.StudyInstanceUID=f.StudyInstanceUID,c.SeriesInstanceUID=f.SeriesInstanceUID,c.SOPInstanceUID=f.SOPInstanceUID,c.currentImageIdIndex=f.currentImageIdIndex,c.displaySetInstanceUID=f.displaySetInstanceUID,c.imageId=f.imageId),i.push(c)})),this.setLayout(r.Rows,r.Columns),"function"==typeof this.options.setViewportSpecificData?void 0!==e&&i[e]?this.options.setViewportSpecificData(e,i[e]):i.forEach((function(e){t.options.setViewportSpecificData(e.viewportIndex,e)})):s.a.error("Hanging Protocol Engine setViewportSpecificData callback is not defined")}}}}},{key:"setHangingProtocol",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];s.a.trace("ProtocolEngine::setHangingProtocol newProtocol",e),s.a.trace("ProtocolEngine::setHangingProtocol updateViewports = ".concat(t)),this.newStageIds=[],da.prototype.isPrototypeOf(e)?this.protocol=e:(this.protocol=new da,this.protocol.fromObject(e)),this.stage=0,t&&this.updateViewports()}},{key:"isNextStageAvailable",value:function(){var e=this.getNumProtocolStages();return this.stage+1<e}},{key:"isPreviousStageAvailable",value:function(){return this.stage-1>=0}},{key:"setCurrentProtocolStage",value:function(e){return!(-1===e&&!this.isPreviousStageAvailable()||1===e&&!this.isNextStageAvailable()||(this.stage+=e,s.a.trace("ProtocolEngine::setCurrentProtocolStage stage = ".concat(this.stage)),this.updateViewports(),0))}},{key:"getNumProtocolStages",value:function(){if(this.protocol&&this.protocol.stages&&this.protocol.stages.length)return this.protocol.stages.length}},{key:"nextProtocolStage",value:function(){s.a.trace("ProtocolEngine::nextProtocolStage"),this.setCurrentProtocolStage(1)||s.a.trace("ProtocolEngine::nextProtocolStage failed")}},{key:"previousProtocolStage",value:function(){s.a.trace("ProtocolEngine::previousProtocolStage"),this.setCurrentProtocolStage(-1)||s.a.trace("ProtocolEngine::previousProtocolStage failed")}}])&&ya(t.prototype,n),r&&ya(t,r),e}();function Ia(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var Sa=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.strategy=t}var t,n,r;return t=e,r=[{key:"getProtocolInstance",value:function(e){var t=e;if(t instanceof Array)t.forEach((function(e,n){if(!(e instanceof da)){var r=new da;r.fromObject(e),t[n]=r}}));else if(void 0!==t&&!(t instanceof da)){var n=new da;n.fromObject(t),t=n}return t}}],(n=[{key:"onReady",value:function(e){this.strategy.onReady(e)}},{key:"getProtocol",value:function(t){var n=this.strategy.getProtocol(t);return e.getProtocolInstance(n)}},{key:"addProtocol",value:function(e){this.strategy.addProtocol(e)}},{key:"updateProtocol",value:function(e,t){this.strategy.updateProtocol(e,t)}},{key:"removeProtocol",value:function(e){this.strategy.removeProtocol(e)}}])&&Ia(t.prototype,n),r&&Ia(t,r),e}();var wa=function(){var e=new da("Default");e.id="defaultProtocol",e.locked=!0;var t=new sa("grid",{Rows:1,Columns:1}),n=new ca,r=new fa(t,"oneByOne");return r.viewports.push(n),e.stages.push(r),e}();function Oa(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var Pa={ProtocolEngine:ba,ProtocolStore:Sa,ProtocolStrategy:function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.hangingProtocols=new Map,this.defaultsAdded=!1}var t,n,r;return t=e,(n=[{key:"onReady",value:function(e){this.defaultsAdded||(s.a.info("Inserting the default hanging protocol..."),this.addProtocol(wa),this.defaultsAdded=!0),e()}},{key:"getProtocol",value:function(e){return e?this.hangingProtocols.get(e):Array.from(this.hangingProtocols.values())}},{key:"addProtocol",value:function(e){this.hangingProtocols.set(e.id,e)}},{key:"updateProtocol",value:function(e,t){this.hangingProtocols.has(e)&&this.hangingProtocols.set(e,t)}},{key:"removeProtocol",value:function(e){this.hangingProtocols.has(e)&&this.hangingProtocols.delete(e)}}])&&Oa(t.prototype,n),r&&Oa(t,r),e}(),addCustomAttribute:function(e,t,n){Lo[e]={name:t,callback:n}},addCustomViewportSetting:function(e,t,n,r){Bo[e]={id:e,text:t,options:n,callback:r}}},Da={};function Ta(e){return(Ta="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var Ea={getNestedObject:function(e){var t={};for(var n in e)if(e.hasOwnProperty(n))for(var r=e[n],i=n.split("."),o=t;i.length;){var a=i.shift();i.length?(o[a]||(o[a]={}),o=o[a]):o[a]=r}return t},getShallowObject:function(e){var t={};return function e(t,n,r){for(var i in n)if(n.hasOwnProperty(i)){var o=t?"".concat(t,".").concat(i):i,a=n[i];"object"===Ta(a)?(a instanceof Array&&(o+="[]"),e(o,a,r)):r[o]=a}}("",e,t),t}},ka={setViewportActive:function(e){return{type:"VIEWPORT::SET_ACTIVE",viewportIndex:e}},setViewportSpecificData:function(e,t){return{type:"VIEWPORT::SET",viewportIndex:e,viewportSpecificData:t}},setViewportLayoutAndData:function(e,t){return{type:"VIEWPORT::SET_VIEWPORT_LAYOUT_AND_DATA",numRows:e.numRows,numColumns:e.numColumns,viewports:e.viewports,viewportSpecificData:t}},setLayout:function(e){return{type:"VIEWPORT::SET_LAYOUT",numRows:e.numRows,numColumns:e.numColumns,viewports:e.viewports}},clearViewportSpecificData:function(e){return{type:"VIEWPORT::CLEAR",viewportIndex:e}},setActiveViewportSpecificData:function(e){return{type:"VIEWPORT::SET_ACTIVE_SPECIFIC_DATA",viewportSpecificData:e}},setUserPreferences:function(e){return{type:"SET_USER_PREFERENCES",state:e}},setExtensionData:function(e,t){return{type:"SET_EXTENSION_DATA",extension:e,data:t}},setTimepoints:function(e){return{type:"SET_TIMEPOINTS",state:e}},setMeasurements:function(e){return{type:"SET_MEASUREMENTS",state:e}},setStudyData:function(e,t){return{type:"SET_STUDY_DATA",StudyInstanceUID:e,data:t}},setServers:function(e){return{type:"SET_SERVERS",servers:e}}};function _a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_a(n,!0).forEach((function(t){ja(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_a(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ja(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ma={},Na=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ma,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_EXTENSION_DATA":var n=t.extension,r=e[n]||{},i=t.data,o=ja({},n,xa({},r,{},i));return xa({},e,{},o);default:return e}},Aa={windowLevelData:{1:{description:"Soft tissue",window:"550",level:"40"},2:{description:"Lung",window:"150",level:"-600"},3:{description:"Liver",window:"150",level:"90"},4:{description:"Bone",window:"2500",level:"480"},5:{description:"Brain",window:"80",level:"40"},6:{description:"Trest",window:"1",level:"1"},7:{description:"",window:"",level:""},8:{description:"",window:"",level:""},9:{description:"",window:"",level:""},10:{description:"",window:"",level:""}},generalPreferences:{}},Ca=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Aa,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_USER_PREFERENCES":return Object.assign({},e,t.state);default:return e}},Ra=n(129),Ua=n.n(Ra);function Va(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function La(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Va(n,!0).forEach((function(t){Fa(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Va(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Fa(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qa(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var Ha={servers:[]},Ga=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ha,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"ADD_SERVER":var n=Ua()([].concat(qa(e.servers),[t.server]),"id");return n.forEach((function(e){return e.active=!0})),La({},e,{servers:n});case"ACTIVATE_SERVER":var r=La({},t.server,{active:!0}),i=e.servers;return i.forEach((function(e){return e.active=!1})),La({},e,{servers:Ua()([].concat(qa(i),[r]),"wadoRoot")});case"SET_SERVERS":return La({},e,{servers:t.servers});default:return e}},Ba={studyData:{}},Wa=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ba,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_STUDY_DATA":var n=Qi()(e.studyData);return n[t.StudyInstanceUID]=Qi()(t.data),Object.assign({},e,{studyData:n});default:return e}},za={timepoints:[],measurements:[]},Ya=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:za,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_TIMEPOINTS":return Object.assign({},e,{timepoints:t.state});case"SET_MEASUREMENTS":return Object.assign({},e,{measurements:t.state});default:return e}},Ka=n(216);function Ja(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function $a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$a(n,!0).forEach((function(t){Za(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$a(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Za(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object(Ka.b)(!1);var Qa={numRows:1,numColumns:1,activeViewportIndex:0,layout:{viewports:[{}]},viewportSpecificData:{}},es=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=e*t,i=Qi()(n);return r<Object.keys(i).length&&Object.keys(i).forEach((function(e){e>r-1&&delete i[e]})),i},ts=function(e,t,n){return n>e*t-1?Qa.activeViewportIndex:n},ns={extensions:Na,preferences:Ca,servers:Ga,studies:Wa,timepointManager:Ya,viewports:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Qa,t=arguments.length>1?arguments[1]:void 0,n=!1;switch(t.type){case"VIEWPORT::SET_ACTIVE":return Object(Ka.a)(e,(function(e){e.activeViewportIndex=ts(e.numRows,e.numColumns,t.viewportIndex)}));case"VIEWPORT::SET_LAYOUT":var r=t.numRows,i=t.numColumns,o=es(r,i,e.viewportSpecificData),a=ts(r,i,e.activeViewportIndex);return Xa({},e,{numRows:t.numRows,numColumns:t.numColumns,layout:{viewports:Ja(t.viewports)},viewportSpecificData:o,activeViewportIndex:a});case"VIEWPORT::SET_VIEWPORT_LAYOUT_AND_DATA":var s=t.numRows,u=t.numColumns,c=es(s,u,t.viewportSpecificData),l=ts(s,u,e.activeViewportIndex);return Xa({},e,{numRows:t.numRows,numColumns:t.numColumns,layout:{viewports:Ja(t.viewports)},viewportSpecificData:c,activeViewportIndex:l});case"VIEWPORT::SET":return Object(Ka.a)(e,(function(e){e.viewportSpecificData[t.viewportIndex]=e.viewportSpecificData[t.viewportIndex]||{},Object.keys(t.viewportSpecificData).forEach((function(n){e.viewportSpecificData[t.viewportIndex][n]=t.viewportSpecificData[n]})),t.viewportSpecificData&&t.viewportSpecificData.plugin&&(e.layout.viewports[t.viewportIndex].plugin=t.viewportSpecificData.plugin)}));case"VIEWPORT::SET_ACTIVE_SPECIFIC_DATA":n=!0;case"VIEWPORT::SET_SPECIFIC_DATA":var f=Qi()(e.layout),p=n?e.activeViewportIndex:t.viewportIndex,d=Qi()(e.viewportSpecificData);return d[p]=Xa({},t.viewportSpecificData),t.viewportSpecificData&&t.viewportSpecificData.plugin&&(f.viewports[p].plugin=t.viewportSpecificData.plugin),Xa({},e,{layout:f,viewportSpecificData:d});case"VIEWPORT::CLEAR":var m=Qi()(e.viewportSpecificData);return t.viewportIndex?(m[t.viewportIndex]={},Xa({},e,{viewportSpecificData:m})):Qa;default:return e}}},rs=window.localStorage,is={saveState:function(e){try{var t=JSON.stringify(e);rs.setItem("state",t)}catch(e){}},loadState:function(){try{var e=rs.getItem("state");if(!e)return;return JSON.parse(e)}catch(e){return}}},os=window.sessionStorage,as={reducers:ns,actions:ka,localStorage:is,sessionStorage:{saveState:function(e){try{var t=JSON.stringify(e);os.setItem("state",t)}catch(e){}},loadState:function(){try{var e=os.getItem("state");if(!e)return;return JSON.parse(e)}catch(e){return}}}};function ss(e){return(ss="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function us(e){return"string"==typeof e}var cs={search:function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=new RegExp(n.trim(),"i");return Object.keys(t).forEach((function(a){var s=t[a];if(s){var u,c=us(r)?s[r]:s;us(c)&&o.test(c)&&i.push(s),((u=s)instanceof Object||"object"===ss(u)&&null!==u)&&e(s,n,r,i)}})),i},encodeId:function(e){var t=e&&e.toString?e.toString():e;return""===t||"string"!=typeof t?"_":t.replace(/[^a-zA-Z0-9-]/g,(function(e){return"_"+e[0].charCodeAt(0).toString(16)+"_"}))}};var ls={getScrollbarSize:function(){var e=document.createElement("p");e.style.width="100%",e.style.height="100%";var t=document.createElement("div");t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.visibility="hidden",t.style.width="100px",t.style.height="100px",t.style.overflow="hidden",t.appendChild(e),document.body.appendChild(t);var n=e.offsetWidth,r=e.offsetHeight;t.style.overflow="scroll";var i=e.offsetWidth,o=e.offsetHeight;return n===i&&(i=t.clientWidth),r===o&&(o=t.clientHeight),document.body.removeChild(t),[n-i,r-o]},getOffset:function(e){var t=0,n=0;if(e.offsetParent)do{n+=e.offsetLeft,t+=e.offsetTop}while(e=e.offsetParent);return{left:n,top:t}},isCharacterKeyPress:function(e){return void 0===e.which||"number"==typeof e.which&&e.which>0&&(!e.ctrlKey&&!e.metaKey&&!e.altKey&&8!==e.which)},handleError:function(e){var t=e.title,n=e.message;t||e instanceof Error&&(t=e.name),n||e instanceof Error&&(n=e.message),Object.assign({title:t,message:n,class:"themed",hideConfirm:!0,cancelLabel:"Dismiss",cancelClass:"btn-secondary"},e||{}),s.a.error(e)}},fs=[],ps={name:"UINotificationService",hide:function(e){return ds._hide({id:e})},show:function(e){var t=e.title,n=e.message,r=e.duration,i=void 0===r?5e3:r,o=e.position,a=void 0===o?"bottomRight":o,s=e.type,u=void 0===s?"info":s,c=e.autoClose,l=void 0===c||c,f=e.action,p=void 0===f?null:f;return ds._show({title:t,message:n,duration:i,position:a,type:u,autoClose:l,action:p})},setServiceImplementation:function(e){var t=e.hide,n=e.show;t&&(ds._hide=t);if(n)for(ds._show=n;fs.length>0;){var r=fs.pop();ds._show(r)}}},ds={_hide:function(){return console.warn("hide() NOT IMPLEMENTED")},_show:function(e){fs.push(e),console.warn("show() NOT IMPLEMENTED")}};var ms={name:"UINotificationService",create:function(e){e.configuration;return ps}},ys={name:"UIModalService",hide:function(){return hs._hide()},show:function(e){var t=e.content,n=void 0===t?null:t,r=e.contentProps,i=void 0===r?null:r,o=e.shouldCloseOnEsc,a=void 0!==o&&o,s=e.isOpen,u=void 0===s||s,c=e.onClose,l=void 0===c?null:c,f=e.closeButton,p=void 0===f||f,d=e.title,m=void 0===d?null:d,y=e.fullscreen,h=void 0!==y&&y,v=e.customClassName,g=void 0===v?null:v,b=e.showScrollbar,I=void 0!==b&&b,S=e.noScroll,w=void 0!==S&&S;return hs._show({content:n,contentProps:i,shouldCloseOnEsc:a,isOpen:u,onClose:l,closeButton:p,title:m,fullscreen:h,customClassName:g,showScrollbar:I,noScroll:w})},setServiceImplementation:function(e){var t=e.hide,n=e.show;t&&(hs._hide=t);n&&(hs._show=n)}},hs={_hide:function(){return console.warn("hide() NOT IMPLEMENTED")},_show:function(){return console.warn("show() NOT IMPLEMENTED")}};var vs={name:"UIModalService",create:function(e){e.configuration;return ys}},gs={name:"UIDialogService",dismiss:function(e){var t=e.id;return bs._dismiss({id:t})},dismissAll:function(){return bs._dismissAll()},create:function(e){var t=e.id,n=e.content,r=e.contentProps,i=e.onStart,o=e.onDrag,a=e.onStop,s=e.centralize,u=void 0!==s&&s,c=e.preservePosition,l=void 0===c||c,f=e.isDraggable,p=void 0===f||f,d=e.showOverlay,m=void 0!==d&&d,y=e.defaultPosition;return bs._create({id:t,content:n,contentProps:r,onStart:i,onDrag:o,onStop:a,centralize:u,preservePosition:l,isDraggable:p,showOverlay:m,defaultPosition:y})},setServiceImplementation:function(e){var t=e.dismiss,n=e.dismissAll,r=e.create;t&&(bs._dismiss=t);n&&(bs._dismissAll=n);r&&(bs._create=r)}},bs={_dismiss:function(){return console.warn("dismiss() NOT IMPLEMENTED")},_dismissAll:function(){return console.warn("dismissAll() NOT IMPLEMENTED")},_create:function(){return console.warn("create() NOT IMPLEMENTED")}};var Is={name:"UIDialogService",create:function(e){e.configuration;return gs}};function Ss(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ws(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Os(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ps=["id","SOPInstanceUID","FrameOfReferenceUID","referenceSeriesUID","label","description","type","unit","area","points","source"],Ds={MEASUREMENT_UPDATED:"event::measurement_updated",MEASUREMENT_ADDED:"event::measurement_added"},Ts={POLYLINE:"value_type::polyline",POINT:"value_type::point",ELLIPSE:"value_type::ellipse",MULTIPOINT:"value_type::multipoint",CIRCLE:"value_type::circle"},Es=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Os(this,"_arrayOfObjects",(function(e){return Object.entries(e).map((function(e){return Os({},e[0],e[1])}))})),this.sources={},this.mappings={},this.measurements={},this.listeners={},Object.defineProperty(this,"EVENTS",{value:Ds,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(this,"VALUE_TYPES",{value:Ts,writable:!1,enumerable:!0,configurable:!1})}var t,n,r;return t=e,(n=[{key:"getMeasurements",value:function(){var e=this,t=this._arrayOfObjects(this.measurements);return t&&t.map((function(t){return e.measurements[Object.keys(t)[0]]}))}},{key:"getMeasurement",value:function(e){var t=null,n=this.measurements[e];return n&&Object.keys(n).length>0&&(t=this.measurements[e]),t}},{key:"createSource",value:function(e,t){var n=this;if(e){if(t){var r=Object(D.a)(),i={id:r,name:e,version:t,addOrUpdate:function(e,t){return n.addOrUpdate(i,e,t)},getAnnotation:function(e,t){return n.getAnnotation(i,e,t)}};return s.a.info("New '".concat(e,"@").concat(t,"' source added.")),this.sources[r]=i,i}s.a.warn("Source version not provided. Exiting early.")}else s.a.warn("Source name not provided. Exiting early.")}},{key:"addMapping",value:function(e,t,n,r,i){if(this._isValidSource(e))if(n)if(t)if(r)if(i){var o={matchingCriteria:n,definition:t,toSourceSchema:r,toMeasurementSchema:i};Array.isArray(this.mappings[e.id])?this.mappings[e.id].push(o):this.mappings[e.id]=[o],s.a.info("New measurement mapping added to source '".concat(this._getSourceInfo(e),"'."))}else s.a.warn("Measurement mapping function not provided. Exiting early.");else s.a.warn("Source mapping function not provided. Exiting early.");else s.a.warn("Definition not provided. Exiting early.");else s.a.warn("Matching criteria not provided. Exiting early.");else s.a.warn("Invalid source. Exiting early.")}},{key:"getAnnotation",value:function(e,t,n){if(this._isValidSource(e))if(t){var r=this._getMappingByMeasurementSource(n,t);if(r)return r.toSourceSchema(i,t);var i=this.getMeasurement(n),o=this._getMatchingMapping(e,t,i);if(o)return s.a.info("Matching mapping found:",o),(0,o.toSourceSchema)(i,o.definition)}else s.a.warn("No source definition provided. Exiting early.");else s.a.warn("Invalid source. Exiting early.")}},{key:"addOrUpdate",value:function(e,t,n){if(this._isValidSource(e)){var r=this._getSourceInfo(e);if(t)if(this._sourceHasMappings(e)){var i={};try{(i=(0,this.mappings[e.id].find((function(e){return e.definition===t})).toMeasurementSchema)(n)).source=e}catch(e){return void s.a.warn("Failed to map '".concat(r,"' measurement for definition ").concat(t,":"),e.message)}if(this._isValidMeasurement(i)){var o=n.id;o||(o=Object(D.a)(),s.a.warn("Measurement ID not found. Generating UID: ".concat(o)));var a=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ss(n,!0).forEach((function(t){Os(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ss(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},i,{modifiedTimestamp:Math.floor(Date.now()/1e3),id:o});return this.measurements[o]?(s.a.info("Measurement already defined. Updating measurement.",a),this.measurements[o]=a,this._broadcastChange(this.EVENTS.MEASUREMENT_UPDATED,e,a)):(s.a.info("Measurement added.",a),this.measurements[o]=a,this._broadcastChange(this.EVENTS.MEASUREMENT_ADDED,e,a)),a.id}s.a.warn("Attempting to add or update a invalid measurement provided by '".concat(r,"'. Exiting early."))}else s.a.warn("No measurement mappings found for '".concat(r,"' source. Exiting early."));else s.a.warn("No source definition provided. Exiting early.")}else s.a.warn("Invalid source. Exiting early.")}},{key:"subscribe",value:function(e,t){var n=this;if(this._isValidEvent(e)){var r=Object(D.a)(),i={id:r,callback:t};return console.info("Subscribing to '".concat(e,"'.")),Array.isArray(this.listeners[e])?this.listeners[e].push(i):this.listeners[e]=[i],{unsubscribe:function(){return n._unsubscribe(e,r)}}}throw new Error("Event ".concat(e," not supported."))}},{key:"_getMappingByMeasurementSource",value:function(e,t){var n=this.getMeasurement(e);if(this._isValidSource(n.source))return this.mappings[n.source.id].find((function(e){return e.definition===t}))}},{key:"_getMatchingMapping",value:function(e,t,n){return this.mappings[e.id].filter((function(e){return e.definition===t})).find((function(e){var t=e.matchingCriteria;return n.points&&n.points.length===t.points}))}},{key:"_getSourceInfo",value:function(e){return"".concat(e.name,"@").concat(e.version)}},{key:"_isValidSource",value:function(e){return e&&this.sources[e.id]}},{key:"_sourceHasMappings",value:function(e){return Array.isArray(this.mappings[e.id])&&this.mappings[e.id].length}},{key:"_broadcastChange",value:function(e,t,n){var r=Object.keys(this.listeners).length>0,i=Array.isArray(this.listeners[e]);r&&i&&this.listeners[e].forEach((function(e){e.callback({source:t,measurement:n})}))}},{key:"_unsubscribe",value:function(e,t){if(this.listeners[e]){var n=this.listeners[e];Array.isArray(n)?this.listeners[e]=n.filter((function(e){return e.id!==t})):this.listeners[e]=void 0}}},{key:"_isValidMeasurement",value:function(e){return Object.keys(e).forEach((function(e){if(!Ps.includes(e))return s.a.warn("Invalid measurement key: ".concat(e)),!1})),!0}},{key:"_isValidEvent",value:function(e){return Object.values(this.EVENTS).includes(e)}}])&&ws(t.prototype,n),r&&ws(t,r),e}(),ks={name:"MeasurementService",create:function(e){e.configuration;return new Es}},_s={name:"LoggerService",info:function(e){var t=e.message,n=e.displayOnConsole;return xs._info({message:t,displayOnConsole:n})},error:function(e){var t=e.error,n=e.stack,r=e.message,i=e.displayOnConsole;return xs._error({error:t,stack:n,message:r,displayOnConsole:i})},setServiceImplementation:function(e){var t=e.info,n=e.error;t&&(xs._info=t);n&&(xs._error=n)}},xs={_info:function(){return console.warn("info() NOT IMPLEMENTED")},_error:function(){return console.warn("error() NOT IMPLEMENTED")}};var js={name:"LoggerService",create:function(e){e.configuration;return _s}},Ms={MODULE_TYPES:a.a,CommandsManager:h,ExtensionManager:l,HotkeysManager:O,ServicesManager:d,utils:Gn.a,hotkeys:v.a,studies:Hn,redux:as,classes:Mn,metadata:Ro,header:Da,cornerstone:go,string:cs,ui:ls,user:Li.a,errorHandler:ue.a,object:Ea,log:s.a,DICOMWeb:P.a,DICOMSR:ho,viewer:{},measurements:ro,hangingProtocols:Pa,UINotificationService:ms,UIModalService:vs,UIDialogService:Is,MeasurementService:ks,LoggerService:js};t.a=Ms}}]);