dicomweb-proxy
Version:
A proxy to translate between dicomweb and dimse
3 lines • 8.51 kB
JavaScript
/*! For license information please see interpolation.bundle.d600a9e9d52fa4644d3d.js.LICENSE.txt */
(()=>{var e,t,n={91789:(e,t,n)=>{"use strict";var r=n(99178),a=n(58498),o=n(42008);async function i(e){try{switch(e){case"itk-wasm":return Promise.all([n.e(7190),n.e(5830)]).then(n.bind(n,5830));case"@itk-wasm/morphological-contour-interpolation":return Promise.all([n.e(7190),n.e(2516)]).then(n.bind(n,82516));default:throw new Error(`Unknown module ID: ${e}`)}}catch(t){return console.warn(`Error importing ${e}:`,t),null}}const s={getITKImage:async e=>{const{imageData:t,options:n}=e,{imageName:r,scalarData:a}=n;let o,s,c,l,u;try{const e=await i("itk-wasm");if(!e)throw new Error("Module not found");({Image:o,ImageType:s,IntTypes:c,FloatTypes:l,PixelTypes:u}=e)}catch(e){return console.warn("Warning: 'itk-wasm' module not found. Please install it separately."),null}const p={Int8:c.Int8,UInt8:c.UInt8,Int16:c.Int16,UInt16:c.UInt16,Int32:c.Int32,UInt32:c.UInt32,Int64:c.Int64,UInt64:c.UInt64,Float32:l.Float32,Float64:l.Float64},{numberOfComponents:d}=t.get("numberOfComponents"),f=t.getDimensions(),m=t.getOrigin(),g=t.getSpacing(),h=t.getDirection(),b=new Float64Array(h),y=a.constructor.name.replace(/^Ui/,"UI").replace(/Array$/,""),w=new o(new s(f.length,p[y],u.Scalar,d));return w.name=r,w.origin=m,w.spacing=g,w.direction=b,w.size=f,w.metadata=undefined,w.data=a,w},interpolateLabelmap:async e=>{const{segmentationInfo:t,configuration:n}=e,{scalarData:r,dimensions:c,spacing:l,origin:u,direction:p}=t;let d;try{if(d=await i("@itk-wasm/morphological-contour-interpolation"),!d)throw new Error("Module not found")}catch(e){return console.warn("Warning: '@itk-wasm/morphological-contour-interpolation' module not found. Please install it separately."),{data:r}}const f=a.Ay.newInstance();f.setDimensions(c),f.setOrigin(u),f.setDirection(p||[1,0,0,0,1,0,0,0,1]),f.setSpacing(l);const m=o.Ay.newInstance({name:"Pixels",numberOfComponents:1,values:r});f.getPointData().setScalars(m),f.modified();try{const e=await s.getITKImage({imageData:f,options:{imageName:"interpolation",scalarData:r}});if(!e)throw new Error("Failed to get ITK image");const{outputImage:t}=await d.morphologicalContourInterpolation(e,{...n,webWorker:!1}),a=t.data,o=new Uint16Array(r.length);o.set(r);for(let e=0;e<a.length;e++){const t=a[e];t!==r[e]&&(o[e]=t)}return{data:o}}catch(e){return console.error(e),console.warn("Warning: Failed to perform morphological contour interpolation"),{data:r}}}};(0,r.p)(s)},89288:()=>{},99178:(e,t,n)=>{"use strict";n.d(t,{A2:()=>o,LV:()=>d,k0:()=>v,p:()=>u});const r=Symbol("Comlink.proxy"),a=Symbol("Comlink.endpoint"),o=Symbol("Comlink.releaseProxy"),i=Symbol("Comlink.finalizer"),s=Symbol("Comlink.thrown"),c=e=>"object"==typeof e&&null!==e||"function"==typeof e,l=new Map([["proxy",{canHandle:e=>c(e)&&e[r],serialize(e){const{port1:t,port2:n}=new MessageChannel;return u(e,t),[n,[n]]},deserialize:e=>(e.start(),d(e))}],["throw",{canHandle:e=>c(e)&&s in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){if(e.isError)throw Object.assign(new Error(e.value.message),e.value);throw e.value}}]]);function u(e,t=globalThis,n=["*"]){t.addEventListener("message",(function a(o){if(!o||!o.data)return;if(!function(e,t){for(const n of e){if(t===n||"*"===n)return!0;if(n instanceof RegExp&&n.test(t))return!0}return!1}(n,o.origin))return void console.warn(`Invalid origin '${o.origin}' for comlink proxy`);const{id:c,type:l,path:d}=Object.assign({path:[]},o.data),f=(o.data.argumentList||[]).map(I);let m;try{const t=d.slice(0,-1).reduce(((e,t)=>e[t]),e),n=d.reduce(((e,t)=>e[t]),e);switch(l){case"GET":m=n;break;case"SET":t[d.slice(-1)[0]]=I(o.data.value),m=!0;break;case"APPLY":m=n.apply(t,f);break;case"CONSTRUCT":m=function(e){return Object.assign(e,{[r]:!0})}(new n(...f));break;case"ENDPOINT":{const{port1:t,port2:n}=new MessageChannel;u(e,n),m=v(t,[t])}break;case"RELEASE":m=void 0;break;default:return}}catch(e){m={value:e,[s]:0}}Promise.resolve(m).catch((e=>({value:e,[s]:0}))).then((n=>{const[r,o]=E(n);t.postMessage(Object.assign(Object.assign({},r),{id:c}),o),"RELEASE"===l&&(t.removeEventListener("message",a),p(t),i in e&&"function"==typeof e[i]&&e[i]())})).catch((e=>{const[n,r]=E({value:new TypeError("Unserializable return value"),[s]:0});t.postMessage(Object.assign(Object.assign({},n),{id:c}),r)}))})),t.start&&t.start()}function p(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function d(e,t){return b(e,[],t)}function f(e){if(e)throw new Error("Proxy has been released and is not useable")}function m(e){return k(e,{type:"RELEASE"}).then((()=>{p(e)}))}const g=new WeakMap,h="FinalizationRegistry"in globalThis&&new FinalizationRegistry((e=>{const t=(g.get(e)||0)-1;g.set(e,t),0===t&&m(e)}));function b(e,t=[],n=function(){}){let r=!1;const i=new Proxy(n,{get(n,a){if(f(r),a===o)return()=>{!function(e){h&&h.unregister(e)}(i),m(e),r=!0};if("then"===a){if(0===t.length)return{then:()=>i};const n=k(e,{type:"GET",path:t.map((e=>e.toString()))}).then(I);return n.then.bind(n)}return b(e,[...t,a])},set(n,a,o){f(r);const[i,s]=E(o);return k(e,{type:"SET",path:[...t,a].map((e=>e.toString())),value:i},s).then(I)},apply(n,o,i){f(r);const s=t[t.length-1];if(s===a)return k(e,{type:"ENDPOINT"}).then(I);if("bind"===s)return b(e,t.slice(0,-1));const[c,l]=y(i);return k(e,{type:"APPLY",path:t.map((e=>e.toString())),argumentList:c},l).then(I)},construct(n,a){f(r);const[o,i]=y(a);return k(e,{type:"CONSTRUCT",path:t.map((e=>e.toString())),argumentList:o},i).then(I)}});return function(e,t){const n=(g.get(t)||0)+1;g.set(t,n),h&&h.register(e,t,e)}(i,e),i}function y(e){const t=e.map(E);return[t.map((e=>e[0])),(n=t.map((e=>e[1])),Array.prototype.concat.apply([],n))];var n}const w=new WeakMap;function v(e,t){return w.set(e,t),e}function E(e){for(const[t,n]of l)if(n.canHandle(e)){const[r,a]=n.serialize(e);return[{type:"HANDLER",name:t,value:r},a]}return[{type:"RAW",value:e},w.get(e)||[]]}function I(e){switch(e.type){case"HANDLER":return l.get(e.name).deserialize(e.value);case"RAW":return e.value}}function k(e,t,n){return new Promise((r=>{const a=new Array(4).fill(0).map((()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16))).join("-");e.addEventListener("message",(function t(n){n.data&&n.data.id&&n.data.id===a&&(e.removeEventListener("message",t),r(n.data))})),e.start&&e.start(),e.postMessage(Object.assign({id:a},t),n)}))}}},r={};function a(e){var t=r[e];if(void 0!==t)return t.exports;var o=r[e]={id:e,loaded:!1,exports:{}};return n[e].call(o.exports,o,o.exports,a),o.loaded=!0,o.exports}a.m=n,a.x=()=>{var e=a.O(void 0,[573,9742],(()=>a(91789)));return e=a.O(e)},a.amdD=function(){throw new Error("define cannot be used indirect")},a.amdO={},e=[],a.O=(t,n,r,o)=>{if(!n){var i=1/0;for(u=0;u<e.length;u++){n=e[u][0],r=e[u][1],o=e[u][2];for(var s=!0,c=0;c<n.length;c++)(!1&o||i>=o)&&Object.keys(a.O).every((e=>a.O[e](n[c])))?n.splice(c--,1):(s=!1,o<i&&(i=o));if(s){e.splice(u--,1);var l=r();void 0!==l&&(t=l)}}return t}o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,r,o]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,n)=>(a.f[n](e,t),t)),[])),a.u=e=>e+".bundle."+{573:"e9182fe16a8f12c93a19",2516:"a7699c9d26be347cc344",5830:"bcb8ef64b7a02cbf9212",6376:"a41a22b32bbc5945a99e",7190:"e234214dff79b602d5bc",9742:"8aca46da38bdee7b0b56"}[e]+".js",a.miniCssF=e=>{},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.p="/",(()=>{a.b=self.location+"";var e={2007:1,3694:1,572:1};a.f.i=(t,n)=>{e[t]||importScripts(a.p+a.u(t))};var t=self.webpackChunk=self.webpackChunk||[],n=t.push.bind(t);t.push=t=>{var r=t[0],o=t[1],i=t[2];for(var s in o)a.o(o,s)&&(a.m[s]=o[s]);for(i&&i(a);r.length;)e[r.pop()]=1;n(t)}})(),t=a.x,a.x=()=>Promise.all([a.e(573),a.e(9742)]).then(t);a.x()})();
//# sourceMappingURL=interpolation.bundle.d600a9e9d52fa4644d3d.js.map