Files
dicom-proxy/public/202.bundle.358aa5cd5419f9459a04.js
2025-03-11 13:16:07 +07:00

3 lines
84 KiB
JavaScript

/*! For license information please see 202.bundle.358aa5cd5419f9459a04.js.LICENSE.txt */
(self.webpackChunk=self.webpackChunk||[]).push([[202],{91202:(e,t,n)=>{"use strict";n.d(t,{Y:()=>qe,adaptersRT:()=>Jn,adaptersSEG:()=>Xn,adaptersSR:()=>Wn,helpers:()=>x});var r=n(67540),a=n(58955),i=n(87513),o=n.n(i),u=n(11677),s=n.n(u),c=n(45451);function l(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 d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){v(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function f(){f=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",o=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function c(e,t,n,a){var i=t&&t.prototype instanceof p?t:p,o=Object.create(i.prototype),u=new b(a||[]);return r(o,"_invoke",{value:D(e,n,u)}),o}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var d={};function p(){}function g(){}function h(){}var m={};s(m,i,(function(){return this}));var v=Object.getPrototypeOf,S=v&&v(v(x([])));S&&S!==t&&n.call(S,i)&&(m=S);var y=h.prototype=p.prototype=Object.create(m);function I(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function T(e,t){function a(r,i,o,u){var s=l(e[r],e,i);if("throw"!==s.type){var c=s.arg,d=c.value;return d&&"object"==typeof d&&n.call(d,"__await")?t.resolve(d.__await).then((function(e){a("next",e,o,u)}),(function(e){a("throw",e,o,u)})):t.resolve(d).then((function(e){c.value=e,o(c)}),(function(e){return a("throw",e,o,u)}))}u(s.arg)}var i;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){a(e,n,t,r)}))}return i=i?i.then(r,r):r()}})}function D(e,t,n){var r="suspendedStart";return function(a,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw i;return w()}for(n.method=a,n.arg=i;;){var o=n.delegate;if(o){var u=O(o,n);if(u){if(u===d)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var s=l(e,t,n);if("normal"===s.type){if(r=n.done?"completed":"suspendedYield",s.arg===d)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r="completed",n.method="throw",n.arg=s.arg)}}}function O(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,O(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var a=l(r,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,d;var i=a.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,d):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function C(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function R(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function b(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function x(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:w}}function w(){return{value:void 0,done:!0}}return g.prototype=h,r(y,"constructor",{value:h,configurable:!0}),r(h,"constructor",{value:g,configurable:!0}),g.displayName=s(h,u,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,h):(e.__proto__=h,s(e,u,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},I(T.prototype),s(T.prototype,o,(function(){return this})),e.AsyncIterator=T,e.async=function(t,n,r,a,i){void 0===i&&(i=Promise);var o=new T(c(t,n,r,a),i);return e.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},I(y),s(y,u,"Generator"),s(y,i,(function(){return this})),s(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=x,b.prototype={constructor:b,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(R),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return o.type="throw",o.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],o=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var u=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(u&&s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),R(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;R(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:x(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},e}function p(e,t,n,r,a,i,o){try{var u=e[i](o),s=u.value}catch(e){return void n(e)}u.done?t(s):Promise.resolve(s).then(r,a)}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(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,O(r.key),r)}}function m(e,t,n){return t&&h(e.prototype,t),n&&h(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function v(e,t,n){return(t=O(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,u=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(u.push(r.value),u.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return u}}(e,t)||I(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e){return function(e){if(Array.isArray(e))return T(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||I(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e,t){if(e){if("string"==typeof e)return T(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?T(e,t):void 0}}function T(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function D(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=I(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){u=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(u)throw i}}}}function O(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var C=function(e){return Array.isArray(e)?e:[e]},R=function(e){return function(t){return t.ConceptNameCodeSequence.CodeMeaning===e}},b=r.aT.datasetToDict;var x=Object.freeze({__proto__:null,codeMeaningEquals:R,downloadDICOMData:function(e,t){var n;if(e instanceof ArrayBuffer)n=new Blob([e],{type:"application/dicom"});else{if(!e._meta)throw new Error("Dataset must have a _meta property");var r=a.lW.from(b(e).write());n=new Blob([r],{type:"application/dicom"})}var i=document.createElement("a");i.href=window.URL.createObjectURL(n),i.download=t,i.click()},graphicTypeEquals:function(e){return function(t){return t&&t.GraphicType===e}},toArray:C}),w=r.hC.TID1500,M=r.hC.addAccessors,E=r.U7.StructuredReport,P=r.oq.Normalizer,A=w.TID1500MeasurementReport,N=w.TID1501MeasurementGroup,q=r.aT.DicomMetaDictionary,_={CodingSchemeDesignator:"DCM",CodeValue:"121071"},U={CodingSchemeDesignator:"SCT",CodeValue:"363698007"},V={CodingSchemeDesignator:"SRT",CodeValue:"G-C0E3"},k=function(e,t,n){var r=e.ConceptNameCodeSequence;if(r){var a=r.CodingSchemeDesignator,i=r.CodeValue;return a==t.CodingSchemeDesignator&&i==t.CodeValue||n&&a==n.CodingSchemeDesignator&&i==n.CodeValue}};var G=function(){function e(){g(this,e)}return m(e,null,[{key:"getSetupMeasurementData",value:function(e){var t=e.ContentSequence,n=C(t),r=n.find((function(e){return k(e,_)})),a=n.filter((function(e){return k(e,U,V)}))||[],i=n.find((function(e){return"NUM"===e.ValueType})),o=C(i.ContentSequence).find((function(e){return"SCOORD"===e.ValueType})),u=o.ContentSequence.ReferencedSOPSequence,s=u.ReferencedSOPInstanceUID,c=u.ReferencedFrameNumber,l={sopInstanceUid:s,frameIndex:c||1,complete:!0,finding:r?M(r.ConceptCodeSequence):void 0,findingSites:a.map((function(e){return M(e.ConceptCodeSequence)}))};l.finding&&(l.description=l.finding.CodeMeaning);var d=l.findingSites&&l.findingSites[0];return d&&(l.location=d[0]&&d[0].CodeMeaning||d.CodeMeaning),{defaultState:l,findingGroup:r,findingSiteGroups:a,NUMGroup:i,SCOORDGroup:o,ReferencedSOPSequence:u,ReferencedSOPInstanceUID:s,ReferencedFrameNumber:c}}},{key:"generateReport",value:function(e,t,n){var r=[],a=Object.keys(e)[0];if(!a)throw new Error("No measurements provided.");var i=t.get("generalSeriesModule",a),o=i.studyInstanceUID,u=i.seriesInstanceUID;Object.keys(e).forEach((function(n){var a=t.get("sopCommonModule",n),i=t.get("frameNumber",n),o=e[n],u=Object.keys(o),s={ReferencedSOPClassUID:a.sopClassUID,ReferencedSOPInstanceUID:a.sopInstanceUID};P.isMultiframeSOPClassUID(a.sopClassUID)&&(s.ReferencedFrameNumber=i);var c=[];u.forEach((function(e){var t=function(e,t,n){var r=t[e],a=G.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[e];if(r&&r.data&&r.data.length&&a){var i=r.data.map((function(e){return function(e,t,n,r){var a=r.getTID300RepresentationArguments(e);return a.ReferencedSOPSequence=n,new r.TID300Representation(a)}(e,0,n,a)}));return new N(i)}}(e,o,s);t&&c.push(t)})),r=r.concat(c)}));var s=new A({TID1501MeasurementGroups:r},n),c=new Uint8Array(2);c[1]=1;var l={StudyInstanceUID:o,SeriesInstanceUID:u},d={FileMetaInformationVersion:{Value:[c.buffer],vr:"OB"},TransferSyntaxUID:{Value:["1.2.840.10008.1.2.1"],vr:"UI"},ImplementationClassUID:{Value:[q.uid()],vr:"UI"},ImplementationVersionName:{Value:["dcmjs"],vr:"SH"}};l._meta=d,l._vrMap={PixelData:"OW"};var f=new E([l]),p=s.contentItem(l);return f.dataset=Object.assign(f.dataset,p),f.dataset._meta=d,f}},{key:"generateToolState",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("1500"!==t.ContentTemplateSequence.TemplateIdentifier)throw new Error("This package can currently only interpret DICOM SR TID 1500");var r=C(t.ContentSequence).find(R("Imaging Measurements")),a=C(r.ContentSequence).filter(R("Measurement Group")),i={},o=e.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE,u=[];return Object.keys(o).forEach((function(e){u.push(o[e]),i[e]=[]})),a.forEach((function(e){var r=C(e.ContentSequence).find((function(e){return"Tracking Identifier"===e.ConceptNameCodeSequence.CodeMeaning})).TextValue,a=n.getToolClass?n.getToolClass(e,t,u):u.find((function(e){return e.isValidCornerstoneTrackingIdentifier(r)}));if(a){var o=a.getMeasurementData(e);console.log("=== ".concat(a.toolType," ===")),console.log(o),i[a.toolType].push(o)}})),i}},{key:"registerTool",value:function(t){e.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE[t.utilityToolType]=t,e.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[t.toolType]=t,e.MEASUREMENT_BY_TOOLTYPE[t.toolType]=t.utilityToolType}}]),e}();G.MEASUREMENT_BY_TOOLTYPE={},G.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE={},G.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE={};var L="cornerstoneTools@^4.0.0",F=r.hC.TID300.Length,j="Length",B=function(){function e(){g(this,e)}return m(e,null,[{key:"getMeasurementData",value:function(t){var n=G.getSetupMeasurementData(t),r=n.defaultState,a=n.NUMGroup,i=n.SCOORDGroup,o=d(d({},r),{},{length:a.MeasuredValueSequence.NumericValue,toolType:e.toolType,handles:{start:{},end:{},textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}}),u=S(i.GraphicData,4);return o.handles.start.x=u[0],o.handles.start.y=u[1],o.handles.end.x=u[2],o.handles.end.y=u[3],o}},{key:"getTID300RepresentationArguments",value:function(e){var t=e.handles,n=e.finding,r=e.findingSites;return{point1:t.start,point2:t.end,distance:e.length,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:Length",finding:n,findingSites:r||[]}}}]),e}();B.toolType=j,B.utilityToolType=j,B.TID300Representation=F,B.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=S(e.split(":"),2),n=t[0],r=t[1];return n===L&&r===j},G.registerTool(B);var Y=r.hC.TID300.Polyline,z=function(){function e(){g(this,e)}return m(e,null,[{key:"getMeasurementData",value:function(t){for(var n=G.getSetupMeasurementData(t),r=n.defaultState,a=n.SCOORDGroup,i=n.NUMGroup,o=d(d({},r),{},{toolType:e.toolType,handles:{points:[],textBox:{active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}},cachedStats:{area:i?i.MeasuredValueSequence.NumericValue:0},color:void 0,invalidated:!0}),u=a.GraphicData,s=0;s<u.length;s+=2)o.handles.points.push({x:u[s],y:u[s+1]});return o}},{key:"getTID300RepresentationArguments",value:function(e){var t=e.handles,n=e.finding,r=e.findingSites,a=e.cachedStats,i=void 0===a?{}:a,o=t.points,u=i.area,s=void 0===u?0:u,c=i.perimeter;return{points:o,area:s,perimeter:void 0===c?0:c,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:FreehandRoi",finding:n,findingSites:r||[]}}}]),e}();z.toolType="FreehandRoi",z.utilityToolType="FreehandRoi",z.TID300Representation=Y,z.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=S(e.split(":"),2),n=t[0],r=t[1];return n===L&&r===z.toolType},G.registerTool(z);var H=r.hC.TID300.Bidirectional,W="Bidirectional",X=function(){function e(){g(this,e)}return m(e,null,[{key:"getMeasurementData",value:function(t){var n=t.ContentSequence,r=C(n).find((function(e){return"121071"===e.ConceptNameCodeSequence.CodeValue})),a=C(n).filter((function(e){return"G-C0E3"===e.ConceptNameCodeSequence.CodeValue})),i=C(n).find((function(e){return"Long Axis"===e.ConceptNameCodeSequence.CodeMeaning})),o=C(i.ContentSequence).find((function(e){return"SCOORD"===e.ValueType})),u=C(n).find((function(e){return"Short Axis"===e.ConceptNameCodeSequence.CodeMeaning})),s=C(u.ContentSequence).find((function(e){return"SCOORD"===e.ValueType})),c=o.ContentSequence.ReferencedSOPSequence,l=c.ReferencedSOPInstanceUID,d=c.ReferencedFrameNumber,f=String(i.MeasuredValueSequence.NumericValue),p=String(u.MeasuredValueSequence.NumericValue),g=Math.max(o.GraphicData[0],o.GraphicData[2],s.GraphicData[0],s.GraphicData[2]),h=Math.max(o.GraphicData[1],o.GraphicData[3],s.GraphicData[1],s.GraphicData[3]);return{sopInstanceUid:l,frameIndex:d||1,toolType:e.toolType,active:!1,handles:{start:{x:o.GraphicData[0],y:o.GraphicData[1],drawnIndependently:!1,allowedOutsideImage:!1,active:!1,highlight:!1,index:0},end:{x:o.GraphicData[2],y:o.GraphicData[3],drawnIndependently:!1,allowedOutsideImage:!1,active:!1,highlight:!1,index:1},perpendicularStart:{x:s.GraphicData[0],y:s.GraphicData[1],drawnIndependently:!1,allowedOutsideImage:!1,active:!1,highlight:!1,index:2},perpendicularEnd:{x:s.GraphicData[2],y:s.GraphicData[3],drawnIndependently:!1,allowedOutsideImage:!1,active:!1,highlight:!1,index:3},textBox:{highlight:!1,hasMoved:!0,active:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0,x:g+10,y:h+10}},invalidated:!1,isCreating:!1,longestDiameter:f,shortestDiameter:p,toolName:"Bidirectional",visible:!0,finding:r?r.ConceptCodeSequence:void 0,findingSites:a.map((function(e){return e.ConceptCodeSequence}))}}},{key:"getTID300RepresentationArguments",value:function(e){var t=e.handles,n=t.start,r=t.end,a=t.perpendicularStart,i=t.perpendicularEnd,o=e.shortestDiameter;return{longAxis:{point1:n,point2:r},shortAxis:{point1:a,point2:i},longAxisLength:e.longestDiameter,shortAxisLength:o,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:Bidirectional",finding:e.finding,findingSites:e.findingSites||[]}}}]),e}();X.toolType=W,X.utilityToolType=W,X.TID300Representation=H,X.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=S(e.split(":"),2),n=t[0],r=t[1];return n===L&&r===W},G.registerTool(X);var J=r.hC.TID300.Ellipse,K="EllipticalRoi",Q=function(){function e(){g(this,e)}return m(e,null,[{key:"getMeasurementData",value:function(t){var n=G.getSetupMeasurementData(t),r=n.defaultState,a=n.NUMGroup,i=n.SCOORDGroup.GraphicData,o=[{x:i[0],y:i[1]},{x:i[2],y:i[3]}],u=[{x:i[4],y:i[5]},{x:i[6],y:i[7]}],s=Math.sqrt(Math.pow(u[0].x-u[1].x,2)+Math.pow(u[0].y-u[1].y,2)),c=(u[1].x-u[0].x)/s,l=(u[1].y-u[0].y)/s,f=s/2,p={x:o[0].x+c*f,y:o[0].y+l*f},g={x:o[1].x-c*f,y:o[1].y-l*f};return d(d({},r),{},{toolType:e.toolType,active:!1,cachedStats:{area:a?a.MeasuredValueSequence.NumericValue:0},handles:{end:{x:p.x,y:p.y,highlight:!1,active:!1},initialRotation:0,start:{x:g.x,y:g.y,highlight:!1,active:!1},textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}},invalidated:!0,visible:!0})}},{key:"getTID300RepresentationArguments",value:function(e){var t=e.cachedStats,n=void 0===t?{}:t,r=e.handles,a=e.finding,i=e.findingSites,o=r.start,u=r.end,s=n.area,c=Math.abs(o.x-u.x)/2,l=Math.abs(o.y-u.y)/2,d=[],f={x:(o.x+u.x)/2,y:(o.y+u.y)/2};c>l?(d.push({x:f.x-c,y:f.y}),d.push({x:f.x+c,y:f.y}),d.push({x:f.x,y:f.y-l}),d.push({x:f.x,y:f.y+l})):(d.push({x:f.x,y:f.y-l}),d.push({x:f.x,y:f.y+l}),d.push({x:f.x-c,y:f.y}),d.push({x:f.x+c,y:f.y}));return{area:s,points:d,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:EllipticalRoi",finding:a,findingSites:i||[]}}}]),e}();Q.toolType=K,Q.utilityToolType=K,Q.TID300Representation=J,Q.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=S(e.split(":"),2),n=t[0],r=t[1];return n===L&&r===K},G.registerTool(Q);var $=r.hC.TID300.Circle,Z="CircleRoi",ee=function(){function e(){g(this,e)}return m(e,null,[{key:"getMeasurementData",value:function(t){var n=G.getSetupMeasurementData(t),r=n.defaultState,a=n.NUMGroup,i=n.SCOORDGroup.GraphicData,o={x:i[0],y:i[1]},u={x:i[2],y:i[3]};return d(d({},r),{},{toolType:e.toolType,active:!1,cachedStats:{area:a?a.MeasuredValueSequence.NumericValue:0,radius:0,perimeter:0},handles:{end:d(d({},u),{},{highlight:!1,active:!1}),initialRotation:0,start:d(d({},o),{},{highlight:!1,active:!1}),textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}},invalidated:!0,visible:!0})}},{key:"getTID300RepresentationArguments",value:function(e){var t=e.cachedStats,n=void 0===t?{}:t,r=e.handles,a=e.finding,i=e.findingSites,o=r.start,u=r.end,s=n.area,c=n.radius,l=2*Math.PI*c,d=[];d.push(o),d.push(u);return{area:s,perimeter:l,radius:c,points:d,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:CircleRoi",finding:a,findingSites:i||[]}}}]),e}();ee.toolType=Z,ee.utilityToolType=Z,ee.TID300Representation=$,ee.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=S(e.split(":"),2),n=t[0],r=t[1];return n===L&&r===Z},G.registerTool(ee);var te=r.hC.TID300.Point,ne="ArrowAnnotate",re="CORNERSTONEFREETEXT",ae=function(){function e(){g(this,e)}return m(e,null,[{key:"getMeasurementData",value:function(t){var n=G.getSetupMeasurementData(t),r=n.defaultState,a=n.SCOORDGroup,i=n.findingGroup.ConceptCodeSequence.CodeMeaning,o=a.GraphicData;return d(d({},r),{},{toolType:e.toolType,active:!1,handles:{start:{x:o[0],y:o[1],highlight:!0,active:!1},end:{x:4==o.length?o[2]:o[0]+20,y:4==o.length?o[3]:o[1]+20,highlight:!0,active:!1},textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}},invalidated:!0,text:i,visible:!0})}},{key:"getTID300RepresentationArguments",value:function(e){var t=[e.handles.start,e.handles.end],n=e.finding,r={points:t,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:ArrowAnnotate",findingSites:e.findingSites||[]};return n&&n.CodeValue===re||(n={CodeValue:re,CodingSchemeDesignator:"CST4",CodeMeaning:e.text}),r.finding=n,r}}]),e}();ae.toolType=ne,ae.utilityToolType=ne,ae.TID300Representation=te,ae.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=S(e.split(":"),2),n=t[0],r=t[1];return n===L&&r===ne},G.registerTool(ae);var ie=r.hC.TID300.CobbAngle,oe="CobbAngle",ue=function(){function e(){g(this,e)}return m(e,null,[{key:"getMeasurementData",value:function(t){var n=G.getSetupMeasurementData(t),r=n.defaultState,a=n.NUMGroup,i=n.SCOORDGroup,o=d(d({},r),{},{rAngle:a.MeasuredValueSequence.NumericValue,toolType:e.toolType,handles:{start:{},end:{},start2:{highlight:!0,drawnIndependently:!0},end2:{highlight:!0,drawnIndependently:!0},textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}}),u=S(i.GraphicData,8);return o.handles.start.x=u[0],o.handles.start.y=u[1],o.handles.end.x=u[2],o.handles.end.y=u[3],o.handles.start2.x=u[4],o.handles.start2.y=u[5],o.handles.end2.x=u[6],o.handles.end2.y=u[7],o}},{key:"getTID300RepresentationArguments",value:function(e){var t=e.handles,n=e.finding,r=e.findingSites;return{point1:t.start,point2:t.end,point3:t.start2,point4:t.end2,rAngle:e.rAngle,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:CobbAngle",finding:n,findingSites:r||[]}}}]),e}();ue.toolType=oe,ue.utilityToolType=oe,ue.TID300Representation=ie,ue.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=S(e.split(":"),2),n=t[0],r=t[1];return n===L&&r===oe},G.registerTool(ue);var se=r.hC.TID300.Angle,ce="Angle",le=function(){function e(){g(this,e)}return m(e,null,[{key:"getMeasurementData",value:function(t){var n=G.getSetupMeasurementData(t),r=n.defaultState,a=n.NUMGroup,i=n.SCOORDGroup,o=d(d({},r),{},{rAngle:a.MeasuredValueSequence.NumericValue,toolType:e.toolType,handles:{start:{},middle:{},end:{},textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}}),u=S(i.GraphicData,8);return o.handles.start.x=u[0],o.handles.start.y=u[1],o.handles.middle.x=u[2],o.handles.middle.y=u[3],o.handles.middle.x=u[4],o.handles.middle.y=u[5],o.handles.end.x=u[6],o.handles.end.y=u[7],o}},{key:"getTID300RepresentationArguments",value:function(e){var t=e.handles,n=e.finding,r=e.findingSites;return{point1:t.start,point2:t.middle,point3:t.middle,point4:t.end,rAngle:e.rAngle,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:Angle",finding:n,findingSites:r||[]}}}]),e}();le.toolType=ce,le.utilityToolType=ce,le.TID300Representation=se,le.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=S(e.split(":"),2),n=t[0],r=t[1];return n===L&&r===ce},G.registerTool(le);var de=r.hC.TID300.Polyline,fe=function(){function e(){g(this,e)}return m(e,null,[{key:"getMeasurementData",value:function(t){var n=G.getSetupMeasurementData(t),r=n.defaultState,a=n.SCOORDGroup,i=n.NUMGroup,o=d(d({},r),{},{toolType:e.toolType,handles:{start:{},end:{},textBox:{active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0},initialRotation:0},cachedStats:{area:i?i.MeasuredValueSequence.NumericValue:0},color:void 0,invalidated:!0}),u=S(a.GraphicData,6);return o.handles.start.x=u[0],o.handles.start.y=u[1],u[2],u[3],o.handles.end.x=u[4],o.handles.end.y=u[5],o}},{key:"getTID300RepresentationArguments",value:function(e){var t=e.finding,n=e.findingSites,r=e.cachedStats,a=void 0===r?{}:r,i=e.handles,o=i.start,u=i.end;return{points:[o,{x:o.x,y:u.y},u,{x:u.x,y:o.y}],area:a.area,perimeter:a.perimeter,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:RectangleRoi",finding:t,findingSites:n||[]}}}]),e}();fe.toolType="RectangleRoi",fe.utilityToolType="RectangleRoi",fe.TID300Representation=de,fe.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=S(e.split(":"),2),n=t[0],r=t[1];return n===L&&r===fe.toolType},G.registerTool(fe);var pe=r.hC.orientation,ge=pe.rotateDirectionCosinesInPlane,he=pe.flipImageOrientationPatient,me=pe.flipMatrix2D,ve=pe.rotateMatrix902D,Se=r.hC.datasetToBlob,ye=r.hC.BitArray,Ie=r.hC.DicomMessage,Te=r.hC.DicomMetaDictionary,De=r.oq.Normalizer,Oe=r.U7.Segmentation,Ce={generateSegmentation:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{includeSliceSpacing:!0},r=t.toolState,a=t.segments,i=e[0],o={x:i.columns,y:i.rows,z:e.length};if(o.xy=o.x*o.y,!be(s,a))throw new Error("No segments to export!");for(var u=i.imageId.includes("?frame"),s=function(e,t,n){var r=[];if(t){var a=e[0].data.byteArray.buffer,i=Ie.readFile(a),o=Te.naturalizeDataset(i.dict);o._meta=Te.namifyDataset(i.meta),r.push(o)}else for(var u=0;u<e.length;u++){var s=e[u].data.byteArray.buffer,c=Ie.readFile(s),l=Te.naturalizeDataset(c.dict);l._meta=Te.namifyDataset(c.meta),r.push(l)}var d=De.normalizeToDataset(r);return new Oe([d],n)}(e,u,n),c=function(e,t,n){for(var r=[],a=[],i=0;i<n.length;i++)n[i]&&(r.push(i),a.push([]));for(var o=0;o<t.length;o++)for(var u=e[t[o].imageId],s=0;s<r.length;s++){var c=r[s];u&&u.brush&&u.brush.data&&u.brush.data[c]&&u.brush.data[c].pixelData&&a[s].push(o)}return{referencedFramesPerSegment:a,segmentIndicies:r}}(r,e,a),l=c.referencedFramesPerSegment,d=c.segmentIndicies,f=0,p=0;p<l.length;p++)f+=l[p].length;s.setNumberOfFrames(f);for(var g=0;g<d.length;g++){var h=d[g],m=l[g],v=m.map((function(e){return e+1})),S=a[h];s.addSegment(S,Re(h,m,r,e,o),v)}return s.bitPackPixelData(),Se(s.dataset)},generateToolState:function(e,t,n){var a=Ie.readFile(t),i=Te.naturalizeDataset(a.dict);i._meta=Te.namifyDataset(a.meta);var u=De.normalizeToDataset([i]),s=n.get("imagePlaneModule",e[0]);s||console.warn("Insufficient metadata, imagePlaneModule missing.");for(var c=function(e){var t=[];t[0]=e,t[1]=he.h(e),t[2]=he.v(e);var n=ge(e,Math.PI/2);return t[3]=n,t[4]=he.h(n),t[5]=he.v(n),t[6]=ge(e,Math.PI),t[7]=ge(e,1.5*Math.PI),t}(Array.isArray(s.rowCosines)?[].concat(y(s.rowCosines),y(s.columnCosines)):[s.rowCosines.x,s.rowCosines.y,s.rowCosines.z,s.columnCosines.x,s.columnCosines.y,s.columnCosines.z]),l=u.SharedFunctionalGroupsSequence,d=l.PlaneOrientationSequence?l.PlaneOrientationSequence.ImageOrientationPatient:void 0,f=u.Columns*u.Rows,p=function(e){var t=[],n=e.SegmentSequence;if(Array.isArray(n))for(var r=0;r<n.length;r++)t.push(n[r]);else t.push(n);return{seriesInstanceUid:e.ReferencedSeriesSequence.SeriesInstanceUID,data:t}}(u),g=function(e){var t=e.SegmentationType;if("BINARY"===t)return ye.unpack(e.PixelData);var n=new Uint8Array(e.PixelData),a=e.MaximumFractionalValue,i=void 0===n.find((function(e){return 0!==e&&e!==a}));if(!i)return void r.cM.warn("This is a fractional segmentation, which is not currently supported.");return r.cM.warn("This segmentation object is actually binary... processing as such."),n}(u),h=u.PerFrameFunctionalGroupsSequence,m={},v=!0,S=0;S<h.length;S++){var I=h[S],T=d||I.PlaneOrientationSequence.ImageOrientationPatient,D=Me(o()(new Uint8Array(g.buffer,S*f,f),[u.Rows,u.Columns]),T,c);if(!D){console.warn("This segmentation object is not in-plane with the source data. Bailing out of IO. It'd be better to render this with vtkjs. "),v=!1;break}var O=I.SegmentIdentificationSequence.ReferencedSegmentNumber-1;xe(m,we(l.DerivationImageSequence&&l.DerivationImageSequence.SourceImageSequence?l.DerivationImageSequence.SourceImageSequence[S]:I.DerivationImageSequence.SourceImageSequence,e,n),O,D)}if(!v)return;return{toolState:m,segMetadata:p}}};function Re(e,t,n,r,a){for(var i=new Uint8Array(a.xy*t.length),o=0,u=0;u<t.length;u++)for(var s=n[r[t[u]].imageId].brush.data[e].pixelData,c=0;c<s.length;c++)i[o]=s[c],o++;return i}function be(e,t){for(var n=0,r=0;r<t.length;r++)t[r]&&n++;return n}function xe(e,t,n,r){e[t]?e[t].brush?e[t].brush.data||(e[t].brush.data=[]):(e[t].brush={},e[t].brush.data=[]):(e[t]={},e[t].brush={},e[t].brush.data=[]),e[t].brush.data[n]={};var a=e[t].brush.data[n];a.pixelData=new Uint8Array(r.data.length);for(var i=a.pixelData,o=0;o<i.length;o++)r.data[o]?i[o]=1:i[o]=0}function we(e,t,n){var r=e.ReferencedSOPInstanceUID,a=e.ReferencedFrameNumber;return a?function(e,t,n,r){var a=n.find((function(n){var a=r.get("sopCommonModule",n);if(a){var i=Number(n.split("frame=")[1]);return a.sopInstanceUID===e&&i===t-1}}));return a}(r,a,t,n):function(e,t,n){return t.find((function(t){var r=n.get("sopCommonModule",t);if(r)return r.sopInstanceUID===e}))}(r,t,n)}function Me(e,t,n){return Ae(t,n[0])?e:Ae(t,n[1])?me.v(e):Ae(t,n[2])?me.h(e):Ae(t,n[3])?ve(e):Ae(t,n[4])?me.h(ve(e)):Ae(t,n[5])?me.v(ve(e)):Ae(t,n[6])?ve(ve(e)):Ae(t,n[7])?ve(ve(ve(e))):void 0}var Ee,Pe=1e-5;function Ae(e,t){return Math.abs(e[0]-t[0])<Pe&&Math.abs(e[1]-t[1])<Pe&&Math.abs(e[2]-t[2])<Pe&&Math.abs(e[3]-t[3])<Pe&&Math.abs(e[4]-t[4])<Pe&&Math.abs(e[5]-t[5])<Pe}!function(e){e.SEGMENTATION_LOAD_PROGRESS="CORNERSTONE_ADAPTER_SEGMENTATION_LOAD_PROGRESS"}(Ee||(Ee={}));var Ne=Ee,qe=Object.freeze({__proto__:null,Events:Ne}),_e=r.hC.orientation,Ue=_e.rotateDirectionCosinesInPlane,Ve=_e.flipImageOrientationPatient,ke=_e.flipMatrix2D,Ge=_e.rotateMatrix902D,Le=_e.nearlyEqual,Fe=r.aT.BitArray,je=r.aT.DicomMessage,Be=r.aT.DicomMetaDictionary,Ye=r.oq.Normalizer,ze=r.U7.Segmentation,He=r.hC.compression,We=He.encode,Xe=He.decode,Je={includeSliceSpacing:!0,rleEncode:!1};function Ke(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Object.assign({},Je,n),a=Array.isArray(t)?t:[t],i=0,o=[],u=function(){for(var e=a[s],t=e.labelmaps2D,n=e.metadata,r=[],u=1;u<n.length;u++)n[u]&&(r[u]=[]);for(var c=function(e){var n=t[e];t[e]&&n.segmentsOnLabelmap.forEach((function(t){0!==t&&(r[t].push(e),i++)}))},l=0;l<t.length;l++)c(l);o[s]=r},s=0;s<a.length;s++)u();e.setNumberOfFrames(i);for(var c=0;c<a.length;c++)for(var l=o[c],d=a[c],f=d.metadata,p=1;p<l.length;p++){var g=l[p];if(g){var h=g.map((function(e){return e+1})),m=f[p],v=Qe(d,g);e.addSegmentFromLabelmap(m,v,p,h)}}if(r.rleEncode){var S=We(e.dataset.PixelData,i,e.dataset.Rows,e.dataset.Columns);e.assignToDataset({BitsAllocated:"8",BitsStored:"8",HighBit:"7",SegmentationType:"FRACTIONAL",SegmentationFractionalType:"PROBABILITY",MaximumFractionalValue:"255"}),e.dataset._meta.TransferSyntaxUID={Value:["1.2.840.10008.1.2.5"],vr:"UI"},e.dataset._vrMap.PixelData="OB",e.dataset.PixelData=S}else e.bitPackPixelData();return e}function Qe(e,t){for(var n=e.labelmaps2D,r=[],a=0;a<t.length;a++){var i=t[a];r.push(n[i].pixelData)}return r}function $e(){var e;return e=f().mark((function e(t,n,r,a){var i,o,u,s,c,l,d,p,g,h,m,v,S,I,T,D,O,C,R,b,x,w,M,E,P,A,N,q,_,U,V,k,G,L;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=a.skipOverlapping,o=void 0!==i&&i,u=a.tolerance,s=void 0===u?.001:u,c=a.TypedArrayConstructor,l=void 0===c?Uint8Array:c,d=a.maxBytesPerChunk,p=void 0===d?199e6:d,g=a.eventTarget,h=a.triggerEvent,m=je.readFile(n),(v=Be.naturalizeDataset(m.dict))._meta=Be.namifyDataset(m.meta),S=Ye.normalizeToDataset([v]),I=r.get("imagePlaneModule",t[0]),T=r.get("generalSeriesModule",t[0]),D=T.seriesInstanceUID,I||console.warn("Insufficient metadata, imagePlaneModule missing."),O=Array.isArray(I.rowCosines)?[].concat(y(I.rowCosines),y(I.columnCosines)):[I.rowCosines.x,I.rowCosines.y,I.rowCosines.z,I.columnCosines.x,I.columnCosines.y,I.columnCosines.z],C=ot(O),R=S.Columns*S.Rows,b=ct(S,D),"1.2.840.10008.1.2.5"!==S._meta.TransferSyntaxUID.Value[0]){e.next=23;break}if(M=Array.isArray(S.PixelData)?S.PixelData:[S.PixelData],x=Xe(M,S.Rows,S.Columns),1!==S.BitsStored){e.next=20;break}return console.warn("No implementation for rle + bitbacking."),e.abrupt("return");case 20:w=[x],e.next=26;break;case 23:if(w=it(S,{maxBytesPerChunk:p})){e.next=26;break}throw new Error("Fractional segmentations are not yet supported");case 26:E=at(S,C,[I.rows,I.columns,t.length],s),P=t.reduce((function(e,t){return e[r.get("generalImageModule",t).sopInstanceUid]=t,e}),{}),A=!1,o||(A=et(w,S,t,C,r,s,l,P)),e.t0=E,e.next="Planar"===e.t0?33:"Perpendicular"===e.t0?35:"Oblique"===e.t0?36:37;break;case 33:return N=A?tt:rt,e.abrupt("break",37);case 35:throw new Error("Segmentations orthogonal to the acquisition plane of the source data are not yet supported.");case 36:throw new Error("Segmentations oblique to the acquisition plane of the source data are not yet supported.");case 37:return(q=[])[0]=[],_=[],U=R*t.length*l.BYTES_PER_ELEMENT,(V=[])[0]=new ArrayBuffer(U),k=t.reduce((function(e,t,n){return e.indices[t]=n,e.metadata[t]=r.get("instance",t),e}),{indices:{},metadata:{}}),G=new Map,e.next=47,N(_,q,V,w,S,t,C,r,s,l,G,P,k,g,h);case 47:return L=new Map,G.forEach((function(e,t){var n=dt(e,S),r=n.xAcc,a=n.yAcc,i=n.zAcc,o=n.count;L.set(t,{x:Math.floor(r/o),y:Math.floor(a/o),z:Math.floor(i/o)})})),e.abrupt("return",{labelmapBufferArray:V,segMetadata:b,segmentsOnFrame:_,segmentsOnFrameArray:q,centroids:L});case 50:case"end":return e.stop()}}),e)})),$e=function(){var t=this,n=arguments;return new Promise((function(r,a){var i=e.apply(t,n);function o(e){p(i,r,a,o,u,"next",e)}function u(e){p(i,r,a,o,u,"throw",e)}o(void 0)}))},$e.apply(this,arguments)}function Ze(e,t,n,r,a,i){var o=void 0;if(!e)return o;var u=e.FrameOfReferenceUID,s=e.PerFrameFunctionalGroupsSequence,c=e.SourceImageSequence,l=e.ReferencedSeriesSequence;if(!s||0===s.length)return o;var d=s[t];if(!d)return o;var f=void 0;if(c&&0!==c.length)f=c[t];else if(d.DerivationImageSequence){var p=d.DerivationImageSequence;Array.isArray(p)&&(p=0!==p.length?p[0]:void 0),p&&(f=p.SourceImageSequence,Array.isArray(f)&&(f=0!==f.length?f[0]:void 0))}(f&&(o=function(e,t){var n=e.ReferencedSOPInstanceUID,r=e.ReferencedFrameNumber;return r?function(e,t,n){var r=n[e];if(!r)return;var a=Number(r.split("frame=")[1]);return a===t-1?r:void 0}(n,r,t):t[n]}(f,i)),void 0===o&&l)&&(o=function(e,t,n,r,a,i){if(void 0===e||void 0===n.PlanePositionSequence||void 0===n.PlanePositionSequence[0]||void 0===n.PlanePositionSequence[0].ImagePositionPatient)return;for(var o=0;o<r.length;++o){var u=a.get("instance",r[o]);if(void 0!==u&&void 0!==u.ImagePositionPatient&&u.FrameOfReferenceUID===t&&u.SeriesInstanceUID===e&&st(n.PlanePositionSequence[0].ImagePositionPatient,u.ImagePositionPatient,i))return r[o]}}((Array.isArray(l)?l[0]:l).SeriesInstanceUID,u,d,n,r,a));return o}function et(e,t,n,r,a,i,u,s){var c=t.SharedFunctionalGroupsSequence,l=t.PerFrameFunctionalGroupsSequence,d=t.SegmentSequence,f=t.Rows,p=t.Columns;if(d.length<2)return!1;for(var g=c.PlaneOrientationSequence?c.PlaneOrientationSequence.ImageOrientationPatient:void 0,h=p*f,m=l.length,v=new Map,y=function(){if(void 0===nt(t,I))return console.warn("Could not retrieve the segment index for frame segment "+I+", skipping this frame."),"continue";var e=Ze(t,I,n,a,i,s);if(!e)return console.warn("Image not present in stack, can't import frame : "+I+"."),"continue";var r=n.findIndex((function(t){return t===e}));if(v.has(r)){var o=v.get(r);o.includes(I)||(o.push(I),v.set(r,o))}else v.set(r,[I])},I=0;I<m;++I)y();var T,O=D(v.entries());try{for(O.s();!(T=O.n()).done;)for(var C=S(T.value,2)[1],R=new u(h).fill(0),b=0;b<C.length;++b){var x=C[b],w=l[x],M=g||w.PlaneOrientationSequence.ImageOrientationPatient,E=lt(e,x*h,h),P=ut(o()(E,[f,p]),M,r,i);if(P){for(var A=P.data,N=0,q=A.length;N<q;++N)if(0!==A[N]&&(R[N]++,R[N]>1))return!0}else console.warn("Individual SEG frames are out of plane with respect to the first SEG frame, this is not yet supported, skipping this frame.")}}catch(e){O.e(e)}finally{O.f()}return!1}function tt(e,t,n,r,a,i,u,c,l,d,f,p){for(var g=a.SharedFunctionalGroupsSequence,h=a.PerFrameFunctionalGroupsSequence,m=a.Rows,v=a.Columns,S=g.PlaneOrientationSequence?g.PlaneOrientationSequence.ImageOrientationPatient:void 0,y=v*m,I=y*i.length*d.BYTES_PER_ELEMENT,T=1,D=0,O=n[D].slice(0),C=s()(t[D]),R=a.SegmentSequence.length,b=1;b<=R;++b){for(var x=function(f){var g=h[f],R=nt(a,f);if(void 0===R)throw new Error("Could not retrieve the segment index. Aborting segmentation loading.");if(R!==b)return w=f,"continue";var x=S||g.PlaneOrientationSequence.ImageOrientationPatient,M=lt(r,f*y,y),E=ut(o()(M,[m,v]),x,u,l);if(!E)throw new Error("Individual SEG frames are out of plane with respect to the first SEG frame. This is not yet supported. Aborting segmentation loading.");var P=Ze(a,f,i,c,l,p);if(!P)return console.warn("Image not present in stack, can't import frame : "+f+"."),w=f,"continue";var A=c.get("instance",P);if(m!==A.Rows||v!==A.Columns)throw new Error("Individual SEG frames have different geometry dimensions (Rows and Columns) respect to the source image reference frame. This is not yet supported. Aborting segmentation loading. ");for(var N=i.findIndex((function(e){return e===P})),q=y*N*d.BYTES_PER_ELEMENT,_=new d(O,q,y),U=E.data,V=!1,k=0,G=E.data.length;k<G;++k)if(U[k]){if(0!==_[k]){++D>=T&&(n[D]=new ArrayBuffer(I),t[D]=[],T++),O=n[D].slice(0),C=s()(t[D]),f=0;break}_[k]=R,V=!0}V&&(C[N]||(C[N]=[]),C[N].push(R),e[N]||(e[N]=[]),e[N].push(R)),w=f},w=0,M=h.length;w<M;++w)x(w);n[D]=O.slice(0),t[D]=s()(C),O=n[D=0].slice(0),C=s()(t[D])}}var nt=function(e,t){var n=e.PerFrameFunctionalGroupsSequence,r=e.SharedFunctionalGroupsSequence,a=n[t];return a&&a.SegmentIdentificationSequence?a.SegmentIdentificationSequence.ReferencedSegmentNumber:r.SegmentIdentificationSequence?r.SegmentIdentificationSequence.ReferencedSegmentNumber:void 0};function rt(e,t,n,r,a,i,u,s,c,l,d,f,p,g,h){var m=a.SharedFunctionalGroupsSequence,v=a.PerFrameFunctionalGroupsSequence,S=a.Rows,y=a.Columns,I=m.PlaneOrientationSequence?m.PlaneOrientationSequence.ImageOrientationPatient:void 0,T=y*S,D=0,O=v.length,C=Math.ceil(O/10),R=h&&g;return new Promise((function(t){!function m(){for(var b=Math.min(D+C,O);D<b;++D){var x=v[D],w=I||x.PlaneOrientationSequence.ImageOrientationPatient,M=lt(r,D*T,T),E=ut(o()(M,[S,y]),w,u,c);if(!E)throw new Error("Individual SEG frames are out of plane with respect to the first SEG frame. This is not yet supported. Aborting segmentation loading.");var P=nt(a,D);if(void 0===P)throw new Error("Could not retrieve the segment index. Aborting segmentation loading.");d.has(P)||d.set(P,{});var A=Ze(a,D,i,s,c,f);if(A){var N=p.metadata[A];if(S!==N.Rows||y!==N.Columns)throw new Error("Individual SEG frames have different geometry dimensions (Rows and Columns) respect to the source image reference frame. This is not yet supported. Aborting segmentation loading. ");for(var q=p.indices[A],_=T*q*l.BYTES_PER_ELEMENT,U=new l(n[0],_,T),V=E.data,k=[],G=0,L=E.data.length;G<L;++G)if(V[G]){for(var F=G;F<L;++F)V[F]&&(U[F]=P,k.push(F));e[q]||(e[q]=[]),e[q].push(P);break}var j=d.get(P);j[q]=k,d.set(P,j)}else console.warn("Image not present in stack, can't import frame : "+D+".")}if(R){var B=Math.round(D/O*100);h(g,Ne.SEGMENTATION_LOAD_PROGRESS,{percentComplete:B})}D<O?setTimeout(m,0):t()}()}))}function at(e,t,n,r){var a=e.SharedFunctionalGroupsSequence,i=e.PerFrameFunctionalGroupsSequence,o=a.PlaneOrientationSequence?a.PlaneOrientationSequence.ImageOrientationPatient:void 0,u=i[0],s=o||u.PlaneOrientationSequence.ImageOrientationPatient;return t.some((function(e){return st(s,e,r)}))?"Planar":function(e,t,n){var r=Math.abs(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]),a=Math.abs(e[3]*t[3]+e[4]*t[4]+e[5]*t[5]);return(r<n||Math.abs(r-1)<n)&&(a<n||Math.abs(a-1)<n)}(s,t[0],r)&&n.includes(e.Rows)&&n.includes(e.Columns)?"Perpendicular":"Oblique"}function it(e,t){var n,a=e.SegmentationType;if(void 0===(n=Array.isArray(e.PixelData)?e.PixelData[0]:e.PixelData)&&r.cM.error("This segmentation pixeldata is undefined."),"BINARY"===a)return function(e,t){for(var n=new Uint8Array(e),r=[],a=8*t,i=Math.ceil(8*n.length/a),o=0;o<i;o++){var u=o*a,s=Math.min(u+a,8*n.length),c=Math.floor(u/8),l=Math.ceil(s/8),d=n.slice(c,l),f=Fe.unpack(d);r.push(f)}return r}(n,t.maxBytesPerChunk);var i=new Uint8Array(n),o=e.MaximumFractionalValue;return void 0===i.find((function(e){return 0!==e&&e!==o}))?(r.cM.warn("This segmentation object is actually binary... processing as such."),i):void 0}function ot(e){var t=[];t[0]=e,t[1]=Ve.h(e),t[2]=Ve.v(e);var n=Ue(e,Math.PI/2);return t[3]=n,t[4]=Ve.h(n),t[5]=Ve.v(n),t[6]=Ue(e,Math.PI),t[7]=Ue(e,1.5*Math.PI),t}function ut(e,t,n,r){return st(t,n[0],r)?e:st(t,n[1],r)?ke.v(e):st(t,n[2],r)?ke.h(e):st(t,n[3],r)?Ge(e):st(t,n[4],r)?Ge(ke.h(e)):st(t,n[5],r)?Ge(ke.v(e)):st(t,n[6],r)?Ge(Ge(e)):st(t,n[7],r)?Ge(Ge(Ge(e))):void 0}function st(e,t,n){if(e.length!=t.length)return!1;for(var r=0;r<e.length;++r)if(!Le(e[r],t[r],n))return!1;return!0}function ct(e,t){var n=e.SegmentSequence;return{seriesInstanceUid:t,data:Array.isArray(n)?[void 0].concat(y(n)):[void 0,n]}}function lt(e,t,n){var r=function(e,t,n){var r=e.reduce((function(e,t){return e+t.length}),0);if(t<0||t+n>r)throw new Error("Offset and length out of bounds");var a=0,i=t;for(;i>=e[a].length;)i-=e[a].length,a++;var o=a,u=i+n;for(;u>e[o].length;)u-=e[o].length,o++;return{start:{chunkIndex:a,offset:i},end:{chunkIndex:o,offset:u}}}(e,t,n);if(r.start.chunkIndex===r.end.chunkIndex)return new Uint8Array(e[r.start.chunkIndex].buffer,r.start.offset,n);for(var a=new Uint8Array(n),i=0,o=r.start.chunkIndex;o<=r.end.chunkIndex;o++){var u=o===r.start.chunkIndex?r.start.offset:0,s=o===r.end.chunkIndex?r.end.offset:e[o].length;a.set(new Uint8Array(e[o].buffer,u,s-u),i),i+=s-u}return a}function dt(e,t){for(var n=0,r=0,a=0,i=0,o=0,u=Object.entries(e);o<u.length;o++){var s=S(u[o],2),c=s[0],l=s[1],d=Number(c);if(l&&0!==l.length){var f,p=D(l);try{for(p.s();!(f=p.n()).done;){var g=f.value,h=Math.floor(g/t.Rows);n+=g%t.Rows,r+=h,a+=d,i++}}catch(e){p.e(e)}finally{p.f()}}}return{xAcc:n,yAcc:r,zAcc:a,count:i}}var ft={generateSegmentation:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=e[0].imageId.includes("?frame");return Ke(function(e,t,n){var r=[];if(t){var a=e[0].data.byteArray.buffer,i=je.readFile(a),o=Be.naturalizeDataset(i.dict);o._meta=Be.namifyDataset(i.meta),r.push(o)}else for(var u=0;u<e.length;u++){var s=e[u].data.byteArray.buffer,c=je.readFile(s),l=Be.naturalizeDataset(c.dict);l._meta=Be.namifyDataset(c.meta),r.push(l)}var d=Ye.normalizeToDataset(r);return new ze([d],n)}(e,r,n),t,n)},generateToolState:function(e,t,n,r){return $e.apply(this,arguments)},fillSegmentation:Ke};var pt={Length:B,FreehandRoi:z,Bidirectional:X,EllipticalRoi:Q,CircleRoi:ee,ArrowAnnotate:ae,MeasurementReport:G,CobbAngle:ue,Angle:le,RectangleRoi:fe},gt={Segmentation:{generateSegmentation:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{includeSliceSpacing:!0},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:4;if(4===r)return ft.generateSegmentation(e,t,n);if(3===r)return Ce.generateSegmentation(e,t,n);console.warn("No generateSegmentation adapater for cornerstone version ".concat(r,", exiting."))},generateToolState:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.001,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:4;if(4===i)return ft.generateToolState(e,t,n,r,a);if(3===i)return Ce.generateToolState(e,t,n);console.warn("No generateToolState adapater for cornerstone version ".concat(i,", exiting."))},fillSegmentation:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{includeSliceSpacing:!0},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:4;if(4===r)return ft.fillSegmentation(e,t,n);console.warn("No generateSegmentation adapater for cornerstone version ".concat(r,", exiting."))}}},ht=function(){return ht=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},ht.apply(this,arguments)};function mt(e,t,n){if(n||2===arguments.length)for(var r,a=0,i=t.length;a<i;a++)!r&&a in t||(r||(r=Array.prototype.slice.call(t,0,a)),r[a]=t[a]);return e.concat(r||Array.prototype.slice.call(t))}var vt="Cornerstone3DTools@^0.1.0",St={CodingSchemeDesignator:"CORNERSTONEJS",codeValues:{CORNERSTONEFREETEXT:"CORNERSTONEFREETEXT"}},yt=r.hC.TID1500,It=r.hC.addAccessors,Tt=r.U7.StructuredReport,Dt=r.oq.Normalizer,Ot=yt.TID1500MeasurementReport,Ct=yt.TID1501MeasurementGroup,Rt=r.aT.DicomMetaDictionary,bt={CodingSchemeDesignator:"DCM",CodeValue:"121071"},xt={CodingSchemeDesignator:"SCT",CodeValue:"363698007"},wt={CodingSchemeDesignator:"SRT",CodeValue:"G-C0E3"},Mt=function(e,t,n){var r=e.ConceptNameCodeSequence;if(r){var a=r.CodingSchemeDesignator,i=r.CodeValue;return a==t.CodingSchemeDesignator&&i==t.CodeValue||n&&a==n.CodingSchemeDesignator&&i==n.CodeValue}};function Et(e,t,n,r){var a=t[e],i=Pt.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[e];if(a&&a.data&&a.data.length&&i){var o=a.data.map((function(e){return function(e,t,n,r,a){var i=r.getTID300RepresentationArguments(e,a);return i.ReferencedSOPSequence=n,new r.TID300Representation(i)}(e,0,n,i,r)}));return new Ct(o)}}var Pt=function(){function e(){}return e.getCornerstoneLabelFromDefaultState=function(e){var t=e.findingSites,n=void 0===t?[]:t,r=e.finding,a=St.codeValues.CORNERSTONEFREETEXT,i=n.find((function(e){return e.CodeValue===a}));return i?i.CodeMeaning:r&&r.CodeValue===a?r.CodeMeaning:void 0},e.generateDatasetMeta=function(){var e=new Uint8Array(2);return e[1]=1,{FileMetaInformationVersion:{Value:[e.buffer],vr:"OB"},TransferSyntaxUID:{Value:["1.2.840.10008.1.2.1"],vr:"UI"},ImplementationClassUID:{Value:[Rt.uid()],vr:"UI"},ImplementationVersionName:{Value:["dcmjs"],vr:"SH"}}},e.getSetupMeasurementData=function(t,n,r,a){var i=t.ContentSequence,o=C(i),u=o.find((function(e){return Mt(e,bt)})),s=o.filter((function(e){return Mt(e,xt,wt)}))||[],c=o.find((function(e){return"NUM"===e.ValueType})),l=C(c.ContentSequence).find((function(e){return"SCOORD"===e.ValueType})),d=l.ContentSequence.ReferencedSOPSequence,f=d.ReferencedSOPInstanceUID,p=d.ReferencedFrameNumber,g=n[f],h=r.get("imagePlaneModule",g),m=u?It(u.ConceptCodeSequence):void 0,v=s.map((function(e){return It(e.ConceptCodeSequence)})),S={description:void 0,sopInstanceUid:f,annotation:{annotationUID:Rt.uid(),metadata:{toolName:a,referencedImageId:g,FrameOfReferenceUID:h.frameOfReferenceUID,label:""},data:void 0},finding:m,findingSites:v};return S.finding&&(S.description=S.finding.CodeMeaning),S.annotation.metadata.label=e.getCornerstoneLabelFromDefaultState(S),{defaultState:S,NUMGroup:c,SCOORDGroup:l,ReferencedSOPSequence:d,ReferencedSOPInstanceUID:f,ReferencedFrameNumber:p}},e.generateReport=function(t,n,r,a){var i=[],o={},u=[],s=e.generateDatasetMeta();Object.keys(t).forEach((function(a){var s=n.get("sopCommonModule",a),c=n.get("instance",a),l=s.sopInstanceUID,d=s.sopClassUID,f=c.SeriesInstanceUID;if(o[l]=f,!u.find((function(e){return e.SeriesInstanceUID===f}))){var p=e.generateDerivationSourceDataset(c);u.push(p)}var g=n.get("frameNumber",a),h=t[a],m=Object.keys(h),v={ReferencedSOPClassUID:d,ReferencedSOPInstanceUID:l,ReferencedFrameNumber:void 0};(c&&c.NumberOfFrames&&c.NumberOfFrames>1||Dt.isMultiframeSOPClassUID(d))&&(v.ReferencedFrameNumber=g);var S=[];m.forEach((function(e){var t=Et(e,h,v,r);t&&S.push(t)})),i=i.concat(S)}));var c=new Ot({TID1501MeasurementGroups:i},a),l=new Tt(u,a),d=c.contentItem(u,ht(ht({},a),{sopInstanceUIDsToSeriesInstanceUIDMap:o}));return l.dataset=Object.assign(l.dataset,d),l.dataset._meta=s,l},e.generateToolState=function(t,n,r,a,i){if("1500"!==t.ContentTemplateSequence.TemplateIdentifier)throw new Error("This package can currently only interpret DICOM SR TID 1500");var o=C(t.ContentSequence).find(R("Imaging Measurements")),u=C(o.ContentSequence).filter(R("Measurement Group")),s={},c=e.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE,l=[];return Object.keys(c).forEach((function(e){l.push(c[e]),s[e]=[]})),u.forEach((function(e){var o;try{var u=C(e.ContentSequence).find((function(e){return"Tracking Identifier"===e.ConceptNameCodeSequence.CodeMeaning})).TextValue,c=(null===(o=null==i?void 0:i.getToolClass)||void 0===o?void 0:o.call(i,e,t,l))||l.find((function(e){return e.isValidCornerstoneTrackingIdentifier(u)}));if(c){var d=c.getMeasurementData(e,n,r,a);console.log("=== ".concat(c.toolType," ===")),console.log(d),s[c.toolType].push(d)}}catch(t){console.warn("Unable to generate tool state for",e,t)}})),s},e.registerTool=function(t){e.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE[t.utilityToolType]=t,e.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[t.toolType]=t,e.MEASUREMENT_BY_TOOLTYPE[t.toolType]=t.utilityToolType},e.CORNERSTONE_3D_TAG=vt,e.MEASUREMENT_BY_TOOLTYPE={},e.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE={},e.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE={},e.generateDerivationSourceDataset=function(t){var n=e.generateDatasetMeta();return ht(ht({},t),{_meta:n,_vrMap:{PixelData:"OW"}})},e}(),At=r.hC.TID300.Point,Nt="ArrowAnnotate",qt="".concat(vt,":").concat(Nt),_t=St.codeValues,Ut=St.CodingSchemeDesignator,Vt=function(){function e(){g(this,e)}return m(e,null,[{key:"getMeasurementData",value:function(t,n,r,a){for(var i=Pt.getSetupMeasurementData(t,n,a,e.toolType),o=i.defaultState,u=i.SCOORDGroup,s=i.ReferencedFrameNumber,c=o.annotation.metadata.referencedImageId,l=o.annotation.metadata.label,d=u.GraphicData,f=[],p=0;p<d.length;p+=2){var g=r(c,[d[p],d[p+1]]);f.push(g)}if(1===f.length){var h=a.get("imagePixelModule",c),m=10,v=10;if(h)m=h.columns/10,v=h.rows/10;var S=r(c,[d[0]+m,d[1]+v]);f.push(S)}var y=o;return y.annotation.data={text:l,handles:{arrowFirst:!0,points:[f[0],f[1]],activeHandleIndex:0,textBox:{hasMoved:!1}},frameNumber:s},y}},{key:"getTID300RepresentationArguments",value:function(e,t){var n=e.data,r=e.metadata,a=e.finding,i=e.findingSites,o=r.referencedImageId;if(!o)throw new Error("ArrowAnnotate.getTID300RepresentationArguments: referencedImageId is not defined");var u=n.handles,s=u.points,c=t(o,u.arrowFirst?s[0]:s[1]),l={points:[{x:c[0],y:c[1]}],trackingIdentifierTextValue:qt,findingSites:i||[]};return a&&a.CodeValue===_t.CORNERSTONEFREETEXT||(a={CodeValue:_t.CORNERSTONEFREETEXT,CodingSchemeDesignator:Ut,CodeMeaning:n.text}),l.finding=a,l}}]),e}();Vt.toolType=Nt,Vt.utilityToolType=Nt,Vt.TID300Representation=At,Vt.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=S(e.split(":"),2),n=t[0],r=t[1];return n===vt&&r===Nt},Pt.registerTool(Vt);var kt=r.hC.TID300.Bidirectional,Gt="Bidirectional",Lt="".concat(vt,":").concat(Gt),Ft=function(){function e(){}return e.getMeasurementData=function(t,n,r,a){var i,o=Pt.getSetupMeasurementData(t,n,a,e.toolType),u=o.defaultState,s=o.ReferencedFrameNumber,c=u.annotation.metadata.referencedImageId,l=t.ContentSequence,d=C(l).find((function(e){return"Long Axis"===e.ConceptNameCodeSequence.CodeMeaning})),f=C(d.ContentSequence).find((function(e){return"SCOORD"===e.ValueType})),p=C(l).find((function(e){return"Short Axis"===e.ConceptNameCodeSequence.CodeMeaning})),g=C(p.ContentSequence).find((function(e){return"SCOORD"===e.ValueType})),h=[];[f,g].forEach((function(e){for(var t=e.GraphicData,n=0;n<t.length;n+=2){var a=r(c,[t[n],t[n+1]]);h.push(a)}}));var m=u;return m.annotation.data={handles:{points:[h[0],h[1],h[2],h[3]],activeHandleIndex:0,textBox:{hasMoved:!1}},cachedStats:(i={},i["imageId:".concat(c)]={length:d.MeasuredValueSequence.NumericValue,width:p.MeasuredValueSequence.NumericValue},i),frameNumber:s},m},e.getTID300RepresentationArguments=function(e,t){var n=e.data,r=e.finding,a=e.findingSites,i=e.metadata,o=n.cachedStats,u=void 0===o?{}:o,s=n.handles,c=i.referencedImageId;if(!c)throw new Error("Bidirectional.getTID300RepresentationArguments: referencedImageId is not defined");var l,d,f=u["imageId:".concat(c)]||{},p=f.length,g=f.width,h=s.points,m=[h[0],h[1]],v=[h[2],h[3]];Math.sqrt(Math.pow(m[0][0]-m[1][0],2)+Math.pow(m[0][1]-m[1][1],2)+Math.pow(m[0][2]-m[1][2],2))>Math.sqrt(Math.pow(v[0][0]-v[1][0],2)+Math.pow(v[0][1]-v[1][1],2)+Math.pow(v[0][2]-v[1][2],2))?(l=m,d=v):(l=v,d=m);var S=t(c,l[0]),y=t(c,l[1]),I=t(c,d[0]),T=t(c,d[1]);return{longAxis:{point1:{x:S[0],y:S[1]},point2:{x:y[0],y:y[1]}},shortAxis:{point1:{x:I[0],y:I[1]},point2:{x:T[0],y:T[1]}},longAxisLength:p,shortAxisLength:g,trackingIdentifierTextValue:Lt,finding:r,findingSites:a||[]}},e.toolType=Gt,e.utilityToolType=Gt,e.TID300Representation=kt,e.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=e.split(":"),n=t[0],r=t[1];return n===vt&&r===Gt},e}();Pt.registerTool(Ft);var jt=r.hC.TID300.CobbAngle,Bt="Angle",Yt="".concat(vt,":").concat(Bt),zt=function(){function e(){}return e.getMeasurementData=function(t,n,r,a){for(var i,o=Pt.getSetupMeasurementData(t,n,a,e.toolType),u=o.defaultState,s=o.NUMGroup,c=o.SCOORDGroup,l=o.ReferencedFrameNumber,d=u.annotation.metadata.referencedImageId,f=c.GraphicData,p=[],g=0;g<f.length;g+=2){var h=r(d,[f[g],f[g+1]]);p.push(h)}var m=u;return m.annotation.data={handles:{points:[p[0],p[1],p[3]],activeHandleIndex:0,textBox:{hasMoved:!1}},cachedStats:(i={},i["imageId:".concat(d)]={angle:s?s.MeasuredValueSequence.NumericValue:null},i),frameNumber:l},m},e.getTID300RepresentationArguments=function(e,t){var n=e.data,r=e.finding,a=e.findingSites,i=e.metadata,o=n.cachedStats,u=void 0===o?{}:o,s=n.handles,c=i.referencedImageId;if(!c)throw new Error("Angle.getTID300RepresentationArguments: referencedImageId is not defined");var l=t(c,s.points[0]),d=t(c,s.points[1]),f=t(c,s.points[2]),p={x:l[0],y:l[1]},g={x:d[0],y:d[1]};return{point1:p,point2:g,point3:g,point4:{x:f[0],y:f[1]},rAngle:(u["imageId:".concat(c)]||{}).angle,trackingIdentifierTextValue:Yt,finding:r,findingSites:a||[]}},e.toolType=Bt,e.utilityToolType=Bt,e.TID300Representation=jt,e.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=e.split(":"),n=t[0],r=t[1];return n===vt&&r===Bt},e}();Pt.registerTool(zt);var Ht=r.hC.TID300.CobbAngle,Wt="CobbAngle",Xt="".concat(vt,":").concat(Wt),Jt=function(){function e(){}return e.getMeasurementData=function(t,n,r,a){for(var i,o=Pt.getSetupMeasurementData(t,n,a,e.toolType),u=o.defaultState,s=o.NUMGroup,c=o.SCOORDGroup,l=o.ReferencedFrameNumber,d=u.annotation.metadata.referencedImageId,f=c.GraphicData,p=[],g=0;g<f.length;g+=2){var h=r(d,[f[g],f[g+1]]);p.push(h)}var m=u;return m.annotation.data={handles:{points:[p[0],p[1],p[2],p[3]],activeHandleIndex:0,textBox:{hasMoved:!1}},cachedStats:(i={},i["imageId:".concat(d)]={angle:s?s.MeasuredValueSequence.NumericValue:null},i),frameNumber:l},m},e.getTID300RepresentationArguments=function(e,t){var n=e.data,r=e.finding,a=e.findingSites,i=e.metadata,o=n.cachedStats,u=void 0===o?{}:o,s=n.handles,c=i.referencedImageId;if(!c)throw new Error("CobbAngle.getTID300RepresentationArguments: referencedImageId is not defined");var l=t(c,s.points[0]),d=t(c,s.points[1]),f=t(c,s.points[2]),p=t(c,s.points[3]);return{point1:{x:l[0],y:l[1]},point2:{x:d[0],y:d[1]},point3:{x:f[0],y:f[1]},point4:{x:p[0],y:p[1]},rAngle:(u["imageId:".concat(c)]||{}).angle,trackingIdentifierTextValue:Xt,finding:r,findingSites:a||[]}},e.toolType=Wt,e.utilityToolType=Wt,e.TID300Representation=Ht,e.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=e.split(":"),n=t[0],r=t[1];return n===vt&&r===Wt},e}();function Kt(e){if(!e.includes(":"))return!1;var t=e.split(":"),n=t[0],r=t[1];return n===vt&&r.toLowerCase()===this.toolType.toLowerCase()}Pt.registerTool(Jt);var Qt=r.hC.TID300.Circle,$t="CircleROI",Zt=function(){function e(){}return e.getMeasurementData=function(t,n,r,a){for(var i,o=Pt.getSetupMeasurementData(t,n,a,e.toolType),u=o.defaultState,s=o.NUMGroup,c=o.SCOORDGroup,l=o.ReferencedFrameNumber,d=u.annotation.metadata.referencedImageId,f=c.GraphicData,p=[],g=0;g<f.length;g+=2){var h=r(d,[f[g],f[g+1]]);p.push(h)}var m=u;return m.annotation.data={handles:{points:mt([],p,!0),activeHandleIndex:0,textBox:{hasMoved:!1}},cachedStats:(i={},i["imageId:".concat(d)]={area:s?s.MeasuredValueSequence.NumericValue:0,radius:0,perimeter:0},i),frameNumber:l},m},e.getTID300RepresentationArguments=function(e,t){var n=e.data,r=e.finding,a=e.findingSites,i=e.metadata,o=n.cachedStats,u=void 0===o?{}:o,s=n.handles,c=i.referencedImageId;if(!c)throw new Error("CircleROI.getTID300RepresentationArguments: referencedImageId is not defined");var l=t(c,s.points[0]),d=t(c,s.points[1]),f=[];f.push({x:l[0],y:l[1]}),f.push({x:d[0],y:d[1]});var p=u["imageId:".concat(c)]||{},g=p.area,h=p.radius;return{area:g,perimeter:2*Math.PI*h,radius:h,points:f,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:r,findingSites:a||[]}},e.trackingIdentifierTextValue="".concat(vt,":").concat($t),e.toolType=$t,e.utilityToolType=$t,e.TID300Representation=Qt,e.isValidCornerstoneTrackingIdentifier=Kt,e}();Pt.registerTool(Zt);var en=r.hC.TID300.Ellipse,tn="EllipticalROI",nn=1e-4,rn=function(){function e(){}return e.getMeasurementData=function(t,n,r,a){for(var i,o=Pt.getSetupMeasurementData(t,n,a,e.toolType),u=o.defaultState,s=o.NUMGroup,l=o.SCOORDGroup,d=o.ReferencedFrameNumber,f=u.annotation.metadata.referencedImageId,p=l.GraphicData,g=[],h=0;h<p.length;h+=2){var m=r(f,[p[h],p[h+1]]);g.push(m)}var v=c.R3.fromValues.apply(c.R3,g[0]),S=c.R3.fromValues.apply(c.R3,g[1]),y=c.R3.fromValues.apply(c.R3,g[2]),I=c.R3.fromValues.apply(c.R3,g[3]),T=c.R3.create();c.R3.sub(T,S,v),c.R3.normalize(T,T);var D=c.R3.create();c.R3.sub(D,I,y),c.R3.normalize(D,D);var O=a.get("imagePlaneModule",f);if(!O)throw new Error("imageId does not have imagePlaneModule metadata");var C=O.columnCosines,R=c.R3.fromValues(C[0],C[1],C[2]),b=c.R3.dot(R,T),x=c.R3.dot(R,D),w=Math.abs(b),M=Math.abs(x),E=[];Math.abs(w-1)<nn?E=[g[0],g[1],g[2],g[3]]:Math.abs(M-1)<nn?E=[g[2],g[3],g[0],g[1]]:console.warn("OBLIQUE ELLIPSE NOT YET SUPPORTED");var P=u;return P.annotation.data={handles:{points:mt([],E,!0),activeHandleIndex:0,textBox:{hasMoved:!1}},cachedStats:(i={},i["imageId:".concat(f)]={area:s?s.MeasuredValueSequence.NumericValue:0},i),frameNumber:d},P},e.getTID300RepresentationArguments=function(e,t){var n,r,a,i,o=e.data,u=e.finding,s=e.findingSites,c=e.metadata,l=o.cachedStats,d=void 0===l?{}:l,f=o.handles,p=o.initialRotation||0,g=c.referencedImageId;if(!g)throw new Error("EllipticalROI.getTID300RepresentationArguments: referencedImageId is not defined");90==p||270==p?(r=t(g,f.points[2]),n=t(g,f.points[3]),a=t(g,f.points[0]),i=t(g,f.points[1])):(n=t(g,f.points[0]),r=t(g,f.points[1]),a=t(g,f.points[2]),i=t(g,f.points[3]));var h=[];return Math.abs(n[1]-r[1])>Math.abs(a[0]-i[0])?(h.push({x:n[0],y:n[1]}),h.push({x:r[0],y:r[1]}),h.push({x:a[0],y:a[1]}),h.push({x:i[0],y:i[1]})):(h.push({x:a[0],y:a[1]}),h.push({x:i[0],y:i[1]}),h.push({x:n[0],y:n[1]}),h.push({x:r[0],y:r[1]})),{area:(d["imageId:".concat(g)]||{}).area,points:h,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:u,findingSites:s||[]}},e.trackingIdentifierTextValue="".concat(vt,":").concat(tn),e.toolType=tn,e.utilityToolType=tn,e.TID300Representation=en,e.isValidCornerstoneTrackingIdentifier=Kt,e}();Pt.registerTool(rn);var an=r.hC.TID300.Polyline,on="RectangleROI",un="".concat(vt,":").concat(on),sn=function(){function e(){}return e.getMeasurementData=function(t,n,r,a){for(var i,o=Pt.getSetupMeasurementData(t,n,a,e.toolType),u=o.defaultState,s=o.NUMGroup,c=o.SCOORDGroup,l=o.ReferencedFrameNumber,d=u.annotation.metadata.referencedImageId,f=c.GraphicData,p=[],g=0;g<f.length;g+=2){var h=r(d,[f[g],f[g+1]]);p.push(h)}var m=u;return m.annotation.data={handles:{points:[p[0],p[1],p[3],p[2]],activeHandleIndex:0,textBox:{hasMoved:!1}},cachedStats:(i={},i["imageId:".concat(d)]={area:s?s.MeasuredValueSequence.NumericValue:null},i),frameNumber:l},m},e.getTID300RepresentationArguments=function(e,t){var n=e.data,r=e.finding,a=e.findingSites,i=e.metadata,o=n.cachedStats,u=void 0===o?{}:o,s=n.handles,c=i.referencedImageId;if(!c)throw new Error("CobbAngle.getTID300RepresentationArguments: referencedImageId is not defined");var l=s.points.map((function(e){return t(c,e)})),d=u.area,f=u.perimeter;return{points:[l[0],l[1],l[3],l[2],l[0]],area:d,perimeter:f,trackingIdentifierTextValue:un,finding:r,findingSites:a||[]}},e.toolType=on,e.utilityToolType=on,e.TID300Representation=an,e.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=e.split(":"),n=t[0],r=t[1];return n===vt&&r===on},e}();Pt.registerTool(sn);var cn=r.hC.TID300.Length,ln="Length",dn="".concat(vt,":").concat(ln),fn=function(){function e(){g(this,e)}return m(e,null,[{key:"getMeasurementData",value:function(t,n,r,a){for(var i=Pt.getSetupMeasurementData(t,n,a,e.toolType),o=i.defaultState,u=i.NUMGroup,s=i.SCOORDGroup,c=i.ReferencedFrameNumber,l=o.annotation.metadata.referencedImageId,d=s.GraphicData,f=[],p=0;p<d.length;p+=2){var g=r(l,[d[p],d[p+1]]);f.push(g)}var h=o;return h.annotation.data={handles:{points:[f[0],f[1]],activeHandleIndex:0,textBox:{hasMoved:!1}},cachedStats:v({},"imageId:".concat(l),{length:u?u.MeasuredValueSequence.NumericValue:0}),frameNumber:c},h}},{key:"getTID300RepresentationArguments",value:function(e,t){var n=e.data,r=e.finding,a=e.findingSites,i=e.metadata,o=n.cachedStats,u=void 0===o?{}:o,s=n.handles,c=i.referencedImageId;if(!c)throw new Error("Length.getTID300RepresentationArguments: referencedImageId is not defined");var l=t(c,s.points[0]),d=t(c,s.points[1]);return{point1:{x:l[0],y:l[1]},point2:{x:d[0],y:d[1]},distance:(u["imageId:".concat(c)]||{}).length,trackingIdentifierTextValue:dn,finding:r,findingSites:a||[]}}}]),e}();fn.toolType=ln,fn.utilityToolType=ln,fn.TID300Representation=cn,fn.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=S(e.split(":"),2),n=t[0],r=t[1];return n===vt&&r===ln},Pt.registerTool(fn);var pn=r.hC.TID300.Polyline,gn="PlanarFreehandROI",hn="".concat(vt,":").concat(gn),mn=function(){function e(){}return e.getMeasurementData=function(t,n,r,a){for(var i=Pt.getSetupMeasurementData(t,n,a,e.toolType),o=i.defaultState,u=i.SCOORDGroup,s=i.ReferencedFrameNumber,l=o.annotation.metadata.referencedImageId,d=u.GraphicData,f=[],p=0;p<d.length;p+=2){var g=r(l,[d[p],d[p+1]]);f.push(g)}var h=!0;c.R3.distance(f[f.length-1],f[0])<1e-5&&(f.pop(),h=!1);var m=[];h&&m.push(f[0],f[f.length-1]);var v=o;return v.annotation.data={polyline:f,isOpenContour:h,handles:{points:m,activeHandleIndex:null,textBox:{hasMoved:!1}},frameNumber:s},v},e.getTID300RepresentationArguments=function(e,t){var n=e.data,r=e.finding,a=e.findingSites,i=e.metadata,o=n.isOpenContour,u=n.polyline,s=i.referencedImageId;if(!s)throw new Error("PlanarFreehandROI.getTID300RepresentationArguments: referencedImageId is not defined");var c=u.map((function(e){return t(s,e)}));if(!o){var l=c[0];c.push([l[0],l[1]])}return{points:c,area:0,perimeter:0,trackingIdentifierTextValue:hn,finding:r,findingSites:a||[]}},e.toolType=gn,e.utilityToolType=gn,e.TID300Representation=pn,e.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=e.split(":"),n=t[0],r=t[1];return n===vt&&r===gn},e}();Pt.registerTool(mn);var vn=r.hC.TID300.Point,Sn="Probe",yn="".concat(vt,":").concat(Sn),In=function(){function e(){g(this,e)}return m(e,null,[{key:"getMeasurementData",value:function(t,n,r,a){for(var i=Pt.getSetupMeasurementData(t,n,a,e.toolType),o=i.defaultState,u=i.SCOORDGroup,s=i.ReferencedFrameNumber,c=o.annotation.metadata.referencedImageId,l=u.GraphicData,d=[],f=0;f<l.length;f+=2){var p=r(c,[l[f],l[f+1]]);d.push(p)}var g=o;return g.annotation.data={handles:{points:d,activeHandleIndex:null,textBox:{hasMoved:!1}},frameNumber:s},g}},{key:"getTID300RepresentationArguments",value:function(e,t){var n=e.data,r=e.metadata,a=e.finding,i=e.findingSites,o=r.referencedImageId;if(!o)throw new Error("Probe.getTID300RepresentationArguments: referencedImageId is not defined");return{points:n.handles.points.map((function(e){var n=t(o,e);return{x:n[0],y:n[1]}})),trackingIdentifierTextValue:yn,findingSites:i||[],finding:a}}}]),e}();In.toolType=Sn,In.utilityToolType=Sn,In.TID300Representation=vn,In.isValidCornerstoneTrackingIdentifier=function(e){if(!e.includes(":"))return!1;var t=S(e.split(":"),2),n=t[0],r=t[1];return n===vt&&r===Sn},Pt.registerTool(In);var Tn=r.oq.Normalizer,Dn=r.U7.Segmentation;var On=gt.Segmentation.generateToolState;var Cn=Object.freeze({__proto__:null,generateLabelMaps2DFrom3D:function(e){for(var t=e.scalarData,n=e.dimensions,r=[],a=new Set,i=0;i<n[2];i++){for(var o=t.slice(i*n[0]*n[1],(i+1)*n[0]*n[1]),u=[],s=0;s<o.length;s++){var c=o[s];u.includes(c)||0===c||u.push(c)}var l={segmentsOnLabelmap:u,pixelData:o,rows:n[1],columns:n[0]};0!==u.length&&(u.forEach((function(e){a.add(e)})),r[n[2]-1-i]=l)}return e.segmentsOnLabelmap=Array.from(a),e.labelmaps2D=r,e},generateSegmentation:function(e,t,n,r){return void 0===r&&(r={}),Ke(function(e,t,n){var r=e.map((function(e){var n=t.get("instance",e.imageId);return ht(ht(ht({},e),n),{SOPClassUID:n.SopClassUID||n.SOPClassUID,SOPInstanceUID:n.SopInstanceUID||n.SOPInstanceUID,PixelData:e.getPixelData(),_vrMap:{PixelData:"OW"},_meta:{}})})),a=Tn.normalizeToDataset(r);return new Dn([a],n)}(e,n,r),t,r)},generateToolState:function(e,t,n,r,a){return void 0===r&&(r=!1),void 0===a&&(a=.001),On(e,t,n,r,a)}});function Rn(e,t){for(var n=-1,r=0;r<e.length;r++)bn(t,e[r])&&(n=r);return n}function bn(e,t){return e[0]==t[0]&&e[1]==t[1]&&e[2]==t[2]}function xn(e,t,n){for(var r=0;r<e.length;r++){var a=e[r];a.a==t?a.a=n:a.b==t&&(a.b=n)}}function wn(e,t){for(var n=e.getPoints(),r=e.getLines(),a=[],i=0;i<n.getNumberOfPoints();i++){var o=n.getPoint(i).slice();a.push(o)}for(var u=[],s=0;s<r.getNumberOfCells();s++){var c=r.getCell(3*s).slice(),l={a:c[0],b:c[1]};u.push(l)}if(t)return{points:a,lines:u};for(var d=[],f=0;f<a.length;f++){var p=a[f],g=Rn(d,p);g>=0||(g=d.length,d.push(p)),xn(u,f,g)}var h=[];return u.forEach((function(e){e.a!=e.b&&h.push(e)})),{points:d,lines:h}}function Mn(e,t,n){var r=-1;if(t.forEach((function(t,n){r>=0||t.a==e.b&&(r=n)})),r>=0){var a=t[r];return t.splice(r,1),n.push(a.b),n[0]==a.b?{remainingLines:t,contourPoints:n,type:"CLOSED_PLANAR"}:Mn(a,t,n)}return{remainingLines:t,contourPoints:n,type:"OPEN_PLANAR"}}function En(e){if(0==e.length)return[];var t=[],n=e.shift();t.push(n.a),t.push(n.b);var r=Mn(n,e,t);if(0==r.remainingLines.length)return[{type:r.type,contourPoints:r.contourPoints}];var a=En(r.remainingLines);return a.push({type:r.type,contourPoints:r.contourPoints}),a}function Pn(e){var t=e.segmentations,n=e.cornerstoneCache,r=e.cornerstoneToolsEnums,a=e.vtkUtils,i=r.SegmentationRepresentations.Labelmap,o=t.representationData,u=t.segments,s=o[i].volumeId,c=n.getVolume(s);if(c){var l=c.dimensions[2],d=n.getVolume(c.referencedVolumeId);if(d){for(var f=c.imageData.getPointData().getScalars().getData(),p=c.dimensions[0]*c.dimensions[1],g=0;g<l;g++)for(var h=0;h<c.dimensions[1];h++)for(var m=0;m<c.dimensions[0];m++){var v=m+h*c.dimensions[0]+g*p;0!==m&&0!==h&&m!==c.dimensions[0]-1&&h!==c.dimensions[1]-1||(f[v]=0)}for(var S,y=[],I=u.length,T=0;T<I;T++){var D=u[T];if(D){for(var O=[],C=0;C<l;C++)if(!An(C,f,p,T))try{for(var R,b=a.vtkDataArray.newInstance({name:"Scalars",values:Array.from(f),numberOfComponents:1}),x=!1,w=0;w<f.length;w++){f[w]===T?(x=!0,b.setValue(w,1)):b.setValue(w,0)}if(!x)continue;var M=a.vtkImageMarchingSquares.newInstance({slice:C}),E=a.vtkImageData.newInstance();E.shallowCopy(c.imageData),E.getPointData().setScalars(b),M.setInputData(E);var P=[];P[0]=1,M.setContourValues(P),M.setMergePoints(!1);var A=wn(M.getOutputData());if(null!==(R=A.points)&&void 0!==R&&R.length){var N=(S=A.lines,A.points,En(S));O.push({referencedImageId:d.imageIds[C],contours:N,polyData:A})}}catch(e){console.warn(C),console.warn(e)}var q={referencedImageId:d.imageIds[0],FrameOfReferenceUID:d.metadata.FrameOfReferenceUID},_={label:D.label,color:D.color,metadata:q,sliceContours:O};y.push(_)}}return y}console.warn("No volume found for ".concat(c.referencedVolumeId))}else console.warn("No volume found for ".concat(s))}function An(e,t,n,r){for(var a=e*n,i=a+n,o=a;o<i;o++)if(t[o]===r)return!1;return!0}var Nn=function(){function e(){g(this,e)}return m(e,null,[{key:"getContourSequence",value:function(e,t){var n=e.data.cachedStats,r=n.projectionPoints,a=n.projectionPointsImageIds;return r.map((function(e,n){var r,i,o=(i=[].concat(y((r=e)[0]),y(r[1]),y(r[3]),y(r[2])).flat().map((function(e){return e.toFixed(2)})),i),u=function(e,t){var n=t.get("sopCommonModule",e);return{ReferencedSOPClassUID:n.sopClassUID,ReferencedSOPInstanceUID:n.sopInstanceUID}}(a[n],t);return{NumberOfContourPoints:o.length/3,ContourImageSequence:u,ContourGeometricType:"CLOSED_PLANAR",ContourData:o}}))}}]),e}();Nn.toolName="RectangleROIStartEndThreshold";var qn=function(){function e(){g(this,e)}return m(e,null,[{key:"convert",value:function(t,n,r){!function(e){if(null==e||!e.data)throw new Error("Tool data is empty");if(!e.metadata||e.metadata.referenceImageId)throw new Error("Tool data is not associated with any imageId")}(t);var a=t.metadata.toolName,i=e.TOOL_NAMES[a];if(!i)throw new Error("Unknown tool type: ".concat(a,", cannot convert to RTSSReport"));var o=i.getContourSequence(t,r);return{ReferencedROINumber:n+1,ROIDisplayColor:[Math.floor(255*Math.random()),Math.floor(255*Math.random()),Math.floor(255*Math.random())],ContourSequence:o}}},{key:"register",value:function(t){e.TOOL_NAMES[t.toolName]=t}}]),e}();function _n(e,t,n){var r=e.referencedImageId,a=e.FrameOfReferenceUID,i=t.get("instance",r).SeriesInstanceUID,o=n.ReferencedSeriesSequence;return[{FrameOfReferenceUID:a,RTReferencedStudySequence:[{ReferencedSOPClassUID:n.SOPClassUID,ReferencedSOPInstanceUID:n.SOPInstanceUID,RTReferencedSeriesSequence:[{SeriesInstanceUID:i,ContourImageSequence:y(o[0].ReferencedInstanceSequence)}]}]}]}function Un(e,t,n,r){var a=e.referencedImageId,i=n.get("instance",a),o=i.SeriesInstanceUID,u=i.StudyInstanceUID,s=[];if(o){var c=r.getSeries(u,o),l={SeriesInstanceUID:o,ReferencedInstanceSequence:[]};c.instances.forEach((function(e){var t=e.SOPInstanceUID,n=e.SOPClassUID;l.ReferencedInstanceSequence.push({ReferencedSOPClassUID:n,ReferencedSOPInstanceUID:t})})),s.push(l)}return s}function Vn(e,t){var n=e.metadata.FrameOfReferenceUID;return{ROINumber:t+1,ROIName:e.name||"Todo: name ".concat(t+1),ROIDescription:"Todo: description ".concat(t+1),ROIGenerationAlgorithm:"Todo: algorithm",ReferencedFrameOfReferenceUID:n}}qn.TOOL_NAMES={},qn.register(Nn);var kn=r.default.data.DicomMetaDictionary;function Gn(e,t,n){var r=kn.uid(),a=t.referencedImageId,i=t.FrameOfReferenceUID,o=n.get("generalSeriesModule",a).studyInstanceUID,u=function(e,t){var n=t.get("generalSeriesModule",e),r=t.get("generalStudyModule",e),a=t.get("patientStudyModule",e),i=t.get("patientModule",e),o=t.get("patientDemographicModule",e);return{Modality:n.modality,PatientID:i.patientId,PatientName:i.patientName,PatientBirthDate:"",PatientAge:a.patientAge,PatientSex:o.patientSex,PatientWeight:a.patientWeight,StudyDate:r.studyDate,StudyTime:r.studyTime,StudyID:"ToDo",AccessionNumber:r.accessionNumber}}(a,n),s=function(e){return{SeriesInstanceUID:e.uid(),SeriesNumber:"99"}}(kn);return ht(ht(ht({StructureSetROISequence:[],ROIContourSequence:[],RTROIObservationsSequence:[],ReferencedSeriesSequence:[],ReferencedFrameOfReferenceSequence:[]},u),s),{StudyInstanceUID:o,SOPClassUID:"1.2.840.10008.5.1.4.1.1.481.3",SOPInstanceUID:r,Manufacturer:"dcmjs",Modality:"RTSTRUCT",FrameOfReferenceUID:i,PositionReferenceIndicator:"",StructureSetLabel:e.label||"",StructureSetName:e.name||"",ReferringPhysicianName:"",OperatorsName:"",StructureSetDate:kn.date(),StructureSetTime:kn.time()})}var Ln=Object.freeze({__proto__:null,generateContourSetsFromLabelmap:Pn,generateRTSSFromAnnotations:function(e,t,n,r){var a=Gn({name:"RTSS from Annotations",label:"RTSS from Annotations"},e[0].metadata,t);e.forEach((function(e,i){var o=qn.convert(e,i,t,r);a.StructureSetROISequence.push(Vn(e,i)),a.ROIContourSequence.push(o),a.RTROIObservationsSequence.push(function(e,t){return{ObservationNumber:t+1,ReferencedROINumber:t+1,RTROIInterpretedType:"Todo: type",ROIInterpreter:"Todo: interpreter"}}(0,i)),a.ReferencedSeriesSequence=Un(e.metadata,0,t,n),a.ReferencedFrameOfReferenceSequence=_n(e.metadata,t,a)}));var i=new Uint8Array(2);i[1]=1;var o={FileMetaInformationVersion:{Value:[i.buffer],vr:"OB"},TransferSyntaxUID:{Value:["1.2.840.10008.1.2.1"],vr:"UI"},ImplementationClassUID:{Value:[kn.uid()],vr:"UI"},ImplementationVersionName:{Value:["dcmjs"],vr:"SH"}};return a._meta=o,a},generateRTSSFromSegmentations:function(e,t,n,r,a,i){var o=[];Pn({segmentations:e,cornerstoneCache:r,cornerstoneToolsEnums:a,vtkUtils:i}).forEach((function(e,n){if(e){var r=[];e.sliceContours.forEach((function(e){var n=t.get("sopCommonModule",e.referencedImageId),a=[{ReferencedSOPClassUID:n.sopClassUID,ReferencedSOPInstanceUID:n.sopInstanceUID}],i=e.polyData;e.contours.forEach((function(e,t){var n=e.type,o=e.contourPoints.length,u=[];e.contourPoints.forEach((function(e){var t=i.points[e];t[0]=+t[0].toFixed(2),t[1]=+t[1].toFixed(2),t[2]=+t[2].toFixed(2),u.push(t[0]),u.push(t[1]),u.push(t[2])})),r.push({ContourImageSequence:a,ContourGeometricType:n,NumberOfContourPoints:o,ContourNumber:t+1,ContourData:u})}))}));var a=e.label||"Segment ".concat(n+1),i={name:a,description:a,contourSequence:r,color:e.color,metadata:e.metadata};o.push(i)}}));var u=Gn({name:e.label,label:e.label},o[0].metadata,t);o.forEach((function(e,r){var a={ROIDisplayColor:e.color||[255,0,0],ContourSequence:e.contourSequence,ReferencedROINumber:r+1};u.StructureSetROISequence.push(Vn(e,r)),u.ROIContourSequence.push(a),u.ReferencedSeriesSequence=Un(e.metadata,0,t,n),u.ReferencedFrameOfReferenceSequence=_n(e.metadata,t,u)}));var s=new Uint8Array(2);s[1]=1;var c={FileMetaInformationVersion:{Value:[s.buffer],vr:"OB"},TransferSyntaxUID:{Value:["1.2.840.10008.1.2.1"],vr:"UI"},ImplementationClassUID:{Value:[kn.uid()],vr:"UI"},ImplementationVersionName:{Value:["dcmjs"],vr:"SH"}};return u._meta=c,u}}),Fn={Bidirectional:Ft,CobbAngle:Jt,Angle:zt,Length:fn,CircleROI:Zt,EllipticalROI:rn,RectangleROI:sn,ArrowAnnotate:Vt,Probe:In,PlanarFreehandROI:mn,MeasurementReport:Pt,CodeScheme:St,CORNERSTONE_3D_TAG:vt},jn={Segmentation:Cn},Bn={RTSS:Ln},Yn=r.aT.Colors,zn=r.aT.BitArray;function Hn(e){var t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;switch(t){case 1:return Math.abs(e);case 2:return Math.sqrt(e[0]*e[0]+e[1]*e[1]);case 3:return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);default:for(var n=0,r=0;r<t;r++)n+=e[r]*e[r];return Math.sqrt(n)}}(e);return 0!==t&&(e[0]/=t,e[1]/=t,e[2]/=t),t}var Wn={Cornerstone:pt,Cornerstone3D:Fn},Xn={Cornerstone:gt,Cornerstone3D:jn,VTKjs:{Segmentation:function(){function e(){g(this,e)}return m(e,null,[{key:"generateSegments",value:function(e){"Array"!==e.SegmentSequence.constructor.name&&(e.SegmentSequence=[e.SegmentSequence]),e.SegmentSequence.forEach((function(e){var t,n,r=(t=e.RecommendedDisplayCIELabValue,(n=Yn.dicomlab2RGB(t).map((function(e){return Math.round(255*e)}))).push(255),n);segments[e.SegmentNumber]={color:r,functionalGroups:[],offset:null,size:null,pixelData:null}})),e.PerFrameFunctionalGroupsSequence.forEach((function(e){var t=e.SegmentIdentificationSequence.ReferencedSegmentNumber;segments[t].functionalGroups.push(e)}));var t=Math.ceil(e.Rows*e.Columns/8),n=0;return Object.keys(segments).forEach((function(r){var a=segments[r];a.numberOfFrames=a.functionalGroups.length,a.size=a.numberOfFrames*t,a.offset=n,n=a.offset+a.size;var i=e.PixelData.slice(a.offset,n);a.pixelData=zn.unpack(i);var o=function(e,t){var n={},r=e.SharedFunctionalGroupsSequence.PixelMeasuresSequence,a=e.SharedFunctionalGroupsSequence.PlaneOrientationSequence,i=t[0],o=t[t.length-1],u=i.PlanePositionSequence.ImagePositionPatient.map(Number),s=o.PlanePositionSequence.ImagePositionPatient.map(Number);n.origin=u,n.spacing=[r.PixelSpacing[1],r.PixelSpacing[0],r.SpacingBetweenSlices].map(Number),n.dimensions=[e.Columns,e.Rows,t.length].map(Number);var c,l,d,f,p,g,h=a.ImageOrientationPatient.map(Number),m=h.slice(0,3),v=h.slice(3,6);return n.planeNormal=[],c=m,l=v,d=n.planeNormal,f=c[1]*l[2]-c[2]*l[1],p=c[2]*l[0]-c[0]*l[2],g=c[0]*l[1]-c[1]*l[0],d[0]=f,d[1]=p,d[2]=g,n.sliceStep=[],function(e,t,n){n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2]}(s,u,n.sliceStep),Hn(n.sliceStep),n.direction=m.concat(v).concat(n.sliceStep),n}(e,a.functionalGroups);a.geometry=o})),segments}}]),e}()}},Jn={Cornerstone3D:Bn}},27318:e=>{"use strict";e.exports=function(e){for(var t=new Array(e),n=0;n<e;++n)t[n]=n;return t}},8516:e=>{e.exports=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},87513:(e,t,n)=>{var r=n(27318),a=n(8516),i="undefined"!=typeof Float64Array;function o(e,t){return e[0]-t[0]}function u(){var e,t=this.stride,n=new Array(t.length);for(e=0;e<n.length;++e)n[e]=[Math.abs(t[e]),e];n.sort(o);var r=new Array(n.length);for(e=0;e<r.length;++e)r[e]=n[e][1];return r}function s(e,t){var n=["View",t,"d",e].join("");t<0&&(n="View_Nil"+e);var a="generic"===e;if(-1===t){var i="function "+n+"(a){this.data=a;};var proto="+n+".prototype;proto.dtype='"+e+"';proto.index=function(){return -1};proto.size=0;proto.dimension=-1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function(){return new "+n+"(this.data);};proto.get=proto.set=function(){};proto.pick=function(){return null};return function construct_"+n+"(a){return new "+n+"(a);}";return new Function(i)()}if(0===t){i="function "+n+"(a,d) {this.data = a;this.offset = d};var proto="+n+".prototype;proto.dtype='"+e+"';proto.index=function(){return this.offset};proto.dimension=0;proto.size=1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function "+n+"_copy() {return new "+n+"(this.data,this.offset)};proto.pick=function "+n+"_pick(){return TrivialArray(this.data);};proto.valueOf=proto.get=function "+n+"_get(){return "+(a?"this.data.get(this.offset)":"this.data[this.offset]")+"};proto.set=function "+n+"_set(v){return "+(a?"this.data.set(this.offset,v)":"this.data[this.offset]=v")+"};return function construct_"+n+"(a,b,c,d){return new "+n+"(a,d)}";return new Function("TrivialArray",i)(c[e][0])}i=["'use strict'"];var o=r(t),s=o.map((function(e){return"i"+e})),l="this.offset+"+o.map((function(e){return"this.stride["+e+"]*i"+e})).join("+"),d=o.map((function(e){return"b"+e})).join(","),f=o.map((function(e){return"c"+e})).join(",");i.push("function "+n+"(a,"+d+","+f+",d){this.data=a","this.shape=["+d+"]","this.stride=["+f+"]","this.offset=d|0}","var proto="+n+".prototype","proto.dtype='"+e+"'","proto.dimension="+t),i.push("Object.defineProperty(proto,'size',{get:function "+n+"_size(){return "+o.map((function(e){return"this.shape["+e+"]"})).join("*"),"}})"),1===t?i.push("proto.order=[0]"):(i.push("Object.defineProperty(proto,'order',{get:"),t<4?(i.push("function "+n+"_order(){"),2===t?i.push("return (Math.abs(this.stride[0])>Math.abs(this.stride[1]))?[1,0]:[0,1]}})"):3===t&&i.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):i.push("ORDER})")),i.push("proto.set=function "+n+"_set("+s.join(",")+",v){"),a?i.push("return this.data.set("+l+",v)}"):i.push("return this.data["+l+"]=v}"),i.push("proto.get=function "+n+"_get("+s.join(",")+"){"),a?i.push("return this.data.get("+l+")}"):i.push("return this.data["+l+"]}"),i.push("proto.index=function "+n+"_index(",s.join(),"){return "+l+"}"),i.push("proto.hi=function "+n+"_hi("+s.join(",")+"){return new "+n+"(this.data,"+o.map((function(e){return["(typeof i",e,"!=='number'||i",e,"<0)?this.shape[",e,"]:i",e,"|0"].join("")})).join(",")+","+o.map((function(e){return"this.stride["+e+"]"})).join(",")+",this.offset)}");var p=o.map((function(e){return"a"+e+"=this.shape["+e+"]"})),g=o.map((function(e){return"c"+e+"=this.stride["+e+"]"}));i.push("proto.lo=function "+n+"_lo("+s.join(",")+"){var b=this.offset,d=0,"+p.join(",")+","+g.join(","));for(var h=0;h<t;++h)i.push("if(typeof i"+h+"==='number'&&i"+h+">=0){d=i"+h+"|0;b+=c"+h+"*d;a"+h+"-=d}");i.push("return new "+n+"(this.data,"+o.map((function(e){return"a"+e})).join(",")+","+o.map((function(e){return"c"+e})).join(",")+",b)}"),i.push("proto.step=function "+n+"_step("+s.join(",")+"){var "+o.map((function(e){return"a"+e+"=this.shape["+e+"]"})).join(",")+","+o.map((function(e){return"b"+e+"=this.stride["+e+"]"})).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(h=0;h<t;++h)i.push("if(typeof i"+h+"==='number'){d=i"+h+"|0;if(d<0){c+=b"+h+"*(a"+h+"-1);a"+h+"=ceil(-a"+h+"/d)}else{a"+h+"=ceil(a"+h+"/d)}b"+h+"*=d}");i.push("return new "+n+"(this.data,"+o.map((function(e){return"a"+e})).join(",")+","+o.map((function(e){return"b"+e})).join(",")+",c)}");var m=new Array(t),v=new Array(t);for(h=0;h<t;++h)m[h]="a[i"+h+"]",v[h]="b[i"+h+"]";i.push("proto.transpose=function "+n+"_transpose("+s+"){"+s.map((function(e,t){return e+"=("+e+"===undefined?"+t+":"+e+"|0)"})).join(";"),"var a=this.shape,b=this.stride;return new "+n+"(this.data,"+m.join(",")+","+v.join(",")+",this.offset)}"),i.push("proto.pick=function "+n+"_pick("+s+"){var a=[],b=[],c=this.offset");for(h=0;h<t;++h)i.push("if(typeof i"+h+"==='number'&&i"+h+">=0){c=(c+this.stride["+h+"]*i"+h+")|0}else{a.push(this.shape["+h+"]);b.push(this.stride["+h+"])}");return i.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),i.push("return function construct_"+n+"(data,shape,stride,offset){return new "+n+"(data,"+o.map((function(e){return"shape["+e+"]"})).join(",")+","+o.map((function(e){return"stride["+e+"]"})).join(",")+",offset)}"),new Function("CTOR_LIST","ORDER",i.join("\n"))(c[e],u)}var c={float32:[],float64:[],int8:[],int16:[],int32:[],uint8:[],uint16:[],uint32:[],array:[],uint8_clamped:[],bigint64:[],biguint64:[],buffer:[],generic:[]};e.exports=function(e,t,n,r){if(void 0===e)return(0,c.array[0])([]);"number"==typeof e&&(e=[e]),void 0===t&&(t=[e.length]);var o=t.length;if(void 0===n){n=new Array(o);for(var u=o-1,l=1;u>=0;--u)n[u]=l,l*=t[u]}if(void 0===r){r=0;for(u=0;u<o;++u)n[u]<0&&(r-=(t[u]-1)*n[u])}for(var d=function(e){if(a(e))return"buffer";if(i)switch(Object.prototype.toString.call(e)){case"[object Float64Array]":return"float64";case"[object Float32Array]":return"float32";case"[object Int8Array]":return"int8";case"[object Int16Array]":return"int16";case"[object Int32Array]":return"int32";case"[object Uint8Array]":return"uint8";case"[object Uint16Array]":return"uint16";case"[object Uint32Array]":return"uint32";case"[object Uint8ClampedArray]":return"uint8_clamped";case"[object BigInt64Array]":return"bigint64";case"[object BigUint64Array]":return"biguint64"}return Array.isArray(e)?"array":"generic"}(e),f=c[d];f.length<=o+1;)f.push(s(d,f.length-1));return(0,f[o+1])(e,t,n,r)}}}]);
//# sourceMappingURL=202.bundle.358aa5cd5419f9459a04.js.map