@fnndsc/argus 0.16.0 → 0.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{Settings-BVnfxRPh.js → Settings-CpJHgU8P.js} +1 -1
- package/dist/assets/{Texture-C99vHuBO.js → Texture-BFywN4BL.js} +1 -1
- package/dist/assets/{addVolumesToViewports-42A0OSZO.js → addVolumesToViewports-CKWYzwhw.js} +1 -1
- package/dist/assets/cornerstoneEngine-DgoPMn1N.js +2 -0
- package/dist/assets/{index-Dtsm0q-Z.js → index-Bm3uV1GS.js} +57 -56
- package/dist/assets/{index-Cy_-g61h.js → index-CWklH47t.js} +1 -1
- package/dist/assets/{index-DeAAUX9B.js → index-Cdc7wwHW.js} +1 -1
- package/dist/assets/{index-CmFTTf9P.js → index-CokKuJob.js} +1 -1
- package/dist/assets/{index-D21xH-i4.js → index-DSjYEFdg.js} +1 -1
- package/dist/assets/{index-mx1chng0.js → index-DfeCnMQa.js} +1 -1
- package/dist/assets/{index-Cbx1WubN.js → index-TqVFBkTw.js} +1 -1
- package/dist/assets/niivueEngine-DSlA46Rh.js +2 -0
- package/dist/assets/{slabScene-Bh7W1X9C.js → slabScene-D4-P_5n2.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/cornerstoneEngine-CGEzAsx7.js +0 -2
- package/dist/assets/niivueEngine-D4fRmSZx.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import We,{data as A,normalizers as k,utilities as D,derivations as Ie,constants as hn,sr as yn}from"./dcmjs.es-DfWkgqfk.js";import{bY as Bt,bZ as Yt,dA as Dn,at as Tn,cD as Kt,t as Cn,e as bn,bi as q,cp as $e,cs as Rn}from"./Settings-
|
|
1
|
+
import We,{data as A,normalizers as k,utilities as D,derivations as Ie,constants as hn,sr as yn}from"./dcmjs.es-DfWkgqfk.js";import{bY as Bt,bZ as Yt,dA as Dn,at as Tn,cD as Kt,t as Cn,e as bn,bi as q,cp as $e,cs as Rn}from"./Settings-CpJHgU8P.js";import"./cornerstoneEngine-DgoPMn1N.js";import"./Texture-BFywN4BL.js";import{m as Mn,t as Pn}from"./throttle-CjIII7Yf.js";import"./index-Bm3uV1GS.js";import"./_commonjsHelpers-CE1G-McA.js";const R=r=>Array.isArray(r)?r:r!==void 0?[r]:[],Pe=r=>e=>e.ConceptNameCodeSequence.CodeMeaning===r;A.datasetToBlob;const vn=Bt;let Nn=vn;function E(r,e){let t=r.is3DMeasurement,n=r.referencedImageId;if(t)return{x:e[0],y:e[1],z:e[2]};const a=Nn(n,e);return{x:a[0],y:a[1]}}function Q(r,e){return e.map(t=>E(r,t))}const En=Yt;function pe(r,e){let t=r.is3DMeasurement,n=r.referencedImageId;const a=[];if(t){const o=e.GraphicData;for(let s=0;s<o.length;s+=3){const i=[o[s],o[s+1],o[s+2]];a.push(i)}}else{const o=e.GraphicData;for(let s=0;s<o.length;s+=2){const i=En(n,[o[s],o[s+1]]);a.push(i)}}return a}const zt=D.TID1500,st=D.addAccessors,wn=Ie.StructuredReport,An=k.Normalizer,Un=zt.TID1500MeasurementReport,jn=zt.TID1501MeasurementGroup,xn=A.DicomMetaDictionary,Gn={CodingSchemeDesignator:"DCM",CodeValue:"121071"},_n={CodingSchemeDesignator:"SCT",CodeValue:"363698007"},Vn={CodingSchemeDesignator:"SRT",CodeValue:"G-C0E3"},it=(r,e,t)=>{const n=r.ConceptNameCodeSequence;if(!n)return;const a=n.CodingSchemeDesignator,o=n.CodeValue;return a==e.CodingSchemeDesignator&&o==e.CodeValue||t&&a==t.CodingSchemeDesignator&&o==t.CodeValue};function $n(r,e,t){const n=t.getTID300RepresentationArguments(r);return n.ReferencedSOPSequence=e,n.ReferencedFrameOfReferenceUID=n.use3DSpatialCoordinates?r.metadata.FrameOfReferenceUID:null,new t.TID300Representation(n)}function qn(r,e,t){const n=e[r],a=M.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[r];if(!n||!n.data||!n.data.length||!a)return;const o=n.data.map(s=>$n(s,t,a));return new jn(o)}let M=class ue{static getSetupMeasurementData(e){const t=e.ContentSequence,n=R(t),a=n.find(g=>it(g,Gn)),o=n.filter(g=>it(g,_n,Vn))||[],s=n.find(g=>g.ValueType==="NUM"),i=R(s.ContentSequence).find(g=>g.ValueType==="SCOORD"),c=i.ContentSequence.ReferencedSOPSequence,u=c.ReferencedSOPInstanceUID,l=c.ReferencedFrameNumber,d={sopInstanceUid:u,frameIndex:l||1,complete:!0,finding:a?st(a.ConceptCodeSequence):void 0,findingSites:o.map(g=>st(g.ConceptCodeSequence))};d.finding&&(d.description=d.finding.CodeMeaning);const p=d.findingSites&&d.findingSites[0];return p&&(d.location=p[0]&&p[0].CodeMeaning||p.CodeMeaning),{defaultState:d,findingGroup:a,findingSiteGroups:o,NUMGroup:s,SCOORDGroup:i,ReferencedSOPSequence:c,ReferencedSOPInstanceUID:u,ReferencedFrameNumber:l}}static generateReport(e,t,n){let a=[];const o=Object.keys(e)[0];if(!o)throw new Error("No measurements provided.");const s=t.get("generalSeriesModule",o),i=s.studyInstanceUID,c=s.seriesInstanceUID;Object.keys(e).forEach(m=>{const h=t.get("sopCommonModule",m),O=t.get("frameNumber",m),y=e[m],S=Object.keys(y),b={ReferencedSOPClassUID:h.sopClassUID,ReferencedSOPInstanceUID:h.sopInstanceUID};An.isMultiframeSOPClassUID(h.sopClassUID)&&(b.ReferencedFrameNumber=O);const T=[];S.forEach(v=>{const j=qn(v,y,b);j&&T.push(j)}),a=a.concat(T)});const u=new Un({TID1501MeasurementGroups:a},n),l=new Uint8Array(2);l[1]=1;const d={StudyInstanceUID:i,SeriesInstanceUID:c},p={FileMetaInformationVersion:{Value:[l.buffer],vr:"OB"},TransferSyntaxUID:{Value:["1.2.840.10008.1.2.1"],vr:"UI"},ImplementationClassUID:{Value:[xn.uid()],vr:"UI"},ImplementationVersionName:{Value:["dcmjs"],vr:"SH"}},g={PixelData:"OW"};d._meta=p,d._vrMap=g;const f=new wn([d]),I=u.contentItem(d);return f.dataset=Object.assign(f.dataset,I),f.dataset._meta=p,f.dataset.SpecificCharacterSet="ISO_IR 192",f}static generateToolState(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e.ContentTemplateSequence.TemplateIdentifier!=="1500")throw new Error("This package can currently only interpret DICOM SR TID 1500");const n="Imaging Measurements",a="Measurement Group",o="Tracking Identifier",s=R(e.ContentSequence).find(Pe(n)),i=R(s.ContentSequence).filter(Pe(a)),c={},u=ue.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE,l=[];return Object.keys(u).forEach(d=>{l.push(u[d]),c[d]=[]}),i.forEach(d=>{const f=R(d.ContentSequence).find(m=>m.ConceptNameCodeSequence.CodeMeaning===o).TextValue,I=t.getToolClass?t.getToolClass(d,e,l):l.find(m=>m.isValidCornerstoneTrackingIdentifier(f));if(I){const m=I.getMeasurementData(d);console.log("=== ".concat(I.toolType," ===")),console.log(m),c[I.toolType].push(m)}}),c}static registerTool(e){ue.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE[e.utilityToolType]=e,ue.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[e.toolType]=e,ue.MEASUREMENT_BY_TOOLTYPE[e.toolType]=e.utilityToolType}};M.MEASUREMENT_BY_TOOLTYPE={};M.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE={};M.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE={};function Fn(r){if(Array.isArray(r))return r}function Ln(r,e){var t=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(t!=null){var n,a,o,s,i=[],c=!0,u=!1;try{if(o=(t=t.call(r)).next,e===0){if(Object(t)!==t)return;c=!1}else for(;!(c=(n=o.call(t)).done)&&(i.push(n.value),i.length!==e);c=!0);}catch(l){u=!0,a=l}finally{try{if(!c&&t.return!=null&&(s=t.return(),Object(s)!==s))return}finally{if(u)throw a}}return i}}function ct(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,n=Array(e);t<e;t++)n[t]=r[t];return n}function kn(r,e){if(r){if(typeof r=="string")return ct(r,e);var t={}.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?ct(r,e):void 0}}function Bn(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
2
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function w(r,e){return Fn(r)||Ln(r,e)||kn(r,e)||Bn()}function me(r){"@babel/helpers - typeof";return me=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},me(r)}function Yn(r,e){if(me(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e);if(me(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function Kn(r){var e=Yn(r,"string");return me(e)=="symbol"?e:e+""}function P(r,e,t){return(e=Kn(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var $="cornerstoneTools@^4.0.0";function ut(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function dt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ut(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ut(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const zn=D.TID300.Length,Qe="Length";let J=class Xt{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.NUMGroup,o=t.SCOORDGroup,s=dt(dt({},n),{},{length:a.MeasuredValueSequence.NumericValue,toolType:Xt.toolType,handles:{start:{},end:{},textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}});var i=w(o.GraphicData,4);return s.handles.start.x=i[0],s.handles.start.y=i[1],s.handles.end.x=i[2],s.handles.end.y=i[3],s}static getTID300RepresentationArguments(e){const t=e.handles,n=e.finding,a=e.findingSites,o=t.start,s=t.end,i=e.length;return{point1:o,point2:s,distance:i,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:Length",finding:n,findingSites:a||[]}}};J.toolType=Qe;J.utilityToolType=Qe;J.TID300Representation=zn;J.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===Qe};M.registerTool(J);function lt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function pt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?lt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):lt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Xn=D.TID300.Polyline;class _{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.SCOORDGroup,o=t.NUMGroup,s=pt(pt({},n),{},{toolType:_.toolType,handles:{points:[],textBox:{active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}},cachedStats:{area:o?o.MeasuredValueSequence.NumericValue:0},color:void 0,invalidated:!0}),i=a.GraphicData;for(let c=0;c<i.length;c+=2)s.handles.points.push({x:i[c],y:i[c+1]});return s}static getTID300RepresentationArguments(e){const t=e.handles,n=e.finding,a=e.findingSites,o=e.cachedStats,s=o===void 0?{}:o,i=t.points,c=s.area,u=c===void 0?0:c,l=s.perimeter;return{points:i,area:u,perimeter:l===void 0?0:l,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:FreehandRoi",finding:n,findingSites:a||[]}}}_.toolType="FreehandRoi";_.utilityToolType="FreehandRoi";_.TID300Representation=Xn;_.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===_.toolType};M.registerTool(_);const Hn=D.TID300.Bidirectional,Je="Bidirectional",Wn="Long Axis",Qn="Short Axis",Jn="121071",Zn="G-C0E3";let Z=class Ht{static getMeasurementData(e){const t=e.ContentSequence,n=R(t).find(m=>m.ConceptNameCodeSequence.CodeValue===Jn),a=R(t).filter(m=>m.ConceptNameCodeSequence.CodeValue===Zn),o=R(t).find(m=>m.ConceptNameCodeSequence.CodeMeaning===Wn),s=R(o.ContentSequence).find(m=>m.ValueType==="SCOORD"),i=R(t).find(m=>m.ConceptNameCodeSequence.CodeMeaning===Qn),c=R(i.ContentSequence).find(m=>m.ValueType==="SCOORD"),u=s.ContentSequence.ReferencedSOPSequence,l=u.ReferencedSOPInstanceUID,d=u.ReferencedFrameNumber,p=String(o.MeasuredValueSequence.NumericValue),g=String(i.MeasuredValueSequence.NumericValue),f={x:Math.max(s.GraphicData[0],s.GraphicData[2],c.GraphicData[0],c.GraphicData[2]),y:Math.max(s.GraphicData[1],s.GraphicData[3],c.GraphicData[1],c.GraphicData[3])};return{sopInstanceUid:l,frameIndex:d||1,toolType:Ht.toolType,active:!1,handles:{start:{x:s.GraphicData[0],y:s.GraphicData[1],drawnIndependently:!1,allowedOutsideImage:!1,active:!1,highlight:!1,index:0},end:{x:s.GraphicData[2],y:s.GraphicData[3],drawnIndependently:!1,allowedOutsideImage:!1,active:!1,highlight:!1,index:1},perpendicularStart:{x:c.GraphicData[0],y:c.GraphicData[1],drawnIndependently:!1,allowedOutsideImage:!1,active:!1,highlight:!1,index:2},perpendicularEnd:{x:c.GraphicData[2],y:c.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:f.x+10,y:f.y+10}},invalidated:!1,isCreating:!1,longestDiameter:p,shortestDiameter:g,toolName:"Bidirectional",visible:!0,finding:n?n.ConceptCodeSequence:void 0,findingSites:a.map(m=>m.ConceptCodeSequence)}}static getTID300RepresentationArguments(e){const t=e.handles,n=t.start,a=t.end,o=t.perpendicularStart,s=t.perpendicularEnd,i=e.shortestDiameter,c=e.longestDiameter,u=e.finding,l=e.findingSites;return{longAxis:{point1:n,point2:a},shortAxis:{point1:o,point2:s},longAxisLength:c,shortAxisLength:i,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:Bidirectional",finding:u,findingSites:l||[]}}};Z.toolType=Je;Z.utilityToolType=Je;Z.TID300Representation=Hn;Z.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===Je};M.registerTool(Z);function gt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function ft(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?gt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):gt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const er=D.TID300.Ellipse,Ze="EllipticalRoi";class B{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.NUMGroup,s=t.SCOORDGroup.GraphicData,i=[{x:s[0],y:s[1]},{x:s[2],y:s[3]}],c=[{x:s[4],y:s[5]},{x:s[6],y:s[7]}],u=Math.sqrt(Math.pow(c[0].x-c[1].x,2)+Math.pow(c[0].y-c[1].y,2)),l={x:(c[1].x-c[0].x)/u,y:(c[1].y-c[0].y)/u},d=u/2,p={x:i[0].x+l.x*d,y:i[0].y+l.y*d},g={x:i[1].x-l.x*d,y:i[1].y-l.y*d};return ft(ft({},n),{},{toolType:B.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})}static getTID300RepresentationArguments(e){const t=e.cachedStats,n=t===void 0?{}:t,a=e.handles,o=e.finding,s=e.findingSites,i=a.start,c=a.end,u=n.area,l=Math.abs(i.x-c.x)/2,d=Math.abs(i.y-c.y)/2,p=[],g={x:(i.x+c.x)/2,y:(i.y+c.y)/2};return l>d?(p.push({x:g.x-l,y:g.y}),p.push({x:g.x+l,y:g.y}),p.push({x:g.x,y:g.y-d}),p.push({x:g.x,y:g.y+d})):(p.push({x:g.x,y:g.y-d}),p.push({x:g.x,y:g.y+d}),p.push({x:g.x-l,y:g.y}),p.push({x:g.x+l,y:g.y})),{area:u,points:p,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:EllipticalRoi",finding:o,findingSites:s||[]}}}B.toolType=Ze;B.utilityToolType=Ze;B.TID300Representation=er;B.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===Ze};M.registerTool(B);function mt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function X(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?mt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):mt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const tr=D.TID300.Circle,et="CircleRoi";class Y{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.NUMGroup,s=t.SCOORDGroup.GraphicData,i={x:s[0],y:s[1]},c={x:s[2],y:s[3]};return X(X({},n),{},{toolType:Y.toolType,active:!1,cachedStats:{area:a?a.MeasuredValueSequence.NumericValue:0,radius:0,perimeter:0},handles:{end:X(X({},c),{},{highlight:!1,active:!1}),initialRotation:0,start:X(X({},i),{},{highlight:!1,active:!1}),textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}},invalidated:!0,visible:!0})}static getTID300RepresentationArguments(e){const t=e.cachedStats,n=t===void 0?{}:t,a=e.handles,o=e.finding,s=e.findingSites,i=a.start,c=a.end,u=n.area,l=n.radius,d=2*Math.PI*l,p=[];return p.push(i),p.push(c),{area:u,perimeter:d,radius:l,points:p,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:CircleRoi",finding:o,findingSites:s||[]}}}Y.toolType=et;Y.utilityToolType=et;Y.TID300Representation=tr;Y.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===et};M.registerTool(Y);function It(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function St(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?It(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):It(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const nr=D.TID300.Point,tt="ArrowAnnotate",Ot="CORNERSTONEFREETEXT";let ee=class Wt{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.SCOORDGroup;t.findingGroup;const o=a.GraphicData;return St(St({},n),{},{toolType:Wt.toolType,active:!1,handles:{start:{x:o[0],y:o[1],highlight:!0,active:!1},end:{x:o.length==4?o[2]:o[0]+20,y:o.length==4?o[3]:o[1]+20,highlight:!0,active:!1},textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}},invalidated:!0,visible:!0})}static getTID300RepresentationArguments(e){const t=[e.handles.start,e.handles.end],n=e.findingSites;let a=e.finding;const o={points:t,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:ArrowAnnotate",findingSites:n||[]};return(!a||a.CodeValue!==Ot)&&(a={CodeValue:Ot,CodingSchemeDesignator:"CST4",CodeMeaning:e.label}),o.finding=a,o}};ee.toolType=tt;ee.utilityToolType=tt;ee.TID300Representation=nr;ee.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===tt};M.registerTool(ee);function ht(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function yt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ht(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ht(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const rr=D.TID300.CobbAngle,nt="CobbAngle";let te=class Qt{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.NUMGroup,o=t.SCOORDGroup,s=yt(yt({},n),{},{rAngle:a.MeasuredValueSequence.NumericValue,toolType:Qt.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}}});var i=w(o.GraphicData,8);return s.handles.start.x=i[0],s.handles.start.y=i[1],s.handles.end.x=i[2],s.handles.end.y=i[3],s.handles.start2.x=i[4],s.handles.start2.y=i[5],s.handles.end2.x=i[6],s.handles.end2.y=i[7],s}static getTID300RepresentationArguments(e){const t=e.handles,n=e.finding,a=e.findingSites,o=t.start,s=t.end,i=t.start2,c=t.end2,u=e.rAngle;return{point1:o,point2:s,point3:i,point4:c,rAngle:u,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:CobbAngle",finding:n,findingSites:a||[]}}};te.toolType=nt;te.utilityToolType=nt;te.TID300Representation=rr;te.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===nt};M.registerTool(te);function Dt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function Tt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Dt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Dt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const ar=D.TID300.Angle,rt="Angle";let ne=class Jt{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.NUMGroup,o=t.SCOORDGroup,s=Tt(Tt({},n),{},{rAngle:a.MeasuredValueSequence.NumericValue,toolType:Jt.toolType,handles:{start:{},middle:{},end:{},textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}});var i=w(o.GraphicData,8);return s.handles.start.x=i[0],s.handles.start.y=i[1],s.handles.middle.x=i[2],s.handles.middle.y=i[3],s.handles.middle.x=i[4],s.handles.middle.y=i[5],s.handles.end.x=i[6],s.handles.end.y=i[7],s}static getTID300RepresentationArguments(e){const t=e.handles,n=e.finding,a=e.findingSites,o=t.start,s=t.middle,i=t.middle,c=t.end,u=e.rAngle;return{point1:o,point2:s,point3:i,point4:c,rAngle:u,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:Angle",finding:n,findingSites:a||[]}}};ne.toolType=rt;ne.utilityToolType=rt;ne.TID300Representation=ar;ne.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===rt};M.registerTool(ne);function Ct(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function bt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Ct(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Ct(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const or=D.TID300.Polyline;class V{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.SCOORDGroup,o=t.NUMGroup,s=bt(bt({},n),{},{toolType:V.toolType,handles:{start:{},end:{},textBox:{active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0},initialRotation:0},cachedStats:{area:o?o.MeasuredValueSequence.NumericValue:0},color:void 0,invalidated:!0});var i=w(a.GraphicData,6);return s.handles.start.x=i[0],s.handles.start.y=i[1],i[2],i[3],s.handles.end.x=i[4],s.handles.end.y=i[5],s}static getTID300RepresentationArguments(e){const t=e.finding,n=e.findingSites,a=e.cachedStats,o=a===void 0?{}:a,s=e.handles,i=s.start,c=s.end,u=[i,{x:i.x,y:c.y},c,{x:c.x,y:i.y}],l=o.area,d=o.perimeter;return{points:u,area:l,perimeter:d,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:RectangleRoi",finding:t,findingSites:n||[]}}}V.toolType="RectangleRoi";V.utilityToolType="RectangleRoi";V.TID300Representation=or;V.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===V.toolType};M.registerTool(V);A.DicomMessage;A.DicomMetaDictionary;k.Normalizer;const we=D.orientation;we.rotateDirectionCosinesInPlane;we.flipImageOrientationPatient;we.flipMatrix2D;we.rotateMatrix902D;D.datasetToBlob;D.BitArray;D.DicomMessage;D.DicomMetaDictionary;k.Normalizer;Ie.Segmentation;hn.EXPLICIT_LITTLE_ENDIAN;var qe;(function(r){r.SEGMENTATION_LOAD_PROGRESS="CORNERSTONE_ADAPTER_SEGMENTATION_LOAD_PROGRESS"})(qe||(qe={}));const Ae=D.orientation;Ae.rotateDirectionCosinesInPlane;Ae.flipImageOrientationPatient;Ae.flipMatrix2D;Ae.rotateMatrix902D;A.BitArray;A.DicomMessage;A.DicomMetaDictionary;k.Normalizer;Ie.Segmentation;const Zt=D.compression;Zt.encode;Zt.decode;A.DicomMessage;A.DicomMetaDictionary;k.Normalizer;const sr={Length:J,FreehandRoi:_,Bidirectional:Z,EllipticalRoi:B,CircleRoi:Y,ArrowAnnotate:ee,MeasurementReport:M,CobbAngle:te,Angle:ne,RectangleRoi:V};var ge="Cornerstone3DTools@^0.1.0";const ir=["PatientName","PatientID","PatientBirthDate","PatientBirthTime","IssuerOfPatientID","OtherPatientIDs","OtherPatientIDsSequence","PatientSex","PatientIdentityRemoved","DeidentificationMethodCodeSequence"],cr=["StudyDate","StudyTime","StudyStatusID","StudyPriorityID","StudyInstanceUID","StudyDescription","AccessionNumber","StudyID","ReferringPhysicianName","TimezoneOffsetFromUTC"],ur=[...ir,...cr];function dr(r){const e={_meta:r._meta,_vrMap:r._vrMap};for(const t of ur){const n=r[t];n!==void 0&&(e[t]=n)}return e}const lr=["SeriesInstanceUID","SeriesNumber","SeriesDescription","Modality","SeriesDate","SeriesTime","_meta","_vrMap"];function pr(r){const e={};for(const t of lr){const n=r[t];n!==void 0&&(e[t]=n)}return e}function gr(r){const e=[];if(!(r!=null&&r.length))return e;const t=r.length;if(t%3!==0)throw new Error("Points array should be divisible by 3 for SCOORD3D, but contents are: ".concat(JSON.stringify(r)," of length ").concat(t));for(let n=0;n<t;n+=3)e.push([r[n],r[n+1],r[n+2]]);return e}const fr="CORNERSTONEFREETEXT",mr="CORNERSTONEJS",en={CodingSchemeDesignator:mr,codeValues:{CORNERSTONEFREETEXT:fr}};function Rt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function Mt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Rt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Rt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Fe="none",at="99CS3D",ve={schemeDesignator:at,meaning:"Text Annotation Position",value:"TextPosition"},F={schemeDesignator:at,meaning:"Control Points",value:"ControlPoints"},fe={schemeDesignator:at,meaning:"Spline Type",value:"SplineType"},Ne={schemeDesignator:"DCM",meaning:"Comment",value:"121106"},Ir=new Uint8Array(2);Ir[1]=1;const tn=new Uint8Array(2);tn[1]=2;const Sr="2.25.2470123695996825859949881583571202391.1.0.1",Or="2.25.2470123695996825859949881583571202391.2.0.1",hr=new Uint8Array(2);hr[1]=1;const ot={FileMetaInformationVersion:{Value:[tn.buffer],vr:"OB"},TransferSyntaxUID:{Value:["1.2.840.10008.1.2"],vr:"UI"},ImplementationClassUID:{Value:[Sr],vr:"UI"},ImplementationVersionName:{Value:["cs3d-4.8.4"],vr:"SH"}},yr=Mt(Mt({},ot),{},{ImplementationClassUID:{Value:[Or],vr:"UI"}}),nn=We.sr,x=nn.valueTypes,Pt=nn.coding,Dr=We.adapters.Cornerstone3D;class Tr{constructor(e,t){this.tid300Item=e,this.annotation=t,this.ReferencedSOPSequence=e.ReferencedSOPSequence}contentItem(){var e;const t=this.tid300Item.contentItem();this.fixScoordRelationships(t);const n=this.annotation.data,a=n.label,o=n.handles;return a&&(t.push(this.createQualitativeLabel(a)),this.filterCornerstoneFreeText(t)),o!=null&&(e=o.textBox)!==null&&e!==void 0&&e.hasMoved&&t.push(this.createQualitativeLabelPosition(this.annotation)),t}fixScoordRelationships(e){const t=x.RelationshipTypes.INFERRED_FROM;for(const n of e){const o=n.ContentSequence,s=this.normalizeContentSequence(o);for(const i of s)(i.ValueType==="SCOORD"||i.ValueType==="SCOORD3D")&&(i.RelationshipType==="CONTAINS"||i.RelationshipType==="Contains")&&(i.RelationshipType=t)}}normalizeContentSequence(e){return e?Array.isArray(e)?e:[e]:[]}filterCornerstoneFreeText(e){const t=Dr.CodeScheme.codeValues,n=[t.FREE_TEXT_CODE_VALUE,t.CORNERSTONEFREETEXT];for(let a=0;a<e.length;a++){const o=e[a];if(!o.ConceptCodeSequence)continue;const s=o.ConceptCodeSequence.findIndex(i=>n.includes(i.CodeValue));if(s!==-1){o.ConceptCodeSequence.splice(s,1),o.ConceptCodeSequence.length===0&&e.splice(a,1);return}}}createQualitativeLabel(e){const t=x.RelationshipTypes.CONTAINS;return new x.TextContentItem({name:new Pt.CodedConcept(Ne),relationshipType:t,value:e})}createQualitativeLabelPosition(e){const t=e.data.handles.textBox,n=e.metadata,a=n.referencedImageId,o=n.FrameOfReferenceUID,s=!a,i=E({is3DMeasurement:s,referencedImageId:a},t.worldPosition),c=i.x,u=i.y,l=i.z,d=x.GraphicTypes.POINT,p=x.RelationshipTypes.CONTAINS,g=new Pt.CodedConcept(ve),f=s?new x.Scoord3DContentItem({name:g,relationshipType:p,graphicType:d,graphicData:[c,u,l],frameOfReferenceUID:o}):new x.ScoordContentItem({name:g,relationshipType:p,graphicType:d,graphicData:[c,u]});return f.ContentSequence=[{RelationshipType:x.RelationshipTypes.SELECTED_FROM,ValueType:x.ValueTypes.IMAGE,ReferencedSOPSequence:this.ReferencedSOPSequence}],f}}var z;function vt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function W(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?vt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):vt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Cr=Kt,rn=D.TID1500,Nt=D.addAccessors,br=Ie.StructuredReport,Rr=k.Normalizer,Mr=rn.TID1500MeasurementReport,Pr=rn.TID1501MeasurementGroup,Se=A.DicomMetaDictionary,vr={CodingSchemeDesignator:"DCM",CodeValue:"121071"},Nr={CodingSchemeDesignator:Ne.schemeDesignator,CodeValue:Ne.value},Er={CodingSchemeDesignator:ve.schemeDesignator,CodeValue:ve.value},Ee={CodingSchemeDesignator:F.schemeDesignator,CodeValue:F.value},wr={CodingSchemeDesignator:"SCT",CodeValue:"363698007"},Ar={CodingSchemeDesignator:"SRT",CodeValue:"G-C0E3"};function Et(r){if(r.ValueType!=="SCOORD"&&r.ValueType!=="SCOORD3D")return!1;const e=r.ConceptNameCodeSequence,t=Array.isArray(e)?e[0]:e;return!!t&&t.CodingSchemeDesignator===Ee.CodingSchemeDesignator&&t.CodeValue===Ee.CodeValue}class N{static getTID300ContentItem(e,t,n,a){const o=n.getTID300RepresentationArguments(e,a);o.ReferencedSOPSequence=t,o.use3DSpatialCoordinates&&(o.ReferencedFrameOfReferenceUID=e.metadata.FrameOfReferenceUID);const s=new n.TID300Representation(o);return new Tr(s,e)}static getMeasurementGroup(e,t,n,a){const o=t[e],s=this.measurementAdapterByToolType.get(e);if(!o||!o.data||!o.data.length||!s)return;const i=o.data.map(c=>this.getTID300ContentItem(c,n,s,a));return new Pr(i)}static getCornerstoneLabelFromDefaultState(e){const t=e.findingSites,n=t===void 0?[]:t,a=e.finding,o=e.commentGroup;if(o!=null&&o.TextValue)return o.TextValue;const s=en.codeValues.CORNERSTONEFREETEXT,i=n.find(c=>c.CodeValue===s);if(i)return i.CodeMeaning;if(a&&a.CodeValue===s)return a.CodeMeaning}static generateDatasetMeta(){return ot}static processSCOORDGroup(e){let t=e.SCOORDGroup,n=e.toolType,a=e.sopInstanceUIDToImageIdMap,o=e.metadata;const s=t.ContentSequence.ReferencedSOPSequence,i=s.ReferencedSOPInstanceUID,c=s.ReferencedFrameNumber,u=c===void 0?1:c,l=a["".concat(i,":").concat(u)],d=o.get("imagePlaneModule",l),p=Se.uid();return{SCOORDGroup:t,ReferencedSOPSequence:s,ReferencedSOPInstanceUID:i,ReferencedFrameNumber:u,referencedImageId:l,state:{description:void 0,sopInstanceUid:i,annotation:{data:{annotationUID:p,cachedStats:{},handles:{activeHandleIndex:0,textBox:{hasMoved:!1}}},annotationUID:p,metadata:{toolName:n,referencedImageId:l,FrameOfReferenceUID:d.frameOfReferenceUID}}}}}static processSCOORD3DGroup(e){let t=e.SCOORD3DGroup,n=e.toolType;const a=Se.uid(),o={SCOORD3DGroup:t,FrameOfReferenceUID:t.ReferencedFrameOfReferenceUID,state:{description:void 0,annotation:{annotationUID:a,data:{annotationUID:a,cachedStats:{},handles:{activeHandleIndex:0,textBox:{hasMoved:!1}}},metadata:{toolName:n,FrameOfReferenceUID:t.ReferencedFrameOfReferenceUID}}}};return Dn(gr(t.GraphicData),o.state.annotation.metadata),o}static getSpatialCoordinatesState(e){var t,n;let a=e.NUMGroup,o=e.sopInstanceUIDToImageIdMap,s=e.metadata,i=e.toolType;const c=R(a.ContentSequence),u=(t=c.find(p=>p.ValueType==="SCOORD"&&!Et(p)))!==null&&t!==void 0?t:c.find(p=>p.ValueType==="SCOORD"),l=(n=c.find(p=>p.ValueType==="SCOORD3D"&&!Et(p)))!==null&&n!==void 0?n:c.find(p=>p.ValueType==="SCOORD3D"),d=l&&this.processSCOORD3DGroup({SCOORD3DGroup:l,toolType:i})||u&&this.processSCOORDGroup({SCOORDGroup:u,toolType:i,metadata:s,sopInstanceUIDToImageIdMap:o});if(!d)throw new Error("No spatial coordinates group found.");return d}static processSpatialCoordinatesGroup(e){let t=e.NUMGroup,n=e.sopInstanceUIDToImageIdMap,a=e.metadata,o=e.findingGroup,s=e.findingSiteGroups,i=e.commentGroup,c=e.commentPositionGroup,u=e.controlPointsGroup,l=e.toolType;const d=this.getSpatialCoordinatesState({NUMGroup:t,sopInstanceUIDToImageIdMap:n,metadata:a,toolType:l}),p=d.state,g=d.SCOORDGroup,f=d.ReferencedSOPSequence,I=d.ReferencedSOPInstanceUID,m=d.ReferencedFrameNumber,h=d.SCOORD3DGroup,O=d.FrameOfReferenceUID,y=d.referencedImageId,S=d.textBoxPosition,b=o?Nt(o.ConceptCodeSequence):void 0,T=s.map(v=>Nt(v.ConceptCodeSequence));if(c){p.commentPositionGroup=c;const v=pe({is3DMeasurement:!y,referencedImageId:y},c);p.annotation.data.handles.textBox={hasMoved:!0,worldPosition:v[0]}}if(u){const v=pe({is3DMeasurement:!y,referencedImageId:y},u);p.annotation.data.handles.points=v}return p.finding=b,p.findingSites=T,p.commentGroup=i,p.commentPositionGroup=c,b&&(p.description=b.CodeMeaning),p.annotation.data.label=this.getCornerstoneLabelFromDefaultState(p),{defaultState:p,state:p,NUMGroup:t,scoord:h||g,SCOORDGroup:g,ReferencedSOPSequence:f,ReferencedSOPInstanceUID:I,referencedImageId:y,textBoxPosition:S,ReferencedFrameNumber:m,SCOORD3DGroup:h,FrameOfReferenceUID:O}}static getSetupMeasurementData(e,t,n,a){const o=e.ContentSequence,s=R(o),i=s.find(S=>this.codeValueMatch(S,vr)),c=s.find(S=>this.codeValueMatch(S,Nr)),u=s.find(S=>this.codeValueMatch(S,Er));let l=s.find(S=>this.codeValueMatch(S,Ee));const d=s.find(S=>S.ValueType==="NUM");!l&&d!==null&&d!==void 0&&d.ContentSequence&&(l=R(d.ContentSequence).find(S=>this.codeValueMatch(S,Ee)));const p=s.filter(S=>this.codeValueMatch(S,wr,Ar))||[],g=d||{ContentSequence:s.filter(S=>S.ValueType==="SCOORD"||S.ValueType==="SCOORD3D")},f=this.processSpatialCoordinatesGroup({NUMGroup:g,sopInstanceUIDToImageIdMap:t,metadata:n,findingGroup:i,findingSiteGroups:p,commentGroup:c,commentPositionGroup:u,controlPointsGroup:l,toolType:a}),I=f.state.annotation.metadata.referencedImageId,m=!!f.SCOORD3DGroup,h={referencedImageId:I,is3DMeasurement:m},O=f.SCOORD3DGroup||f.SCOORDGroup,y=pe(h,O);return W(W({},f),{},{is3DMeasurement:m,scoordArgs:h,scoord:O,worldCoords:y})}static generateReferencedSOPSequence(e){let t=e.toolData,n=e.toolTypes,a=e.metadataProvider,o=e.imageId,s=e.sopInstanceUIDsToSeriesInstanceUIDMap,i=e.derivationSourceDatasets;const c=o===Fe?this.getImageIdFromVolume({toolData:t,toolTypes:n}):o,u=a.get("sopCommonModule",c),l=a.get("instance",c),d=u.sopInstanceUID,p=u.sopClassUID,g=l.SeriesInstanceUID;if(s[d]=g,!i.find(m=>m.SeriesInstanceUID===g)){const m=N.generateDerivationSourceDataset(l);i.push(m)}const f=a.get("frameNumber",c),I={ReferencedSOPClassUID:p,ReferencedSOPInstanceUID:d,ReferencedFrameNumber:void 0};return(l&&l.NumberOfFrames&&l.NumberOfFrames>1||Rr.isMultiframeSOPClassUID(p))&&(I.ReferencedFrameNumber=f),I}static getImageIdFromVolume(e){var t,n;let a=e.toolData,o=e.toolTypes;const s=a==null||(t=a[o?.[0]])===null||t===void 0||(t=t.data)===null||t===void 0?void 0:t[0],i=s==null||(n=s.metadata)===null||n===void 0?void 0:n.volumeId,c=Tn.getVolume(i);if(!c)throw new Error("No volume found for ".concat(i));return c.imageIds[0]}static generateReport(e,t,n){var a;let o=[];const s={},i=[],c=N.generateDatasetMeta();let u=!1;Object.keys(e).forEach(g=>{const f=e[g],I=Object.keys(f),m=g===Fe,h=this.generateReferencedSOPSequence({toolData:f,toolTypes:I,metadataProvider:t,imageId:g,sopInstanceUIDsToSeriesInstanceUIDMap:s,derivationSourceDatasets:i});m&&(u=!0);const O=[];I.forEach(y=>{const S=this.getMeasurementGroup(y,f,h,m);S&&O.push(S)}),o=o.concat(O)});const l=new Mr({TID1501MeasurementGroups:o},n),d=new br(i,n),p=l.contentItem(i,W(W({},n),{},{sopInstanceUIDsToSeriesInstanceUIDMap:s}));if(d.dataset=Object.assign(d.dataset,p),d.dataset._meta=c,d.SpecificCharacterSet="ISO_IR 192",(a=d.dataset).InstanceNumber||(a.InstanceNumber=n.InstanceNumber||1),n.predecessorImageId&&Object.assign(d.dataset,t.get(Cr.PREDECESSOR_SEQUENCE,n.predecessorImageId)),u&&(d.dataset.SOPClassUID=Se.sopClassUIDsByName.Comprehensive3DSR,!d.dataset.SOPClassUID))throw new Error("NO sop class defined for Comprehensive3DSR in ".concat(JSON.stringify(Se.sopClassUIDsByName)));return d}static generateToolState(e,t,n,a){if(e.ContentTemplateSequence.TemplateIdentifier!=="1500")throw new Error("This package can currently only interpret DICOM SR TID 1500");const o="Imaging Measurements",s="Measurement Group",i="Tracking Identifier",c="Tracking Unique Identifier",u=e.imageId,l=R(e.ContentSequence).find(Pe(o)),d=R(l.ContentSequence).filter(Pe(s)),p={};return d.forEach(g=>{try{var f;const m=R(g.ContentSequence),O=m.find(T=>T.ConceptNameCodeSequence.CodeMeaning===i).TextValue,y=m.find(T=>T.ConceptNameCodeSequence.CodeMeaning===c),S=y?.UID,b=(a==null||(f=a.getToolClass)===null||f===void 0?void 0:f.call(a,g,e,this.measurementAdapterByToolType))||this.getAdapterForTrackingIdentifier(O)||this.getAdapterForCodeType(g);if(b){var I;const T=b.getMeasurementData(g,t,n,O);T.TrackingUniqueIdentifier=S,T.predecessorImageId=u,console.log("=== ".concat(b.toolType," ===")),console.log(T),p[I=b.toolType]||(p[I]=[]),p[b.toolType].push(T)}}catch(m){console.warn("Unable to generate tool state for",g,m)}}),p}static registerTool(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.toolType;if(this.measurementAdapterByToolType.has(n)){if(!t)throw new Error("The registered tool name ".concat(n," already exists in adapters, use a different toolType or use replace"));typeof t=="function"&&t(this.measurementAdapterByToolType.get(n))}this.measurementAdapterByToolType.set(e.toolType,e),this.measurementAdapterByTrackingIdentifier.set(e.trackingIdentifierTextValue,e)}static registerTrackingIdentifier(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];for(const o of n)this.measurementAdapterByTrackingIdentifier.set(o,e)}static getAdapterForTrackingIdentifier(e){const t=this.measurementAdapterByTrackingIdentifier.get(e);if(t)return t;for(const n of[...this.measurementAdapterByToolType.values()])if(n.isValidCornerstoneTrackingIdentifier(e))return this.measurementAdapterByTrackingIdentifier.set(e,n),n}static getAdapterForCodeType(e){for(const t of this.measurementAdapterByTrackingIdentifier.values())if(t.isValidMeasurement(e))return t}static registerAdapterTypes(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];for(const o of n){this.measurementAdaptersByType.has(o)||this.measurementAdaptersByType.set(o,[]);const s=this.measurementAdaptersByType.get(o);s.indexOf(e)===-1&&s.push(e)}}static getAdaptersForTypes(e,t,n){const a=[];return Oe(a,this.measurementAdaptersByType.get("".concat(e,"-").concat(t,"-").concat(n))),Oe(a,this.measurementAdaptersByType.get("".concat(e,"-").concat(t))),Oe(a,this.measurementAdaptersByType.get(e)),Oe(a,this.measurementAdaptersByType.get(t)),a}}z=N;z.CORNERSTONE_3D_TAG=ge;z.measurementAdapterByToolType=new Map;z.measurementAdaptersByType=new Map;z.measurementAdapterByTrackingIdentifier=new Map;z.codeValueMatch=(r,e,t)=>{const n=r.ConceptNameCodeSequence;if(!n)return;const a=Array.isArray(n)?n[0]:n;if(!a)return;const o=a.CodingSchemeDesignator,s=a.CodeValue;return o==e.CodingSchemeDesignator&&s==e.CodeValue||t&&o==t.CodingSchemeDesignator&&s==t.CodeValue};z.generateDerivationSourceDataset=r=>{const e=dr(r),t=pr(r);return W(W({},e),t)};function Oe(r,e){e!=null&&e.length&&r.push(...e)}class U{static registerType(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=e;t&&(a="".concat(a).concat(a.length?"-":"").concat(t)),n&&(a="".concat(a).concat(a.length?"-":"").concat(n)),N.registerAdapterTypes(this,a)}static getPointsCount(e){const n=e.ValueType==="SCOORD3D"?3:2;return e.GraphicData.length/n}static getGraphicItems(e,t){const n=e.ContentSequence.filter(a=>a.ValueType==="SCOORD"||a.ValueType==="SCOORD3D");return t?n.filter(t):n}static getGraphicItem(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;return this.getGraphicItems(e,n&&(o=>o.ValueType===n))[t]}static getGraphicCode(e){const t=e.ConceptNameCodeSequence,n=t.CodeValue,a=t.CodingSchemeDesignator;return"".concat(a,":").concat(n)}static getGraphicType(e){return e.GraphicType}static isValidMeasurement(e){return!1}static init(e,t,n){if(this.toolType=e,U.toolType)throw new Error("Base adapter tool type set to ".concat(this.toolType," while setting ").concat(e));if(this.parentType=n?.parentType,this.trackingIdentifiers=new Set,this.TID300Representation=t,this.parentType){this.trackingIdentifierTextValue="".concat(ge,":").concat(this.parentType,":").concat(this.toolType);const a="".concat(ge,":").concat(this.toolType);this.trackingIdentifiers.add(a)}else this.trackingIdentifierTextValue="".concat(ge,":").concat(e);this.trackingIdentifiers.add(this.trackingIdentifierTextValue),N.registerTool(this)}static registerLegacy(){this.trackingIdentifiers.add("cornerstoneTools@^4.0.0:".concat(this.toolType))}static registerSubType(e,t,n){const a=Object.create(e);return a.init(t,e.TID300Representation,{parentType:e.parentType||e.toolType,replace:n}),a}static isValidCornerstoneTrackingIdentifier(e){return this.trackingIdentifiers.has(e)?!0:e.includes(":")?e.startsWith(this.trackingIdentifierTextValue):!1}static getMeasurementData(e,t,n,a){const o=N.getSetupMeasurementData(e,t,n,this.toolType),s=o.defaultState,i=o.ReferencedFrameNumber;return s.annotation.data={cachedStats:{},frameNumber:i,seriesLevel:a?.indexOf(":Series")>0},s}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.metadata,a=e.finding,o=e.findingSites,s=n.referencedImageId;return{points:Q({is3DMeasurement:t,referencedImageId:s},e.data.handles.points),trackingIdentifierTextValue:this.trackingIdentifierTextValue,findingSites:o||[],finding:a,ReferencedFrameOfReferenceUID:t?n.FrameOfReferenceUID:null}}static getCachedStats(e,t){const n=t.referencedImageId,a=t.volumeId;return e["imageId:".concat(n)]||e["volumeId:".concat(a)]||{}}}var Le;function wt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function he(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?wt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):wt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Ur=D.TID300.ArrowAnnotate,jr=Yt;class an extends U{static getMeasurementData(e,t,n,a){const o=N.getSetupMeasurementData(e,t,n,this.toolType),s=o.state,i=o.SCOORDGroup,c=o.worldCoords,u=o.referencedImageId,l=o.ReferencedFrameNumber,d=s.annotation.data.label;if(c.length===1&&i){const p=n.get("imagePixelModule",u);let g=10,f=10;if(p){const h=p.columns,O=p.rows;g=h/10,f=O/10}const I=i.GraphicData,m=jr(u,[I[0]+g,I[1]+f]);c.push(m)}return s.annotation.data=he(he({},s.annotation.data),{},{text:d,handles:he(he({},s.annotation.data.handles),{},{arrowFirst:!0,points:c}),frameNumber:l}),s}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.metadata,o=e.findingSites,s=e.finding,i=a.referencedImageId,c={is3DMeasurement:t,referencedImageId:i},u=n.handles,l=u.points,d=u.arrowFirst,p=d?l[0]:l[1],g=d?l[1]:l[0],f=E(c,p),I=E(c,g);return{points:[f,I],trackingIdentifierTextValue:this.trackingIdentifierTextValue,findingSites:o||[],finding:s,ReferencedFrameOfReferenceUID:t?a.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}Le=an;Le.init("ArrowAnnotate",Ur),Le.registerLegacy();var ke;function At(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function ye(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?At(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):At(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const xr=D.TID300.Bidirectional,Gr="Long Axis",_r="Short Axis";class on extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,this.toolType),o=a.state,s=a.scoordArgs,i=a.referencedImageId,c=a.ReferencedFrameNumber,u=e.ContentSequence,l=R(u).find(I=>I.ConceptNameCodeSequence.CodeMeaning===Gr),d=R(u).find(I=>I.ConceptNameCodeSequence.CodeMeaning===_r),p=R(l.ContentSequence).find(I=>I.ValueType==="SCOORD3D"||I.ValueType==="SCOORD"),g=R(d.ContentSequence).find(I=>I.ValueType==="SCOORD3D"||I.ValueType==="SCOORD"),f=[];return f.push(...pe(s,p)),f.push(...pe(s,g)),o.annotation.data=ye(ye({},o.annotation.data),{},{handles:ye(ye({},o.annotation.data.handles),{},{points:[f[0],f[1],f[2],f[3]]}),frameNumber:c}),i&&(o.annotation.data.cachedStats={["imageId:".concat(i)]:{length:l.MeasuredValueSequence.NumericValue,width:d.MeasuredValueSequence.NumericValue,unit:l.MeasuredValueSequence.MeasurementUnitsCodeSequence.CodeValue,widthUnit:d.MeasuredValueSequence.MeasurementUnitsCodeSequence.CodeValue}}),o}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.cachedStats,c=i===void 0?{}:i,u=n.handles,l=s.referencedImageId,d={is3DMeasurement:t,referencedImageId:l},p=u.points,g=[p[0],p[1]],f=[p[2],p[3]],I=Math.sqrt(Math.pow(g[0][0]-g[1][0],2)+Math.pow(g[0][1]-g[1][1],2)+Math.pow(g[0][2]-g[1][2],2)),m=Math.sqrt(Math.pow(f[0][0]-f[1][0],2)+Math.pow(f[0][1]-f[1][1],2)+Math.pow(f[0][2]-f[1][2],2));let h,O;I>m?(h=g,O=f):(h=f,O=g);const y=E(d,h[0]),S=E(d,h[1]),b=E(d,O[0]),T=E(d,O[1]),v=super.getCachedStats(c,s),j=v.length,re=v.width,ae=v.unit;return{longAxis:{point1:y,point2:S},shortAxis:{point1:b,point2:T},longAxisLength:j,shortAxisLength:re,unit:ae,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],ReferencedFrameOfReferenceUID:t?s.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}ke=on;ke.init("Bidirectional",xr),ke.registerLegacy();var Be;function Ut(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function De(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Ut(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Ut(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Vr=D.TID300.CobbAngle;class sn extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,this.toolType),o=a.state,s=a.NUMGroup,i=a.worldCoords,c=a.referencedImageId,u=a.ReferencedFrameNumber,l=c?{["imageId:".concat(c)]:{angle:s?s.MeasuredValueSequence.NumericValue:null}}:{};return o.annotation.data=De(De({},o.annotation.data),{},{handles:De(De({},o.annotation.data.handles),{},{points:[i[0],i[1],i[3]]}),cachedStats:l,frameNumber:u}),o}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.cachedStats,c=i===void 0?{}:i,u=n.handles,l=s.referencedImageId,d={is3DMeasurement:t,referencedImageId:l},p=E(d,u.points[0]),g=E(d,u.points[1]),f=E(d,u.points[1]),I=E(d,u.points[2]),m=super.getCachedStats(c,s),h=m.angle;return{point1:p,point2:g,point3:f,point4:I,rAngle:h,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],ReferencedFrameOfReferenceUID:t?s.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}Be=sn;Be.init("Angle",Vr),Be.registerLegacy();var Ye;function jt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function Te(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?jt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):jt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const $r=D.TID300.CobbAngle;class Ue extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,Ue.toolType),o=a.state,s=a.NUMGroup,i=a.referencedImageId,c=a.worldCoords,u=a.ReferencedFrameNumber;return o.annotation.data=Te(Te({},o.annotation.data),{},{handles:Te(Te({},o.annotation.data.handles),{},{points:[c[0],c[1],c[2],c[3]]}),frameNumber:u}),i&&(o.annotation.data.cachedStats={["imageId:".concat(i)]:{angle:s?s.MeasuredValueSequence.NumericValue:null}}),o}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.cachedStats,c=i===void 0?{}:i,u=n.handles,l=s.referencedImageId,p=Q({is3DMeasurement:t,referencedImageId:l},u.points),g=w(p,4),f=g[0],I=g[1],m=g[2],h=g[3],O=c["imageId:".concat(l)]||{},y=O.angle;return{point1:f,point2:I,point3:m,point4:h,rAngle:y,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],ReferencedFrameOfReferenceUID:t?s.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}Ye=Ue;Ye.init("CobbAngle",$r),Ye.registerLegacy();const qr="[hnsf'U]",Fr="HU",Lr="mm2",kr="mm²",Br={[qr]:Fr,[Lr]:kr};function cn(r){return r&&(Br[r]||r)}const Ke=new Set(["Mean","Standard Deviation","Maximum","Minimum"]);function je(r,e){const t={};return r.ContentSequence&&r.ContentSequence.forEach(n=>{if(n.ValueType==="NUM"&&n.ConceptNameCodeSequence){var a,o;const s=n.ConceptNameCodeSequence.CodeMeaning,i=(a=n.MeasuredValueSequence)===null||a===void 0?void 0:a.NumericValue,c=(o=n.MeasuredValueSequence)===null||o===void 0||(o=o.MeasurementUnitsCodeSequence)===null||o===void 0?void 0:o.CodeValue;if(i!==void 0&&e){t[e]||(t[e]={});let u="";c&&(u=Yr(s,c)),t[e][s]={value:i,unit:u}}}}),t}function xe(r){const e={};let t="";const n={Mean:"mean","Standard Deviation":"stdDev",Maximum:"max",Minimum:"min",Area:"area",Radius:"radius",Perimeter:"perimeter",Length:"length",Width:"width"},a={mean:"modalityUnit",stdDev:"modalityUnit",max:"modalityUnit",min:"modalityUnit",area:"areaUnit",radius:"radiusUnit",perimeter:"unit",length:"unit",width:"widthUnit"};for(const s of Object.entries(n)){var o=w(s,2);const i=o[0],c=o[1],u=r[i];if(!u)continue;const l=u.value,d=u.unit;if(l==null||(e[c]=l,!d))continue;const p=cn(d);if(!p)continue;Ke.has(i)&&!t&&(t=p);const g=a[c];g?e[g]||(e[g]=p):e["".concat(c,"Unit")]=p}return e.modalityUnit=t,e}function Yr(r,e){if(!e)return"";const t=e.CodeValue,n=e.CodeMeaning;return t==="1"?!Ke.has(r)&&r==="Area"?"".concat(n,"²"):Ke.has(r)?"":n:t}var ze;function xt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function oe(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?xt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):xt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Kr=D.TID300.Circle;class un extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,this.toolType),o=a.state,s=a.NUMGroup,i=a.worldCoords,c=a.referencedImageId,u=a.ReferencedFrameNumber,l=o.sopInstanceUid,p=je(e,l)[l]||{};return o.annotation.data=oe(oe({},o.annotation.data),{},{handles:oe(oe({},o.annotation.data.handles),{},{points:i}),frameNumber:u}),c&&(o.annotation.data.cachedStats={["imageId:".concat(c)]:oe({area:s?s.MeasuredValueSequence.NumericValue:0,radius:0,perimeter:0},xe(p))}),o}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.cachedStats,c=i===void 0?{}:i,u=n.handles,l=s.referencedImageId,d={is3DMeasurement:t,referencedImageId:l},p=E(d,u.points[0]),g=E(d,u.points[1]),f=super.getCachedStats(c,s),I=f.area,m=f.radius,h=f.max,O=f.min,y=f.stdDev,S=f.mean,b=f.modalityUnit,T=f.radiusUnit,v=f.areaUnit,j=2*Math.PI*m;return{area:I,areaUnit:v,perimeter:j,modalityUnit:b,radiusUnit:T,radius:m,max:h,min:O,stdDev:y,mean:S,points:[p,g],trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],ReferencedFrameOfReferenceUID:t?s.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}ze=un;ze.init("CircleROI",Kr),ze.registerLegacy();var dn;function Gt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function se(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Gt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Gt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const zr=D.TID300.Ellipse;class Ge extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,Ge.toolType),o=a.state,s=a.NUMGroup,i=a.worldCoords,c=a.referencedImageId,u=a.ReferencedFrameNumber,l=o.sopInstanceUid,p=je(e,l)[l]||{};return o.annotation.data=se(se({},o.annotation.data),{},{handles:se(se({},o.annotation.data.handles),{},{points:i}),frameNumber:u}),o.annotation.data.cachedStats=c?{["imageId:".concat(c)]:se({area:s?s.MeasuredValueSequence.NumericValue:0},xe(p))}:{},o}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.cachedStats,c=i===void 0?{}:i,u=n.handles,l=n.initialRotation||0,d=s.referencedImageId,p={is3DMeasurement:t,referencedImageId:d};let g,f,I,m;l==90||l==270?(f=u.points[2],g=u.points[3],I=u.points[0],m=u.points[1]):(g=u.points[0],f=u.points[1],I=u.points[2],m=u.points[3]);const h=Math.sqrt((g[0]-f[0])**2+(g[1]-f[1])**2+(g[2]-f[2])**2),O=Math.sqrt((I[0]-m[0])**2+(I[1]-m[1])**2+(I[2]-m[2])**2),y=[];h>O?y.push(g,f,I,m):y.push(I,m,g,f);const S=super.getCachedStats(c,s),b=S.area,T=S.max,v=S.min,j=S.mean,re=S.stdDev,ae=S.modalityUnit,Ve=S.areaUnit,Sn=y.map(On=>E(p,On));return{area:b,areaUnit:Ve,max:T,min:v,mean:j,stdDev:re,modalityUnit:ae,points:Sn,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],ReferencedFrameOfReferenceUID:t?s.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}dn=Ge;dn.init("EllipticalROI",zr);var de;function _t(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function ie(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?_t(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):_t(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Xr=D.TID300.Polyline;class ln extends U{static isValidMeasurement(e){const t=this.getGraphicItem(e),n=this.getPointsCount(t);return this.getGraphicType(t)==="POLYLINE"&&(n===4||n===5)}static getMeasurementData(e,t,n){var a,o;const s=N.getSetupMeasurementData(e,t,n,this.toolType),i=s.state,c=s.worldCoords,u=s.referencedImageId,l=s.ReferencedFrameNumber,d=c.length===5?c.slice(0,4):c,p=e.ContentSequence.find(T=>T.ValueType==="NUM"&&T.ConceptNameCodeSequence.CodeMeaning==="Area"),g=i.sopInstanceUid,I=je(e,g)[g]||{},m=xe(I),h=p==null||(a=p.MeasuredValueSequence)===null||a===void 0||(a=a[0])===null||a===void 0?void 0:a.MeasurementUnitsCodeSequence,O=h?.CodeValue,y=O?cn(O):m.areaUnit,S=u?{["imageId:".concat(u)]:ie({area:(p==null||(o=p.MeasuredValueSequence)===null||o===void 0||(o=o[0])===null||o===void 0?void 0:o.NumericValue)||0,areaUnit:y},m)}:{},b=[d[0],d[1],d[3],d[2]];return i.annotation.data=ie(ie({},i.annotation.data),{},{handles:ie(ie({},i.annotation.data.handles),{},{points:b}),cachedStats:S,frameNumber:l}),i}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=s.referencedImageId,u=Q({is3DMeasurement:t,referencedImageId:i},n.handles.points),l=super.getCachedStats(n.cachedStats,s),d=l.area,p=l.perimeter,g=l.max,f=l.mean,I=l.stdDev,m=l.areaUnit,h=l.modalityUnit;return{points:[u[0],u[1],u[3],u[2],u[0]],area:d,perimeter:p,max:g,mean:f,stdDev:I,areaUnit:m,modalityUnit:h,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],use3DSpatialCoordinates:t}}}de=ln;de.init("RectangleROI",Xr),de.registerLegacy(),de.registerType("DCM:111030","POLYLINE",4),de.registerType("DCM:111030","POLYLINE",5);var Xe;function Vt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function Ce(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Vt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Vt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Hr=D.TID300.Length,Wr="Length";class pn extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,this.toolType),o=a.state,s=a.NUMGroup,i=a.worldCoords,c=a.referencedImageId,u=a.ReferencedFrameNumber,l=c?{["imageId:".concat(c)]:{length:s?s.MeasuredValueSequence.NumericValue:0,unit:s.MeasuredValueSequence.MeasurementUnitsCodeSequence.CodeValue}}:{};return o.annotation.data=Ce(Ce({},o.annotation.data),{},{handles:Ce(Ce({},o.annotation.data.handles),{},{points:[i[0],i[1]],activeHandleIndex:0}),cachedStats:l,frameNumber:u}),o}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.cachedStats,c=i===void 0?{}:i,u=n.handles,l=s.referencedImageId,d={is3DMeasurement:t,referencedImageId:l},p=E(d,u.points[0]),g=E(d,u.points[1]),f=super.getCachedStats(c,s),I=f.length;return{point1:p,point2:g,distance:I,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],use3DSpatialCoordinates:t}}}Xe=pn;Xe.init(Wr,Hr),Xe.registerLegacy();const G=yn.valueTypes,Qr=D.TID300.Polyline;class Jr extends Qr{contentItem(){const e=super.contentItem(),t=this,n=t.props,a=n.controlPoints,o=n.use3DSpatialCoordinates,s=n.ReferencedSOPSequence,i=n.ReferencedFrameOfReferenceUID,c=n.use3DSpatialCoordinates;if(!(a!=null&&a.length))return e;const u=t.flattenPoints({points:a,use3DSpatialCoordinates:o}),l=G.GraphicTypes.MULTIPOINT,d=c?{RelationshipType:G.RelationshipTypes.CONTAINS,ValueType:"SCOORD3D",ConceptNameCodeSequence:[{CodeValue:F.value,CodingSchemeDesignator:F.schemeDesignator,CodeMeaning:F.meaning}],GraphicType:l,GraphicData:u,ReferencedFrameOfReferenceUID:i,ContentSequence:[{RelationshipType:G.RelationshipTypes.SELECTED_FROM,ValueType:G.ValueTypes.IMAGE,ReferencedSOPSequence:s}]}:{RelationshipType:G.RelationshipTypes.CONTAINS,ValueType:"SCOORD",ConceptNameCodeSequence:[{CodeValue:F.value,CodingSchemeDesignator:F.schemeDesignator,CodeMeaning:F.meaning}],GraphicType:l,GraphicData:u,ContentSequence:[{RelationshipType:G.RelationshipTypes.SELECTED_FROM,ValueType:G.ValueTypes.IMAGE,ReferencedSOPSequence:s}]},p=t.props.splineType,g=e,f=g.find(I=>I.ValueType==="NUM");if(f){const I=f.ContentSequence,m=Array.isArray(I)?I:I?[I]:[];f.ContentSequence=[...m,d]}else g.push(d);if(p){const I={RelationshipType:G.RelationshipTypes.HAS_OBS_CONTEXT,ValueType:"TEXT",ConceptNameCodeSequence:{CodeValue:fe.value,CodingSchemeDesignator:fe.schemeDesignator,CodeMeaning:fe.meaning},TextValue:p},m=g.findIndex(O=>O.RelationshipType===G.RelationshipTypes.HAS_OBS_CONTEXT),h=m>=0?m+2:2;g.splice(h,0,I)}return g}}var K;function $t(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function H(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?$t(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):$t(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}class gn extends U{static getMeasurementData(e,t,n){var a,o,s;const i=N.getSetupMeasurementData(e,t,n,this.toolType),c=i.state,u=i.NUMGroup,l=i.worldCoords,d=i.referencedImageId,p=i.ReferencedFrameNumber,g=Mn(l[l.length-1],l[0]);let f=!0;g<this.closedContourThreshold&&(l.pop(),f=!1);let I=(a=(o=c.annotation.data.handles)===null||o===void 0?void 0:o.points)!==null&&a!==void 0?a:[];f&&I.length===0&&(I=[l[0],l[l.length-1]]);const m=c.sopInstanceUid,O=je(e,m)[m]||{},y={CodingSchemeDesignator:fe.schemeDesignator,CodeValue:fe.value},S=u?R(u.ContentSequence):[],b=R(e.ContentSequence),T=(s=S.find(v=>N.codeValueMatch(v,y)))!==null&&s!==void 0?s:b.find(v=>N.codeValueMatch(v,y));return c.annotation.data=H(H({},c.annotation.data),{},{contour:{polyline:l,closed:!f},handles:H(H({},c.annotation.data.handles),{},{points:I}),frameNumber:p},T&&{spline:{type:T.TextValue}}),d&&(c.annotation.data.cachedStats={["imageId:".concat(d)]:H(H({},!f&&u?{area:u.MeasuredValueSequence.NumericValue}:{}),xe(O))}),c}static getTID300RepresentationArguments(e){var t,n;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const o=e.data,s=e.finding,i=e.findingSites,c=e.metadata,u=o.handles,l=o.contour,d=l.polyline,g=l.closed!==!0,f=c.referencedImageId,I={is3DMeasurement:a,referencedImageId:f},m=Q(I,d);if(!g){const Ve=m[0];m.push(Ve)}const h=(u==null||(t=u.points)===null||t===void 0?void 0:t.length)&&Q(I,u.points),O=super.getCachedStats(o.cachedStats,c),y=O.area,S=O.areaUnit,b=O.modalityUnit,T=O.perimeter,v=O.mean,j=O.max,re=O.stdDev,ae=O.length;return{points:m,controlPoints:h,area:y,areaUnit:S,perimeter:T??ae,modalityUnit:b,mean:v,max:j,stdDev:re,splineType:(n=o.spline)===null||n===void 0?void 0:n.type,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:s,findingSites:i||[],ReferencedFrameOfReferenceUID:a?c.FrameOfReferenceUID:null,use3DSpatialCoordinates:a}}}K=gn;K.closedContourThreshold=1e-5;K.init("PlanarFreehandROI",Jr),K.registerSubType(K,"LivewireContour"),K.registerSubType(K,"SplineROI");var le;function qt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function be(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?qt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):qt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Zr=D.TID300.Point;class _e extends U{static isValidMeasurement(e){const t=this.getGraphicItem(e);return this.getGraphicType(t)==="POINT"&&this.getPointsCount(t)<=2}static getMeasurementData(e,t,n,a){var o,s;const i=N.getSetupMeasurementData(e,t,n,this.toolType),c=i.state,u=i.NUMGroup,l=i.worldCoords,d=i.referencedImageId,p=i.ReferencedFrameNumber,g=d?{["imageId:".concat(d)]:{value:(o=u==null||(s=u.MeasuredValueSequence)===null||s===void 0?void 0:s.NumericValue)!==null&&o!==void 0?o:null}}:{};return c.annotation.data=be(be({},c.annotation.data),{},{handles:be(be({},c.annotation.data.handles),{},{points:l}),cachedStats:g,frameNumber:p,invalidated:!0}),c}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.metadata,o=e.finding,s=e.findingSites,i=a.referencedImageId,c={is3DMeasurement:t,referencedImageId:i},u=n.handles.points;return{points:Q(c,u===void 0?[]:u),trackingIdentifierTextValue:this.trackingIdentifierTextValue,findingSites:s||[],finding:o,ReferencedFrameOfReferenceUID:t?a.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}le=_e;le.init("Probe",Zr),le.registerLegacy(),le.registerType("DCM:111030","POINT",1),le.registerType("DCM:111030","POINT",2);var fn;function Ft(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function Re(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Ft(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Ft(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const ea=D.TID300.Length,Lt=Bt;class mn extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,this.toolType),o=a.state,s=a.worldCoords,i=a.ReferencedFrameNumber;return o.annotation.data=Re(Re({},o.annotation.data),{},{handles:Re(Re({},o.annotation.data.handles),{},{points:s}),frameNumber:i}),o}static getTID300RepresentationArguments(e,t){const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.handles,c=s.referencedImageId;if(!c)throw new Error("UltrasoundDirectionalTool.getTID300RepresentationArguments: referencedImageId is not defined");const u=Lt(c,i.points[0]),l=Lt(c,i.points[1]),d={x:u[0],y:u[1]},p={x:l[0],y:l[1]};return{point1:d,point2:p,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[]}}}fn=mn;fn.init("UltrasoundDirectionalTool",ea);k.SEGImageNormalizer;Ie.Segmentation;A.DicomMessage;A.DicomMetaDictionary;k.Normalizer;Pn(r=>{Cn(bn,qe.SEGMENTATION_LOAD_PROGRESS,{percentComplete:r})},200);function kt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function ce(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?kt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):kt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Me=We.data.DicomMetaDictionary,C=Kt,ta=[C.GENERAL_STUDY,C.PATIENT_STUDY,C.PATIENT],na=[C.GENERAL_SERIES],ra=[C.GENERAL_IMAGE,C.IMAGE_PLANE,C.CINE,C.VOI_LUT,C.MODALITY_LUT,C.SOP_COMMON],He={get:function(r,e,t){var n;return(n=He[r])===null||n===void 0?void 0:n.call(He,e,t)},[C.IMAGE_SOP_INSTANCE_REFERENCE]:function(r){const e=q(C.FRAME_MODULE,r),t=e.sopClassUID,n=e.sopInstanceUID,a=e.frameNumber;return e.numberOfFrames>1?{ReferencedSOPClassUID:t,ReferencedSOPInstanceUID:n,ReferencedFrameNumber:a}:{ReferencedSOPClassUID:e.sopClassUID,ReferencedSOPInstanceUID:e.sopInstanceUID}},[C.REFERENCED_SERIES_REFERENCE]:r=>{const e=q(C.SOP_COMMON,r);return{SeriesInstanceUID:q(C.GENERAL_SERIES,r).seriesInstanceUID,ReferencedInstanceSequence:[{ReferencedSOPClassUID:e.sopClassUID,ReferencedSOPInstanceUID:e.sopInstanceUID}]}},[C.PREDECESSOR_SEQUENCE]:r=>{const e=ce({},q(C.SERIES_DATA,r)),t=q(C.GENERAL_IMAGE,r),n=q(C.GENERAL_STUDY,r);return e.InstanceNumber=1+Number(t.instanceNumber),e.PredecessorDocumentsSequence={StudyInstanceUID:n.studyInstanceUID,ReferencedSeriesSequence:{SeriesInstanceUID:e.SeriesInstanceUID,ReferencedSOPSequence:{ReferencedSOPClassUID:t.sopClassUID,ReferencedSOPInstanceUID:t.sopInstanceUID}}},e},[C.STUDY_DATA]:r=>$e(r,ta),[C.SERIES_DATA]:r=>$e(r,na),[C.IMAGE_DATA]:r=>$e(r,ra),[C.RTSS_INSTANCE_DATA]:r=>{const e=q(C.NEW_INSTANCE_DATA,r);return ce(ce({},e),{},{SeriesNumber:"3201",StructureSetROISequence:[],ROIContourSequence:[],RTROIObservationsSequence:[],ReferencedFrameOfReferenceSequence:[],Modality:"RTSTRUCT",SOPClassUID:"1.2.840.10008.5.1.4.1.1.481.3",PositionReferenceIndicator:"",StructureSetLabel:"",StructureSetName:"",StructureSetDate:Me.date(),StructureSetTime:Me.time()})},[C.NEW_INSTANCE_DATA]:r=>{const e=q(C.STUDY_DATA,r);return ce(ce({},e),{},{SeriesNumber:"50000",InstanceNumber:"1",OperatorsName:"",ReferringPhysicianName:"",SpecificCharacterSet:"ISO_IR 192",Manufacturer:"cs3d",SOPInstanceUID:Me.uid(),SeriesInstanceUID:Me.uid()})},[C.RTSS_CONTOUR]:()=>yr,[C.SR_ANNOTATION]:()=>ot};Rn(He.get,9023);var L;const aa=D.TID300.Point;class In extends _e{static getMeasurementData(e,t,n,a){const o=super.getMeasurementData(e,t,n,a),s=o.annotation.data;return s.isPoint=a.indexOf("Point")!==-1,o}static getTID300RepresentationArguments(e){const t=super.getTID300RepresentationArguments(e),n=e.data;return n.isPoint&&(n.seriesLevel?t.trackingIdentifierTextValue=this.trackingSeriesPointIdentifier:t.trackingIdentifierTextValue=this.trackingPointIdentifier),n.seriesLevel&&(t.trackingIdentifierTextValue=this.trackingSeriesIdentifier),t.points.length||t.points.push({x:0,y:0}),t}}L=In;L.init("KeyImage",aa,{parentType:_e.toolType});L.trackingSeriesIdentifier="".concat(L.trackingIdentifierTextValue,":Series");L.trackingPointIdentifier="".concat(L.trackingIdentifierTextValue,":Point");L.trackingSeriesPointIdentifier="".concat(L.trackingIdentifierTextValue,":SeriesPoint");const oa={BaseAdapter3D:U,Bidirectional:on,CobbAngle:Ue,Angle:sn,Length:pn,CircleROI:un,EllipticalROI:Ge,RectangleROI:ln,ArrowAnnotate:an,Probe:_e,PlanarFreehandROI:gn,UltrasoundDirectional:mn,KeyImage:In,MeasurementReport:N,CodeScheme:en,CORNERSTONE_3D_TAG:ge,COMMENT_CODE:Ne,NO_IMAGE_ID:Fe,TEXT_ANNOTATION_POSITION:ve};A.Colors;A.BitArray;const ga={Cornerstone:sr,Cornerstone3D:oa};export{Fe as NO_IMAGE_ID,ga as adaptersSR};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c4 as Jf,c5 as Ai,c6 as Xo,c7 as Yf,c8 as Xf,c9 as Kf,ca as Qf,cb as ec,cc as tc,cd as rc,ce as nc,cf as ac,cg as ic,ch as oc,ci as sc,cj as lc,ck as fc,cl as cc,cm as uc,cn as dc,co as hc,bi as vn,t as Pa,e as xa,ah as _n,cp as ll,aN as fl,au as pc,aV as vc,K as gc,bP as _c,cq as cl,cr as ul,cs as lo,aX as ca,ct as yc,bL as mc,aQ as bc,at as wc,cu as Pc,cv as xc}from"./Settings-BVnfxRPh.js";import{r as ei}from"./cornerstoneEngine-CGEzAsx7.js";import"./Texture-C99vHuBO.js";import{u as dl}from"./index-CmFTTf9P.js";import{c as gn,g as Ci}from"./_commonjsHelpers-CE1G-McA.js";import{_ as hl}from"./index-Dtsm0q-Z.js";import"./dcmjs.es-DfWkgqfk.js";const pl=["PixelData","FramePixelData","FloatPixelData","7FE00010","7fe00010","7FE00008","7fe00008"],Ec=["FloatPixelData","7FE00008","7fe00008"];function Tc(e){for(const r of pl){const t=e[r];if(t!=null&&Array.isArray(t)&&t.length>0)return t}}function $c(e){for(const r of pl){const t=e[r];if(t!=null&&Array.isArray(t)&&t.length>0)return r}}function Ac(e){const r=$c(e);return r!==void 0&&Ec.includes(r)}function fo(e){return e instanceof ArrayBuffer?new Uint8Array(e):e}function Cc(e){return e instanceof ArrayBuffer,e.byteLength}function Ko(e,r){const t=e[r];if(t!=null)return Array.isArray(t)?t.map(fo):fo(t)}function Sc(e,r,t,n){if(e.length!==1||!Ac(n))return;const i=e[0];if(i==null)return;const l=fo(i),a=Cc(i);if(t<=0||a%t!==0)return;const d=a/t,P=r*d;return P+d>a?void 0:(console.warn("[compressedFrameData] Splitting single-buffer pixel data by numberOfFrames for paramap-type image; frameIndex=",r,", numberOfFrames=",t,", frameSize=",d),[(l instanceof Uint8Array?l:new Uint8Array(l.buffer,l.byteOffset,l.byteLength)).subarray(P,P+d)])}function Dc(e,r){if(!e)return;const t=Tc(e);if(!t)return;const{TransferSyntaxUID:n}=e;if(!n)return;const i=r??0,l=i+1,a=e.NumberOfFrames!=null?Number(e.NumberOfFrames):1;let d;if(t.length===a?d=Ko(t,i):(d=Sc(t,i,a,e),d===void 0&&(d=Ko(t,i))),d!==void 0)return{transferSyntaxUid:n,frameOfInterest:i,frameNumber:l,pixelData:d}}const Rc=Ai.COMPRESSED_FRAME_DATA,Ic=(e,r,t,n)=>{const i=n?.frameIndex??0,l=Dc(t,i);return l||e(r,t,n)};function Oc(){Jf(Rc,Ic)}const kc=-1e3;function vl(){Xo(Yf,kc),Xo(Xf.get),Kf(),Qf(),ec(),tc(),rc(),nc(),ac(),ic(),oc(),sc(),lc(),fc(),cc(),uc(),dc(),Oc(),hc()}function Do(e,r,t){if(e===void 0)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!==0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0;if(t){for(let a=0;a<n;a++)r[l++]=e[i++],r[l++]=e[i++],r[l++]=e[i++],r[l++]=255;return}r.set(e)}function gl(e,r,t){if(e===void 0)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!==0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0,a=n,d=n*2;if(t)for(let P=0;P<n;P++)r[i++]=e[l++],r[i++]=e[a++],r[i++]=e[d++],r[i++]=255;else for(let P=0;P<n;P++)r[i++]=e[l++],r[i++]=e[a++],r[i++]=e[d++]}function _l(e,r,t){if(e===void 0)throw new Error("convertYBRFullByPixel: ybrBuffer must be defined");if(e.length%3!==0)throw new Error(`convertYBRFullByPixel: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0;if(t){for(let a=0;a<n;a++){const d=e[i++],P=e[i++],y=e[i++];r[l++]=d+1.402*(y-128),r[l++]=d-.34414*(P-128)-.71414*(y-128),r[l++]=d+1.772*(P-128),r[l++]=255}return}for(let a=0;a<n;a++){const d=e[i++],P=e[i++],y=e[i++];r[l++]=d+1.402*(y-128),r[l++]=d-.34414*(P-128)-.71414*(y-128),r[l++]=d+1.772*(P-128)}}function yl(e,r,t){if(e===void 0)throw new Error("convertYBRFullByPlane: ybrBuffer must be defined");if(e.length%3!==0)throw new Error(`convertYBRFullByPlane: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0,a=n,d=n*2;if(t){for(let P=0;P<n;P++){const y=e[l++],w=e[a++],W=e[d++];r[i++]=y+1.402*(W-128),r[i++]=y-.34414*(w-128)-.71414*(W-128),r[i++]=y+1.772*(w-128),r[i++]=255}return}for(let P=0;P<n;P++){const y=e[l++],w=e[a++],W=e[d++];r[i++]=y+1.402*(W-128),r[i++]=y-.34414*(w-128)-.71414*(W-128),r[i++]=y+1.772*(w-128)}}function Lc(e,r,t){if(e===void 0)throw new Error("convertYBRFull422ByPixel: ybrBuffer must be defined");if(e.length%2!==0)throw new Error(`convertYBRFull422ByPixel: ybrBuffer length ${e.length} must be divisible by 2`);const n=e.length/2;let i=0,l=0;if(t){for(let a=0;a<n;a+=2){const d=e[i++],P=e[i++],y=e[i++],w=e[i++];r[l++]=d+1.402*(w-128),r[l++]=d-.34414*(y-128)-.71414*(w-128),r[l++]=d+1.772*(y-128),r[l++]=255,r[l++]=P+1.402*(w-128),r[l++]=P-.34414*(y-128)-.71414*(w-128),r[l++]=P+1.772*(y-128),r[l++]=255}return}for(let a=0;a<n;a+=2){const d=e[i++],P=e[i++],y=e[i++],w=e[i++];r[l++]=d+1.402*(w-128),r[l++]=d-.34414*(y-128)-.71414*(w-128),r[l++]=d+1.772*(y-128),r[l++]=P+1.402*(w-128),r[l++]=P-.34414*(y-128)-.71414*(w-128),r[l++]=P+1.772*(y-128)}}function Ea(e,r,t){const n=e[`${r}PaletteColorLookupTableData`];if(n)return Promise.resolve(n);const i=vn("imagePixelModule",e.imageId);return i&&typeof i.then=="function"?i.then(l=>l?l[`${r}PaletteColorLookupTableData`]:t):Promise.resolve(i?i[`${r}PaletteColorLookupTableData`]:t)}async function Uc(e){const r=[];if(!e.redPaletteColorLookupTableData||!e.greenPaletteColorLookupTableData||!e.bluePaletteColorLookupTableData){const n=Promise.all([Ea(e,"red",null),Ea(e,"green",null),Ea(e,"blue",null)]).then(([i,l,a])=>{e.redPaletteColorLookupTableData=i,e.greenPaletteColorLookupTableData=l,e.bluePaletteColorLookupTableData=a});r.push(n)}r.length>0&&await Promise.all(r)}function Bi(e,r){const t=e.length,n=new Uint8ClampedArray(t);for(let i=0;i<t;++i)n[i]=e[i]>>r;return n}function Ro(e,r,t){const n=e.columns*e.rows,i=e.pixelData,l=e.redPaletteColorLookupTableData,a=e.greenPaletteColorLookupTableData,d=e.bluePaletteColorLookupTableData;if(!l||!a||!d)throw new Error("The image does not have a complete color palette. R, G, and B palette data are required.");const P=l.length;let y=0,w=0;const W=e.redPaletteColorLookupTableDescriptor[1],k=e.redPaletteColorLookupTableDescriptor[2]>8&&l.some(ee=>ee>255)?8:0,j=Bi(l,k),Y=Bi(a,k),K=Bi(d,k);if(t){for(let ee=0;ee<n;++ee){let X=i[y++];X<W?X=0:X>W+P-1?X=P-1:X-=W,r[w++]=j[X],r[w++]=Y[X],r[w++]=K[X],r[w++]=255}return}for(let ee=0;ee<n;++ee){let X=i[y++];X<W?X=0:X>W+P-1?X=P-1:X-=W,r[w++]=j[X],r[w++]=Y[X],r[w++]=K[X]}}async function Mc(e,r,t){await Uc(e),Ro(e,r,t)}function ji(e,r){if(!(!e.elements[r]||e.elements[r].length!==6))return[e.uint16(r,0),e.uint16(r,1),e.uint16(r,2)]}function Hi(e,r,t){const n=[],i=e.elements[r];for(let l=0;l<t[0];l++)t[2]===16?n[l]=e.uint16(r,l):n[l]=e.byteArray[l+i.dataOffset];return n}function Fc(e,r){r.redPaletteColorLookupTableDescriptor=ji(e,"x00281101"),r.greenPaletteColorLookupTableDescriptor=ji(e,"x00281102"),r.bluePaletteColorLookupTableDescriptor=ji(e,"x00281103"),r.redPaletteColorLookupTableDescriptor[0]===0&&(r.redPaletteColorLookupTableDescriptor[0]=65536,r.greenPaletteColorLookupTableDescriptor[0]=65536,r.bluePaletteColorLookupTableDescriptor[0]=65536);const t=r.redPaletteColorLookupTableDescriptor[0],i=e.elements.x00281201.length===t?8:16;r.redPaletteColorLookupTableDescriptor[2]!==i&&(r.redPaletteColorLookupTableDescriptor[2]=i,r.greenPaletteColorLookupTableDescriptor[2]=i,r.bluePaletteColorLookupTableDescriptor[2]=i),r.redPaletteColorLookupTableData=Hi(e,"x00281201",r.redPaletteColorLookupTableDescriptor),r.greenPaletteColorLookupTableData=Hi(e,"x00281202",r.greenPaletteColorLookupTableDescriptor),r.bluePaletteColorLookupTableData=Hi(e,"x00281203",r.bluePaletteColorLookupTableDescriptor)}function Nc(e,r){e.uint16("x00280103")===0?(r.smallestPixelValue=e.uint16("x00280106"),r.largestPixelValue=e.uint16("x00280107")):(r.smallestPixelValue=e.int16("x00280106"),r.largestPixelValue=e.int16("x00280107"))}function ml(e){const r={samplesPerPixel:e.uint16("x00280002"),photometricInterpretation:e.string("x00280004"),rows:e.uint16("x00280010"),columns:e.uint16("x00280011"),bitsAllocated:e.uint16("x00280100"),bitsStored:e.uint16("x00280101"),highBit:e.uint16("x00280102"),pixelRepresentation:e.uint16("x00280103"),planarConfiguration:e.uint16("x00280006"),pixelAspectRatio:e.string("x00280034")};return Nc(e,r),r.photometricInterpretation==="PALETTE COLOR"&&e.elements.x00281101&&Fc(e,r),r}function Wc(e,r){let t=r.uint16("x00283002",0);t===0&&(t=65535);let n=0;e===0?n=r.uint16("x00283002",1):n=r.int16("x00283002",1);const i=r.uint16("x00283002",2),l={id:"1",firstValueMapped:n,numBitsPerEntry:i,lut:[]};for(let a=0;a<t;a++)e===0?l.lut[a]=r.uint16("x00283006",a):l.lut[a]=r.int16("x00283006",a);return l}function co(e,r){if(!r||!r.items||!r.items.length)return;const t=[];for(let n=0;n<r.items.length;n++){const i=r.items[n].dataSet,l=Wc(e,i);l&&t.push(l)}return t}function Bc(e){const r=e.uint16("x00280103"),t=e.uint16("x00280101");return r===0?0:-1<<t-1}function bl(e){const r=e.string("x00080016");if(r==="1.2.840.10008.5.1.4.1.1.2"||r==="1.2.840.10008.5.1.4.1.1.2.1")return 1;const t=e.floatString("x00281052"),n=e.floatString("x00281053");return t!==void 0&&n!==void 0?Bc(e)*n+t<0?1:0:e.elements.x00283000&&e.elements.x00283000.length>0?0:e.uint16("x00280103")}function Ar(e,r,t){const n=[],i=e.string(r);if(!i)return;const l=i.split("\\");if(!(t&&l.length<t)){for(let a=0;a<l.length;a++)n.push(parseFloat(l[a]));return n}}var yi={exports:{}};var jc=yi.exports,Qo;function Hc(){return Qo||(Qo=1,(function(e,r){(function(t,n){e.exports=n(ei)})(jc,function(t){return i=[function(a,d){a.exports=t},function(a,d,P){P.r(d),P.d(d,"isStringVr",function(){return w}),P.d(d,"isPrivateTag",function(){return W}),P.d(d,"parsePN",function(){return F}),P.d(d,"parseTM",function(){return k}),P.d(d,"parseDA",function(){return Y}),P.d(d,"explicitElementToString",function(){return K}),P.d(d,"explicitDataSetToJS",function(){return ee}),P.d(d,"createJPEGBasicOffsetTable",function(){return J}),P.d(d,"parseDicomDataSetExplicit",function(){return Ke}),P.d(d,"parseDicomDataSetImplicit",function(){return ft}),P.d(d,"readFixedString",function(){return le}),P.d(d,"alloc",function(){return bt}),P.d(d,"version",function(){return ot}),P.d(d,"bigEndianByteArrayParser",function(){return Ze}),P.d(d,"ByteStream",function(){return Qe}),P.d(d,"sharedCopy",function(){return He}),P.d(d,"DataSet",function(){return oe}),P.d(d,"findAndSetUNElementLength",function(){return re}),P.d(d,"findEndOfEncapsulatedElement",function(){return he}),P.d(d,"findItemDelimitationItemAndSetElementLength",function(){return be}),P.d(d,"littleEndianByteArrayParser",function(){return vt}),P.d(d,"parseDicom",function(){return Bt}),P.d(d,"readDicomElementExplicit",function(){return Ce}),P.d(d,"readDicomElementImplicit",function(){return ve}),P.d(d,"readEncapsulatedImageFrame",function(){return vr}),P.d(d,"readEncapsulatedPixelData",function(){return Sr}),P.d(d,"readEncapsulatedPixelDataFromFragments",function(){return wt}),P.d(d,"readPart10Header",function(){return Zt}),P.d(d,"readSequenceItemsExplicit",function(){return Be}),P.d(d,"readSequenceItemsImplicit",function(){return Fe}),P.d(d,"readSequenceItem",function(){return ge}),P.d(d,"readTag",function(){return ce});var y={AE:!0,AS:!0,AT:!1,CS:!0,DA:!0,DS:!0,DT:!0,FL:!1,FD:!1,IS:!0,LO:!0,LT:!0,OB:!1,OD:!1,OF:!1,OW:!1,PN:!0,SH:!0,SL:!1,SQ:!1,SS:!1,ST:!0,TM:!0,UI:!0,UL:!1,UN:void 0,UR:!0,US:!1,UT:!0},w=function(m){return y[m]},W=function(m){if(m=parseInt(m[4],16),isNaN(m))throw"dicomParser.isPrivateTag: cannot parse last character of group";return m%2==1},F=function(m){if(m!==void 0)return m=m.split("^"),{familyName:m[0],givenName:m[1],middleName:m[2],prefix:m[3],suffix:m[4]}};function k(m,$){if(2<=m.length){var I=parseInt(m.substring(0,2),10),T=4<=m.length?parseInt(m.substring(2,4),10):void 0,L=6<=m.length?parseInt(m.substring(4,6),10):void 0,Z=8<=m.length?m.substring(7,13):void 0,Z=Z?parseInt(Z,10)*Math.pow(10,6-Z.length):void 0;if($&&(isNaN(I)||T!==void 0&&isNaN(T)||L!==void 0&&isNaN(L)||Z!==void 0&&isNaN(Z)||I<0||23<I||T&&(T<0||59<T)||L&&(L<0||59<L)||Z&&(Z<0||999999<Z)))throw"invalid TM '".concat(m,"'");return{hours:I,minutes:T,seconds:L,fractionalSeconds:Z}}if($)throw"invalid TM '".concat(m,"'")}function j(m,$,I){return!isNaN(I)&&0<$&&$<=12&&0<m&&m<=(function(T,L){switch(T){case 2:return L%4==0&&L%100||L%400==0?29:28;case 9:case 4:case 6:case 11:return 30;default:return 31}})($,I)}function Y(m,$){if(m&&m.length===8){var I=parseInt(m.substring(0,4),10),T=parseInt(m.substring(4,6),10),L=parseInt(m.substring(6,8),10);if($&&j(L,T,I)!==!0)throw"invalid DA '".concat(m,"'");return{year:I,month:T,day:L}}if($)throw"invalid DA '".concat(m,"'")}function K(m,$){if(m===void 0||$===void 0)throw"dicomParser.explicitElementToString: missing required parameters";if($.vr===void 0)throw"dicomParser.explicitElementToString: cannot convert implicit element to string";var I,T=$.vr,L=$.tag;function Z(xe,De){for(var ze="",Ee=0;Ee<xe;Ee++)Ee!==0&&(ze+="/"),ze+=De.call(m,L,Ee).toString();return ze}if(w(T)===!0)I=m.string(L);else{if(T==="AT"){var fe=m.uint32(L);return fe===void 0?void 0:"x".concat((fe=fe<0?4294967295+fe+1:fe).toString(16).toUpperCase())}T==="US"?I=Z($.length/2,m.uint16):T==="SS"?I=Z($.length/2,m.int16):T==="UL"?I=Z($.length/4,m.uint32):T==="SL"?I=Z($.length/4,m.int32):T==="FD"?I=Z($.length/8,m.double):T==="FL"&&(I=Z($.length/4,m.float))}return I}function ee(m,$){if(m===void 0)throw"dicomParser.explicitDataSetToJS: missing required parameter dataSet";$=$||{omitPrivateAttibutes:!0,maxElementLength:128};var I,T={};for(I in m.elements){var L=m.elements[I];if($.omitPrivateAttibutes!==!0||!W(I))if(L.items){for(var Z=[],fe=0;fe<L.items.length;fe++)Z.push(ee(L.items[fe].dataSet,$));T[I]=Z}else{var xe=void 0;L.length<$.maxElementLength&&(xe=K(m,L)),T[I]=xe!==void 0?xe:{dataOffset:L.dataOffset,length:L.length}}}return T}function X(m,$){return m.byteArray[$]===255&&m.byteArray[$+1]===217}function H(m,$,I){for(var T,L,Z=I;Z<$.fragments.length;Z++)if(T=m,L=Z,L=$.fragments[L],!(!X(T,L.position+L.length-2)&&!X(T,L.position+L.length-3)))return Z}function J(m,$,I){if(m===void 0)throw"dicomParser.createJPEGBasicOffsetTable: missing required parameter dataSet";if($===void 0)throw"dicomParser.createJPEGBasicOffsetTable: missing required parameter pixelDataElement";if($.tag!=="x7fe00010")throw"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010'";if($.encapsulatedPixelData!==!0||$.hadUndefinedLength!==!0||$.basicOffsetTable===void 0||$.fragments===void 0||$.fragments.length<=0)throw"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data";if(I&&I.length<=0)throw"dicomParser.createJPEGBasicOffsetTable: parameter 'fragments' must not be zero length";I=I||$.fragments;for(var T=[],L=0;;){T.push($.fragments[L].offset);var Z=H(m,$,L);if(Z===void 0||Z===$.fragments.length-1)return T;L=Z+1}}function ce(I){if(I===void 0)throw"dicomParser.readTag: missing required parameter 'byteStream'";var $=256*I.readUint16()*256,I=I.readUint16();return"x".concat("00000000".concat(($+I).toString(16)).substr(-8))}function he(m,$,I){if(m===void 0)throw"dicomParser.findEndOfEncapsulatedElement: missing required parameter 'byteStream'";if($===void 0)throw"dicomParser.findEndOfEncapsulatedElement: missing required parameter 'element'";if($.encapsulatedPixelData=!0,$.basicOffsetTable=[],$.fragments=[],ce(m)!=="xfffee000")throw"dicomParser.findEndOfEncapsulatedElement: basic offset table not found";for(var T=m.readUint32()/4,L=0;L<T;L++){var Z=m.readUint32();$.basicOffsetTable.push(Z)}for(var fe=m.position;m.position<m.byteArray.length;){var xe=ce(m),De=m.readUint32();if(xe==="xfffee0dd")return m.seek(De),void($.length=m.position-$.dataOffset);if(xe!=="xfffee000")return I&&I.push("unexpected tag ".concat(xe," while searching for end of pixel data element with undefined length")),De>m.byteArray.length-m.position&&(De=m.byteArray.length-m.position),$.fragments.push({offset:m.position-fe-8,position:m.position,length:De}),m.seek(De),void($.length=m.position-$.dataOffset);$.fragments.push({offset:m.position-fe-8,position:m.position,length:De}),m.seek(De)}I&&I.push("pixel data element ".concat($.tag," missing sequence delimiter tag xfffee0dd"))}function re(m,$){if(m===void 0)throw"dicomParser.findAndSetUNElementLength: missing required parameter 'byteStream'";for(var I=m.byteArray.length-8;m.position<=I;)if(m.readUint16()===65534){var T=m.readUint16();if(T===57565)return m.readUint32()!==0&&m.warnings("encountered non zero length following item delimiter at position ".concat(m.position-4," while reading element of undefined length with tag ").concat($.tag)),void($.length=m.position-$.dataOffset)}$.length=m.byteArray.length-$.dataOffset,m.seek(m.byteArray.length-m.position)}function le(m,$,I){if(I<0)throw"dicomParser.readFixedString - length cannot be less than 0";if($+I>m.length)throw"dicomParser.readFixedString: attempt to read past end of buffer";for(var T,L="",Z=0;Z<I;Z++){if((T=m[$+Z])===0)return $+=I,L;L+=String.fromCharCode(T)}return L}function ie(m,$){for(var I=0;I<$.length;I++){var T=$[I];T.enumerable=T.enumerable||!1,T.configurable=!0,"value"in T&&(T.writable=!0),Object.defineProperty(m,T.key,T)}}function te(m,$){return m.parser!==void 0?m.parser:$}var oe=(function(){function m(T,L,Z){(function(fe,xe){if(!(fe instanceof xe))throw new TypeError("Cannot call a class as a function")})(this,m),this.byteArrayParser=T,this.byteArray=L,this.elements=Z}var $,I;return $=m,(I=[{key:"uint16",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readUint16(this.byteArray,T.dataOffset+2*L)}},{key:"int16",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readInt16(this.byteArray,T.dataOffset+2*L)}},{key:"uint32",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readUint32(this.byteArray,T.dataOffset+4*L)}},{key:"int32",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readInt32(this.byteArray,T.dataOffset+4*L)}},{key:"float",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readFloat(this.byteArray,T.dataOffset+4*L)}},{key:"double",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readDouble(this.byteArray,T.dataOffset+8*L)}},{key:"numStringValues",value:function(T){if(T=this.elements[T],T&&0<T.length)return T=le(this.byteArray,T.dataOffset,T.length).match(/\\/g),T===null?1:T.length+1}},{key:"string",value:function(T,L){if(T=this.elements[T],T&&T.Value)return T.Value;if(T&&0<T.length)return T=le(this.byteArray,T.dataOffset,T.length),0<=L?T.split("\\")[L].trim():T.trim()}},{key:"text",value:function(T,L){if(T=this.elements[T],T&&0<T.length)return T=le(this.byteArray,T.dataOffset,T.length),0<=L?T.split("\\")[L].replace(/ +$/,""):T.replace(/ +$/,"")}},{key:"floatString",value:function(T,L){var Z=this.elements[T];if(Z&&0<Z.length&&(L=this.string(T,L=L!==void 0?L:0),L!==void 0))return parseFloat(L)}},{key:"intString",value:function(T,L){var Z=this.elements[T];if(Z&&0<Z.length&&(L=this.string(T,L=L!==void 0?L:0),L!==void 0))return parseInt(L)}},{key:"attributeTag",value:function(T){var L=this.elements[T];if(L&&L.length===4){var Z=te(L,this.byteArrayParser).readUint16,T=this.byteArray,L=L.dataOffset;return"x".concat("00000000".concat((256*Z(T,L)*256+Z(T,L+2)).toString(16)).substr(-8))}}}])&&ie($.prototype,I),Object.defineProperty($,"prototype",{writable:!1}),m})();function be(m,$){if(m===void 0)throw"dicomParser.readDicomElementImplicit: missing required parameter 'byteStream'";for(var I=m.byteArray.length-8;m.position<=I;)if(m.readUint16()===65534){var T=m.readUint16();if(T===57357)return m.readUint32()!==0&&m.warnings("encountered non zero length following item delimiter at position ".concat(m.position-4," while reading element of undefined length with tag ").concat($.tag)),void($.length=m.position-$.dataOffset)}$.length=m.byteArray.length-$.dataOffset,m.seek(m.byteArray.length-m.position)}var Te=function(m,$){return m.vr!==void 0?m.vr==="SQ":$.position+4<=$.byteArray.length?(m=ce($),$.seek(-4),m==="xfffee000"||m==="xfffee0dd"):($.warnings.push("eof encountered before finding sequence item tag or sequence delimiter tag in peeking to determine VR"),!1)};function ve(m,$,I){if(m===void 0)throw"dicomParser.readDicomElementImplicit: missing required parameter 'byteStream'";var T=ce(m),T={tag:T,vr:I!==void 0?I(T):void 0,length:m.readUint32(),dataOffset:m.position};return T.length===4294967295&&(T.hadUndefinedLength=!0),T.tag===$||(!Te(T,m)||W(T.tag)&&!T.hadUndefinedLength?T.hadUndefinedLength?be(m,T):m.seek(T.length):(Fe(m,T,I),W(T.tag)&&(T.items=void 0))),T}function ge(m){if(m===void 0)throw"dicomParser.readSequenceItem: missing required parameter 'byteStream'";var $={tag:ce(m),length:m.readUint32(),dataOffset:m.position};if($.tag!=="xfffee000")throw"dicomParser.readSequenceItem: item tag (FFFE,E000) not found at offset ".concat(m.position);return $}function Re(m,$){var I=ge(m);return I.length===4294967295?(I.hadUndefinedLength=!0,I.dataSet=(function(T,L){for(var Z={};T.position<T.byteArray.length;){var fe=ve(T,void 0,L);if((Z[fe.tag]=fe).tag==="xfffee00d")return new oe(T.byteArrayParser,T.byteArray,Z)}return T.warnings.push("eof encountered before finding sequence item delimiter in sequence item of undefined length"),new oe(T.byteArrayParser,T.byteArray,Z)})(m,$),I.length=m.position-I.dataOffset):(I.dataSet=new oe(m.byteArrayParser,m.byteArray,{}),ft(I.dataSet,m,m.position+I.length,{vrCallback:$})),I}function Fe(m,$,I){if(m===void 0)throw"dicomParser.readSequenceItemsImplicit: missing required parameter 'byteStream'";if($===void 0)throw"dicomParser.readSequenceItemsImplicit: missing required parameter 'element'";$.items=[],($.length===4294967295?function(T,L,Z){for(;T.position+4<=T.byteArray.length;){var fe=ce(T);if(T.seek(-4),fe==="xfffee0dd")return L.length=T.position-L.dataOffset,T.seek(8);fe=Re(T,Z),L.items.push(fe)}T.warnings.push("eof encountered before finding sequence delimiter in sequence of undefined length"),L.length=T.byteArray.length-L.dataOffset}:function(T,L,Z){for(var fe=L.dataOffset+L.length;T.position<fe;){var xe=Re(T,Z);L.items.push(xe)}})(m,$,I)}function Ie(m,$){var I=ge(m);return I.length===4294967295?(I.hadUndefinedLength=!0,I.dataSet=(function(T,L){for(var Z={};T.position<T.byteArray.length;){var fe=Ce(T,L);if((Z[fe.tag]=fe).tag==="xfffee00d")return new oe(T.byteArrayParser,T.byteArray,Z)}return L.push("eof encountered before finding item delimiter tag while reading sequence item of undefined length"),new oe(T.byteArrayParser,T.byteArray,Z)})(m,$),I.length=m.position-I.dataOffset):(I.dataSet=new oe(m.byteArrayParser,m.byteArray,{}),Ke(I.dataSet,m,m.position+I.length)),I}function Be(m,$,I){if(m===void 0)throw"dicomParser.readSequenceItemsExplicit: missing required parameter 'byteStream'";if($===void 0)throw"dicomParser.readSequenceItemsExplicit: missing required parameter 'element'";$.items=[],($.length===4294967295?function(T,L,Z){for(;T.position+4<=T.byteArray.length;){var fe=ce(T);if(T.seek(-4),fe==="xfffee0dd")return L.length=T.position-L.dataOffset,T.seek(8);fe=Ie(T,Z),L.items.push(fe)}Z.push("eof encountered before finding sequence delimitation tag while reading sequence of undefined length"),L.length=T.position-L.dataOffset}:function(T,L,Z){for(var fe=L.dataOffset+L.length;T.position<fe;){var xe=Ie(T,Z);L.items.push(xe)}})(m,$,I)}var je=function(m){return m==="OB"||m==="OD"||m==="OL"||m==="OW"||m==="SQ"||m==="OF"||m==="UC"||m==="UR"||m==="UT"||m==="UN"?4:2};function Ce(m,$,I){if(m===void 0)throw"dicomParser.readDicomElementExplicit: missing required parameter 'byteStream'";var T={tag:ce(m),vr:m.readFixedString(2)};return je(T.vr)===2?T.length=m.readUint16():(m.seek(2),T.length=m.readUint32()),T.dataOffset=m.position,T.length===4294967295&&(T.hadUndefinedLength=!0),T.tag===I||(T.vr==="SQ"?Be(m,T,$):T.length===4294967295?T.tag==="x7fe00010"?he(m,T,$):(T.vr==="UN"?Fe:be)(m,T):m.seek(T.length)),T}function Ke(m,$,I){var T=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{};if(I=I===void 0?$.byteArray.length:I,$===void 0)throw"dicomParser.parseDicomDataSetExplicit: missing required parameter 'byteStream'";if(I<$.position||I>$.byteArray.length)throw"dicomParser.parseDicomDataSetExplicit: invalid value for parameter 'maxP osition'";for(var L=m.elements;$.position<I;){var Z=Ce($,m.warnings,T.untilTag);if((L[Z.tag]=Z).tag===T.untilTag)return}if($.position>I)throw"dicomParser:parseDicomDataSetExplicit: buffer overrun"}function ft(m,$,I){var T=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{};if(I=I===void 0?m.byteArray.length:I,$===void 0)throw"dicomParser.parseDicomDataSetImplicit: missing required parameter 'byteStream'";if(I<$.position||I>$.byteArray.length)throw"dicomParser.parseDicomDataSetImplicit: invalid value for parameter 'maxPosition'";for(var L=m.elements;$.position<I;){var Z=ve($,T.untilTag,T.vrCallback);if((L[Z.tag]=Z).tag===T.untilTag)return}}function bt(m,$){if(typeof Buffer<"u"&&m instanceof Buffer)return Buffer.alloc($);if(m instanceof Uint8Array)return new Uint8Array($);throw"dicomParser.alloc: unknown type for byteArray"}var ot="1.8.12",Ze={readUint16:function(m,$){if($<0)throw"bigEndianByteArrayParser.readUint16: position cannot be less than 0";if($+2>m.length)throw"bigEndianByteArrayParser.readUint16: attempt to read past end of buffer";return(m[$]<<8)+m[$+1]},readInt16:function(m,$){if($<0)throw"bigEndianByteArrayParser.readInt16: position cannot be less than 0";if($+2>m.length)throw"bigEndianByteArrayParser.readInt16: attempt to read past end of buffer";return $=(m[$]<<8)+m[$+1],$=32768&$?$-65535-1:$},readUint32:function(m,$){if($<0)throw"bigEndianByteArrayParser.readUint32: position cannot be less than 0";if($+4>m.length)throw"bigEndianByteArrayParser.readUint32: attempt to read past end of buffer";return 256*(256*(256*m[$]+m[$+1])+m[$+2])+m[$+3]},readInt32:function(m,$){if($<0)throw"bigEndianByteArrayParser.readInt32: position cannot be less than 0";if($+4>m.length)throw"bigEndianByteArrayParser.readInt32: attempt to read past end of buffer";return(m[$]<<24)+(m[$+1]<<16)+(m[$+2]<<8)+m[$+3]},readFloat:function(m,$){if($<0)throw"bigEndianByteArrayParser.readFloat: position cannot be less than 0";if($+4>m.length)throw"bigEndianByteArrayParser.readFloat: attempt to read past end of buffer";var I=new Uint8Array(4);return I[3]=m[$],I[2]=m[$+1],I[1]=m[$+2],I[0]=m[$+3],new Float32Array(I.buffer)[0]},readDouble:function(m,$){if($<0)throw"bigEndianByteArrayParser.readDouble: position cannot be less than 0";if($+8>m.length)throw"bigEndianByteArrayParser.readDouble: attempt to read past end of buffer";var I=new Uint8Array(8);return I[7]=m[$],I[6]=m[$+1],I[5]=m[$+2],I[4]=m[$+3],I[3]=m[$+4],I[2]=m[$+5],I[1]=m[$+6],I[0]=m[$+7],new Float64Array(I.buffer)[0]}};function He(m,$,I){if(typeof Buffer<"u"&&m instanceof Buffer)return m.slice($,$+I);if(m instanceof Uint8Array)return new Uint8Array(m.buffer,m.byteOffset+$,I);throw"dicomParser.from: unknown type for byteArray"}function ke(m,$){for(var I=0;I<$.length;I++){var T=$[I];T.enumerable=T.enumerable||!1,T.configurable=!0,"value"in T&&(T.writable=!0),Object.defineProperty(m,T.key,T)}}var Qe=(function(){function m(T,L,Z){if((function(fe,xe){if(!(fe instanceof xe))throw new TypeError("Cannot call a class as a function")})(this,m),T===void 0)throw"dicomParser.ByteStream: missing required parameter 'byteArrayParser'";if(L===void 0)throw"dicomParser.ByteStream: missing required parameter 'byteArray'";if(!(L instanceof Uint8Array)&&(typeof Buffer>"u"||!(L instanceof Buffer)))throw"dicomParser.ByteStream: parameter byteArray is not of type Uint8Array or Buffer";if(Z<0)throw"dicomParser.ByteStream: parameter 'position' cannot be less than 0";if(Z>=L.length)throw"dicomParser.ByteStream: parameter 'position' cannot be greater than or equal to 'byteArray' length";this.byteArrayParser=T,this.byteArray=L,this.position=Z||0,this.warnings=[]}var $,I;return $=m,(I=[{key:"seek",value:function(T){if(this.position+T<0)throw"dicomParser.ByteStream.prototype.seek: cannot seek to position < 0";this.position+=T}},{key:"readByteStream",value:function(T){if(this.position+T>this.byteArray.length)throw"dicomParser.ByteStream.prototype.readByteStream: readByteStream - buffer overread";var L=He(this.byteArray,this.position,T);return this.position+=T,new m(this.byteArrayParser,L)}},{key:"getSize",value:function(){return this.byteArray.length}},{key:"readUint16",value:function(){var T=this.byteArrayParser.readUint16(this.byteArray,this.position);return this.position+=2,T}},{key:"readUint32",value:function(){var T=this.byteArrayParser.readUint32(this.byteArray,this.position);return this.position+=4,T}},{key:"readFixedString",value:function(T){var L=le(this.byteArray,this.position,T);return this.position+=T,L}}])&&ke($.prototype,I),Object.defineProperty($,"prototype",{writable:!1}),m})(),vt={readUint16:function(m,$){if($<0)throw"littleEndianByteArrayParser.readUint16: position cannot be less than 0";if($+2>m.length)throw"littleEndianByteArrayParser.readUint16: attempt to read past end of buffer";return m[$]+256*m[$+1]},readInt16:function(m,$){if($<0)throw"littleEndianByteArrayParser.readInt16: position cannot be less than 0";if($+2>m.length)throw"littleEndianByteArrayParser.readInt16: attempt to read past end of buffer";return $=m[$]+(m[$+1]<<8),$=32768&$?$-65535-1:$},readUint32:function(m,$){if($<0)throw"littleEndianByteArrayParser.readUint32: position cannot be less than 0";if($+4>m.length)throw"littleEndianByteArrayParser.readUint32: attempt to read past end of buffer";return m[$]+256*m[$+1]+256*m[$+2]*256+256*m[$+3]*256*256},readInt32:function(m,$){if($<0)throw"littleEndianByteArrayParser.readInt32: position cannot be less than 0";if($+4>m.length)throw"littleEndianByteArrayParser.readInt32: attempt to read past end of buffer";return m[$]+(m[$+1]<<8)+(m[$+2]<<16)+(m[$+3]<<24)},readFloat:function(m,$){if($<0)throw"littleEndianByteArrayParser.readFloat: position cannot be less than 0";if($+4>m.length)throw"littleEndianByteArrayParser.readFloat: attempt to read past end of buffer";var I=new Uint8Array(4);return I[0]=m[$],I[1]=m[$+1],I[2]=m[$+2],I[3]=m[$+3],new Float32Array(I.buffer)[0]},readDouble:function(m,$){if($<0)throw"littleEndianByteArrayParser.readDouble: position cannot be less than 0";if($+8>m.length)throw"littleEndianByteArrayParser.readDouble: attempt to read past end of buffer";var I=new Uint8Array(8);return I[0]=m[$],I[1]=m[$+1],I[2]=m[$+2],I[3]=m[$+3],I[4]=m[$+4],I[5]=m[$+5],I[6]=m[$+6],I[7]=m[$+7],new Float64Array(I.buffer)[0]}};function Zt(m){var $=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};if(m===void 0)throw"dicomParser.readPart10Header: missing required parameter 'byteArray'";var I=$.TransferSyntaxUID,T=new Qe(vt,m);return(function(){var L=(function(){if(T.getSize()<=132&&I)return!1;if(T.seek(128),T.readFixedString(4)==="DICM")return!0;if(!($||{}).TransferSyntaxUID)throw"dicomParser.readPart10Header: DICM prefix not found at location 132 - this is not a valid DICOM P10 file.";return T.seek(0),!1})(),Z=[],fe={};if(!L)return T.position=0,{elements:{x00020010:{tag:"x00020010",vr:"UI",Value:I}},warnings:Z};for(;T.position<T.byteArray.length;){var xe=T.position,De=Ce(T,Z);if("x0002ffff"<De.tag){T.position=xe;break}De.parser=vt,fe[De.tag]=De}return(L=new oe(T.byteArrayParser,T.byteArray,fe)).warnings=T.warnings,L.position=T.position,L})()}var Wt="1.2.840.10008.1.2.2";function Bt(m){var $=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};if(m===void 0)throw new Error("dicomParser.parseDicom: missing required parameter 'byteArray'");var I,T=function(Z){if(Z.elements.x00020010===void 0)throw new Error("dicomParser.parseDicom: missing required meta header attribute 0002,0010");return Z=Z.elements.x00020010,Z&&Z.Value||le(m,Z.dataOffset,Z.length)};function L(De){var xe=T(De),fe=xe!=="1.2.840.10008.1.2",xe=(function(ze,Ee){var qe=Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]";if(ze!=="1.2.840.10008.1.2.1.99")return new Qe(ze===Wt?Ze:vt,m,Ee);if($&&$.inflater)return ze=$.inflater(m,Ee),new Qe(vt,ze,0);if(qe==!0){var Ne=P(0),Ve=He(m,Ee,m.length-Ee),Ne=Ne.inflateRawSync(Ve),Ve=bt(m,Ne.length+Ee);return m.copy(Ve,0,0,Ee),Ne.copy(Ve,Ee),new Qe(vt,Ve,0)}if(typeof pako>"u")throw"dicomParser.parseDicom: no inflater available to handle deflate transfer syntax";return Ne=m.slice(Ee),Ve=pako.inflateRaw(Ne),(Ne=bt(m,Ve.length+Ee)).set(m.slice(0,Ee),0),Ne.set(Ve,Ee),new Qe(vt,Ne,0)})(xe,De.position),De=new oe(xe.byteArrayParser,xe.byteArray,{});De.warnings=xe.warnings;try{(fe?Ke:ft)(De,xe,xe.byteArray.length,$)}catch(ze){throw{exception:ze,dataSet:De}}return De}return(function(Z,fe){for(var xe in Z.elements)Z.elements.hasOwnProperty(xe)&&(fe.elements[xe]=Z.elements[xe]);return Z.warnings!==void 0&&(fe.warnings=Z.warnings.concat(fe.warnings)),fe})(I=Zt(m,$),L(I))}var kt=function(m,$,I){for(var T=0,L=$;L<$+I;L++)T+=m[L].length;return T};function wt(m,fe,I,T,L){if(L=L||fe.fragments,m===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'dataSet'";if(fe===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'pixelDataElement'";if(I===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'startFragmentIndex'";if((T=T||1)===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'numFragments'";if(fe.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010";if(fe.encapsulatedPixelData!==!0||fe.hadUndefinedLength!==!0||fe.basicOffsetTable===void 0||fe.fragments===void 0||fe.fragments.length<=0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data";if(I<0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragmentIndex' must be >= 0";if(I>=fe.fragments.length)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragmentIndex' must be < number of fragments";if(T<1)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'numFragments' must be > 0";if(I+T>fe.fragments.length)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragment' + 'numFragments' < number of fragments";var Z=new Qe(m.byteArrayParser,m.byteArray,fe.dataOffset),fe=ge(Z);if(fe.tag!=="xfffee000")throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";Z.seek(fe.length);var xe=Z.position;if(T===1)return He(Z.byteArray,xe+L[I].offset+8,L[I].length);for(var fe=kt(L,I,T),De=bt(Z.byteArray,fe),ze=0,Ee=I;Ee<I+T;Ee++)for(var qe=xe+L[Ee].offset+8,Ne=0;Ne<L[Ee].length;Ne++)De[ze++]=Z.byteArray[qe++];return De}var hr=function(m,$){for(var I=0;I<m.length;I++)if(m[I].offset===$)return I},pr=function(m,$,I,T){if(m===$.length-1)return I.length-T;for(var L=$[m+1],Z=T+1;Z<I.length;Z++)if(I[Z].offset===L)return Z-T;throw"dicomParser.calculateNumberOfFragmentsForFrame: could not find fragment with offset matching basic offset table"};function vr(m,$,I,T,L){if(T=T||$.basicOffsetTable,L=L||$.fragments,m===void 0)throw"dicomParser.readEncapsulatedImageFrame: missing required parameter 'dataSet'";if($===void 0)throw"dicomParser.readEncapsulatedImageFrame: missing required parameter 'pixelDataElement'";if(I===void 0)throw"dicomParser.readEncapsulatedImageFrame: missing required parameter 'frameIndex'";if(T===void 0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' does not have basicOffsetTable";if($.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010)";if($.encapsulatedPixelData!==!0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data";if($.hadUndefinedLength!==!0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have undefined length";if($.fragments===void 0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have fragments";if(T.length===0)throw"dicomParser.readEncapsulatedImageFrame: basicOffsetTable has zero entries";if(I<0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'frameIndex' must be >= 0";if(I>=T.length)throw"dicomParser.readEncapsulatedImageFrame: parameter 'frameIndex' must be < basicOffsetTable.length";var Z=T[I],Z=hr(L,Z);if(Z===void 0)throw"dicomParser.readEncapsulatedImageFrame: unable to find fragment that matches basic offset table entry";return wt(m,$,Z,pr(I,T,L,Z),L)}var Cr=!1;function Sr(m,$,I){if(Cr||(Cr=!0,console&&console.log&&console.log("WARNING: dicomParser.readEncapsulatedPixelData() has been deprecated")),m===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'dataSet'";if($===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'element'";if(I===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'frame'";if($.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to non pixel data tag (expected tag = x7fe00010)";if($.encapsulatedPixelData!==!0||$.hadUndefinedLength!==!0||$.basicOffsetTable===void 0||$.fragments===void 0)throw"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to pixel data element that does not have encapsulated pixel data";if(I<0)throw"dicomParser.readEncapsulatedPixelData: parameter 'frame' must be >= 0";return $.basicOffsetTable.length!==0?vr(m,$,I):wt(m,$,0,$.fragments.length)}d.default={isStringVr:w,isPrivateTag:W,parsePN:F,parseTM:k,parseDA:Y,explicitElementToString:K,explicitDataSetToJS:ee,createJPEGBasicOffsetTable:J,parseDicomDataSetExplicit:Ke,parseDicomDataSetImplicit:ft,readFixedString:le,alloc:bt,version:ot,bigEndianByteArrayParser:Ze,ByteStream:Qe,sharedCopy:He,DataSet:oe,findAndSetUNElementLength:re,findEndOfEncapsulatedElement:he,findItemDelimitationItemAndSetElementLength:be,littleEndianByteArrayParser:vt,parseDicom:Bt,readDicomElementExplicit:Ce,readDicomElementImplicit:ve,readEncapsulatedImageFrame:vr,readEncapsulatedPixelData:Sr,readEncapsulatedPixelDataFromFragments:wt,readPart10Header:Zt,readSequenceItemsExplicit:Be,readSequenceItemsImplicit:Fe,readSequenceItem:ge,readTag:ce,LEI:"1.2.840.10008.1.2",LEE:"1.2.840.10008.1.2.1"}}],l={},n.m=i,n.c=l,n.d=function(a,d,P){n.o(a,d)||Object.defineProperty(a,d,{enumerable:!0,get:P})},n.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},n.t=function(a,d){if(1&d&&(a=n(a)),8&d||4&d&&typeof a=="object"&&a&&a.__esModule)return a;var P=Object.create(null);if(n.r(P),Object.defineProperty(P,"default",{enumerable:!0,value:a}),2&d&&typeof a!="string")for(var y in a)n.d(P,y,(function(w){return a[w]}).bind(null,y));return P},n.n=function(a){var d=a&&a.__esModule?function(){return a.default}:function(){return a};return n.d(d,"a",d),d},n.o=function(a,d){return Object.prototype.hasOwnProperty.call(a,d)},n.p="",n(n.s=1);function n(a){if(l[a])return l[a].exports;var d=l[a]={i:a,l:!1,exports:{}};return i[a].call(d.exports,d,d.exports,n),d.l=!0,d.exports}var i,l})})(yi)),yi.exports}var ar=Hc();function Da(e){const r=e.indexOf(":");let t=e.substring(r+1);const n=t.indexOf("frame=");let i;if(n!==-1){const d=t.substring(n+6);i=parseInt(d,10),t=t.substring(0,n-1)}const l=e.substring(0,r),a=i!==void 0?i-1:void 0;return{scheme:l,url:t,frame:i,pixelDataFrame:a}}let uo={open(e,r){e.open("get",r,!0)},beforeSend:async()=>{},beforeProcessing(e){return Promise.resolve(e.response)},imageCreated(){},strict:!1};function wl(e){uo=Object.assign(uo,e)}function ti(){return uo}function Si(e,r,t={},n={}){const i=ti(),l=P=>{if(typeof i.errorInterceptor=="function"){const y=new Error("request failed");y.request=P,y.response=P.response,y.status=P.status,i.errorInterceptor(y)}},a=new XMLHttpRequest,d=new Promise(async(P,y)=>{i.open(a,e,t,n);const w=await i.beforeSend(a,r,t,n);a.responseType="arraybuffer";const W=Object.assign({},t,w);Object.keys(W).forEach(function(F){W[F]!==null&&(F==="Accept"&&e.indexOf("accept=")!==-1||a.setRequestHeader(F,W[F]))}),n.deferred={resolve:P,reject:y},n.url=e,n.imageId=r,a.onloadstart=function(F){i.onloadstart&&i.onloadstart(F,n),Pa(xa,"cornerstoneimageloadstart",{url:e,imageId:r})},a.onloadend=function(F){i.onloadend&&i.onloadend(F,n),Pa(xa,"cornerstoneimageloadend",{url:e,imageId:r})},a.onreadystatechange=function(F){i.onreadystatechange&&i.onreadystatechange(F,n),a.readyState===4&&(a.status===200||a.status===206?i.beforeProcessing(a).then(P).catch(()=>{l(a),y(a)}):(l(a),y(a)))},a.onprogress=function(F){const k=F.loaded;let j,Y;F.lengthComputable&&(j=F.total,Y=Math.round(k/j*100)),Pa(xa,"cornerstoneimageloadprogress",{url:e,imageId:r,loaded:k,total:j,percentComplete:Y}),i.onprogress&&i.onprogress(F,n)},a.onerror=function(){l(a),y(a)},a.onabort=function(){l(a),y(a)},a.send()});return d.xhr=a,d}function zc(e,r,t){if(t+e.length>r.length)return!1;let n=t;for(let i=0;i<e.length;i++)if(e[i]!==r[n++])return!1;return!0}function Vc(e){const r=new Uint8Array(e.length);for(let t=0,n=e.length;t<n;t++)r[t]=e.charCodeAt(t);return r}function ho(e,r,t){t=t||0;const n=Vc(r);for(let i=t;i<e.length;i++)if(n[0]===e[i]&&zc(n,e,i))return i;return-1}const{ImageQualityStatus:es}=_n;function Io(e,r,t){t||={};const n=new Uint8Array(r),i=!!t?.isPartial;if(e.indexOf("multipart")===-1)return{contentType:e,imageQualityStatus:i?es.SUBRESOLUTION:es.FULL_RESOLUTION,pixelData:n};let{tokenIndex:l,responseHeaders:a,boundary:d,multipartContentType:P}=t;if(l||=ho(n,`\r
|
|
1
|
+
import{c4 as Jf,c5 as Ai,c6 as Xo,c7 as Yf,c8 as Xf,c9 as Kf,ca as Qf,cb as ec,cc as tc,cd as rc,ce as nc,cf as ac,cg as ic,ch as oc,ci as sc,cj as lc,ck as fc,cl as cc,cm as uc,cn as dc,co as hc,bi as vn,t as Pa,e as xa,ah as _n,cp as ll,aN as fl,au as pc,aV as vc,K as gc,bP as _c,cq as cl,cr as ul,cs as lo,aX as ca,ct as yc,bL as mc,aQ as bc,at as wc,cu as Pc,cv as xc}from"./Settings-CpJHgU8P.js";import{r as ei}from"./cornerstoneEngine-DgoPMn1N.js";import"./Texture-BFywN4BL.js";import{u as dl}from"./index-CokKuJob.js";import{c as gn,g as Ci}from"./_commonjsHelpers-CE1G-McA.js";import{_ as hl}from"./index-Bm3uV1GS.js";import"./dcmjs.es-DfWkgqfk.js";const pl=["PixelData","FramePixelData","FloatPixelData","7FE00010","7fe00010","7FE00008","7fe00008"],Ec=["FloatPixelData","7FE00008","7fe00008"];function Tc(e){for(const r of pl){const t=e[r];if(t!=null&&Array.isArray(t)&&t.length>0)return t}}function $c(e){for(const r of pl){const t=e[r];if(t!=null&&Array.isArray(t)&&t.length>0)return r}}function Ac(e){const r=$c(e);return r!==void 0&&Ec.includes(r)}function fo(e){return e instanceof ArrayBuffer?new Uint8Array(e):e}function Cc(e){return e instanceof ArrayBuffer,e.byteLength}function Ko(e,r){const t=e[r];if(t!=null)return Array.isArray(t)?t.map(fo):fo(t)}function Sc(e,r,t,n){if(e.length!==1||!Ac(n))return;const i=e[0];if(i==null)return;const l=fo(i),a=Cc(i);if(t<=0||a%t!==0)return;const d=a/t,P=r*d;return P+d>a?void 0:(console.warn("[compressedFrameData] Splitting single-buffer pixel data by numberOfFrames for paramap-type image; frameIndex=",r,", numberOfFrames=",t,", frameSize=",d),[(l instanceof Uint8Array?l:new Uint8Array(l.buffer,l.byteOffset,l.byteLength)).subarray(P,P+d)])}function Dc(e,r){if(!e)return;const t=Tc(e);if(!t)return;const{TransferSyntaxUID:n}=e;if(!n)return;const i=r??0,l=i+1,a=e.NumberOfFrames!=null?Number(e.NumberOfFrames):1;let d;if(t.length===a?d=Ko(t,i):(d=Sc(t,i,a,e),d===void 0&&(d=Ko(t,i))),d!==void 0)return{transferSyntaxUid:n,frameOfInterest:i,frameNumber:l,pixelData:d}}const Rc=Ai.COMPRESSED_FRAME_DATA,Ic=(e,r,t,n)=>{const i=n?.frameIndex??0,l=Dc(t,i);return l||e(r,t,n)};function Oc(){Jf(Rc,Ic)}const kc=-1e3;function vl(){Xo(Yf,kc),Xo(Xf.get),Kf(),Qf(),ec(),tc(),rc(),nc(),ac(),ic(),oc(),sc(),lc(),fc(),cc(),uc(),dc(),Oc(),hc()}function Do(e,r,t){if(e===void 0)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!==0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0;if(t){for(let a=0;a<n;a++)r[l++]=e[i++],r[l++]=e[i++],r[l++]=e[i++],r[l++]=255;return}r.set(e)}function gl(e,r,t){if(e===void 0)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!==0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0,a=n,d=n*2;if(t)for(let P=0;P<n;P++)r[i++]=e[l++],r[i++]=e[a++],r[i++]=e[d++],r[i++]=255;else for(let P=0;P<n;P++)r[i++]=e[l++],r[i++]=e[a++],r[i++]=e[d++]}function _l(e,r,t){if(e===void 0)throw new Error("convertYBRFullByPixel: ybrBuffer must be defined");if(e.length%3!==0)throw new Error(`convertYBRFullByPixel: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0;if(t){for(let a=0;a<n;a++){const d=e[i++],P=e[i++],y=e[i++];r[l++]=d+1.402*(y-128),r[l++]=d-.34414*(P-128)-.71414*(y-128),r[l++]=d+1.772*(P-128),r[l++]=255}return}for(let a=0;a<n;a++){const d=e[i++],P=e[i++],y=e[i++];r[l++]=d+1.402*(y-128),r[l++]=d-.34414*(P-128)-.71414*(y-128),r[l++]=d+1.772*(P-128)}}function yl(e,r,t){if(e===void 0)throw new Error("convertYBRFullByPlane: ybrBuffer must be defined");if(e.length%3!==0)throw new Error(`convertYBRFullByPlane: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let i=0,l=0,a=n,d=n*2;if(t){for(let P=0;P<n;P++){const y=e[l++],w=e[a++],W=e[d++];r[i++]=y+1.402*(W-128),r[i++]=y-.34414*(w-128)-.71414*(W-128),r[i++]=y+1.772*(w-128),r[i++]=255}return}for(let P=0;P<n;P++){const y=e[l++],w=e[a++],W=e[d++];r[i++]=y+1.402*(W-128),r[i++]=y-.34414*(w-128)-.71414*(W-128),r[i++]=y+1.772*(w-128)}}function Lc(e,r,t){if(e===void 0)throw new Error("convertYBRFull422ByPixel: ybrBuffer must be defined");if(e.length%2!==0)throw new Error(`convertYBRFull422ByPixel: ybrBuffer length ${e.length} must be divisible by 2`);const n=e.length/2;let i=0,l=0;if(t){for(let a=0;a<n;a+=2){const d=e[i++],P=e[i++],y=e[i++],w=e[i++];r[l++]=d+1.402*(w-128),r[l++]=d-.34414*(y-128)-.71414*(w-128),r[l++]=d+1.772*(y-128),r[l++]=255,r[l++]=P+1.402*(w-128),r[l++]=P-.34414*(y-128)-.71414*(w-128),r[l++]=P+1.772*(y-128),r[l++]=255}return}for(let a=0;a<n;a+=2){const d=e[i++],P=e[i++],y=e[i++],w=e[i++];r[l++]=d+1.402*(w-128),r[l++]=d-.34414*(y-128)-.71414*(w-128),r[l++]=d+1.772*(y-128),r[l++]=P+1.402*(w-128),r[l++]=P-.34414*(y-128)-.71414*(w-128),r[l++]=P+1.772*(y-128)}}function Ea(e,r,t){const n=e[`${r}PaletteColorLookupTableData`];if(n)return Promise.resolve(n);const i=vn("imagePixelModule",e.imageId);return i&&typeof i.then=="function"?i.then(l=>l?l[`${r}PaletteColorLookupTableData`]:t):Promise.resolve(i?i[`${r}PaletteColorLookupTableData`]:t)}async function Uc(e){const r=[];if(!e.redPaletteColorLookupTableData||!e.greenPaletteColorLookupTableData||!e.bluePaletteColorLookupTableData){const n=Promise.all([Ea(e,"red",null),Ea(e,"green",null),Ea(e,"blue",null)]).then(([i,l,a])=>{e.redPaletteColorLookupTableData=i,e.greenPaletteColorLookupTableData=l,e.bluePaletteColorLookupTableData=a});r.push(n)}r.length>0&&await Promise.all(r)}function Bi(e,r){const t=e.length,n=new Uint8ClampedArray(t);for(let i=0;i<t;++i)n[i]=e[i]>>r;return n}function Ro(e,r,t){const n=e.columns*e.rows,i=e.pixelData,l=e.redPaletteColorLookupTableData,a=e.greenPaletteColorLookupTableData,d=e.bluePaletteColorLookupTableData;if(!l||!a||!d)throw new Error("The image does not have a complete color palette. R, G, and B palette data are required.");const P=l.length;let y=0,w=0;const W=e.redPaletteColorLookupTableDescriptor[1],k=e.redPaletteColorLookupTableDescriptor[2]>8&&l.some(ee=>ee>255)?8:0,j=Bi(l,k),Y=Bi(a,k),K=Bi(d,k);if(t){for(let ee=0;ee<n;++ee){let X=i[y++];X<W?X=0:X>W+P-1?X=P-1:X-=W,r[w++]=j[X],r[w++]=Y[X],r[w++]=K[X],r[w++]=255}return}for(let ee=0;ee<n;++ee){let X=i[y++];X<W?X=0:X>W+P-1?X=P-1:X-=W,r[w++]=j[X],r[w++]=Y[X],r[w++]=K[X]}}async function Mc(e,r,t){await Uc(e),Ro(e,r,t)}function ji(e,r){if(!(!e.elements[r]||e.elements[r].length!==6))return[e.uint16(r,0),e.uint16(r,1),e.uint16(r,2)]}function Hi(e,r,t){const n=[],i=e.elements[r];for(let l=0;l<t[0];l++)t[2]===16?n[l]=e.uint16(r,l):n[l]=e.byteArray[l+i.dataOffset];return n}function Fc(e,r){r.redPaletteColorLookupTableDescriptor=ji(e,"x00281101"),r.greenPaletteColorLookupTableDescriptor=ji(e,"x00281102"),r.bluePaletteColorLookupTableDescriptor=ji(e,"x00281103"),r.redPaletteColorLookupTableDescriptor[0]===0&&(r.redPaletteColorLookupTableDescriptor[0]=65536,r.greenPaletteColorLookupTableDescriptor[0]=65536,r.bluePaletteColorLookupTableDescriptor[0]=65536);const t=r.redPaletteColorLookupTableDescriptor[0],i=e.elements.x00281201.length===t?8:16;r.redPaletteColorLookupTableDescriptor[2]!==i&&(r.redPaletteColorLookupTableDescriptor[2]=i,r.greenPaletteColorLookupTableDescriptor[2]=i,r.bluePaletteColorLookupTableDescriptor[2]=i),r.redPaletteColorLookupTableData=Hi(e,"x00281201",r.redPaletteColorLookupTableDescriptor),r.greenPaletteColorLookupTableData=Hi(e,"x00281202",r.greenPaletteColorLookupTableDescriptor),r.bluePaletteColorLookupTableData=Hi(e,"x00281203",r.bluePaletteColorLookupTableDescriptor)}function Nc(e,r){e.uint16("x00280103")===0?(r.smallestPixelValue=e.uint16("x00280106"),r.largestPixelValue=e.uint16("x00280107")):(r.smallestPixelValue=e.int16("x00280106"),r.largestPixelValue=e.int16("x00280107"))}function ml(e){const r={samplesPerPixel:e.uint16("x00280002"),photometricInterpretation:e.string("x00280004"),rows:e.uint16("x00280010"),columns:e.uint16("x00280011"),bitsAllocated:e.uint16("x00280100"),bitsStored:e.uint16("x00280101"),highBit:e.uint16("x00280102"),pixelRepresentation:e.uint16("x00280103"),planarConfiguration:e.uint16("x00280006"),pixelAspectRatio:e.string("x00280034")};return Nc(e,r),r.photometricInterpretation==="PALETTE COLOR"&&e.elements.x00281101&&Fc(e,r),r}function Wc(e,r){let t=r.uint16("x00283002",0);t===0&&(t=65535);let n=0;e===0?n=r.uint16("x00283002",1):n=r.int16("x00283002",1);const i=r.uint16("x00283002",2),l={id:"1",firstValueMapped:n,numBitsPerEntry:i,lut:[]};for(let a=0;a<t;a++)e===0?l.lut[a]=r.uint16("x00283006",a):l.lut[a]=r.int16("x00283006",a);return l}function co(e,r){if(!r||!r.items||!r.items.length)return;const t=[];for(let n=0;n<r.items.length;n++){const i=r.items[n].dataSet,l=Wc(e,i);l&&t.push(l)}return t}function Bc(e){const r=e.uint16("x00280103"),t=e.uint16("x00280101");return r===0?0:-1<<t-1}function bl(e){const r=e.string("x00080016");if(r==="1.2.840.10008.5.1.4.1.1.2"||r==="1.2.840.10008.5.1.4.1.1.2.1")return 1;const t=e.floatString("x00281052"),n=e.floatString("x00281053");return t!==void 0&&n!==void 0?Bc(e)*n+t<0?1:0:e.elements.x00283000&&e.elements.x00283000.length>0?0:e.uint16("x00280103")}function Ar(e,r,t){const n=[],i=e.string(r);if(!i)return;const l=i.split("\\");if(!(t&&l.length<t)){for(let a=0;a<l.length;a++)n.push(parseFloat(l[a]));return n}}var yi={exports:{}};var jc=yi.exports,Qo;function Hc(){return Qo||(Qo=1,(function(e,r){(function(t,n){e.exports=n(ei)})(jc,function(t){return i=[function(a,d){a.exports=t},function(a,d,P){P.r(d),P.d(d,"isStringVr",function(){return w}),P.d(d,"isPrivateTag",function(){return W}),P.d(d,"parsePN",function(){return F}),P.d(d,"parseTM",function(){return k}),P.d(d,"parseDA",function(){return Y}),P.d(d,"explicitElementToString",function(){return K}),P.d(d,"explicitDataSetToJS",function(){return ee}),P.d(d,"createJPEGBasicOffsetTable",function(){return J}),P.d(d,"parseDicomDataSetExplicit",function(){return Ke}),P.d(d,"parseDicomDataSetImplicit",function(){return ft}),P.d(d,"readFixedString",function(){return le}),P.d(d,"alloc",function(){return bt}),P.d(d,"version",function(){return ot}),P.d(d,"bigEndianByteArrayParser",function(){return Ze}),P.d(d,"ByteStream",function(){return Qe}),P.d(d,"sharedCopy",function(){return He}),P.d(d,"DataSet",function(){return oe}),P.d(d,"findAndSetUNElementLength",function(){return re}),P.d(d,"findEndOfEncapsulatedElement",function(){return he}),P.d(d,"findItemDelimitationItemAndSetElementLength",function(){return be}),P.d(d,"littleEndianByteArrayParser",function(){return vt}),P.d(d,"parseDicom",function(){return Bt}),P.d(d,"readDicomElementExplicit",function(){return Ce}),P.d(d,"readDicomElementImplicit",function(){return ve}),P.d(d,"readEncapsulatedImageFrame",function(){return vr}),P.d(d,"readEncapsulatedPixelData",function(){return Sr}),P.d(d,"readEncapsulatedPixelDataFromFragments",function(){return wt}),P.d(d,"readPart10Header",function(){return Zt}),P.d(d,"readSequenceItemsExplicit",function(){return Be}),P.d(d,"readSequenceItemsImplicit",function(){return Fe}),P.d(d,"readSequenceItem",function(){return ge}),P.d(d,"readTag",function(){return ce});var y={AE:!0,AS:!0,AT:!1,CS:!0,DA:!0,DS:!0,DT:!0,FL:!1,FD:!1,IS:!0,LO:!0,LT:!0,OB:!1,OD:!1,OF:!1,OW:!1,PN:!0,SH:!0,SL:!1,SQ:!1,SS:!1,ST:!0,TM:!0,UI:!0,UL:!1,UN:void 0,UR:!0,US:!1,UT:!0},w=function(m){return y[m]},W=function(m){if(m=parseInt(m[4],16),isNaN(m))throw"dicomParser.isPrivateTag: cannot parse last character of group";return m%2==1},F=function(m){if(m!==void 0)return m=m.split("^"),{familyName:m[0],givenName:m[1],middleName:m[2],prefix:m[3],suffix:m[4]}};function k(m,$){if(2<=m.length){var I=parseInt(m.substring(0,2),10),T=4<=m.length?parseInt(m.substring(2,4),10):void 0,L=6<=m.length?parseInt(m.substring(4,6),10):void 0,Z=8<=m.length?m.substring(7,13):void 0,Z=Z?parseInt(Z,10)*Math.pow(10,6-Z.length):void 0;if($&&(isNaN(I)||T!==void 0&&isNaN(T)||L!==void 0&&isNaN(L)||Z!==void 0&&isNaN(Z)||I<0||23<I||T&&(T<0||59<T)||L&&(L<0||59<L)||Z&&(Z<0||999999<Z)))throw"invalid TM '".concat(m,"'");return{hours:I,minutes:T,seconds:L,fractionalSeconds:Z}}if($)throw"invalid TM '".concat(m,"'")}function j(m,$,I){return!isNaN(I)&&0<$&&$<=12&&0<m&&m<=(function(T,L){switch(T){case 2:return L%4==0&&L%100||L%400==0?29:28;case 9:case 4:case 6:case 11:return 30;default:return 31}})($,I)}function Y(m,$){if(m&&m.length===8){var I=parseInt(m.substring(0,4),10),T=parseInt(m.substring(4,6),10),L=parseInt(m.substring(6,8),10);if($&&j(L,T,I)!==!0)throw"invalid DA '".concat(m,"'");return{year:I,month:T,day:L}}if($)throw"invalid DA '".concat(m,"'")}function K(m,$){if(m===void 0||$===void 0)throw"dicomParser.explicitElementToString: missing required parameters";if($.vr===void 0)throw"dicomParser.explicitElementToString: cannot convert implicit element to string";var I,T=$.vr,L=$.tag;function Z(xe,De){for(var ze="",Ee=0;Ee<xe;Ee++)Ee!==0&&(ze+="/"),ze+=De.call(m,L,Ee).toString();return ze}if(w(T)===!0)I=m.string(L);else{if(T==="AT"){var fe=m.uint32(L);return fe===void 0?void 0:"x".concat((fe=fe<0?4294967295+fe+1:fe).toString(16).toUpperCase())}T==="US"?I=Z($.length/2,m.uint16):T==="SS"?I=Z($.length/2,m.int16):T==="UL"?I=Z($.length/4,m.uint32):T==="SL"?I=Z($.length/4,m.int32):T==="FD"?I=Z($.length/8,m.double):T==="FL"&&(I=Z($.length/4,m.float))}return I}function ee(m,$){if(m===void 0)throw"dicomParser.explicitDataSetToJS: missing required parameter dataSet";$=$||{omitPrivateAttibutes:!0,maxElementLength:128};var I,T={};for(I in m.elements){var L=m.elements[I];if($.omitPrivateAttibutes!==!0||!W(I))if(L.items){for(var Z=[],fe=0;fe<L.items.length;fe++)Z.push(ee(L.items[fe].dataSet,$));T[I]=Z}else{var xe=void 0;L.length<$.maxElementLength&&(xe=K(m,L)),T[I]=xe!==void 0?xe:{dataOffset:L.dataOffset,length:L.length}}}return T}function X(m,$){return m.byteArray[$]===255&&m.byteArray[$+1]===217}function H(m,$,I){for(var T,L,Z=I;Z<$.fragments.length;Z++)if(T=m,L=Z,L=$.fragments[L],!(!X(T,L.position+L.length-2)&&!X(T,L.position+L.length-3)))return Z}function J(m,$,I){if(m===void 0)throw"dicomParser.createJPEGBasicOffsetTable: missing required parameter dataSet";if($===void 0)throw"dicomParser.createJPEGBasicOffsetTable: missing required parameter pixelDataElement";if($.tag!=="x7fe00010")throw"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010'";if($.encapsulatedPixelData!==!0||$.hadUndefinedLength!==!0||$.basicOffsetTable===void 0||$.fragments===void 0||$.fragments.length<=0)throw"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data";if(I&&I.length<=0)throw"dicomParser.createJPEGBasicOffsetTable: parameter 'fragments' must not be zero length";I=I||$.fragments;for(var T=[],L=0;;){T.push($.fragments[L].offset);var Z=H(m,$,L);if(Z===void 0||Z===$.fragments.length-1)return T;L=Z+1}}function ce(I){if(I===void 0)throw"dicomParser.readTag: missing required parameter 'byteStream'";var $=256*I.readUint16()*256,I=I.readUint16();return"x".concat("00000000".concat(($+I).toString(16)).substr(-8))}function he(m,$,I){if(m===void 0)throw"dicomParser.findEndOfEncapsulatedElement: missing required parameter 'byteStream'";if($===void 0)throw"dicomParser.findEndOfEncapsulatedElement: missing required parameter 'element'";if($.encapsulatedPixelData=!0,$.basicOffsetTable=[],$.fragments=[],ce(m)!=="xfffee000")throw"dicomParser.findEndOfEncapsulatedElement: basic offset table not found";for(var T=m.readUint32()/4,L=0;L<T;L++){var Z=m.readUint32();$.basicOffsetTable.push(Z)}for(var fe=m.position;m.position<m.byteArray.length;){var xe=ce(m),De=m.readUint32();if(xe==="xfffee0dd")return m.seek(De),void($.length=m.position-$.dataOffset);if(xe!=="xfffee000")return I&&I.push("unexpected tag ".concat(xe," while searching for end of pixel data element with undefined length")),De>m.byteArray.length-m.position&&(De=m.byteArray.length-m.position),$.fragments.push({offset:m.position-fe-8,position:m.position,length:De}),m.seek(De),void($.length=m.position-$.dataOffset);$.fragments.push({offset:m.position-fe-8,position:m.position,length:De}),m.seek(De)}I&&I.push("pixel data element ".concat($.tag," missing sequence delimiter tag xfffee0dd"))}function re(m,$){if(m===void 0)throw"dicomParser.findAndSetUNElementLength: missing required parameter 'byteStream'";for(var I=m.byteArray.length-8;m.position<=I;)if(m.readUint16()===65534){var T=m.readUint16();if(T===57565)return m.readUint32()!==0&&m.warnings("encountered non zero length following item delimiter at position ".concat(m.position-4," while reading element of undefined length with tag ").concat($.tag)),void($.length=m.position-$.dataOffset)}$.length=m.byteArray.length-$.dataOffset,m.seek(m.byteArray.length-m.position)}function le(m,$,I){if(I<0)throw"dicomParser.readFixedString - length cannot be less than 0";if($+I>m.length)throw"dicomParser.readFixedString: attempt to read past end of buffer";for(var T,L="",Z=0;Z<I;Z++){if((T=m[$+Z])===0)return $+=I,L;L+=String.fromCharCode(T)}return L}function ie(m,$){for(var I=0;I<$.length;I++){var T=$[I];T.enumerable=T.enumerable||!1,T.configurable=!0,"value"in T&&(T.writable=!0),Object.defineProperty(m,T.key,T)}}function te(m,$){return m.parser!==void 0?m.parser:$}var oe=(function(){function m(T,L,Z){(function(fe,xe){if(!(fe instanceof xe))throw new TypeError("Cannot call a class as a function")})(this,m),this.byteArrayParser=T,this.byteArray=L,this.elements=Z}var $,I;return $=m,(I=[{key:"uint16",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readUint16(this.byteArray,T.dataOffset+2*L)}},{key:"int16",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readInt16(this.byteArray,T.dataOffset+2*L)}},{key:"uint32",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readUint32(this.byteArray,T.dataOffset+4*L)}},{key:"int32",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readInt32(this.byteArray,T.dataOffset+4*L)}},{key:"float",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readFloat(this.byteArray,T.dataOffset+4*L)}},{key:"double",value:function(T,L){if(T=this.elements[T],L=L!==void 0?L:0,T&&T.length!==0)return te(T,this.byteArrayParser).readDouble(this.byteArray,T.dataOffset+8*L)}},{key:"numStringValues",value:function(T){if(T=this.elements[T],T&&0<T.length)return T=le(this.byteArray,T.dataOffset,T.length).match(/\\/g),T===null?1:T.length+1}},{key:"string",value:function(T,L){if(T=this.elements[T],T&&T.Value)return T.Value;if(T&&0<T.length)return T=le(this.byteArray,T.dataOffset,T.length),0<=L?T.split("\\")[L].trim():T.trim()}},{key:"text",value:function(T,L){if(T=this.elements[T],T&&0<T.length)return T=le(this.byteArray,T.dataOffset,T.length),0<=L?T.split("\\")[L].replace(/ +$/,""):T.replace(/ +$/,"")}},{key:"floatString",value:function(T,L){var Z=this.elements[T];if(Z&&0<Z.length&&(L=this.string(T,L=L!==void 0?L:0),L!==void 0))return parseFloat(L)}},{key:"intString",value:function(T,L){var Z=this.elements[T];if(Z&&0<Z.length&&(L=this.string(T,L=L!==void 0?L:0),L!==void 0))return parseInt(L)}},{key:"attributeTag",value:function(T){var L=this.elements[T];if(L&&L.length===4){var Z=te(L,this.byteArrayParser).readUint16,T=this.byteArray,L=L.dataOffset;return"x".concat("00000000".concat((256*Z(T,L)*256+Z(T,L+2)).toString(16)).substr(-8))}}}])&&ie($.prototype,I),Object.defineProperty($,"prototype",{writable:!1}),m})();function be(m,$){if(m===void 0)throw"dicomParser.readDicomElementImplicit: missing required parameter 'byteStream'";for(var I=m.byteArray.length-8;m.position<=I;)if(m.readUint16()===65534){var T=m.readUint16();if(T===57357)return m.readUint32()!==0&&m.warnings("encountered non zero length following item delimiter at position ".concat(m.position-4," while reading element of undefined length with tag ").concat($.tag)),void($.length=m.position-$.dataOffset)}$.length=m.byteArray.length-$.dataOffset,m.seek(m.byteArray.length-m.position)}var Te=function(m,$){return m.vr!==void 0?m.vr==="SQ":$.position+4<=$.byteArray.length?(m=ce($),$.seek(-4),m==="xfffee000"||m==="xfffee0dd"):($.warnings.push("eof encountered before finding sequence item tag or sequence delimiter tag in peeking to determine VR"),!1)};function ve(m,$,I){if(m===void 0)throw"dicomParser.readDicomElementImplicit: missing required parameter 'byteStream'";var T=ce(m),T={tag:T,vr:I!==void 0?I(T):void 0,length:m.readUint32(),dataOffset:m.position};return T.length===4294967295&&(T.hadUndefinedLength=!0),T.tag===$||(!Te(T,m)||W(T.tag)&&!T.hadUndefinedLength?T.hadUndefinedLength?be(m,T):m.seek(T.length):(Fe(m,T,I),W(T.tag)&&(T.items=void 0))),T}function ge(m){if(m===void 0)throw"dicomParser.readSequenceItem: missing required parameter 'byteStream'";var $={tag:ce(m),length:m.readUint32(),dataOffset:m.position};if($.tag!=="xfffee000")throw"dicomParser.readSequenceItem: item tag (FFFE,E000) not found at offset ".concat(m.position);return $}function Re(m,$){var I=ge(m);return I.length===4294967295?(I.hadUndefinedLength=!0,I.dataSet=(function(T,L){for(var Z={};T.position<T.byteArray.length;){var fe=ve(T,void 0,L);if((Z[fe.tag]=fe).tag==="xfffee00d")return new oe(T.byteArrayParser,T.byteArray,Z)}return T.warnings.push("eof encountered before finding sequence item delimiter in sequence item of undefined length"),new oe(T.byteArrayParser,T.byteArray,Z)})(m,$),I.length=m.position-I.dataOffset):(I.dataSet=new oe(m.byteArrayParser,m.byteArray,{}),ft(I.dataSet,m,m.position+I.length,{vrCallback:$})),I}function Fe(m,$,I){if(m===void 0)throw"dicomParser.readSequenceItemsImplicit: missing required parameter 'byteStream'";if($===void 0)throw"dicomParser.readSequenceItemsImplicit: missing required parameter 'element'";$.items=[],($.length===4294967295?function(T,L,Z){for(;T.position+4<=T.byteArray.length;){var fe=ce(T);if(T.seek(-4),fe==="xfffee0dd")return L.length=T.position-L.dataOffset,T.seek(8);fe=Re(T,Z),L.items.push(fe)}T.warnings.push("eof encountered before finding sequence delimiter in sequence of undefined length"),L.length=T.byteArray.length-L.dataOffset}:function(T,L,Z){for(var fe=L.dataOffset+L.length;T.position<fe;){var xe=Re(T,Z);L.items.push(xe)}})(m,$,I)}function Ie(m,$){var I=ge(m);return I.length===4294967295?(I.hadUndefinedLength=!0,I.dataSet=(function(T,L){for(var Z={};T.position<T.byteArray.length;){var fe=Ce(T,L);if((Z[fe.tag]=fe).tag==="xfffee00d")return new oe(T.byteArrayParser,T.byteArray,Z)}return L.push("eof encountered before finding item delimiter tag while reading sequence item of undefined length"),new oe(T.byteArrayParser,T.byteArray,Z)})(m,$),I.length=m.position-I.dataOffset):(I.dataSet=new oe(m.byteArrayParser,m.byteArray,{}),Ke(I.dataSet,m,m.position+I.length)),I}function Be(m,$,I){if(m===void 0)throw"dicomParser.readSequenceItemsExplicit: missing required parameter 'byteStream'";if($===void 0)throw"dicomParser.readSequenceItemsExplicit: missing required parameter 'element'";$.items=[],($.length===4294967295?function(T,L,Z){for(;T.position+4<=T.byteArray.length;){var fe=ce(T);if(T.seek(-4),fe==="xfffee0dd")return L.length=T.position-L.dataOffset,T.seek(8);fe=Ie(T,Z),L.items.push(fe)}Z.push("eof encountered before finding sequence delimitation tag while reading sequence of undefined length"),L.length=T.position-L.dataOffset}:function(T,L,Z){for(var fe=L.dataOffset+L.length;T.position<fe;){var xe=Ie(T,Z);L.items.push(xe)}})(m,$,I)}var je=function(m){return m==="OB"||m==="OD"||m==="OL"||m==="OW"||m==="SQ"||m==="OF"||m==="UC"||m==="UR"||m==="UT"||m==="UN"?4:2};function Ce(m,$,I){if(m===void 0)throw"dicomParser.readDicomElementExplicit: missing required parameter 'byteStream'";var T={tag:ce(m),vr:m.readFixedString(2)};return je(T.vr)===2?T.length=m.readUint16():(m.seek(2),T.length=m.readUint32()),T.dataOffset=m.position,T.length===4294967295&&(T.hadUndefinedLength=!0),T.tag===I||(T.vr==="SQ"?Be(m,T,$):T.length===4294967295?T.tag==="x7fe00010"?he(m,T,$):(T.vr==="UN"?Fe:be)(m,T):m.seek(T.length)),T}function Ke(m,$,I){var T=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{};if(I=I===void 0?$.byteArray.length:I,$===void 0)throw"dicomParser.parseDicomDataSetExplicit: missing required parameter 'byteStream'";if(I<$.position||I>$.byteArray.length)throw"dicomParser.parseDicomDataSetExplicit: invalid value for parameter 'maxP osition'";for(var L=m.elements;$.position<I;){var Z=Ce($,m.warnings,T.untilTag);if((L[Z.tag]=Z).tag===T.untilTag)return}if($.position>I)throw"dicomParser:parseDicomDataSetExplicit: buffer overrun"}function ft(m,$,I){var T=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{};if(I=I===void 0?m.byteArray.length:I,$===void 0)throw"dicomParser.parseDicomDataSetImplicit: missing required parameter 'byteStream'";if(I<$.position||I>$.byteArray.length)throw"dicomParser.parseDicomDataSetImplicit: invalid value for parameter 'maxPosition'";for(var L=m.elements;$.position<I;){var Z=ve($,T.untilTag,T.vrCallback);if((L[Z.tag]=Z).tag===T.untilTag)return}}function bt(m,$){if(typeof Buffer<"u"&&m instanceof Buffer)return Buffer.alloc($);if(m instanceof Uint8Array)return new Uint8Array($);throw"dicomParser.alloc: unknown type for byteArray"}var ot="1.8.12",Ze={readUint16:function(m,$){if($<0)throw"bigEndianByteArrayParser.readUint16: position cannot be less than 0";if($+2>m.length)throw"bigEndianByteArrayParser.readUint16: attempt to read past end of buffer";return(m[$]<<8)+m[$+1]},readInt16:function(m,$){if($<0)throw"bigEndianByteArrayParser.readInt16: position cannot be less than 0";if($+2>m.length)throw"bigEndianByteArrayParser.readInt16: attempt to read past end of buffer";return $=(m[$]<<8)+m[$+1],$=32768&$?$-65535-1:$},readUint32:function(m,$){if($<0)throw"bigEndianByteArrayParser.readUint32: position cannot be less than 0";if($+4>m.length)throw"bigEndianByteArrayParser.readUint32: attempt to read past end of buffer";return 256*(256*(256*m[$]+m[$+1])+m[$+2])+m[$+3]},readInt32:function(m,$){if($<0)throw"bigEndianByteArrayParser.readInt32: position cannot be less than 0";if($+4>m.length)throw"bigEndianByteArrayParser.readInt32: attempt to read past end of buffer";return(m[$]<<24)+(m[$+1]<<16)+(m[$+2]<<8)+m[$+3]},readFloat:function(m,$){if($<0)throw"bigEndianByteArrayParser.readFloat: position cannot be less than 0";if($+4>m.length)throw"bigEndianByteArrayParser.readFloat: attempt to read past end of buffer";var I=new Uint8Array(4);return I[3]=m[$],I[2]=m[$+1],I[1]=m[$+2],I[0]=m[$+3],new Float32Array(I.buffer)[0]},readDouble:function(m,$){if($<0)throw"bigEndianByteArrayParser.readDouble: position cannot be less than 0";if($+8>m.length)throw"bigEndianByteArrayParser.readDouble: attempt to read past end of buffer";var I=new Uint8Array(8);return I[7]=m[$],I[6]=m[$+1],I[5]=m[$+2],I[4]=m[$+3],I[3]=m[$+4],I[2]=m[$+5],I[1]=m[$+6],I[0]=m[$+7],new Float64Array(I.buffer)[0]}};function He(m,$,I){if(typeof Buffer<"u"&&m instanceof Buffer)return m.slice($,$+I);if(m instanceof Uint8Array)return new Uint8Array(m.buffer,m.byteOffset+$,I);throw"dicomParser.from: unknown type for byteArray"}function ke(m,$){for(var I=0;I<$.length;I++){var T=$[I];T.enumerable=T.enumerable||!1,T.configurable=!0,"value"in T&&(T.writable=!0),Object.defineProperty(m,T.key,T)}}var Qe=(function(){function m(T,L,Z){if((function(fe,xe){if(!(fe instanceof xe))throw new TypeError("Cannot call a class as a function")})(this,m),T===void 0)throw"dicomParser.ByteStream: missing required parameter 'byteArrayParser'";if(L===void 0)throw"dicomParser.ByteStream: missing required parameter 'byteArray'";if(!(L instanceof Uint8Array)&&(typeof Buffer>"u"||!(L instanceof Buffer)))throw"dicomParser.ByteStream: parameter byteArray is not of type Uint8Array or Buffer";if(Z<0)throw"dicomParser.ByteStream: parameter 'position' cannot be less than 0";if(Z>=L.length)throw"dicomParser.ByteStream: parameter 'position' cannot be greater than or equal to 'byteArray' length";this.byteArrayParser=T,this.byteArray=L,this.position=Z||0,this.warnings=[]}var $,I;return $=m,(I=[{key:"seek",value:function(T){if(this.position+T<0)throw"dicomParser.ByteStream.prototype.seek: cannot seek to position < 0";this.position+=T}},{key:"readByteStream",value:function(T){if(this.position+T>this.byteArray.length)throw"dicomParser.ByteStream.prototype.readByteStream: readByteStream - buffer overread";var L=He(this.byteArray,this.position,T);return this.position+=T,new m(this.byteArrayParser,L)}},{key:"getSize",value:function(){return this.byteArray.length}},{key:"readUint16",value:function(){var T=this.byteArrayParser.readUint16(this.byteArray,this.position);return this.position+=2,T}},{key:"readUint32",value:function(){var T=this.byteArrayParser.readUint32(this.byteArray,this.position);return this.position+=4,T}},{key:"readFixedString",value:function(T){var L=le(this.byteArray,this.position,T);return this.position+=T,L}}])&&ke($.prototype,I),Object.defineProperty($,"prototype",{writable:!1}),m})(),vt={readUint16:function(m,$){if($<0)throw"littleEndianByteArrayParser.readUint16: position cannot be less than 0";if($+2>m.length)throw"littleEndianByteArrayParser.readUint16: attempt to read past end of buffer";return m[$]+256*m[$+1]},readInt16:function(m,$){if($<0)throw"littleEndianByteArrayParser.readInt16: position cannot be less than 0";if($+2>m.length)throw"littleEndianByteArrayParser.readInt16: attempt to read past end of buffer";return $=m[$]+(m[$+1]<<8),$=32768&$?$-65535-1:$},readUint32:function(m,$){if($<0)throw"littleEndianByteArrayParser.readUint32: position cannot be less than 0";if($+4>m.length)throw"littleEndianByteArrayParser.readUint32: attempt to read past end of buffer";return m[$]+256*m[$+1]+256*m[$+2]*256+256*m[$+3]*256*256},readInt32:function(m,$){if($<0)throw"littleEndianByteArrayParser.readInt32: position cannot be less than 0";if($+4>m.length)throw"littleEndianByteArrayParser.readInt32: attempt to read past end of buffer";return m[$]+(m[$+1]<<8)+(m[$+2]<<16)+(m[$+3]<<24)},readFloat:function(m,$){if($<0)throw"littleEndianByteArrayParser.readFloat: position cannot be less than 0";if($+4>m.length)throw"littleEndianByteArrayParser.readFloat: attempt to read past end of buffer";var I=new Uint8Array(4);return I[0]=m[$],I[1]=m[$+1],I[2]=m[$+2],I[3]=m[$+3],new Float32Array(I.buffer)[0]},readDouble:function(m,$){if($<0)throw"littleEndianByteArrayParser.readDouble: position cannot be less than 0";if($+8>m.length)throw"littleEndianByteArrayParser.readDouble: attempt to read past end of buffer";var I=new Uint8Array(8);return I[0]=m[$],I[1]=m[$+1],I[2]=m[$+2],I[3]=m[$+3],I[4]=m[$+4],I[5]=m[$+5],I[6]=m[$+6],I[7]=m[$+7],new Float64Array(I.buffer)[0]}};function Zt(m){var $=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};if(m===void 0)throw"dicomParser.readPart10Header: missing required parameter 'byteArray'";var I=$.TransferSyntaxUID,T=new Qe(vt,m);return(function(){var L=(function(){if(T.getSize()<=132&&I)return!1;if(T.seek(128),T.readFixedString(4)==="DICM")return!0;if(!($||{}).TransferSyntaxUID)throw"dicomParser.readPart10Header: DICM prefix not found at location 132 - this is not a valid DICOM P10 file.";return T.seek(0),!1})(),Z=[],fe={};if(!L)return T.position=0,{elements:{x00020010:{tag:"x00020010",vr:"UI",Value:I}},warnings:Z};for(;T.position<T.byteArray.length;){var xe=T.position,De=Ce(T,Z);if("x0002ffff"<De.tag){T.position=xe;break}De.parser=vt,fe[De.tag]=De}return(L=new oe(T.byteArrayParser,T.byteArray,fe)).warnings=T.warnings,L.position=T.position,L})()}var Wt="1.2.840.10008.1.2.2";function Bt(m){var $=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};if(m===void 0)throw new Error("dicomParser.parseDicom: missing required parameter 'byteArray'");var I,T=function(Z){if(Z.elements.x00020010===void 0)throw new Error("dicomParser.parseDicom: missing required meta header attribute 0002,0010");return Z=Z.elements.x00020010,Z&&Z.Value||le(m,Z.dataOffset,Z.length)};function L(De){var xe=T(De),fe=xe!=="1.2.840.10008.1.2",xe=(function(ze,Ee){var qe=Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]";if(ze!=="1.2.840.10008.1.2.1.99")return new Qe(ze===Wt?Ze:vt,m,Ee);if($&&$.inflater)return ze=$.inflater(m,Ee),new Qe(vt,ze,0);if(qe==!0){var Ne=P(0),Ve=He(m,Ee,m.length-Ee),Ne=Ne.inflateRawSync(Ve),Ve=bt(m,Ne.length+Ee);return m.copy(Ve,0,0,Ee),Ne.copy(Ve,Ee),new Qe(vt,Ve,0)}if(typeof pako>"u")throw"dicomParser.parseDicom: no inflater available to handle deflate transfer syntax";return Ne=m.slice(Ee),Ve=pako.inflateRaw(Ne),(Ne=bt(m,Ve.length+Ee)).set(m.slice(0,Ee),0),Ne.set(Ve,Ee),new Qe(vt,Ne,0)})(xe,De.position),De=new oe(xe.byteArrayParser,xe.byteArray,{});De.warnings=xe.warnings;try{(fe?Ke:ft)(De,xe,xe.byteArray.length,$)}catch(ze){throw{exception:ze,dataSet:De}}return De}return(function(Z,fe){for(var xe in Z.elements)Z.elements.hasOwnProperty(xe)&&(fe.elements[xe]=Z.elements[xe]);return Z.warnings!==void 0&&(fe.warnings=Z.warnings.concat(fe.warnings)),fe})(I=Zt(m,$),L(I))}var kt=function(m,$,I){for(var T=0,L=$;L<$+I;L++)T+=m[L].length;return T};function wt(m,fe,I,T,L){if(L=L||fe.fragments,m===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'dataSet'";if(fe===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'pixelDataElement'";if(I===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'startFragmentIndex'";if((T=T||1)===void 0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'numFragments'";if(fe.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010";if(fe.encapsulatedPixelData!==!0||fe.hadUndefinedLength!==!0||fe.basicOffsetTable===void 0||fe.fragments===void 0||fe.fragments.length<=0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data";if(I<0)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragmentIndex' must be >= 0";if(I>=fe.fragments.length)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragmentIndex' must be < number of fragments";if(T<1)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'numFragments' must be > 0";if(I+T>fe.fragments.length)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragment' + 'numFragments' < number of fragments";var Z=new Qe(m.byteArrayParser,m.byteArray,fe.dataOffset),fe=ge(Z);if(fe.tag!=="xfffee000")throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";Z.seek(fe.length);var xe=Z.position;if(T===1)return He(Z.byteArray,xe+L[I].offset+8,L[I].length);for(var fe=kt(L,I,T),De=bt(Z.byteArray,fe),ze=0,Ee=I;Ee<I+T;Ee++)for(var qe=xe+L[Ee].offset+8,Ne=0;Ne<L[Ee].length;Ne++)De[ze++]=Z.byteArray[qe++];return De}var hr=function(m,$){for(var I=0;I<m.length;I++)if(m[I].offset===$)return I},pr=function(m,$,I,T){if(m===$.length-1)return I.length-T;for(var L=$[m+1],Z=T+1;Z<I.length;Z++)if(I[Z].offset===L)return Z-T;throw"dicomParser.calculateNumberOfFragmentsForFrame: could not find fragment with offset matching basic offset table"};function vr(m,$,I,T,L){if(T=T||$.basicOffsetTable,L=L||$.fragments,m===void 0)throw"dicomParser.readEncapsulatedImageFrame: missing required parameter 'dataSet'";if($===void 0)throw"dicomParser.readEncapsulatedImageFrame: missing required parameter 'pixelDataElement'";if(I===void 0)throw"dicomParser.readEncapsulatedImageFrame: missing required parameter 'frameIndex'";if(T===void 0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' does not have basicOffsetTable";if($.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010)";if($.encapsulatedPixelData!==!0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data";if($.hadUndefinedLength!==!0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have undefined length";if($.fragments===void 0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have fragments";if(T.length===0)throw"dicomParser.readEncapsulatedImageFrame: basicOffsetTable has zero entries";if(I<0)throw"dicomParser.readEncapsulatedImageFrame: parameter 'frameIndex' must be >= 0";if(I>=T.length)throw"dicomParser.readEncapsulatedImageFrame: parameter 'frameIndex' must be < basicOffsetTable.length";var Z=T[I],Z=hr(L,Z);if(Z===void 0)throw"dicomParser.readEncapsulatedImageFrame: unable to find fragment that matches basic offset table entry";return wt(m,$,Z,pr(I,T,L,Z),L)}var Cr=!1;function Sr(m,$,I){if(Cr||(Cr=!0,console&&console.log&&console.log("WARNING: dicomParser.readEncapsulatedPixelData() has been deprecated")),m===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'dataSet'";if($===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'element'";if(I===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'frame'";if($.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to non pixel data tag (expected tag = x7fe00010)";if($.encapsulatedPixelData!==!0||$.hadUndefinedLength!==!0||$.basicOffsetTable===void 0||$.fragments===void 0)throw"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to pixel data element that does not have encapsulated pixel data";if(I<0)throw"dicomParser.readEncapsulatedPixelData: parameter 'frame' must be >= 0";return $.basicOffsetTable.length!==0?vr(m,$,I):wt(m,$,0,$.fragments.length)}d.default={isStringVr:w,isPrivateTag:W,parsePN:F,parseTM:k,parseDA:Y,explicitElementToString:K,explicitDataSetToJS:ee,createJPEGBasicOffsetTable:J,parseDicomDataSetExplicit:Ke,parseDicomDataSetImplicit:ft,readFixedString:le,alloc:bt,version:ot,bigEndianByteArrayParser:Ze,ByteStream:Qe,sharedCopy:He,DataSet:oe,findAndSetUNElementLength:re,findEndOfEncapsulatedElement:he,findItemDelimitationItemAndSetElementLength:be,littleEndianByteArrayParser:vt,parseDicom:Bt,readDicomElementExplicit:Ce,readDicomElementImplicit:ve,readEncapsulatedImageFrame:vr,readEncapsulatedPixelData:Sr,readEncapsulatedPixelDataFromFragments:wt,readPart10Header:Zt,readSequenceItemsExplicit:Be,readSequenceItemsImplicit:Fe,readSequenceItem:ge,readTag:ce,LEI:"1.2.840.10008.1.2",LEE:"1.2.840.10008.1.2.1"}}],l={},n.m=i,n.c=l,n.d=function(a,d,P){n.o(a,d)||Object.defineProperty(a,d,{enumerable:!0,get:P})},n.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},n.t=function(a,d){if(1&d&&(a=n(a)),8&d||4&d&&typeof a=="object"&&a&&a.__esModule)return a;var P=Object.create(null);if(n.r(P),Object.defineProperty(P,"default",{enumerable:!0,value:a}),2&d&&typeof a!="string")for(var y in a)n.d(P,y,(function(w){return a[w]}).bind(null,y));return P},n.n=function(a){var d=a&&a.__esModule?function(){return a.default}:function(){return a};return n.d(d,"a",d),d},n.o=function(a,d){return Object.prototype.hasOwnProperty.call(a,d)},n.p="",n(n.s=1);function n(a){if(l[a])return l[a].exports;var d=l[a]={i:a,l:!1,exports:{}};return i[a].call(d.exports,d,d.exports,n),d.l=!0,d.exports}var i,l})})(yi)),yi.exports}var ar=Hc();function Da(e){const r=e.indexOf(":");let t=e.substring(r+1);const n=t.indexOf("frame=");let i;if(n!==-1){const d=t.substring(n+6);i=parseInt(d,10),t=t.substring(0,n-1)}const l=e.substring(0,r),a=i!==void 0?i-1:void 0;return{scheme:l,url:t,frame:i,pixelDataFrame:a}}let uo={open(e,r){e.open("get",r,!0)},beforeSend:async()=>{},beforeProcessing(e){return Promise.resolve(e.response)},imageCreated(){},strict:!1};function wl(e){uo=Object.assign(uo,e)}function ti(){return uo}function Si(e,r,t={},n={}){const i=ti(),l=P=>{if(typeof i.errorInterceptor=="function"){const y=new Error("request failed");y.request=P,y.response=P.response,y.status=P.status,i.errorInterceptor(y)}},a=new XMLHttpRequest,d=new Promise(async(P,y)=>{i.open(a,e,t,n);const w=await i.beforeSend(a,r,t,n);a.responseType="arraybuffer";const W=Object.assign({},t,w);Object.keys(W).forEach(function(F){W[F]!==null&&(F==="Accept"&&e.indexOf("accept=")!==-1||a.setRequestHeader(F,W[F]))}),n.deferred={resolve:P,reject:y},n.url=e,n.imageId=r,a.onloadstart=function(F){i.onloadstart&&i.onloadstart(F,n),Pa(xa,"cornerstoneimageloadstart",{url:e,imageId:r})},a.onloadend=function(F){i.onloadend&&i.onloadend(F,n),Pa(xa,"cornerstoneimageloadend",{url:e,imageId:r})},a.onreadystatechange=function(F){i.onreadystatechange&&i.onreadystatechange(F,n),a.readyState===4&&(a.status===200||a.status===206?i.beforeProcessing(a).then(P).catch(()=>{l(a),y(a)}):(l(a),y(a)))},a.onprogress=function(F){const k=F.loaded;let j,Y;F.lengthComputable&&(j=F.total,Y=Math.round(k/j*100)),Pa(xa,"cornerstoneimageloadprogress",{url:e,imageId:r,loaded:k,total:j,percentComplete:Y}),i.onprogress&&i.onprogress(F,n)},a.onerror=function(){l(a),y(a)},a.onabort=function(){l(a),y(a)},a.send()});return d.xhr=a,d}function zc(e,r,t){if(t+e.length>r.length)return!1;let n=t;for(let i=0;i<e.length;i++)if(e[i]!==r[n++])return!1;return!0}function Vc(e){const r=new Uint8Array(e.length);for(let t=0,n=e.length;t<n;t++)r[t]=e.charCodeAt(t);return r}function ho(e,r,t){t=t||0;const n=Vc(r);for(let i=t;i<e.length;i++)if(n[0]===e[i]&&zc(n,e,i))return i;return-1}const{ImageQualityStatus:es}=_n;function Io(e,r,t){t||={};const n=new Uint8Array(r),i=!!t?.isPartial;if(e.indexOf("multipart")===-1)return{contentType:e,imageQualityStatus:i?es.SUBRESOLUTION:es.FULL_RESOLUTION,pixelData:n};let{tokenIndex:l,responseHeaders:a,boundary:d,multipartContentType:P}=t;if(l||=ho(n,`\r
|
|
2
2
|
\r
|
|
3
3
|
`),l===-1)throw new Error("invalid response - no multipart mime header");if(!d&&(a=qc(n,0,l).split(`\r
|
|
4
4
|
`),d=Gc(a),!d))throw new Error("invalid response - no boundary marker");const y=l+4,w=ho(n,d,y);if(w===-1&&!i)throw new Error("invalid response - terminating boundary not found");return P||=Zc(a),t.tokenIndex=l,t.boundary=d,t.responseHeaders=a,t.multipartContentType=P,t.isPartial=w===-1,{contentType:P,extractDone:!i||w!==-1,tokenIndex:l,responseHeaders:a,boundary:d,multipartContentType:P,pixelData:r.slice(y,w-2)}}function Gc(e){for(let r=0;r<e.length;r++)if(e[r].substr(0,2)==="--")return e[r]}function Zc(e){for(let r=0;r<e.length;r++)if(e[r].substr(0,13)==="Content-Type:")return e[r].substr(13).trim()}function qc(e,r,t){r=r||0,t=t||e.length-r;let n="";for(let i=r;i<r+t;i++)n+=String.fromCharCode(e[i]);return n}const{ImageQualityStatus:ts}=_n;function Oo(e,r=!0){return r?e.imageQualityStatus??ts.FULL_RESOLUTION:ts.SUBRESOLUTION}const{ProgressiveIterator:Jc}=dl;function Pl(e,r,t={},n={}){const i=ti(),{retrieveOptions:l={},streamingData:a={}}=n,d=l.minChunkSize||128*1024,P=w=>{if(typeof i.errorInterceptor=="function"){const W=new Error("request failed");i.errorInterceptor(W)}},y=new Jc("streamRequest");return y.generate(async(w,W)=>{const F=await i.beforeSend?.(null,e,t,{}),k=Object.assign({},t,F);Object.keys(k).forEach(function(j){k[j]===null&&(k[j]=void 0),j==="Accept"&&e.indexOf("accept=")!==-1&&(k[j]=void 0)});try{const j=await fetch(e,{headers:k,signal:void 0});if(j.status!==200)throw new Error(`Couldn't retrieve ${e} got status ${j.status}`);const Y=j.body.getReader(),K=j.headers,ee=K.get("content-type"),X=Number(K.get("Content-Length"));let H=!1,J=a.encodedData,ce=a.lastSize||0;for(a.isPartial=!0;!H;){const{done:he,value:re}=await Y.read();if(J=Yc(J,re),!J){if(H)throw new Error(`Done but no image frame available ${r}`);continue}if(H=he||J.byteLength===X,!H&&J.length<ce+d)continue;ce=J.length,a.isPartial=!he;const le=Io(ee,J,a),ie=Oo(l,H),te={url:e,imageId:r,...le,percentComplete:he?100:le.pixelData?.length*100/X,imageQualityStatus:ie,done:H};w.add(te,H)}}catch(j){P(),console.error(j),W(j)}}),y.getNextPromise()}function Yc(e,r){if(!e)return r;if(!r)return e;const t=new Uint8Array(e.length+r.length);return t.set(e,0),t.set(r,e.length),t}const Xc={xhrRequest:Si,streamRequest:Pl,setOptions:wl,getOptions:ti};const Kc=4,rs=0,ns=1,Qc=2;function Ra(e){let r=e.length;for(;--r>=0;)e[r]=0}const eu=0,xl=1,tu=2,ru=3,nu=258,ko=29,ri=256,Ga=ri+1+ko,Ta=30,Lo=19,El=2*Ga+1,da=15,zi=16,au=7,Uo=256,Tl=16,$l=17,Al=18,po=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),mi=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),iu=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Cl=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ou=512,hn=new Array((Ga+2)*2);Ra(hn);const Ba=new Array(Ta*2);Ra(Ba);const Za=new Array(ou);Ra(Za);const qa=new Array(nu-ru+1);Ra(qa);const Mo=new Array(ko);Ra(Mo);const xi=new Array(Ta);Ra(xi);function Vi(e,r,t,n,i){this.static_tree=e,this.extra_bits=r,this.extra_base=t,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}let Sl,Dl,Rl;function Gi(e,r){this.dyn_tree=e,this.max_code=0,this.stat_desc=r}const Il=e=>e<256?Za[e]:Za[256+(e>>>7)],Ja=(e,r)=>{e.pending_buf[e.pending++]=r&255,e.pending_buf[e.pending++]=r>>>8&255},Gt=(e,r,t)=>{e.bi_valid>zi-t?(e.bi_buf|=r<<e.bi_valid&65535,Ja(e,e.bi_buf),e.bi_buf=r>>zi-e.bi_valid,e.bi_valid+=t-zi):(e.bi_buf|=r<<e.bi_valid&65535,e.bi_valid+=t)},Br=(e,r,t)=>{Gt(e,t[r*2],t[r*2+1])},Ol=(e,r)=>{let t=0;do t|=e&1,e>>>=1,t<<=1;while(--r>0);return t>>>1},su=e=>{e.bi_valid===16?(Ja(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},lu=(e,r)=>{const t=r.dyn_tree,n=r.max_code,i=r.stat_desc.static_tree,l=r.stat_desc.has_stree,a=r.stat_desc.extra_bits,d=r.stat_desc.extra_base,P=r.stat_desc.max_length;let y,w,W,F,k,j,Y=0;for(F=0;F<=da;F++)e.bl_count[F]=0;for(t[e.heap[e.heap_max]*2+1]=0,y=e.heap_max+1;y<El;y++)w=e.heap[y],F=t[t[w*2+1]*2+1]+1,F>P&&(F=P,Y++),t[w*2+1]=F,!(w>n)&&(e.bl_count[F]++,k=0,w>=d&&(k=a[w-d]),j=t[w*2],e.opt_len+=j*(F+k),l&&(e.static_len+=j*(i[w*2+1]+k)));if(Y!==0){do{for(F=P-1;e.bl_count[F]===0;)F--;e.bl_count[F]--,e.bl_count[F+1]+=2,e.bl_count[P]--,Y-=2}while(Y>0);for(F=P;F!==0;F--)for(w=e.bl_count[F];w!==0;)W=e.heap[--y],!(W>n)&&(t[W*2+1]!==F&&(e.opt_len+=(F-t[W*2+1])*t[W*2],t[W*2+1]=F),w--)}},kl=(e,r,t)=>{const n=new Array(da+1);let i=0,l,a;for(l=1;l<=da;l++)i=i+t[l-1]<<1,n[l]=i;for(a=0;a<=r;a++){let d=e[a*2+1];d!==0&&(e[a*2]=Ol(n[d]++,d))}},fu=()=>{let e,r,t,n,i;const l=new Array(da+1);for(t=0,n=0;n<ko-1;n++)for(Mo[n]=t,e=0;e<1<<po[n];e++)qa[t++]=n;for(qa[t-1]=n,i=0,n=0;n<16;n++)for(xi[n]=i,e=0;e<1<<mi[n];e++)Za[i++]=n;for(i>>=7;n<Ta;n++)for(xi[n]=i<<7,e=0;e<1<<mi[n]-7;e++)Za[256+i++]=n;for(r=0;r<=da;r++)l[r]=0;for(e=0;e<=143;)hn[e*2+1]=8,e++,l[8]++;for(;e<=255;)hn[e*2+1]=9,e++,l[9]++;for(;e<=279;)hn[e*2+1]=7,e++,l[7]++;for(;e<=287;)hn[e*2+1]=8,e++,l[8]++;for(kl(hn,Ga+1,l),e=0;e<Ta;e++)Ba[e*2+1]=5,Ba[e*2]=Ol(e,5);Sl=new Vi(hn,po,ri+1,Ga,da),Dl=new Vi(Ba,mi,0,Ta,da),Rl=new Vi(new Array(0),iu,0,Lo,au)},Ll=e=>{let r;for(r=0;r<Ga;r++)e.dyn_ltree[r*2]=0;for(r=0;r<Ta;r++)e.dyn_dtree[r*2]=0;for(r=0;r<Lo;r++)e.bl_tree[r*2]=0;e.dyn_ltree[Uo*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Ul=e=>{e.bi_valid>8?Ja(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},as=(e,r,t,n)=>{const i=r*2,l=t*2;return e[i]<e[l]||e[i]===e[l]&&n[r]<=n[t]},Zi=(e,r,t)=>{const n=e.heap[t];let i=t<<1;for(;i<=e.heap_len&&(i<e.heap_len&&as(r,e.heap[i+1],e.heap[i],e.depth)&&i++,!as(r,n,e.heap[i],e.depth));)e.heap[t]=e.heap[i],t=i,i<<=1;e.heap[t]=n},is=(e,r,t)=>{let n,i,l=0,a,d;if(e.sym_next!==0)do n=e.pending_buf[e.sym_buf+l++]&255,n+=(e.pending_buf[e.sym_buf+l++]&255)<<8,i=e.pending_buf[e.sym_buf+l++],n===0?Br(e,i,r):(a=qa[i],Br(e,a+ri+1,r),d=po[a],d!==0&&(i-=Mo[a],Gt(e,i,d)),n--,a=Il(n),Br(e,a,t),d=mi[a],d!==0&&(n-=xi[a],Gt(e,n,d)));while(l<e.sym_next);Br(e,Uo,r)},vo=(e,r)=>{const t=r.dyn_tree,n=r.stat_desc.static_tree,i=r.stat_desc.has_stree,l=r.stat_desc.elems;let a,d,P=-1,y;for(e.heap_len=0,e.heap_max=El,a=0;a<l;a++)t[a*2]!==0?(e.heap[++e.heap_len]=P=a,e.depth[a]=0):t[a*2+1]=0;for(;e.heap_len<2;)y=e.heap[++e.heap_len]=P<2?++P:0,t[y*2]=1,e.depth[y]=0,e.opt_len--,i&&(e.static_len-=n[y*2+1]);for(r.max_code=P,a=e.heap_len>>1;a>=1;a--)Zi(e,t,a);y=l;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Zi(e,t,1),d=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=d,t[y*2]=t[a*2]+t[d*2],e.depth[y]=(e.depth[a]>=e.depth[d]?e.depth[a]:e.depth[d])+1,t[a*2+1]=t[d*2+1]=y,e.heap[1]=y++,Zi(e,t,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],lu(e,r),kl(t,P,e.bl_count)},os=(e,r,t)=>{let n,i=-1,l,a=r[1],d=0,P=7,y=4;for(a===0&&(P=138,y=3),r[(t+1)*2+1]=65535,n=0;n<=t;n++)l=a,a=r[(n+1)*2+1],!(++d<P&&l===a)&&(d<y?e.bl_tree[l*2]+=d:l!==0?(l!==i&&e.bl_tree[l*2]++,e.bl_tree[Tl*2]++):d<=10?e.bl_tree[$l*2]++:e.bl_tree[Al*2]++,d=0,i=l,a===0?(P=138,y=3):l===a?(P=6,y=3):(P=7,y=4))},ss=(e,r,t)=>{let n,i=-1,l,a=r[1],d=0,P=7,y=4;for(a===0&&(P=138,y=3),n=0;n<=t;n++)if(l=a,a=r[(n+1)*2+1],!(++d<P&&l===a)){if(d<y)do Br(e,l,e.bl_tree);while(--d!==0);else l!==0?(l!==i&&(Br(e,l,e.bl_tree),d--),Br(e,Tl,e.bl_tree),Gt(e,d-3,2)):d<=10?(Br(e,$l,e.bl_tree),Gt(e,d-3,3)):(Br(e,Al,e.bl_tree),Gt(e,d-11,7));d=0,i=l,a===0?(P=138,y=3):l===a?(P=6,y=3):(P=7,y=4)}},cu=e=>{let r;for(os(e,e.dyn_ltree,e.l_desc.max_code),os(e,e.dyn_dtree,e.d_desc.max_code),vo(e,e.bl_desc),r=Lo-1;r>=3&&e.bl_tree[Cl[r]*2+1]===0;r--);return e.opt_len+=3*(r+1)+5+5+4,r},uu=(e,r,t,n)=>{let i;for(Gt(e,r-257,5),Gt(e,t-1,5),Gt(e,n-4,4),i=0;i<n;i++)Gt(e,e.bl_tree[Cl[i]*2+1],3);ss(e,e.dyn_ltree,r-1),ss(e,e.dyn_dtree,t-1)},du=e=>{let r=4093624447,t;for(t=0;t<=31;t++,r>>>=1)if(r&1&&e.dyn_ltree[t*2]!==0)return rs;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return ns;for(t=32;t<ri;t++)if(e.dyn_ltree[t*2]!==0)return ns;return rs};let ls=!1;const hu=e=>{ls||(fu(),ls=!0),e.l_desc=new Gi(e.dyn_ltree,Sl),e.d_desc=new Gi(e.dyn_dtree,Dl),e.bl_desc=new Gi(e.bl_tree,Rl),e.bi_buf=0,e.bi_valid=0,Ll(e)},Ml=(e,r,t,n)=>{Gt(e,(eu<<1)+(n?1:0),3),Ul(e),Ja(e,t),Ja(e,~t),t&&e.pending_buf.set(e.window.subarray(r,r+t),e.pending),e.pending+=t},pu=e=>{Gt(e,xl<<1,3),Br(e,Uo,hn),su(e)},vu=(e,r,t,n)=>{let i,l,a=0;e.level>0?(e.strm.data_type===Qc&&(e.strm.data_type=du(e)),vo(e,e.l_desc),vo(e,e.d_desc),a=cu(e),i=e.opt_len+3+7>>>3,l=e.static_len+3+7>>>3,l<=i&&(i=l)):i=l=t+5,t+4<=i&&r!==-1?Ml(e,r,t,n):e.strategy===Kc||l===i?(Gt(e,(xl<<1)+(n?1:0),3),is(e,hn,Ba)):(Gt(e,(tu<<1)+(n?1:0),3),uu(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),is(e,e.dyn_ltree,e.dyn_dtree)),Ll(e),n&&Ul(e)},gu=(e,r,t)=>(e.pending_buf[e.sym_buf+e.sym_next++]=r,e.pending_buf[e.sym_buf+e.sym_next++]=r>>8,e.pending_buf[e.sym_buf+e.sym_next++]=t,r===0?e.dyn_ltree[t*2]++:(e.matches++,r--,e.dyn_ltree[(qa[t]+ri+1)*2]++,e.dyn_dtree[Il(r)*2]++),e.sym_next===e.sym_end);var _u=hu,yu=Ml,mu=vu,bu=gu,wu=pu,Pu={_tr_init:_u,_tr_stored_block:yu,_tr_flush_block:mu,_tr_tally:bu,_tr_align:wu};const xu=(e,r,t,n)=>{let i=e&65535|0,l=e>>>16&65535|0,a=0;for(;t!==0;){a=t>2e3?2e3:t,t-=a;do i=i+r[n++]|0,l=l+i|0;while(--a);i%=65521,l%=65521}return i|l<<16|0};var Ya=xu;const Eu=()=>{let e,r=[];for(var t=0;t<256;t++){e=t;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;r[t]=e}return r},Tu=new Uint32Array(Eu()),$u=(e,r,t,n)=>{const i=Tu,l=n+t;e^=-1;for(let a=n;a<l;a++)e=e>>>8^i[(e^r[a])&255];return e^-1};var mt=$u,va={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},ni={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Au,_tr_stored_block:go,_tr_flush_block:Cu,_tr_tally:Fn,_tr_align:Su}=Pu,{Z_NO_FLUSH:Nn,Z_PARTIAL_FLUSH:Du,Z_FULL_FLUSH:Ru,Z_FINISH:ur,Z_BLOCK:fs,Z_OK:Ct,Z_STREAM_END:cs,Z_STREAM_ERROR:jr,Z_DATA_ERROR:Iu,Z_BUF_ERROR:qi,Z_DEFAULT_COMPRESSION:Ou,Z_FILTERED:ku,Z_HUFFMAN_ONLY:ui,Z_RLE:Lu,Z_FIXED:Uu,Z_DEFAULT_STRATEGY:Mu,Z_UNKNOWN:Fu,Z_DEFLATED:Di}=ni,Nu=9,Wu=15,Bu=8,ju=29,Hu=256,_o=Hu+1+ju,zu=30,Vu=19,Gu=2*_o+1,Zu=15,Oe=3,Mn=258,Hr=Mn+Oe+1,qu=32,Aa=42,Fo=57,yo=69,mo=73,bo=91,wo=103,ha=113,Ua=666,Nt=1,Ia=2,ga=3,Oa=4,Ju=3,pa=(e,r)=>(e.msg=va[r],r),us=e=>e*2-(e>4?9:0),Un=e=>{let r=e.length;for(;--r>=0;)e[r]=0},Yu=e=>{let r,t,n,i=e.w_size;r=e.hash_size,n=r;do t=e.head[--n],e.head[n]=t>=i?t-i:0;while(--r);r=i,n=r;do t=e.prev[--n],e.prev[n]=t>=i?t-i:0;while(--r)};let Xu=(e,r,t)=>(r<<e.hash_shift^t)&e.hash_mask,Wn=Xu;const nr=e=>{const r=e.state;let t=r.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.output.set(r.pending_buf.subarray(r.pending_out,r.pending_out+t),e.next_out),e.next_out+=t,r.pending_out+=t,e.total_out+=t,e.avail_out-=t,r.pending-=t,r.pending===0&&(r.pending_out=0))},ir=(e,r)=>{Cu(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,r),e.block_start=e.strstart,nr(e.strm)},We=(e,r)=>{e.pending_buf[e.pending++]=r},La=(e,r)=>{e.pending_buf[e.pending++]=r>>>8&255,e.pending_buf[e.pending++]=r&255},Po=(e,r,t,n)=>{let i=e.avail_in;return i>n&&(i=n),i===0?0:(e.avail_in-=i,r.set(e.input.subarray(e.next_in,e.next_in+i),t),e.state.wrap===1?e.adler=Ya(e.adler,r,i,t):e.state.wrap===2&&(e.adler=mt(e.adler,r,i,t)),e.next_in+=i,e.total_in+=i,i)},Fl=(e,r)=>{let t=e.max_chain_length,n=e.strstart,i,l,a=e.prev_length,d=e.nice_match;const P=e.strstart>e.w_size-Hr?e.strstart-(e.w_size-Hr):0,y=e.window,w=e.w_mask,W=e.prev,F=e.strstart+Mn;let k=y[n+a-1],j=y[n+a];e.prev_length>=e.good_match&&(t>>=2),d>e.lookahead&&(d=e.lookahead);do if(i=r,!(y[i+a]!==j||y[i+a-1]!==k||y[i]!==y[n]||y[++i]!==y[n+1])){n+=2,i++;do;while(y[++n]===y[++i]&&y[++n]===y[++i]&&y[++n]===y[++i]&&y[++n]===y[++i]&&y[++n]===y[++i]&&y[++n]===y[++i]&&y[++n]===y[++i]&&y[++n]===y[++i]&&n<F);if(l=Mn-(F-n),n=F-Mn,l>a){if(e.match_start=r,a=l,l>=d)break;k=y[n+a-1],j=y[n+a]}}while((r=W[r&w])>P&&--t!==0);return a<=e.lookahead?a:e.lookahead},Ca=e=>{const r=e.w_size;let t,n,i;do{if(n=e.window_size-e.lookahead-e.strstart,e.strstart>=r+(r-Hr)&&(e.window.set(e.window.subarray(r,r+r-n),0),e.match_start-=r,e.strstart-=r,e.block_start-=r,e.insert>e.strstart&&(e.insert=e.strstart),Yu(e),n+=r),e.strm.avail_in===0)break;if(t=Po(e.strm,e.window,e.strstart+e.lookahead,n),e.lookahead+=t,e.lookahead+e.insert>=Oe)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=Wn(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=Wn(e,e.ins_h,e.window[i+Oe-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<Oe)););}while(e.lookahead<Hr&&e.strm.avail_in!==0)},Nl=(e,r)=>{let t=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n,i,l,a=0,d=e.strm.avail_in;do{if(n=65535,l=e.bi_valid+42>>3,e.strm.avail_out<l||(l=e.strm.avail_out-l,i=e.strstart-e.block_start,n>i+e.strm.avail_in&&(n=i+e.strm.avail_in),n>l&&(n=l),n<t&&(n===0&&r!==ur||r===Nn||n!==i+e.strm.avail_in)))break;a=r===ur&&n===i+e.strm.avail_in?1:0,go(e,0,0,a),e.pending_buf[e.pending-4]=n,e.pending_buf[e.pending-3]=n>>8,e.pending_buf[e.pending-2]=~n,e.pending_buf[e.pending-1]=~n>>8,nr(e.strm),i&&(i>n&&(i=n),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,n-=i),n&&(Po(e.strm,e.strm.output,e.strm.next_out,n),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n)}while(a===0);return d-=e.strm.avail_in,d&&(d>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=d&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-d,e.strm.next_in),e.strstart),e.strstart+=d,e.insert+=d>e.w_size-e.insert?e.w_size-e.insert:d),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),a?Oa:r!==Nn&&r!==ur&&e.strm.avail_in===0&&e.strstart===e.block_start?Ia:(l=e.window_size-e.strstart,e.strm.avail_in>l&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,l+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),l>e.strm.avail_in&&(l=e.strm.avail_in),l&&(Po(e.strm,e.window,e.strstart,l),e.strstart+=l,e.insert+=l>e.w_size-e.insert?e.w_size-e.insert:l),e.high_water<e.strstart&&(e.high_water=e.strstart),l=e.bi_valid+42>>3,l=e.pending_buf_size-l>65535?65535:e.pending_buf_size-l,t=l>e.w_size?e.w_size:l,i=e.strstart-e.block_start,(i>=t||(i||r===ur)&&r!==Nn&&e.strm.avail_in===0&&i<=l)&&(n=i>l?l:i,a=r===ur&&e.strm.avail_in===0&&n===i?1:0,go(e,e.block_start,n,a),e.block_start+=n,nr(e.strm)),a?ga:Nt)},Ji=(e,r)=>{let t,n;for(;;){if(e.lookahead<Hr){if(Ca(e),e.lookahead<Hr&&r===Nn)return Nt;if(e.lookahead===0)break}if(t=0,e.lookahead>=Oe&&(e.ins_h=Wn(e,e.ins_h,e.window[e.strstart+Oe-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),t!==0&&e.strstart-t<=e.w_size-Hr&&(e.match_length=Fl(e,t)),e.match_length>=Oe)if(n=Fn(e,e.strstart-e.match_start,e.match_length-Oe),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Oe){e.match_length--;do e.strstart++,e.ins_h=Wn(e,e.ins_h,e.window[e.strstart+Oe-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Wn(e,e.ins_h,e.window[e.strstart+1]);else n=Fn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(ir(e,!1),e.strm.avail_out===0))return Nt}return e.insert=e.strstart<Oe-1?e.strstart:Oe-1,r===ur?(ir(e,!0),e.strm.avail_out===0?ga:Oa):e.sym_next&&(ir(e,!1),e.strm.avail_out===0)?Nt:Ia},ma=(e,r)=>{let t,n,i;for(;;){if(e.lookahead<Hr){if(Ca(e),e.lookahead<Hr&&r===Nn)return Nt;if(e.lookahead===0)break}if(t=0,e.lookahead>=Oe&&(e.ins_h=Wn(e,e.ins_h,e.window[e.strstart+Oe-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=Oe-1,t!==0&&e.prev_length<e.max_lazy_match&&e.strstart-t<=e.w_size-Hr&&(e.match_length=Fl(e,t),e.match_length<=5&&(e.strategy===ku||e.match_length===Oe&&e.strstart-e.match_start>4096)&&(e.match_length=Oe-1)),e.prev_length>=Oe&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-Oe,n=Fn(e,e.strstart-1-e.prev_match,e.prev_length-Oe),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=Wn(e,e.ins_h,e.window[e.strstart+Oe-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=Oe-1,e.strstart++,n&&(ir(e,!1),e.strm.avail_out===0))return Nt}else if(e.match_available){if(n=Fn(e,0,e.window[e.strstart-1]),n&&ir(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Nt}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=Fn(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Oe-1?e.strstart:Oe-1,r===ur?(ir(e,!0),e.strm.avail_out===0?ga:Oa):e.sym_next&&(ir(e,!1),e.strm.avail_out===0)?Nt:Ia},Ku=(e,r)=>{let t,n,i,l;const a=e.window;for(;;){if(e.lookahead<=Mn){if(Ca(e),e.lookahead<=Mn&&r===Nn)return Nt;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=Oe&&e.strstart>0&&(i=e.strstart-1,n=a[i],n===a[++i]&&n===a[++i]&&n===a[++i])){l=e.strstart+Mn;do;while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<l);e.match_length=Mn-(l-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Oe?(t=Fn(e,1,e.match_length-Oe),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(t=Fn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),t&&(ir(e,!1),e.strm.avail_out===0))return Nt}return e.insert=0,r===ur?(ir(e,!0),e.strm.avail_out===0?ga:Oa):e.sym_next&&(ir(e,!1),e.strm.avail_out===0)?Nt:Ia},Qu=(e,r)=>{let t;for(;;){if(e.lookahead===0&&(Ca(e),e.lookahead===0)){if(r===Nn)return Nt;break}if(e.match_length=0,t=Fn(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,t&&(ir(e,!1),e.strm.avail_out===0))return Nt}return e.insert=0,r===ur?(ir(e,!0),e.strm.avail_out===0?ga:Oa):e.sym_next&&(ir(e,!1),e.strm.avail_out===0)?Nt:Ia};function Wr(e,r,t,n,i){this.good_length=e,this.max_lazy=r,this.nice_length=t,this.max_chain=n,this.func=i}const Ma=[new Wr(0,0,0,0,Nl),new Wr(4,4,8,4,Ji),new Wr(4,5,16,8,Ji),new Wr(4,6,32,32,Ji),new Wr(4,4,16,16,ma),new Wr(8,16,32,32,ma),new Wr(8,16,128,128,ma),new Wr(8,32,128,256,ma),new Wr(32,128,258,1024,ma),new Wr(32,258,258,4096,ma)],ed=e=>{e.window_size=2*e.w_size,Un(e.head),e.max_lazy_match=Ma[e.level].max_lazy,e.good_match=Ma[e.level].good_length,e.nice_match=Ma[e.level].nice_length,e.max_chain_length=Ma[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=Oe-1,e.match_available=0,e.ins_h=0};function td(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Di,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Gu*2),this.dyn_dtree=new Uint16Array((2*zu+1)*2),this.bl_tree=new Uint16Array((2*Vu+1)*2),Un(this.dyn_ltree),Un(this.dyn_dtree),Un(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Zu+1),this.heap=new Uint16Array(2*_o+1),Un(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*_o+1),Un(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const ai=e=>{if(!e)return 1;const r=e.state;return!r||r.strm!==e||r.status!==Aa&&r.status!==Fo&&r.status!==yo&&r.status!==mo&&r.status!==bo&&r.status!==wo&&r.status!==ha&&r.status!==Ua?1:0},Wl=e=>{if(ai(e))return pa(e,jr);e.total_in=e.total_out=0,e.data_type=Fu;const r=e.state;return r.pending=0,r.pending_out=0,r.wrap<0&&(r.wrap=-r.wrap),r.status=r.wrap===2?Fo:r.wrap?Aa:ha,e.adler=r.wrap===2?0:1,r.last_flush=-2,Au(r),Ct},Bl=e=>{const r=Wl(e);return r===Ct&&ed(e.state),r},rd=(e,r)=>ai(e)||e.state.wrap!==2?jr:(e.state.gzhead=r,Ct),jl=(e,r,t,n,i,l)=>{if(!e)return jr;let a=1;if(r===Ou&&(r=6),n<0?(a=0,n=-n):n>15&&(a=2,n-=16),i<1||i>Nu||t!==Di||n<8||n>15||r<0||r>9||l<0||l>Uu||n===8&&a!==1)return pa(e,jr);n===8&&(n=9);const d=new td;return e.state=d,d.strm=e,d.status=Aa,d.wrap=a,d.gzhead=null,d.w_bits=n,d.w_size=1<<d.w_bits,d.w_mask=d.w_size-1,d.hash_bits=i+7,d.hash_size=1<<d.hash_bits,d.hash_mask=d.hash_size-1,d.hash_shift=~~((d.hash_bits+Oe-1)/Oe),d.window=new Uint8Array(d.w_size*2),d.head=new Uint16Array(d.hash_size),d.prev=new Uint16Array(d.w_size),d.lit_bufsize=1<<i+6,d.pending_buf_size=d.lit_bufsize*4,d.pending_buf=new Uint8Array(d.pending_buf_size),d.sym_buf=d.lit_bufsize,d.sym_end=(d.lit_bufsize-1)*3,d.level=r,d.strategy=l,d.method=t,Bl(e)},nd=(e,r)=>jl(e,r,Di,Wu,Bu,Mu),ad=(e,r)=>{if(ai(e)||r>fs||r<0)return e?pa(e,jr):jr;const t=e.state;if(!e.output||e.avail_in!==0&&!e.input||t.status===Ua&&r!==ur)return pa(e,e.avail_out===0?qi:jr);const n=t.last_flush;if(t.last_flush=r,t.pending!==0){if(nr(e),e.avail_out===0)return t.last_flush=-1,Ct}else if(e.avail_in===0&&us(r)<=us(n)&&r!==ur)return pa(e,qi);if(t.status===Ua&&e.avail_in!==0)return pa(e,qi);if(t.status===Aa&&t.wrap===0&&(t.status=ha),t.status===Aa){let i=Di+(t.w_bits-8<<4)<<8,l=-1;if(t.strategy>=ui||t.level<2?l=0:t.level<6?l=1:t.level===6?l=2:l=3,i|=l<<6,t.strstart!==0&&(i|=qu),i+=31-i%31,La(t,i),t.strstart!==0&&(La(t,e.adler>>>16),La(t,e.adler&65535)),e.adler=1,t.status=ha,nr(e),t.pending!==0)return t.last_flush=-1,Ct}if(t.status===Fo){if(e.adler=0,We(t,31),We(t,139),We(t,8),t.gzhead)We(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),We(t,t.gzhead.time&255),We(t,t.gzhead.time>>8&255),We(t,t.gzhead.time>>16&255),We(t,t.gzhead.time>>24&255),We(t,t.level===9?2:t.strategy>=ui||t.level<2?4:0),We(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(We(t,t.gzhead.extra.length&255),We(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(e.adler=mt(e.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=yo;else if(We(t,0),We(t,0),We(t,0),We(t,0),We(t,0),We(t,t.level===9?2:t.strategy>=ui||t.level<2?4:0),We(t,Ju),t.status=ha,nr(e),t.pending!==0)return t.last_flush=-1,Ct}if(t.status===yo){if(t.gzhead.extra){let i=t.pending,l=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+l>t.pending_buf_size;){let d=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+d),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>i&&(e.adler=mt(e.adler,t.pending_buf,t.pending-i,i)),t.gzindex+=d,nr(e),t.pending!==0)return t.last_flush=-1,Ct;i=0,l-=d}let a=new Uint8Array(t.gzhead.extra);t.pending_buf.set(a.subarray(t.gzindex,t.gzindex+l),t.pending),t.pending+=l,t.gzhead.hcrc&&t.pending>i&&(e.adler=mt(e.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=mo}if(t.status===mo){if(t.gzhead.name){let i=t.pending,l;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(e.adler=mt(e.adler,t.pending_buf,t.pending-i,i)),nr(e),t.pending!==0)return t.last_flush=-1,Ct;i=0}t.gzindex<t.gzhead.name.length?l=t.gzhead.name.charCodeAt(t.gzindex++)&255:l=0,We(t,l)}while(l!==0);t.gzhead.hcrc&&t.pending>i&&(e.adler=mt(e.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=bo}if(t.status===bo){if(t.gzhead.comment){let i=t.pending,l;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(e.adler=mt(e.adler,t.pending_buf,t.pending-i,i)),nr(e),t.pending!==0)return t.last_flush=-1,Ct;i=0}t.gzindex<t.gzhead.comment.length?l=t.gzhead.comment.charCodeAt(t.gzindex++)&255:l=0,We(t,l)}while(l!==0);t.gzhead.hcrc&&t.pending>i&&(e.adler=mt(e.adler,t.pending_buf,t.pending-i,i))}t.status=wo}if(t.status===wo){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(nr(e),t.pending!==0))return t.last_flush=-1,Ct;We(t,e.adler&255),We(t,e.adler>>8&255),e.adler=0}if(t.status=ha,nr(e),t.pending!==0)return t.last_flush=-1,Ct}if(e.avail_in!==0||t.lookahead!==0||r!==Nn&&t.status!==Ua){let i=t.level===0?Nl(t,r):t.strategy===ui?Qu(t,r):t.strategy===Lu?Ku(t,r):Ma[t.level].func(t,r);if((i===ga||i===Oa)&&(t.status=Ua),i===Nt||i===ga)return e.avail_out===0&&(t.last_flush=-1),Ct;if(i===Ia&&(r===Du?Su(t):r!==fs&&(go(t,0,0,!1),r===Ru&&(Un(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),nr(e),e.avail_out===0))return t.last_flush=-1,Ct}return r!==ur?Ct:t.wrap<=0?cs:(t.wrap===2?(We(t,e.adler&255),We(t,e.adler>>8&255),We(t,e.adler>>16&255),We(t,e.adler>>24&255),We(t,e.total_in&255),We(t,e.total_in>>8&255),We(t,e.total_in>>16&255),We(t,e.total_in>>24&255)):(La(t,e.adler>>>16),La(t,e.adler&65535)),nr(e),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?Ct:cs)},id=e=>{if(ai(e))return jr;const r=e.state.status;return e.state=null,r===ha?pa(e,Iu):Ct},od=(e,r)=>{let t=r.length;if(ai(e))return jr;const n=e.state,i=n.wrap;if(i===2||i===1&&n.status!==Aa||n.lookahead)return jr;if(i===1&&(e.adler=Ya(e.adler,r,t,0)),n.wrap=0,t>=n.w_size){i===0&&(Un(n.head),n.strstart=0,n.block_start=0,n.insert=0);let P=new Uint8Array(n.w_size);P.set(r.subarray(t-n.w_size,t),0),r=P,t=n.w_size}const l=e.avail_in,a=e.next_in,d=e.input;for(e.avail_in=t,e.next_in=0,e.input=r,Ca(n);n.lookahead>=Oe;){let P=n.strstart,y=n.lookahead-(Oe-1);do n.ins_h=Wn(n,n.ins_h,n.window[P+Oe-1]),n.prev[P&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=P,P++;while(--y);n.strstart=P,n.lookahead=Oe-1,Ca(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=Oe-1,n.match_available=0,e.next_in=a,e.input=d,e.avail_in=l,n.wrap=i,Ct};var sd=nd,ld=jl,fd=Bl,cd=Wl,ud=rd,dd=ad,hd=id,pd=od,vd="pako deflate (from Nodeca project)",ja={deflateInit:sd,deflateInit2:ld,deflateReset:fd,deflateResetKeep:cd,deflateSetHeader:ud,deflate:dd,deflateEnd:hd,deflateSetDictionary:pd,deflateInfo:vd};const gd=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var _d=function(e){const r=Array.prototype.slice.call(arguments,1);for(;r.length;){const t=r.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(const n in t)gd(t,n)&&(e[n]=t[n])}}return e},yd=e=>{let r=0;for(let n=0,i=e.length;n<i;n++)r+=e[n].length;const t=new Uint8Array(r);for(let n=0,i=0,l=e.length;n<l;n++){let a=e[n];t.set(a,i),i+=a.length}return t},Ri={assign:_d,flattenChunks:yd};let Hl=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Hl=!1}const Xa=new Uint8Array(256);for(let e=0;e<256;e++)Xa[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Xa[254]=Xa[254]=1;var md=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let r,t,n,i,l,a=e.length,d=0;for(i=0;i<a;i++)t=e.charCodeAt(i),(t&64512)===55296&&i+1<a&&(n=e.charCodeAt(i+1),(n&64512)===56320&&(t=65536+(t-55296<<10)+(n-56320),i++)),d+=t<128?1:t<2048?2:t<65536?3:4;for(r=new Uint8Array(d),l=0,i=0;l<d;i++)t=e.charCodeAt(i),(t&64512)===55296&&i+1<a&&(n=e.charCodeAt(i+1),(n&64512)===56320&&(t=65536+(t-55296<<10)+(n-56320),i++)),t<128?r[l++]=t:t<2048?(r[l++]=192|t>>>6,r[l++]=128|t&63):t<65536?(r[l++]=224|t>>>12,r[l++]=128|t>>>6&63,r[l++]=128|t&63):(r[l++]=240|t>>>18,r[l++]=128|t>>>12&63,r[l++]=128|t>>>6&63,r[l++]=128|t&63);return r};const bd=(e,r)=>{if(r<65534&&e.subarray&&Hl)return String.fromCharCode.apply(null,e.length===r?e:e.subarray(0,r));let t="";for(let n=0;n<r;n++)t+=String.fromCharCode(e[n]);return t};var wd=(e,r)=>{const t=r||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,r));let n,i;const l=new Array(t*2);for(i=0,n=0;n<t;){let a=e[n++];if(a<128){l[i++]=a;continue}let d=Xa[a];if(d>4){l[i++]=65533,n+=d-1;continue}for(a&=d===2?31:d===3?15:7;d>1&&n<t;)a=a<<6|e[n++]&63,d--;if(d>1){l[i++]=65533;continue}a<65536?l[i++]=a:(a-=65536,l[i++]=55296|a>>10&1023,l[i++]=56320|a&1023)}return bd(l,i)},Pd=(e,r)=>{r=r||e.length,r>e.length&&(r=e.length);let t=r-1;for(;t>=0&&(e[t]&192)===128;)t--;return t<0||t===0?r:t+Xa[e[t]]>r?t:r},Ka={string2buf:md,buf2string:wd,utf8border:Pd};function xd(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zl=xd;const Vl=Object.prototype.toString,{Z_NO_FLUSH:Ed,Z_SYNC_FLUSH:Td,Z_FULL_FLUSH:$d,Z_FINISH:Ad,Z_OK:Ei,Z_STREAM_END:Cd,Z_DEFAULT_COMPRESSION:Sd,Z_DEFAULT_STRATEGY:Dd,Z_DEFLATED:Rd}=ni;function ii(e){this.options=Ri.assign({level:Sd,method:Rd,chunkSize:16384,windowBits:15,memLevel:8,strategy:Dd},e||{});let r=this.options;r.raw&&r.windowBits>0?r.windowBits=-r.windowBits:r.gzip&&r.windowBits>0&&r.windowBits<16&&(r.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zl,this.strm.avail_out=0;let t=ja.deflateInit2(this.strm,r.level,r.method,r.windowBits,r.memLevel,r.strategy);if(t!==Ei)throw new Error(va[t]);if(r.header&&ja.deflateSetHeader(this.strm,r.header),r.dictionary){let n;if(typeof r.dictionary=="string"?n=Ka.string2buf(r.dictionary):Vl.call(r.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(r.dictionary):n=r.dictionary,t=ja.deflateSetDictionary(this.strm,n),t!==Ei)throw new Error(va[t]);this._dict_set=!0}}ii.prototype.push=function(e,r){const t=this.strm,n=this.options.chunkSize;let i,l;if(this.ended)return!1;for(r===~~r?l=r:l=r===!0?Ad:Ed,typeof e=="string"?t.input=Ka.string2buf(e):Vl.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),(l===Td||l===$d)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(i=ja.deflate(t,l),i===Cd)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),i=ja.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===Ei;if(t.avail_out===0){this.onData(t.output);continue}if(l>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};ii.prototype.onData=function(e){this.chunks.push(e)};ii.prototype.onEnd=function(e){e===Ei&&(this.result=Ri.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function No(e,r){const t=new ii(r);if(t.push(e,!0),t.err)throw t.msg||va[t.err];return t.result}function Id(e,r){return r=r||{},r.raw=!0,No(e,r)}function Od(e,r){return r=r||{},r.gzip=!0,No(e,r)}var kd=ii,Ld=No,Ud=Id,Md=Od,Fd={Deflate:kd,deflate:Ld,deflateRaw:Ud,gzip:Md};const di=16209,Nd=16191;var Wd=function(r,t){let n,i,l,a,d,P,y,w,W,F,k,j,Y,K,ee,X,H,J,ce,he,re,le,ie,te;const oe=r.state;n=r.next_in,ie=r.input,i=n+(r.avail_in-5),l=r.next_out,te=r.output,a=l-(t-r.avail_out),d=l+(r.avail_out-257),P=oe.dmax,y=oe.wsize,w=oe.whave,W=oe.wnext,F=oe.window,k=oe.hold,j=oe.bits,Y=oe.lencode,K=oe.distcode,ee=(1<<oe.lenbits)-1,X=(1<<oe.distbits)-1;e:do{j<15&&(k+=ie[n++]<<j,j+=8,k+=ie[n++]<<j,j+=8),H=Y[k&ee];t:for(;;){if(J=H>>>24,k>>>=J,j-=J,J=H>>>16&255,J===0)te[l++]=H&65535;else if(J&16){ce=H&65535,J&=15,J&&(j<J&&(k+=ie[n++]<<j,j+=8),ce+=k&(1<<J)-1,k>>>=J,j-=J),j<15&&(k+=ie[n++]<<j,j+=8,k+=ie[n++]<<j,j+=8),H=K[k&X];r:for(;;){if(J=H>>>24,k>>>=J,j-=J,J=H>>>16&255,J&16){if(he=H&65535,J&=15,j<J&&(k+=ie[n++]<<j,j+=8,j<J&&(k+=ie[n++]<<j,j+=8)),he+=k&(1<<J)-1,he>P){r.msg="invalid distance too far back",oe.mode=di;break e}if(k>>>=J,j-=J,J=l-a,he>J){if(J=he-J,J>w&&oe.sane){r.msg="invalid distance too far back",oe.mode=di;break e}if(re=0,le=F,W===0){if(re+=y-J,J<ce){ce-=J;do te[l++]=F[re++];while(--J);re=l-he,le=te}}else if(W<J){if(re+=y+W-J,J-=W,J<ce){ce-=J;do te[l++]=F[re++];while(--J);if(re=0,W<ce){J=W,ce-=J;do te[l++]=F[re++];while(--J);re=l-he,le=te}}}else if(re+=W-J,J<ce){ce-=J;do te[l++]=F[re++];while(--J);re=l-he,le=te}for(;ce>2;)te[l++]=le[re++],te[l++]=le[re++],te[l++]=le[re++],ce-=3;ce&&(te[l++]=le[re++],ce>1&&(te[l++]=le[re++]))}else{re=l-he;do te[l++]=te[re++],te[l++]=te[re++],te[l++]=te[re++],ce-=3;while(ce>2);ce&&(te[l++]=te[re++],ce>1&&(te[l++]=te[re++]))}}else if((J&64)===0){H=K[(H&65535)+(k&(1<<J)-1)];continue r}else{r.msg="invalid distance code",oe.mode=di;break e}break}}else if((J&64)===0){H=Y[(H&65535)+(k&(1<<J)-1)];continue t}else if(J&32){oe.mode=Nd;break e}else{r.msg="invalid literal/length code",oe.mode=di;break e}break}}while(n<i&&l<d);ce=j>>3,n-=ce,j-=ce<<3,k&=(1<<j)-1,r.next_in=n,r.next_out=l,r.avail_in=n<i?5+(i-n):5-(n-i),r.avail_out=l<d?257+(d-l):257-(l-d),oe.hold=k,oe.bits=j};const ba=15,ds=852,hs=592,ps=0,Yi=1,vs=2,Bd=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),jd=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Hd=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),zd=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Vd=(e,r,t,n,i,l,a,d)=>{const P=d.bits;let y=0,w=0,W=0,F=0,k=0,j=0,Y=0,K=0,ee=0,X=0,H,J,ce,he,re,le=null,ie;const te=new Uint16Array(ba+1),oe=new Uint16Array(ba+1);let be=null,Te,ve,ge;for(y=0;y<=ba;y++)te[y]=0;for(w=0;w<n;w++)te[r[t+w]]++;for(k=P,F=ba;F>=1&&te[F]===0;F--);if(k>F&&(k=F),F===0)return i[l++]=1<<24|64<<16|0,i[l++]=1<<24|64<<16|0,d.bits=1,0;for(W=1;W<F&&te[W]===0;W++);for(k<W&&(k=W),K=1,y=1;y<=ba;y++)if(K<<=1,K-=te[y],K<0)return-1;if(K>0&&(e===ps||F!==1))return-1;for(oe[1]=0,y=1;y<ba;y++)oe[y+1]=oe[y]+te[y];for(w=0;w<n;w++)r[t+w]!==0&&(a[oe[r[t+w]]++]=w);if(e===ps?(le=be=a,ie=20):e===Yi?(le=Bd,be=jd,ie=257):(le=Hd,be=zd,ie=0),X=0,w=0,y=W,re=l,j=k,Y=0,ce=-1,ee=1<<k,he=ee-1,e===Yi&&ee>ds||e===vs&&ee>hs)return 1;for(;;){Te=y-Y,a[w]+1<ie?(ve=0,ge=a[w]):a[w]>=ie?(ve=be[a[w]-ie],ge=le[a[w]-ie]):(ve=96,ge=0),H=1<<y-Y,J=1<<j,W=J;do J-=H,i[re+(X>>Y)+J]=Te<<24|ve<<16|ge|0;while(J!==0);for(H=1<<y-1;X&H;)H>>=1;if(H!==0?(X&=H-1,X+=H):X=0,w++,--te[y]===0){if(y===F)break;y=r[t+a[w]]}if(y>k&&(X&he)!==ce){for(Y===0&&(Y=k),re+=W,j=y-Y,K=1<<j;j+Y<F&&(K-=te[j+Y],!(K<=0));)j++,K<<=1;if(ee+=1<<j,e===Yi&&ee>ds||e===vs&&ee>hs)return 1;ce=X&he,i[ce]=k<<24|j<<16|re-l|0}}return X!==0&&(i[re+X]=y-Y<<24|64<<16|0),d.bits=k,0};var Ha=Vd;const Gd=0,Gl=1,Zl=2,{Z_FINISH:gs,Z_BLOCK:Zd,Z_TREES:hi,Z_OK:_a,Z_STREAM_END:qd,Z_NEED_DICT:Jd,Z_STREAM_ERROR:dr,Z_DATA_ERROR:ql,Z_MEM_ERROR:Jl,Z_BUF_ERROR:Yd,Z_DEFLATED:_s}=ni,Ii=16180,ys=16181,ms=16182,bs=16183,ws=16184,Ps=16185,xs=16186,Es=16187,Ts=16188,$s=16189,Ti=16190,dn=16191,Xi=16192,As=16193,Ki=16194,Cs=16195,Ss=16196,Ds=16197,Rs=16198,pi=16199,vi=16200,Is=16201,Os=16202,ks=16203,Ls=16204,Us=16205,Qi=16206,Ms=16207,Fs=16208,Xe=16209,Yl=16210,Xl=16211,Xd=852,Kd=592,Qd=15,e0=Qd,Ns=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function t0(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const ya=e=>{if(!e)return 1;const r=e.state;return!r||r.strm!==e||r.mode<Ii||r.mode>Xl?1:0},Kl=e=>{if(ya(e))return dr;const r=e.state;return e.total_in=e.total_out=r.total=0,e.msg="",r.wrap&&(e.adler=r.wrap&1),r.mode=Ii,r.last=0,r.havedict=0,r.flags=-1,r.dmax=32768,r.head=null,r.hold=0,r.bits=0,r.lencode=r.lendyn=new Int32Array(Xd),r.distcode=r.distdyn=new Int32Array(Kd),r.sane=1,r.back=-1,_a},Ql=e=>{if(ya(e))return dr;const r=e.state;return r.wsize=0,r.whave=0,r.wnext=0,Kl(e)},ef=(e,r)=>{let t;if(ya(e))return dr;const n=e.state;return r<0?(t=0,r=-r):(t=(r>>4)+5,r<48&&(r&=15)),r&&(r<8||r>15)?dr:(n.window!==null&&n.wbits!==r&&(n.window=null),n.wrap=t,n.wbits=r,Ql(e))},tf=(e,r)=>{if(!e)return dr;const t=new t0;e.state=t,t.strm=e,t.window=null,t.mode=Ii;const n=ef(e,r);return n!==_a&&(e.state=null),n},r0=e=>tf(e,e0);let Ws=!0,eo,to;const n0=e=>{if(Ws){eo=new Int32Array(512),to=new Int32Array(32);let r=0;for(;r<144;)e.lens[r++]=8;for(;r<256;)e.lens[r++]=9;for(;r<280;)e.lens[r++]=7;for(;r<288;)e.lens[r++]=8;for(Ha(Gl,e.lens,0,288,eo,0,e.work,{bits:9}),r=0;r<32;)e.lens[r++]=5;Ha(Zl,e.lens,0,32,to,0,e.work,{bits:5}),Ws=!1}e.lencode=eo,e.lenbits=9,e.distcode=to,e.distbits=5},rf=(e,r,t,n)=>{let i;const l=e.state;return l.window===null&&(l.wsize=1<<l.wbits,l.wnext=0,l.whave=0,l.window=new Uint8Array(l.wsize)),n>=l.wsize?(l.window.set(r.subarray(t-l.wsize,t),0),l.wnext=0,l.whave=l.wsize):(i=l.wsize-l.wnext,i>n&&(i=n),l.window.set(r.subarray(t-n,t-n+i),l.wnext),n-=i,n?(l.window.set(r.subarray(t-n,t),0),l.wnext=n,l.whave=l.wsize):(l.wnext+=i,l.wnext===l.wsize&&(l.wnext=0),l.whave<l.wsize&&(l.whave+=i))),0},a0=(e,r)=>{let t,n,i,l,a,d,P,y,w,W,F,k,j,Y,K=0,ee,X,H,J,ce,he,re,le;const ie=new Uint8Array(4);let te,oe;const be=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ya(e)||!e.output||!e.input&&e.avail_in!==0)return dr;t=e.state,t.mode===dn&&(t.mode=Xi),a=e.next_out,i=e.output,P=e.avail_out,l=e.next_in,n=e.input,d=e.avail_in,y=t.hold,w=t.bits,W=d,F=P,le=_a;e:for(;;)switch(t.mode){case Ii:if(t.wrap===0){t.mode=Xi;break}for(;w<16;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(t.wrap&2&&y===35615){t.wbits===0&&(t.wbits=15),t.check=0,ie[0]=y&255,ie[1]=y>>>8&255,t.check=mt(t.check,ie,2,0),y=0,w=0,t.mode=ys;break}if(t.head&&(t.head.done=!1),!(t.wrap&1)||(((y&255)<<8)+(y>>8))%31){e.msg="incorrect header check",t.mode=Xe;break}if((y&15)!==_s){e.msg="unknown compression method",t.mode=Xe;break}if(y>>>=4,w-=4,re=(y&15)+8,t.wbits===0&&(t.wbits=re),re>15||re>t.wbits){e.msg="invalid window size",t.mode=Xe;break}t.dmax=1<<t.wbits,t.flags=0,e.adler=t.check=1,t.mode=y&512?$s:dn,y=0,w=0;break;case ys:for(;w<16;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(t.flags=y,(t.flags&255)!==_s){e.msg="unknown compression method",t.mode=Xe;break}if(t.flags&57344){e.msg="unknown header flags set",t.mode=Xe;break}t.head&&(t.head.text=y>>8&1),t.flags&512&&t.wrap&4&&(ie[0]=y&255,ie[1]=y>>>8&255,t.check=mt(t.check,ie,2,0)),y=0,w=0,t.mode=ms;case ms:for(;w<32;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}t.head&&(t.head.time=y),t.flags&512&&t.wrap&4&&(ie[0]=y&255,ie[1]=y>>>8&255,ie[2]=y>>>16&255,ie[3]=y>>>24&255,t.check=mt(t.check,ie,4,0)),y=0,w=0,t.mode=bs;case bs:for(;w<16;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}t.head&&(t.head.xflags=y&255,t.head.os=y>>8),t.flags&512&&t.wrap&4&&(ie[0]=y&255,ie[1]=y>>>8&255,t.check=mt(t.check,ie,2,0)),y=0,w=0,t.mode=ws;case ws:if(t.flags&1024){for(;w<16;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}t.length=y,t.head&&(t.head.extra_len=y),t.flags&512&&t.wrap&4&&(ie[0]=y&255,ie[1]=y>>>8&255,t.check=mt(t.check,ie,2,0)),y=0,w=0}else t.head&&(t.head.extra=null);t.mode=Ps;case Ps:if(t.flags&1024&&(k=t.length,k>d&&(k=d),k&&(t.head&&(re=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(n.subarray(l,l+k),re)),t.flags&512&&t.wrap&4&&(t.check=mt(t.check,n,k,l)),d-=k,l+=k,t.length-=k),t.length))break e;t.length=0,t.mode=xs;case xs:if(t.flags&2048){if(d===0)break e;k=0;do re=n[l+k++],t.head&&re&&t.length<65536&&(t.head.name+=String.fromCharCode(re));while(re&&k<d);if(t.flags&512&&t.wrap&4&&(t.check=mt(t.check,n,k,l)),d-=k,l+=k,re)break e}else t.head&&(t.head.name=null);t.length=0,t.mode=Es;case Es:if(t.flags&4096){if(d===0)break e;k=0;do re=n[l+k++],t.head&&re&&t.length<65536&&(t.head.comment+=String.fromCharCode(re));while(re&&k<d);if(t.flags&512&&t.wrap&4&&(t.check=mt(t.check,n,k,l)),d-=k,l+=k,re)break e}else t.head&&(t.head.comment=null);t.mode=Ts;case Ts:if(t.flags&512){for(;w<16;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(t.wrap&4&&y!==(t.check&65535)){e.msg="header crc mismatch",t.mode=Xe;break}y=0,w=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=dn;break;case $s:for(;w<32;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}e.adler=t.check=Ns(y),y=0,w=0,t.mode=Ti;case Ti:if(t.havedict===0)return e.next_out=a,e.avail_out=P,e.next_in=l,e.avail_in=d,t.hold=y,t.bits=w,Jd;e.adler=t.check=1,t.mode=dn;case dn:if(r===Zd||r===hi)break e;case Xi:if(t.last){y>>>=w&7,w-=w&7,t.mode=Qi;break}for(;w<3;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}switch(t.last=y&1,y>>>=1,w-=1,y&3){case 0:t.mode=As;break;case 1:if(n0(t),t.mode=pi,r===hi){y>>>=2,w-=2;break e}break;case 2:t.mode=Ss;break;case 3:e.msg="invalid block type",t.mode=Xe}y>>>=2,w-=2;break;case As:for(y>>>=w&7,w-=w&7;w<32;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if((y&65535)!==(y>>>16^65535)){e.msg="invalid stored block lengths",t.mode=Xe;break}if(t.length=y&65535,y=0,w=0,t.mode=Ki,r===hi)break e;case Ki:t.mode=Cs;case Cs:if(k=t.length,k){if(k>d&&(k=d),k>P&&(k=P),k===0)break e;i.set(n.subarray(l,l+k),a),d-=k,l+=k,P-=k,a+=k,t.length-=k;break}t.mode=dn;break;case Ss:for(;w<14;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(t.nlen=(y&31)+257,y>>>=5,w-=5,t.ndist=(y&31)+1,y>>>=5,w-=5,t.ncode=(y&15)+4,y>>>=4,w-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=Xe;break}t.have=0,t.mode=Ds;case Ds:for(;t.have<t.ncode;){for(;w<3;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}t.lens[be[t.have++]]=y&7,y>>>=3,w-=3}for(;t.have<19;)t.lens[be[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,te={bits:t.lenbits},le=Ha(Gd,t.lens,0,19,t.lencode,0,t.work,te),t.lenbits=te.bits,le){e.msg="invalid code lengths set",t.mode=Xe;break}t.have=0,t.mode=Rs;case Rs:for(;t.have<t.nlen+t.ndist;){for(;K=t.lencode[y&(1<<t.lenbits)-1],ee=K>>>24,X=K>>>16&255,H=K&65535,!(ee<=w);){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(H<16)y>>>=ee,w-=ee,t.lens[t.have++]=H;else{if(H===16){for(oe=ee+2;w<oe;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(y>>>=ee,w-=ee,t.have===0){e.msg="invalid bit length repeat",t.mode=Xe;break}re=t.lens[t.have-1],k=3+(y&3),y>>>=2,w-=2}else if(H===17){for(oe=ee+3;w<oe;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}y>>>=ee,w-=ee,re=0,k=3+(y&7),y>>>=3,w-=3}else{for(oe=ee+7;w<oe;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}y>>>=ee,w-=ee,re=0,k=11+(y&127),y>>>=7,w-=7}if(t.have+k>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=Xe;break}for(;k--;)t.lens[t.have++]=re}}if(t.mode===Xe)break;if(t.lens[256]===0){e.msg="invalid code -- missing end-of-block",t.mode=Xe;break}if(t.lenbits=9,te={bits:t.lenbits},le=Ha(Gl,t.lens,0,t.nlen,t.lencode,0,t.work,te),t.lenbits=te.bits,le){e.msg="invalid literal/lengths set",t.mode=Xe;break}if(t.distbits=6,t.distcode=t.distdyn,te={bits:t.distbits},le=Ha(Zl,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,te),t.distbits=te.bits,le){e.msg="invalid distances set",t.mode=Xe;break}if(t.mode=pi,r===hi)break e;case pi:t.mode=vi;case vi:if(d>=6&&P>=258){e.next_out=a,e.avail_out=P,e.next_in=l,e.avail_in=d,t.hold=y,t.bits=w,Wd(e,F),a=e.next_out,i=e.output,P=e.avail_out,l=e.next_in,n=e.input,d=e.avail_in,y=t.hold,w=t.bits,t.mode===dn&&(t.back=-1);break}for(t.back=0;K=t.lencode[y&(1<<t.lenbits)-1],ee=K>>>24,X=K>>>16&255,H=K&65535,!(ee<=w);){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(X&&(X&240)===0){for(J=ee,ce=X,he=H;K=t.lencode[he+((y&(1<<J+ce)-1)>>J)],ee=K>>>24,X=K>>>16&255,H=K&65535,!(J+ee<=w);){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}y>>>=J,w-=J,t.back+=J}if(y>>>=ee,w-=ee,t.back+=ee,t.length=H,X===0){t.mode=Us;break}if(X&32){t.back=-1,t.mode=dn;break}if(X&64){e.msg="invalid literal/length code",t.mode=Xe;break}t.extra=X&15,t.mode=Is;case Is:if(t.extra){for(oe=t.extra;w<oe;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}t.length+=y&(1<<t.extra)-1,y>>>=t.extra,w-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=Os;case Os:for(;K=t.distcode[y&(1<<t.distbits)-1],ee=K>>>24,X=K>>>16&255,H=K&65535,!(ee<=w);){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if((X&240)===0){for(J=ee,ce=X,he=H;K=t.distcode[he+((y&(1<<J+ce)-1)>>J)],ee=K>>>24,X=K>>>16&255,H=K&65535,!(J+ee<=w);){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}y>>>=J,w-=J,t.back+=J}if(y>>>=ee,w-=ee,t.back+=ee,X&64){e.msg="invalid distance code",t.mode=Xe;break}t.offset=H,t.extra=X&15,t.mode=ks;case ks:if(t.extra){for(oe=t.extra;w<oe;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}t.offset+=y&(1<<t.extra)-1,y>>>=t.extra,w-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=Xe;break}t.mode=Ls;case Ls:if(P===0)break e;if(k=F-P,t.offset>k){if(k=t.offset-k,k>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=Xe;break}k>t.wnext?(k-=t.wnext,j=t.wsize-k):j=t.wnext-k,k>t.length&&(k=t.length),Y=t.window}else Y=i,j=a-t.offset,k=t.length;k>P&&(k=P),P-=k,t.length-=k;do i[a++]=Y[j++];while(--k);t.length===0&&(t.mode=vi);break;case Us:if(P===0)break e;i[a++]=t.length,P--,t.mode=vi;break;case Qi:if(t.wrap){for(;w<32;){if(d===0)break e;d--,y|=n[l++]<<w,w+=8}if(F-=P,e.total_out+=F,t.total+=F,t.wrap&4&&F&&(e.adler=t.check=t.flags?mt(t.check,i,F,a-F):Ya(t.check,i,F,a-F)),F=P,t.wrap&4&&(t.flags?y:Ns(y))!==t.check){e.msg="incorrect data check",t.mode=Xe;break}y=0,w=0}t.mode=Ms;case Ms:if(t.wrap&&t.flags){for(;w<32;){if(d===0)break e;d--,y+=n[l++]<<w,w+=8}if(t.wrap&4&&y!==(t.total&4294967295)){e.msg="incorrect length check",t.mode=Xe;break}y=0,w=0}t.mode=Fs;case Fs:le=qd;break e;case Xe:le=ql;break e;case Yl:return Jl;case Xl:default:return dr}return e.next_out=a,e.avail_out=P,e.next_in=l,e.avail_in=d,t.hold=y,t.bits=w,(t.wsize||F!==e.avail_out&&t.mode<Xe&&(t.mode<Qi||r!==gs))&&rf(e,e.output,e.next_out,F-e.avail_out),W-=e.avail_in,F-=e.avail_out,e.total_in+=W,e.total_out+=F,t.total+=F,t.wrap&4&&F&&(e.adler=t.check=t.flags?mt(t.check,i,F,e.next_out-F):Ya(t.check,i,F,e.next_out-F)),e.data_type=t.bits+(t.last?64:0)+(t.mode===dn?128:0)+(t.mode===pi||t.mode===Ki?256:0),(W===0&&F===0||r===gs)&&le===_a&&(le=Yd),le},i0=e=>{if(ya(e))return dr;let r=e.state;return r.window&&(r.window=null),e.state=null,_a},o0=(e,r)=>{if(ya(e))return dr;const t=e.state;return(t.wrap&2)===0?dr:(t.head=r,r.done=!1,_a)},s0=(e,r)=>{const t=r.length;let n,i,l;return ya(e)||(n=e.state,n.wrap!==0&&n.mode!==Ti)?dr:n.mode===Ti&&(i=1,i=Ya(i,r,t,0),i!==n.check)?ql:(l=rf(e,r,t,t),l?(n.mode=Yl,Jl):(n.havedict=1,_a))};var l0=Ql,f0=ef,c0=Kl,u0=r0,d0=tf,h0=a0,p0=i0,v0=o0,g0=s0,_0="pako inflate (from Nodeca project)",pn={inflateReset:l0,inflateReset2:f0,inflateResetKeep:c0,inflateInit:u0,inflateInit2:d0,inflate:h0,inflateEnd:p0,inflateGetHeader:v0,inflateSetDictionary:g0,inflateInfo:_0};function y0(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var m0=y0;const nf=Object.prototype.toString,{Z_NO_FLUSH:b0,Z_FINISH:w0,Z_OK:Qa,Z_STREAM_END:ro,Z_NEED_DICT:no,Z_STREAM_ERROR:P0,Z_DATA_ERROR:Bs,Z_MEM_ERROR:x0}=ni;function oi(e){this.options=Ri.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const r=this.options;r.raw&&r.windowBits>=0&&r.windowBits<16&&(r.windowBits=-r.windowBits,r.windowBits===0&&(r.windowBits=-15)),r.windowBits>=0&&r.windowBits<16&&!(e&&e.windowBits)&&(r.windowBits+=32),r.windowBits>15&&r.windowBits<48&&(r.windowBits&15)===0&&(r.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zl,this.strm.avail_out=0;let t=pn.inflateInit2(this.strm,r.windowBits);if(t!==Qa)throw new Error(va[t]);if(this.header=new m0,pn.inflateGetHeader(this.strm,this.header),r.dictionary&&(typeof r.dictionary=="string"?r.dictionary=Ka.string2buf(r.dictionary):nf.call(r.dictionary)==="[object ArrayBuffer]"&&(r.dictionary=new Uint8Array(r.dictionary)),r.raw&&(t=pn.inflateSetDictionary(this.strm,r.dictionary),t!==Qa)))throw new Error(va[t])}oi.prototype.push=function(e,r){const t=this.strm,n=this.options.chunkSize,i=this.options.dictionary;let l,a,d;if(this.ended)return!1;for(r===~~r?a=r:a=r===!0?w0:b0,nf.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),l=pn.inflate(t,a),l===no&&i&&(l=pn.inflateSetDictionary(t,i),l===Qa?l=pn.inflate(t,a):l===Bs&&(l=no));t.avail_in>0&&l===ro&&t.state.wrap>0&&e[t.next_in]!==0;)pn.inflateReset(t),l=pn.inflate(t,a);switch(l){case P0:case Bs:case no:case x0:return this.onEnd(l),this.ended=!0,!1}if(d=t.avail_out,t.next_out&&(t.avail_out===0||l===ro))if(this.options.to==="string"){let P=Ka.utf8border(t.output,t.next_out),y=t.next_out-P,w=Ka.buf2string(t.output,P);t.next_out=y,t.avail_out=n-y,y&&t.output.set(t.output.subarray(P,P+y),0),this.onData(w)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(l===Qa&&d===0)){if(l===ro)return l=pn.inflateEnd(this.strm),this.onEnd(l),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};oi.prototype.onData=function(e){this.chunks.push(e)};oi.prototype.onEnd=function(e){e===Qa&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Ri.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function Wo(e,r){const t=new oi(r);if(t.push(e),t.err)throw t.msg||va[t.err];return t.result}function E0(e,r){return r=r||{},r.raw=!0,Wo(e,r)}var T0=oi,$0=Wo,A0=E0,C0=Wo,S0={Inflate:T0,inflate:$0,inflateRaw:A0,ungzip:C0};const{Deflate:D0,deflate:R0,deflateRaw:I0,gzip:O0}=Fd,{Inflate:k0,inflate:L0,inflateRaw:U0,ungzip:M0}=S0;var F0=D0,N0=R0,W0=I0,B0=O0,j0=k0,H0=L0,z0=U0,V0=M0,G0=ni,Z0={Deflate:F0,deflate:N0,deflateRaw:W0,gzip:B0,Inflate:j0,inflate:H0,inflateRaw:z0,ungzip:V0,constants:G0};function q0(e,r){const t=e.slice(r),n=Z0.inflateRaw(t),i=new Uint8Array(n.length+r);return i.set(e.slice(0,r),0),i.set(n,r),i}const J0={inflater:q0};function xo(e,r){return ar.parseDicom(e,{...J0,...r})}function Y0(e){const r=e.elements.x7fe00010.fragments,t=e.byteArray.length;for(const n of r){const{position:i,length:l}=n;l>t-i&&(console.log(`Truncated fragment, changing fragment length from ${n.length} to ${t-i}`),n.length=t-i)}return e}function X0(e){let r=xo(e,{untilTag:"x7fe00010"});r.elements.x7fe00010||console.warn("Pixel data not found!");let t;try{t=xo(e)}catch(n){console.error(n),console.log("pixel data dataset:",n.dataSet),t=n.dataSet}return r.elements.x7fe00010=t.elements.x7fe00010,r=Y0(r),r}async function af(e,r,t){const n=X0(e),{uri:i,imageId:l,fileTotalLength:a}=t;return n.fetchMore=async function(d){const P=Object.assign({uri:i,imageId:l,fetchedLength:e.length,lengthToFetch:a-e.length},d),{fetchedLength:y,lengthToFetch:w}=P,{arrayBuffer:W}=await r(i,l,{byteRange:`${y}-${y+w}`}),F=new Uint8Array(W),k=new Uint8Array(n.byteArray.length+F.length);return k.set(n.byteArray),k.set(F,n.byteArray.length),af(k,r,t)},n}function K0(e,r){if(!e)return;const{NumberOfFrames:t,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:i}=sf(e);if(n||t>1){const{shared:l,perFrame:a}=of(n,i,r);return{NumberOfFrames:t,PerFrameFunctionalInformation:a,SharedFunctionalInformation:l}}return{NumberOfFrames:t}}function of(e,r,t){const n={};(r?Object.values(r.items[0].dataSet.elements):[]).map(l=>n[l.tag]=l);const i={};return(e?Object.values(e.items[t-1].dataSet.elements):[]).map(l=>i[l.tag]=l),{shared:n,perFrame:i}}function sf(e){if(!e)return;const{elements:r,...t}=e,{x52009230:n,x52009229:i,...l}=r;return{NumberOfFrames:e.intString("x00280008"),PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:i,otherElements:l,otherAttributtes:t}}function Q0(e,r){if(!r)return;const{NumberOfFrames:t,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:i,otherElements:l}=sf(r);if(n||t>1){const{shared:a,perFrame:d}=of(n,i,e),P={elements:{...l,...a,...d}},y=Object.create(r);return Object.assign(y,P)}return r}let pt={};const eh=()=>{pt={}};function Bo(e){if(pt[e])return pt[e]}function th(e){const r=Bo(e);return lf(r)}function lf(e){if(!e)return!1;const r=e.intString("x00280008");return r&&r>1}function rh(e){const r=e.match(/[?&]frame=/);return r?r.index:-1}function nh(e){const r=rh(e),t=r===-1?e:e.slice(0,r),n=parseInt(e.slice(r+7),10)||1;let i;return pt[t]?i=pt[t].dataSet:i=void 0,{dataSet:i,frame:n}}function ah(e){const r=[],t=Bo(e);if(lf(t)){const n=t.intString("x00280008");for(let i=1;i<=n;i++)r.push(`${e}&frame=${i}`)}else r.push(e);return r}const ff={_get:Bo,generateMultiframeWADOURIs:ah,retrieveMultiframeDataset:nh,isMultiframeDataset:th};let Sa=0,ua={};function ih(e){return pt[e]!==void 0}function oh(e){let r;if(/[?&]frame=/.test(e)){const{frame:t,dataSet:n}=ff.retrieveMultiframeDataset(e);r=Q0(t,n)}else pt[e]&&(r=pt[e].dataSet);return r}function sh(e,r){const t=pt[e];if(!t){console.error(`No loaded dataSet for uri ${e}`);return}Sa-=t.dataSet.byteArray.length,t.dataSet=r,Sa+=r.byteArray.length,Pa(xa,"datasetscachechanged",{uri:e,action:"updated",cacheInfo:Oi()})}function lh(e,r=Si,t){if(pt[e])return new Promise(l=>{pt[e].cacheCount++,l(pt[e].dataSet)});if(ua[e])return ua[e].cacheCount++,ua[e];const n=r(e,t),i=new Promise((l,a)=>{n.then(async function(d){const P={isPartialContent:!1,fileTotalLength:null};if(!(d instanceof ArrayBuffer)){if(!d.arrayBuffer)return a(new Error("If not returning ArrayBuffer, must return object with `arrayBuffer` parameter"));P.isPartialContent=d.flags.isPartialContent,P.fileTotalLength=d.flags.fileTotalLength,d=d.arrayBuffer}const y=new Uint8Array(d);let w;try{P.isPartialContent?w=await af(y,r,{uri:e,imageId:t,fileTotalLength:P.fileTotalLength}):w=xo(y)}catch(W){return a(W)}pt[e]={dataSet:w,cacheCount:i.cacheCount},Sa+=w.byteArray.length,l(w),Pa(xa,"datasetscachechanged",{uri:e,action:"loaded",cacheInfo:Oi()})},a).then(()=>{delete ua[e]},()=>{delete ua[e]})});return i.cacheCount=1,ua[e]=i,i}function fh(e){pt[e]&&(pt[e].cacheCount--,pt[e].cacheCount===0&&(Sa-=pt[e].dataSet.byteArray.length,delete pt[e],Pa(xa,"datasetscachechanged",{uri:e,action:"unloaded",cacheInfo:Oi()})))}function Oi(){return{cacheSizeInBytes:Sa,numberOfDataSetsCached:Object.keys(pt).length}}function ch(){eh(),ua={},Sa=0}const si={isLoaded:ih,load:lh,unload:fh,getInfo:Oi,purge:ch,get:oh,update:sh};function uh(e){const r=[];for(let t=0;t<=30;t+=2){let n=`x60${t.toString(16)}`;n.length===4&&(n=`x600${t.toString(16)}`);const i=e.elements[`${n}3000`];if(!i)continue;const l=[];for(let a=0;a<i.length;a++)for(let d=0;d<8;d++){const P=e.byteArray[i.dataOffset+a];l[a*8+d]=P>>d&1}r.push({rows:e.uint16(`${n}0010`),columns:e.uint16(`${n}0011`),type:e.string(`${n}0040`),x:e.int16(`${n}0050`,1)-1,y:e.int16(`${n}0050`,0)-1,pixelData:l,description:e.string(`${n}0022`),label:e.string(`${n}1500`),roiArea:e.string(`${n}1301`),roiMean:e.string(`${n}1302`),roiStandardDeviation:e.string(`${n}1303`)})}return{overlays:r}}function ka(e){return e==="RECON TOMO"||e==="RECON GATED TOMO"}function jo(e,r){const t=e.string("x00080008");if(t){const n=t.split("\\");if(n.length>r)return n[r]}}function dh(e){let r;if(e.string("x00080060")?.includes("NM")){const n=jo(e,2);n&&ka(n)&&e.elements.x00540022&&(r=Ar(e.elements.x00540022.items[0].dataSet,"x00200037",6))}return r}function hh(e){let r;if(e.string("x00080060")?.includes("NM")){const n=jo(e,2);n&&ka(n)&&e.elements.x00540022&&(r=Ar(e.elements.x00540022.items[0].dataSet,"x00200032",3))}return r}function js(e){let r=Ar(e,"x00200037",6);return!r&&e.elements.x00209116?.items?.[0]?.dataSet&&(r=Ar(e.elements.x00209116.items[0].dataSet,"x00200037",6)),r||(r=dh(e)),r}function Hs(e){let r=Ar(e,"x00200032",3);return!r&&e.elements.x00209113?.items?.[0]?.dataSet&&(r=Ar(e.elements.x00209113.items[0].dataSet,"x00200032",3)),r||(r=hh(e)),r}function zs(e){let r=Ar(e,"x00280030",2);return!r&&e.elements.x00289110?.items?.[0]?.dataSet&&(r=Ar(e.elements.x00289110.items[0].dataSet,"x00280030",2)),r}function Vs(e){let r;return e.elements.x00180050?r=e.floatString("x00180050"):e.elements.x00289110&&e.elements.x00289110.items.length&&e.elements.x00289110.items[0].dataSet.elements.x00180050&&(r=e.elements.x00289110.items[0].dataSet.floatString("x00180050")),r}const cf=["multiframeModule","generalSeriesModule","patientStudyModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function Gs(e){const r=e.elements.x00186011;return!r||!r.items?[]:r.items.map(n=>{const i=n.dataSet.double("x0018602c"),l=n.dataSet.double("x0018602e"),a=n.dataSet.uint16("x00186024"),d=n.dataSet.uint16("x00186026"),P=n.dataSet.uint16("x0018601a"),y=n.dataSet.uint16("x0018601e"),w=n.dataSet.uint16("x00186018"),W=n.dataSet.uint16("x0018601c"),F=n.dataSet.int32("x00186020")||null,k=n.dataSet.int32("x00186022")||null,j=n.dataSet.uint16("x0018602a"),Y=n.dataSet.uint16("x00186028"),K=n.dataSet.uint16("x00186012"),ee=n.dataSet.uint16("x00186014"),X=n.dataSet.uint16("x00186016"),H=n.dataSet.uint16("x00186030");return{regionLocationMinY0:P,regionLocationMaxY1:y,regionLocationMinX0:w,regionLocationMaxX1:W,referencePixelX0:F,referencePixelY0:k,physicalDeltaX:i,physicalDeltaY:l,physicalUnitsXDirection:a,physicalUnitsYDirection:d,referencePhysicalPixelValueY:j,referencePhysicalPixelValueX:Y,regionSpatialFormat:K,regionDataType:ee,regionFlags:X,transducerFrequency:H}})}function uf(e,r){const{MetadataModules:t}=_n;if(Array.isArray(r))return;const n=Da(r);if(e===t.MULTIFRAME){const a=ff.retrieveMultiframeDataset(n.url);return a.dataSet?K0(a.dataSet,a.frame):void 0}let i=n.url;n.frame&&(i=`${i}&frame=${n.frame}`);const l=si.get(i);if(l)return df(e,r,l)}function df(e,r,t){const{MetadataModules:n}=_n;if(e===n.GENERAL_STUDY)return{studyDescription:t.string("x00081030"),studyDate:ar.parseDA(t.string("x00080020")),studyTime:ar.parseTM(t.string("x00080030")||""),accessionNumber:t.string("x00080050")};if(e===n.GENERAL_SERIES)return{modality:t.string("x00080060"),seriesInstanceUID:t.string("x0020000e"),seriesDescription:t.string("x0008103e"),seriesNumber:t.intString("x00200011"),studyInstanceUID:t.string("x0020000d"),seriesDate:ar.parseDA(t.string("x00080021")),seriesTime:ar.parseTM(t.string("x00080031")||""),acquisitionDate:ar.parseDA(t.string("x00080022")),acquisitionTime:ar.parseTM(t.string("x00080032")||"")};if(e===n.GENERAL_IMAGE)return{sopInstanceUID:t.string("x00080018"),instanceNumber:t.intString("x00200013"),lossyImageCompression:t.string("x00282110"),lossyImageCompressionRatio:t.floatString("x00282112"),lossyImageCompressionMethod:t.string("x00282114")};if(e===n.PATIENT)return{patientID:t.string("x00100020"),patientName:t.string("x00100010")};if(e===n.PATIENT_STUDY)return{patientAge:t.intString("x00101010"),patientSize:t.floatString("x00101020"),patientSex:t.string("x00100040"),patientWeight:t.floatString("x00101030")};if(e===n.NM_MULTIFRAME_GEOMETRY){const i=t.string("x00080060"),l=jo(t,2);return{modality:i,imageType:t.string("x00080008"),imageSubType:l,imageOrientationPatient:js(t),imagePositionPatient:Hs(t),sliceThickness:Vs(t),pixelSpacing:zs(t),numberOfFrames:t.uint16("x00280008"),isNMReconstructable:ka(l)&&i.includes("NM")}}if(e===n.IMAGE_PLANE){const i=js(t),l=Hs(t),a=zs(t),d=Vs(t);let P=null,y=null,w=!1;a?(y=a[0],P=a[1]):(w=!0,y=1,P=1);let W=null,F=null;return i&&(W=[parseFloat(i[0]),parseFloat(i[1]),parseFloat(i[2])],F=[parseFloat(i[3]),parseFloat(i[4]),parseFloat(i[5])]),{frameOfReferenceUID:t.string("x00200052"),rows:t.uint16("x00280010"),columns:t.uint16("x00280011"),imageOrientationPatient:i,rowCosines:W,columnCosines:F,imagePositionPatient:l,sliceThickness:d,sliceLocation:t.floatString("x00201041"),pixelSpacing:a,rowPixelSpacing:y,columnPixelSpacing:P,usingDefaultValues:w}}if(e===n.CINE)return{frameTime:t.floatString("x00181063")};if(e===n.IMAGE_PIXEL)return ml(t);if(e===n.VOI_LUT){const i=bl(t);return{windowCenter:Ar(t,"x00281050",1),windowWidth:Ar(t,"x00281051",1),voiLUTSequence:co(i,t.elements.x00283010),voiLUTFunction:t.string("x00281056")}}if(e===n.MODALITY_LUT)return{rescaleIntercept:t.floatString("x00281052"),rescaleSlope:t.floatString("x00281053"),rescaleType:t.string("x00281054"),modalityLUTSequence:co(t.uint16("x00280103"),t.elements.x00283000)};if(e===n.SOP_COMMON)return{sopClassUID:t.string("x00080016"),sopInstanceUID:t.string("x00080018")};if(e===n.PET_ISOTOPE){const i=t.elements.x00540016;if(i===void 0)return;const l=i.items[0].dataSet;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:ar.parseTM(l.string("x00181072")||""),radionuclideTotalDose:l.floatString("x00181074"),radionuclideHalfLife:l.floatString("x00181075")}}}if(e===n.OVERLAY_PLANE)return uh(t);if(e==="transferSyntax"){let i;try{i=t.string("x00020010")}catch{}return{transferSyntaxUID:i}}if(e===n.PET_SERIES)return{correctedImage:t.string("x00280051"),units:t.string("x00541001"),decayCorrection:t.string("x00541102")};if(e===n.PET_IMAGE)return{frameReferenceTime:t.floatString(t.string("x00541300")||""),actualFrameDuration:t.intString(t.string("x00181242"))};if(e===n.ULTRASOUND_ENHANCED_REGION)return Gs(t);if(e===n.CALIBRATION&&t.string("x00080060")==="US")return{sequenceOfUltrasoundRegions:Gs(t)};if(e==="instance")return ll(r,cf)}let ki=[];function ph(e){return`dicomfile:${ki.push(e)-1}`}function vh(e){return ki[e]}function gh(e){ki[e]=void 0}function _h(){ki=[]}const hf={add:ph,get:vh,remove:gh,purge:_h};function yh(e){const r=e.intString("x00280008"),t=e.elements.x7fe00010;return r!==t.fragments.length}function pf(e,r){if(e.elements.x7fe00010&&e.elements.x7fe00010.basicOffsetTable.length)return ar.readEncapsulatedImageFrame(e,e.elements.x7fe00010,r);if(yh(e)){const y=ar.createJPEGBasicOffsetTable(e,e.elements.x7fe00010);return ar.readEncapsulatedImageFrame(e,e.elements.x7fe00010,r,y)}const t=e.elements.x7fe00010.fragments,n=new ar.ByteStream(e.byteArrayParser,e.byteArray,e.elements.x7fe00010.dataOffset),i=ar.readSequenceItem(n);if(i.tag!=="xfffee000")throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";n.seek(i.length);const l=n.position;if(r+1>t.length)throw"dicomParser.readEncapsulatedPixelData: frame exceeds number of fragments";const d=l+t[r].offset+8,P=t[r].length;return new Uint8Array(n.byteArray.buffer.slice(n.byteArray.byteOffset+d,n.byteArray.byteOffset+d+P))}function mh(e,r){return e&1<<r}function vf(e,r,t){const n=new Uint8Array(t);for(let i=0;i<t;i++){const l=Math.floor(i/8),a=e[l+r],d=i%8;n[i]=mh(a,d)?1:0}return n}function gf(e,r){const t=e.elements.x7fe00010||e.elements.x7fe00008,n=e.uint16("x00280100"),i=e.uint16("x00280010"),l=e.uint16("x00280011");let a=e.uint16("x00280002");e.string("x00280004")==="YBR_FULL_422"&&(a=2,console.warn(`Using SamplesPerPixel of 2 for YBR_FULL_422 photometric interpretation.
|