/*! 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=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=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev=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;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=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;sl?(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;u2&&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;u1))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=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;wr)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);o2&&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;u2&&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;n1||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;pMath.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;gMath.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=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;g1&&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{"use strict";e.exports=function(e){for(var t=new Array(e),n=0;n{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;eMath.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=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=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