cod-dicomweb-server 1.0.2 → 1.2.0

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.
Files changed (35) hide show
  1. package/LICENSE +21 -0
  2. package/dist/16.js +19 -0
  3. package/dist/16.js.map +1 -0
  4. package/dist/170.js +19 -0
  5. package/dist/170.js.map +1 -0
  6. package/dist/main.js +21 -0
  7. package/dist/main.js.map +1 -0
  8. package/dist/types/classes/CodDicomWebServer.d.ts +22 -0
  9. package/dist/types/classes/utils.d.ts +15 -0
  10. package/dist/types/constants/enums.d.ts +17 -0
  11. package/dist/types/constants/index.d.ts +10 -0
  12. package/dist/types/constants/url.d.ts +3 -0
  13. package/dist/types/constants/worker.d.ts +3 -0
  14. package/dist/types/fileManager.d.ts +21 -0
  15. package/dist/types/index.d.ts +8 -0
  16. package/dist/types/metadataManager.d.ts +8 -0
  17. package/dist/types/types/codDicomWebServerOptions.d.ts +6 -0
  18. package/dist/types/types/fileManagerOptions.d.ts +4 -0
  19. package/dist/types/types/index.d.ts +7 -0
  20. package/dist/types/types/metadata.d.ts +61 -0
  21. package/dist/types/types/metadataUrlCreationParams.d.ts +8 -0
  22. package/dist/types/types/parsedWadoRsUrlDetails.d.ts +11 -0
  23. package/dist/types/types/requestOptions.d.ts +12 -0
  24. package/dist/types/types/workerCustomMessageEvents.d.ts +10 -0
  25. package/dist/types/webWorker/registerWorkers.d.ts +4 -0
  26. package/dist/types/webWorker/scripts/filePartial.d.ts +7 -0
  27. package/dist/types/webWorker/scripts/fileStreaming.d.ts +12 -0
  28. package/dist/types/webWorker/workerManager.d.ts +10 -0
  29. package/dist/types/webWorker/workers/filePartialWorker.d.ts +1 -0
  30. package/dist/types/webWorker/workers/fileStreamingWorker.d.ts +1 -0
  31. package/package.json +56 -56
  32. package/dist/430.min.js +0 -7
  33. package/dist/663.min.js +0 -7
  34. package/dist/index.html +0 -1
  35. package/dist/main.min.js +0 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","mappings":"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","sources":["webpack://cod-dicomweb-server/webpack/universalModuleDefinition","webpack://cod-dicomweb-server/./node_modules/dicom-parser/dist/dicomParser.min.js","webpack://cod-dicomweb-server/webpack/bootstrap","webpack://cod-dicomweb-server/webpack/runtime/define property getters","webpack://cod-dicomweb-server/webpack/runtime/get javascript chunk filename","webpack://cod-dicomweb-server/webpack/runtime/global","webpack://cod-dicomweb-server/webpack/runtime/hasOwnProperty shorthand","webpack://cod-dicomweb-server/webpack/runtime/make namespace object","webpack://cod-dicomweb-server/webpack/runtime/publicPath","webpack://cod-dicomweb-server/webpack/runtime/jsonp chunk loading","webpack://cod-dicomweb-server/./src/constants/enums.ts","webpack://cod-dicomweb-server/./node_modules/comlink/dist/esm/comlink.mjs","webpack://cod-dicomweb-server/./src/webWorker/workerManager.ts","webpack://cod-dicomweb-server/./src/fileManager.ts","webpack://cod-dicomweb-server/./src/constants/url.ts","webpack://cod-dicomweb-server/./src/constants/worker.ts","webpack://cod-dicomweb-server/./src/constants/index.ts","webpack://cod-dicomweb-server/./src/classes/utils.ts","webpack://cod-dicomweb-server/./src/metadataManager.ts","webpack://cod-dicomweb-server/./src/classes/CodDicomWebServer.ts","webpack://cod-dicomweb-server/./src/webWorker/registerWorkers.ts","webpack://cod-dicomweb-server/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, () => {\nreturn ","/*! dicom-parser - 1.8.12 - 2023-02-20 | (c) 2017 Chris Hafey | https://github.com/cornerstonejs/dicomParser */\n!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"zlib\")):\"function\"==typeof define&&define.amd?define(\"dicom-parser\",[\"zlib\"],t):\"object\"==typeof exports?exports[\"dicom-parser\"]=t(require(\"zlib\")):e.dicomParser=t(e.zlib)}(this,function(r){return a=[function(e,t){e.exports=r},function(e,t,s){\"use strict\";s.r(t),s.d(t,\"isStringVr\",function(){return d}),s.d(t,\"isPrivateTag\",function(){return f}),s.d(t,\"parsePN\",function(){return a}),s.d(t,\"parseTM\",function(){return n}),s.d(t,\"parseDA\",function(){return o}),s.d(t,\"explicitElementToString\",function(){return l}),s.d(t,\"explicitDataSetToJS\",function(){return u}),s.d(t,\"createJPEGBasicOffsetTable\",function(){return p}),s.d(t,\"parseDicomDataSetExplicit\",function(){return q}),s.d(t,\"parseDicomDataSetImplicit\",function(){return T}),s.d(t,\"readFixedString\",function(){return b}),s.d(t,\"alloc\",function(){return k}),s.d(t,\"version\",function(){return L}),s.d(t,\"bigEndianByteArrayParser\",function(){return N}),s.d(t,\"ByteStream\",function(){return J}),s.d(t,\"sharedCopy\",function(){return j}),s.d(t,\"DataSet\",function(){return w}),s.d(t,\"findAndSetUNElementLength\",function(){return y}),s.d(t,\"findEndOfEncapsulatedElement\",function(){return g}),s.d(t,\"findItemDelimitationItemAndSetElementLength\",function(){return x}),s.d(t,\"littleEndianByteArrayParser\",function(){return M}),s.d(t,\"parseDicom\",function(){return V}),s.d(t,\"readDicomElementExplicit\",function(){return B}),s.d(t,\"readDicomElementImplicit\",function(){return A}),s.d(t,\"readEncapsulatedImageFrame\",function(){return W}),s.d(t,\"readEncapsulatedPixelData\",function(){return K}),s.d(t,\"readEncapsulatedPixelDataFromFragments\",function(){return _}),s.d(t,\"readPart10Header\",function(){return G}),s.d(t,\"readSequenceItemsExplicit\",function(){return I}),s.d(t,\"readSequenceItemsImplicit\",function(){return F}),s.d(t,\"readSequenceItem\",function(){return S}),s.d(t,\"readTag\",function(){return h});var r={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},d=function(e){return r[e]},f=function(e){e=parseInt(e[4],16);if(isNaN(e))throw\"dicomParser.isPrivateTag: cannot parse last character of group\";return e%2==1},a=function(e){if(void 0!==e){e=e.split(\"^\");return{familyName:e[0],givenName:e[1],middleName:e[2],prefix:e[3],suffix:e[4]}}};function n(e,t){if(2<=e.length){var r=parseInt(e.substring(0,2),10),a=4<=e.length?parseInt(e.substring(2,4),10):void 0,n=6<=e.length?parseInt(e.substring(4,6),10):void 0,i=8<=e.length?e.substring(7,13):void 0,i=i?parseInt(i,10)*Math.pow(10,6-i.length):void 0;if(t&&(isNaN(r)||void 0!==a&&isNaN(a)||void 0!==n&&isNaN(n)||void 0!==i&&isNaN(i)||r<0||23<r||a&&(a<0||59<a)||n&&(n<0||59<n)||i&&(i<0||999999<i)))throw\"invalid TM '\".concat(e,\"'\");return{hours:r,minutes:a,seconds:n,fractionalSeconds:i}}if(t)throw\"invalid TM '\".concat(e,\"'\")}function i(e,t,r){return!isNaN(r)&&(0<t&&t<=12&&0<e&&e<=function(e,t){switch(e){case 2:return t%4==0&&t%100||t%400==0?29:28;case 9:case 4:case 6:case 11:return 30;default:return 31}}(t,r))}function o(e,t){if(e&&8===e.length){var r=parseInt(e.substring(0,4),10),a=parseInt(e.substring(4,6),10),n=parseInt(e.substring(6,8),10);if(t&&!0!==i(n,a,r))throw\"invalid DA '\".concat(e,\"'\");return{year:r,month:a,day:n}}if(t)throw\"invalid DA '\".concat(e,\"'\")}function l(n,e){if(void 0===n||void 0===e)throw\"dicomParser.explicitElementToString: missing required parameters\";if(void 0===e.vr)throw\"dicomParser.explicitElementToString: cannot convert implicit element to string\";var t,r=e.vr,i=e.tag;function a(e,t){for(var r=\"\",a=0;a<e;a++)0!==a&&(r+=\"/\"),r+=t.call(n,i,a).toString();return r}if(!0===d(r))t=n.string(i);else{if(\"AT\"===r){var o=n.uint32(i);return void 0===o?void 0:\"x\".concat((o=o<0?4294967295+o+1:o).toString(16).toUpperCase())}\"US\"===r?t=a(e.length/2,n.uint16):\"SS\"===r?t=a(e.length/2,n.int16):\"UL\"===r?t=a(e.length/4,n.uint32):\"SL\"===r?t=a(e.length/4,n.int32):\"FD\"===r?t=a(e.length/8,n.double):\"FL\"===r&&(t=a(e.length/4,n.float))}return t}function u(e,t){if(void 0===e)throw\"dicomParser.explicitDataSetToJS: missing required parameter dataSet\";t=t||{omitPrivateAttibutes:!0,maxElementLength:128};var r,a={};for(r in e.elements){var n=e.elements[r];if(!0!==t.omitPrivateAttibutes||!f(r))if(n.items){for(var i=[],o=0;o<n.items.length;o++)i.push(u(n.items[o].dataSet,t));a[r]=i}else{var s=void 0;n.length<t.maxElementLength&&(s=l(e,n)),a[r]=void 0!==s?s:{dataOffset:n.dataOffset,length:n.length}}}return a}function c(e,t){return 255===e.byteArray[t]&&217===e.byteArray[t+1]}function m(e,t,r){for(var a,n,i=r;i<t.fragments.length;i++)if(a=e,n=i,n=t.fragments[n],!(!c(a,n.position+n.length-2)&&!c(a,n.position+n.length-3)))return i}function p(e,t,r){if(void 0===e)throw\"dicomParser.createJPEGBasicOffsetTable: missing required parameter dataSet\";if(void 0===t)throw\"dicomParser.createJPEGBasicOffsetTable: missing required parameter pixelDataElement\";if(\"x7fe00010\"!==t.tag)throw\"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010'\";if(!0!==t.encapsulatedPixelData)throw\"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data\";if(!0!==t.hadUndefinedLength)throw\"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data\";if(void 0===t.basicOffsetTable)throw\"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data\";if(void 0===t.fragments)throw\"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data\";if(t.fragments.length<=0)throw\"dicomParser.createJPEGBasicOffsetTable: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data\";if(r&&r.length<=0)throw\"dicomParser.createJPEGBasicOffsetTable: parameter 'fragments' must not be zero length\";r=r||t.fragments;for(var a=[],n=0;;){a.push(t.fragments[n].offset);var i=m(e,t,n);if(void 0===i||i===t.fragments.length-1)return a;n=i+1}}function h(e){if(void 0===e)throw\"dicomParser.readTag: missing required parameter 'byteStream'\";var t=256*e.readUint16()*256,e=e.readUint16();return\"x\".concat(\"00000000\".concat((t+e).toString(16)).substr(-8))}function g(e,t,r){if(void 0===e)throw\"dicomParser.findEndOfEncapsulatedElement: missing required parameter 'byteStream'\";if(void 0===t)throw\"dicomParser.findEndOfEncapsulatedElement: missing required parameter 'element'\";if(t.encapsulatedPixelData=!0,t.basicOffsetTable=[],t.fragments=[],\"xfffee000\"!==h(e))throw\"dicomParser.findEndOfEncapsulatedElement: basic offset table not found\";for(var a=e.readUint32()/4,n=0;n<a;n++){var i=e.readUint32();t.basicOffsetTable.push(i)}for(var o=e.position;e.position<e.byteArray.length;){var s=h(e),d=e.readUint32();if(\"xfffee0dd\"===s)return e.seek(d),void(t.length=e.position-t.dataOffset);if(\"xfffee000\"!==s)return r&&r.push(\"unexpected tag \".concat(s,\" while searching for end of pixel data element with undefined length\")),d>e.byteArray.length-e.position&&(d=e.byteArray.length-e.position),t.fragments.push({offset:e.position-o-8,position:e.position,length:d}),e.seek(d),void(t.length=e.position-t.dataOffset);t.fragments.push({offset:e.position-o-8,position:e.position,length:d}),e.seek(d)}r&&r.push(\"pixel data element \".concat(t.tag,\" missing sequence delimiter tag xfffee0dd\"))}function y(e,t){if(void 0===e)throw\"dicomParser.findAndSetUNElementLength: missing required parameter 'byteStream'\";for(var r=e.byteArray.length-8;e.position<=r;)if(65534===e.readUint16()){var a=e.readUint16();if(57565===a)return 0!==e.readUint32()&&e.warnings(\"encountered non zero length following item delimiter at position \".concat(e.position-4,\" while reading element of undefined length with tag \").concat(t.tag)),void(t.length=e.position-t.dataOffset)}t.length=e.byteArray.length-t.dataOffset,e.seek(e.byteArray.length-e.position)}function b(e,t,r){if(r<0)throw\"dicomParser.readFixedString - length cannot be less than 0\";if(t+r>e.length)throw\"dicomParser.readFixedString: attempt to read past end of buffer\";for(var a,n=\"\",i=0;i<r;i++){if(0===(a=e[t+i]))return t+=r,n;n+=String.fromCharCode(a)}return n}function v(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,\"value\"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function P(e,t){return void 0!==e.parser?e.parser:t}var w=function(){function a(e,t,r){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,a),this.byteArrayParser=e,this.byteArray=t,this.elements=r}var e,t,r;return e=a,(t=[{key:\"uint16\",value:function(e,t){e=this.elements[e];if(t=void 0!==t?t:0,e&&0!==e.length)return P(e,this.byteArrayParser).readUint16(this.byteArray,e.dataOffset+2*t)}},{key:\"int16\",value:function(e,t){e=this.elements[e];if(t=void 0!==t?t:0,e&&0!==e.length)return P(e,this.byteArrayParser).readInt16(this.byteArray,e.dataOffset+2*t)}},{key:\"uint32\",value:function(e,t){e=this.elements[e];if(t=void 0!==t?t:0,e&&0!==e.length)return P(e,this.byteArrayParser).readUint32(this.byteArray,e.dataOffset+4*t)}},{key:\"int32\",value:function(e,t){e=this.elements[e];if(t=void 0!==t?t:0,e&&0!==e.length)return P(e,this.byteArrayParser).readInt32(this.byteArray,e.dataOffset+4*t)}},{key:\"float\",value:function(e,t){e=this.elements[e];if(t=void 0!==t?t:0,e&&0!==e.length)return P(e,this.byteArrayParser).readFloat(this.byteArray,e.dataOffset+4*t)}},{key:\"double\",value:function(e,t){e=this.elements[e];if(t=void 0!==t?t:0,e&&0!==e.length)return P(e,this.byteArrayParser).readDouble(this.byteArray,e.dataOffset+8*t)}},{key:\"numStringValues\",value:function(e){e=this.elements[e];if(e&&0<e.length){e=b(this.byteArray,e.dataOffset,e.length).match(/\\\\/g);return null===e?1:e.length+1}}},{key:\"string\",value:function(e,t){e=this.elements[e];if(e&&e.Value)return e.Value;if(e&&0<e.length){e=b(this.byteArray,e.dataOffset,e.length);return 0<=t?e.split(\"\\\\\")[t].trim():e.trim()}}},{key:\"text\",value:function(e,t){e=this.elements[e];if(e&&0<e.length){e=b(this.byteArray,e.dataOffset,e.length);return 0<=t?e.split(\"\\\\\")[t].replace(/ +$/,\"\"):e.replace(/ +$/,\"\")}}},{key:\"floatString\",value:function(e,t){var r=this.elements[e];if(r&&0<r.length){t=this.string(e,t=void 0!==t?t:0);if(void 0!==t)return parseFloat(t)}}},{key:\"intString\",value:function(e,t){var r=this.elements[e];if(r&&0<r.length){t=this.string(e,t=void 0!==t?t:0);if(void 0!==t)return parseInt(t)}}},{key:\"attributeTag\",value:function(e){var t=this.elements[e];if(t&&4===t.length){var r=P(t,this.byteArrayParser).readUint16,e=this.byteArray,t=t.dataOffset;return\"x\".concat(\"00000000\".concat((256*r(e,t)*256+r(e,t+2)).toString(16)).substr(-8))}}}])&&v(e.prototype,t),r&&v(e,r),Object.defineProperty(e,\"prototype\",{writable:!1}),a}();function x(e,t){if(void 0===e)throw\"dicomParser.readDicomElementImplicit: missing required parameter 'byteStream'\";for(var r=e.byteArray.length-8;e.position<=r;)if(65534===e.readUint16()){var a=e.readUint16();if(57357===a)return 0!==e.readUint32()&&e.warnings(\"encountered non zero length following item delimiter at position \".concat(e.position-4,\" while reading element of undefined length with tag \").concat(t.tag)),void(t.length=e.position-t.dataOffset)}t.length=e.byteArray.length-t.dataOffset,e.seek(e.byteArray.length-e.position)}var E=function(e,t){if(void 0!==e.vr)return\"SQ\"===e.vr;if(t.position+4<=t.byteArray.length){e=h(t);return t.seek(-4),\"xfffee000\"===e||\"xfffee0dd\"===e}return t.warnings.push(\"eof encountered before finding sequence item tag or sequence delimiter tag in peeking to determine VR\"),!1};function A(e,t,r){if(void 0===e)throw\"dicomParser.readDicomElementImplicit: missing required parameter 'byteStream'\";var a=h(e),a={tag:a,vr:void 0!==r?r(a):void 0,length:e.readUint32(),dataOffset:e.position};return 4294967295===a.length&&(a.hadUndefinedLength=!0),a.tag===t||(!E(a,e)||f(a.tag)&&!a.hadUndefinedLength?a.hadUndefinedLength?x(e,a):e.seek(a.length):(F(e,a,r),f(a.tag)&&(a.items=void 0))),a}function S(e){if(void 0===e)throw\"dicomParser.readSequenceItem: missing required parameter 'byteStream'\";var t={tag:h(e),length:e.readUint32(),dataOffset:e.position};if(\"xfffee000\"!==t.tag)throw\"dicomParser.readSequenceItem: item tag (FFFE,E000) not found at offset \".concat(e.position);return t}function D(e,t){var r=S(e);return 4294967295===r.length?(r.hadUndefinedLength=!0,r.dataSet=function(e,t){for(var r={};e.position<e.byteArray.length;){var a=A(e,void 0,t);if(\"xfffee00d\"===(r[a.tag]=a).tag)return new w(e.byteArrayParser,e.byteArray,r)}return e.warnings.push(\"eof encountered before finding sequence item delimiter in sequence item of undefined length\"),new w(e.byteArrayParser,e.byteArray,r)}(e,t),r.length=e.position-r.dataOffset):(r.dataSet=new w(e.byteArrayParser,e.byteArray,{}),T(r.dataSet,e,e.position+r.length,{vrCallback:t})),r}function F(e,t,r){if(void 0===e)throw\"dicomParser.readSequenceItemsImplicit: missing required parameter 'byteStream'\";if(void 0===t)throw\"dicomParser.readSequenceItemsImplicit: missing required parameter 'element'\";t.items=[],(4294967295===t.length?function(e,t,r){for(;e.position+4<=e.byteArray.length;){var a=h(e);if(e.seek(-4),\"xfffee0dd\"===a)return t.length=e.position-t.dataOffset,e.seek(8);a=D(e,r);t.items.push(a)}e.warnings.push(\"eof encountered before finding sequence delimiter in sequence of undefined length\"),t.length=e.byteArray.length-t.dataOffset}:function(e,t,r){for(var a=t.dataOffset+t.length;e.position<a;){var n=D(e,r);t.items.push(n)}})(e,t,r)}function O(e,t){var r=S(e);return 4294967295===r.length?(r.hadUndefinedLength=!0,r.dataSet=function(e,t){for(var r={};e.position<e.byteArray.length;){var a=B(e,t);if(\"xfffee00d\"===(r[a.tag]=a).tag)return new w(e.byteArrayParser,e.byteArray,r)}return t.push(\"eof encountered before finding item delimiter tag while reading sequence item of undefined length\"),new w(e.byteArrayParser,e.byteArray,r)}(e,t),r.length=e.position-r.dataOffset):(r.dataSet=new w(e.byteArrayParser,e.byteArray,{}),q(r.dataSet,e,e.position+r.length)),r}function I(e,t,r){if(void 0===e)throw\"dicomParser.readSequenceItemsExplicit: missing required parameter 'byteStream'\";if(void 0===t)throw\"dicomParser.readSequenceItemsExplicit: missing required parameter 'element'\";t.items=[],(4294967295===t.length?function(e,t,r){for(;e.position+4<=e.byteArray.length;){var a=h(e);if(e.seek(-4),\"xfffee0dd\"===a)return t.length=e.position-t.dataOffset,e.seek(8);a=O(e,r);t.items.push(a)}r.push(\"eof encountered before finding sequence delimitation tag while reading sequence of undefined length\"),t.length=e.position-t.dataOffset}:function(e,t,r){for(var a=t.dataOffset+t.length;e.position<a;){var n=O(e,r);t.items.push(n)}})(e,t,r)}var U=function(e){return\"OB\"===e||\"OD\"===e||\"OL\"===e||\"OW\"===e||\"SQ\"===e||\"OF\"===e||\"UC\"===e||\"UR\"===e||\"UT\"===e||\"UN\"===e?4:2};function B(e,t,r){if(void 0===e)throw\"dicomParser.readDicomElementExplicit: missing required parameter 'byteStream'\";var a={tag:h(e),vr:e.readFixedString(2)};return 2===U(a.vr)?a.length=e.readUint16():(e.seek(2),a.length=e.readUint32()),a.dataOffset=e.position,4294967295===a.length&&(a.hadUndefinedLength=!0),a.tag===r||(\"SQ\"===a.vr?I(e,a,t):4294967295===a.length?\"x7fe00010\"===a.tag?g(e,a,t):(\"UN\"===a.vr?F:x)(e,a):e.seek(a.length)),a}function q(e,t,r){var a=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{};if(r=void 0===r?t.byteArray.length:r,void 0===t)throw\"dicomParser.parseDicomDataSetExplicit: missing required parameter 'byteStream'\";if(r<t.position||r>t.byteArray.length)throw\"dicomParser.parseDicomDataSetExplicit: invalid value for parameter 'maxP osition'\";for(var n=e.elements;t.position<r;){var i=B(t,e.warnings,a.untilTag);if((n[i.tag]=i).tag===a.untilTag)return}if(t.position>r)throw\"dicomParser:parseDicomDataSetExplicit: buffer overrun\"}function T(e,t,r){var a=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{};if(r=void 0===r?e.byteArray.length:r,void 0===t)throw\"dicomParser.parseDicomDataSetImplicit: missing required parameter 'byteStream'\";if(r<t.position||r>t.byteArray.length)throw\"dicomParser.parseDicomDataSetImplicit: invalid value for parameter 'maxPosition'\";for(var n=e.elements;t.position<r;){var i=A(t,a.untilTag,a.vrCallback);if((n[i.tag]=i).tag===a.untilTag)return}}function k(e,t){if(\"undefined\"!=typeof Buffer&&e instanceof Buffer)return Buffer.alloc(t);if(e instanceof Uint8Array)return new Uint8Array(t);throw\"dicomParser.alloc: unknown type for byteArray\"}var L=\"1.8.12\",N={readUint16:function(e,t){if(t<0)throw\"bigEndianByteArrayParser.readUint16: position cannot be less than 0\";if(t+2>e.length)throw\"bigEndianByteArrayParser.readUint16: attempt to read past end of buffer\";return(e[t]<<8)+e[t+1]},readInt16:function(e,t){if(t<0)throw\"bigEndianByteArrayParser.readInt16: position cannot be less than 0\";if(t+2>e.length)throw\"bigEndianByteArrayParser.readInt16: attempt to read past end of buffer\";t=(e[t]<<8)+e[t+1];return t=32768&t?t-65535-1:t},readUint32:function(e,t){if(t<0)throw\"bigEndianByteArrayParser.readUint32: position cannot be less than 0\";if(t+4>e.length)throw\"bigEndianByteArrayParser.readUint32: attempt to read past end of buffer\";return 256*(256*(256*e[t]+e[t+1])+e[t+2])+e[t+3]},readInt32:function(e,t){if(t<0)throw\"bigEndianByteArrayParser.readInt32: position cannot be less than 0\";if(t+4>e.length)throw\"bigEndianByteArrayParser.readInt32: attempt to read past end of buffer\";return(e[t]<<24)+(e[t+1]<<16)+(e[t+2]<<8)+e[t+3]},readFloat:function(e,t){if(t<0)throw\"bigEndianByteArrayParser.readFloat: position cannot be less than 0\";if(t+4>e.length)throw\"bigEndianByteArrayParser.readFloat: attempt to read past end of buffer\";var r=new Uint8Array(4);return r[3]=e[t],r[2]=e[t+1],r[1]=e[t+2],r[0]=e[t+3],new Float32Array(r.buffer)[0]},readDouble:function(e,t){if(t<0)throw\"bigEndianByteArrayParser.readDouble: position cannot be less than 0\";if(t+8>e.length)throw\"bigEndianByteArrayParser.readDouble: attempt to read past end of buffer\";var r=new Uint8Array(8);return r[7]=e[t],r[6]=e[t+1],r[5]=e[t+2],r[4]=e[t+3],r[3]=e[t+4],r[2]=e[t+5],r[1]=e[t+6],r[0]=e[t+7],new Float64Array(r.buffer)[0]}};function j(e,t,r){if(\"undefined\"!=typeof Buffer&&e instanceof Buffer)return e.slice(t,t+r);if(e instanceof Uint8Array)return new Uint8Array(e.buffer,e.byteOffset+t,r);throw\"dicomParser.from: unknown type for byteArray\"}function C(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,\"value\"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}var J=function(){function a(e,t,r){if(!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,a),void 0===e)throw\"dicomParser.ByteStream: missing required parameter 'byteArrayParser'\";if(void 0===t)throw\"dicomParser.ByteStream: missing required parameter 'byteArray'\";if(t instanceof Uint8Array==!1&&(\"undefined\"==typeof Buffer||t instanceof Buffer==!1))throw\"dicomParser.ByteStream: parameter byteArray is not of type Uint8Array or Buffer\";if(r<0)throw\"dicomParser.ByteStream: parameter 'position' cannot be less than 0\";if(r>=t.length)throw\"dicomParser.ByteStream: parameter 'position' cannot be greater than or equal to 'byteArray' length\";this.byteArrayParser=e,this.byteArray=t,this.position=r||0,this.warnings=[]}var e,t,r;return e=a,(t=[{key:\"seek\",value:function(e){if(this.position+e<0)throw\"dicomParser.ByteStream.prototype.seek: cannot seek to position < 0\";this.position+=e}},{key:\"readByteStream\",value:function(e){if(this.position+e>this.byteArray.length)throw\"dicomParser.ByteStream.prototype.readByteStream: readByteStream - buffer overread\";var t=j(this.byteArray,this.position,e);return this.position+=e,new a(this.byteArrayParser,t)}},{key:\"getSize\",value:function(){return this.byteArray.length}},{key:\"readUint16\",value:function(){var e=this.byteArrayParser.readUint16(this.byteArray,this.position);return this.position+=2,e}},{key:\"readUint32\",value:function(){var e=this.byteArrayParser.readUint32(this.byteArray,this.position);return this.position+=4,e}},{key:\"readFixedString\",value:function(e){var t=b(this.byteArray,this.position,e);return this.position+=e,t}}])&&C(e.prototype,t),r&&C(e,r),Object.defineProperty(e,\"prototype\",{writable:!1}),a}(),M={readUint16:function(e,t){if(t<0)throw\"littleEndianByteArrayParser.readUint16: position cannot be less than 0\";if(t+2>e.length)throw\"littleEndianByteArrayParser.readUint16: attempt to read past end of buffer\";return e[t]+256*e[t+1]},readInt16:function(e,t){if(t<0)throw\"littleEndianByteArrayParser.readInt16: position cannot be less than 0\";if(t+2>e.length)throw\"littleEndianByteArrayParser.readInt16: attempt to read past end of buffer\";t=e[t]+(e[t+1]<<8);return t=32768&t?t-65535-1:t},readUint32:function(e,t){if(t<0)throw\"littleEndianByteArrayParser.readUint32: position cannot be less than 0\";if(t+4>e.length)throw\"littleEndianByteArrayParser.readUint32: attempt to read past end of buffer\";return e[t]+256*e[t+1]+256*e[t+2]*256+256*e[t+3]*256*256},readInt32:function(e,t){if(t<0)throw\"littleEndianByteArrayParser.readInt32: position cannot be less than 0\";if(t+4>e.length)throw\"littleEndianByteArrayParser.readInt32: attempt to read past end of buffer\";return e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24)},readFloat:function(e,t){if(t<0)throw\"littleEndianByteArrayParser.readFloat: position cannot be less than 0\";if(t+4>e.length)throw\"littleEndianByteArrayParser.readFloat: attempt to read past end of buffer\";var r=new Uint8Array(4);return r[0]=e[t],r[1]=e[t+1],r[2]=e[t+2],r[3]=e[t+3],new Float32Array(r.buffer)[0]},readDouble:function(e,t){if(t<0)throw\"littleEndianByteArrayParser.readDouble: position cannot be less than 0\";if(t+8>e.length)throw\"littleEndianByteArrayParser.readDouble: attempt to read past end of buffer\";var r=new Uint8Array(8);return r[0]=e[t],r[1]=e[t+1],r[2]=e[t+2],r[3]=e[t+3],r[4]=e[t+4],r[5]=e[t+5],r[6]=e[t+6],r[7]=e[t+7],new Float64Array(r.buffer)[0]}};function G(e){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};if(void 0===e)throw\"dicomParser.readPart10Header: missing required parameter 'byteArray'\";var o=i.TransferSyntaxUID,s=new J(M,e);return function(){var e=function(){if(s.getSize()<=132&&o)return!1;if(s.seek(128),\"DICM\"===s.readFixedString(4))return!0;if(!(i||{}).TransferSyntaxUID)throw\"dicomParser.readPart10Header: DICM prefix not found at location 132 - this is not a valid DICOM P10 file.\";return s.seek(0),!1}(),t=[],r={};if(!e)return s.position=0,{elements:{x00020010:{tag:\"x00020010\",vr:\"UI\",Value:o}},warnings:t};for(;s.position<s.byteArray.length;){var a=s.position,n=B(s,t);if(\"x0002ffff\"<n.tag){s.position=a;break}n.parser=M,r[n.tag]=n}return(e=new w(s.byteArrayParser,s.byteArray,r)).warnings=s.warnings,e.position=s.position,e}()}var z=\"1.2.840.10008.1.2.2\";function V(i){var o=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};if(void 0===i)throw new Error(\"dicomParser.parseDicom: missing required parameter 'byteArray'\");var e,a=function(e){if(void 0===e.elements.x00020010)throw new Error(\"dicomParser.parseDicom: missing required meta header attribute 0002,0010\");e=e.elements.x00020010;return e&&e.Value||b(i,e.dataOffset,e.length)};function t(t){var e=a(t),r=\"1.2.840.10008.1.2\"!==e,e=function(e,t){var r=\"[object process]\"===Object.prototype.toString.call(\"undefined\"!=typeof process?process:0);if(\"1.2.840.10008.1.2.1.99\"!==e)return new J(e===z?N:M,i,t);if(o&&o.inflater){e=o.inflater(i,t);return new J(M,e,0)}if(!0==r){var a=s(0),n=j(i,t,i.length-t),a=a.inflateRawSync(n),n=k(i,a.length+t);return i.copy(n,0,0,t),a.copy(n,t),new J(M,n,0)}if(\"undefined\"==typeof pako)throw\"dicomParser.parseDicom: no inflater available to handle deflate transfer syntax\";return a=i.slice(t),n=pako.inflateRaw(a),(a=k(i,n.length+t)).set(i.slice(0,t),0),a.set(n,t),new J(M,a,0)}(e,t.position),t=new w(e.byteArrayParser,e.byteArray,{});t.warnings=e.warnings;try{(r?q:T)(t,e,e.byteArray.length,o)}catch(e){throw{exception:e,dataSet:t}}return t}return function(e,t){for(var r in e.elements)e.elements.hasOwnProperty(r)&&(t.elements[r]=e.elements[r]);return void 0!==e.warnings&&(t.warnings=e.warnings.concat(t.warnings)),t}(e=G(i,o),t(e))}var R=function(e,t,r){for(var a=0,n=t;n<t+r;n++)a+=e[n].length;return a};function _(e,t,r,a,n){if(n=n||t.fragments,void 0===e)throw\"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'dataSet'\";if(void 0===t)throw\"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'pixelDataElement'\";if(void 0===r)throw\"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'startFragmentIndex'\";if(void 0===(a=a||1))throw\"dicomParser.readEncapsulatedPixelDataFromFragments: missing required parameter 'numFragments'\";if(\"x7fe00010\"!==t.tag)throw\"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010\";if(!0!==t.encapsulatedPixelData)throw\"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data\";if(!0!==t.hadUndefinedLength)throw\"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data\";if(void 0===t.basicOffsetTable)throw\"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data\";if(void 0===t.fragments)throw\"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data\";if(t.fragments.length<=0)throw\"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data\";if(r<0)throw\"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragmentIndex' must be >= 0\";if(r>=t.fragments.length)throw\"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragmentIndex' must be < number of fragments\";if(a<1)throw\"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'numFragments' must be > 0\";if(r+a>t.fragments.length)throw\"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragment' + 'numFragments' < number of fragments\";var i=new J(e.byteArrayParser,e.byteArray,t.dataOffset),t=S(i);if(\"xfffee000\"!==t.tag)throw\"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000\";i.seek(t.length);var o=i.position;if(1===a)return j(i.byteArray,o+n[r].offset+8,n[r].length);for(var t=R(n,r,a),s=k(i.byteArray,t),d=0,f=r;f<r+a;f++)for(var l=o+n[f].offset+8,u=0;u<n[f].length;u++)s[d++]=i.byteArray[l++];return s}var H=function(e,t){for(var r=0;r<e.length;r++)if(e[r].offset===t)return r},Q=function(e,t,r,a){if(e===t.length-1)return r.length-a;for(var n=t[e+1],i=a+1;i<r.length;i++)if(r[i].offset===n)return i-a;throw\"dicomParser.calculateNumberOfFragmentsForFrame: could not find fragment with offset matching basic offset table\"};function W(e,t,r,a,n){if(a=a||t.basicOffsetTable,n=n||t.fragments,void 0===e)throw\"dicomParser.readEncapsulatedImageFrame: missing required parameter 'dataSet'\";if(void 0===t)throw\"dicomParser.readEncapsulatedImageFrame: missing required parameter 'pixelDataElement'\";if(void 0===r)throw\"dicomParser.readEncapsulatedImageFrame: missing required parameter 'frameIndex'\";if(void 0===a)throw\"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' does not have basicOffsetTable\";if(\"x7fe00010\"!==t.tag)throw\"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to non pixel data tag (expected tag = x7fe00010)\";if(!0!==t.encapsulatedPixelData)throw\"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have encapsulated pixel data\";if(!0!==t.hadUndefinedLength)throw\"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have undefined length\";if(void 0===t.fragments)throw\"dicomParser.readEncapsulatedImageFrame: parameter 'pixelDataElement' refers to pixel data element that does not have fragments\";if(0===a.length)throw\"dicomParser.readEncapsulatedImageFrame: basicOffsetTable has zero entries\";if(r<0)throw\"dicomParser.readEncapsulatedImageFrame: parameter 'frameIndex' must be >= 0\";if(r>=a.length)throw\"dicomParser.readEncapsulatedImageFrame: parameter 'frameIndex' must be < basicOffsetTable.length\";var i=a[r],i=H(n,i);if(void 0===i)throw\"dicomParser.readEncapsulatedImageFrame: unable to find fragment that matches basic offset table entry\";return _(e,t,i,Q(r,a,n,i),n)}var $=!1;function K(e,t,r){if($||($=!0,console&&console.log&&console.log(\"WARNING: dicomParser.readEncapsulatedPixelData() has been deprecated\")),void 0===e)throw\"dicomParser.readEncapsulatedPixelData: missing required parameter 'dataSet'\";if(void 0===t)throw\"dicomParser.readEncapsulatedPixelData: missing required parameter 'element'\";if(void 0===r)throw\"dicomParser.readEncapsulatedPixelData: missing required parameter 'frame'\";if(\"x7fe00010\"!==t.tag)throw\"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to non pixel data tag (expected tag = x7fe00010)\";if(!0!==t.encapsulatedPixelData)throw\"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to pixel data element that does not have encapsulated pixel data\";if(!0!==t.hadUndefinedLength)throw\"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to pixel data element that does not have encapsulated pixel data\";if(void 0===t.basicOffsetTable)throw\"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to pixel data element that does not have encapsulated pixel data\";if(void 0===t.fragments)throw\"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to pixel data element that does not have encapsulated pixel data\";if(r<0)throw\"dicomParser.readEncapsulatedPixelData: parameter 'frame' must be >= 0\";return 0!==t.basicOffsetTable.length?W(e,t,r):_(e,t,0,t.fragments.length)}t.default={isStringVr:d,isPrivateTag:f,parsePN:a,parseTM:n,parseDA:o,explicitElementToString:l,explicitDataSetToJS:u,createJPEGBasicOffsetTable:p,parseDicomDataSetExplicit:q,parseDicomDataSetImplicit:T,readFixedString:b,alloc:k,version:L,bigEndianByteArrayParser:N,ByteStream:J,sharedCopy:j,DataSet:w,findAndSetUNElementLength:y,findEndOfEncapsulatedElement:g,findItemDelimitationItemAndSetElementLength:x,littleEndianByteArrayParser:M,parseDicom:V,readDicomElementExplicit:B,readDicomElementImplicit:A,readEncapsulatedImageFrame:W,readEncapsulatedPixelData:K,readEncapsulatedPixelDataFromFragments:_,readPart10Header:G,readSequenceItemsExplicit:I,readSequenceItemsImplicit:F,readSequenceItem:S,readTag:h,LEI:\"1.2.840.10008.1.2\",LEE:\"1.2.840.10008.1.2.1\"}}],i={},n.m=a,n.c=i,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var a in t)n.d(r,a,function(e){return t[e]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=1);function n(e){if(i[e])return i[e].exports;var t=i[e]={i:e,l:!1,exports:{}};return a[e].call(t.exports,t,t.exports,n),t.l=!0,t.exports}var a,i});\n//# sourceMappingURL=dicomParser.min.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// no jsonp function","export enum FetchType {\n /**\n * Fetch only the part of the file according to the offsets provided.\n */\n BYTES_OPTIMIZED,\n /**\n * Stream the file and returns the part of the file if offsets are provided.\n * Or returns the whole file.\n */\n API_OPTIMIZED\n}\n\nexport enum RequestType {\n FRAME,\n THUMBNAIL,\n SERIES_METADATA,\n INSTANCE_METADATA\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst proxyMarker = Symbol(\"Comlink.proxy\");\nconst createEndpoint = Symbol(\"Comlink.endpoint\");\nconst releaseProxy = Symbol(\"Comlink.releaseProxy\");\nconst finalizer = Symbol(\"Comlink.finalizer\");\nconst throwMarker = Symbol(\"Comlink.thrown\");\nconst isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n};\n/**\n * Internal transfer handler to handle thrown exceptions.\n */\nconst throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n};\n/**\n * Allows customizing the serialization of certain values.\n */\nconst transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n]);\nfunction isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n}\nfunction expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n const pendingListeners = new Map();\n ep.addEventListener(\"message\", function handleMessage(ev) {\n const { data } = ev;\n if (!data || !data.id) {\n return;\n }\n const resolver = pendingListeners.get(data.id);\n if (!resolver) {\n return;\n }\n try {\n resolver(data);\n }\n finally {\n pendingListeners.delete(data.id);\n }\n });\n return createProxy(ep, pendingListeners, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction releaseEndpoint(ep) {\n return requestResponseMessage(ep, new Map(), {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n}\nconst proxyCounter = new WeakMap();\nconst proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\nfunction registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n}\nfunction unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n}\nfunction createProxy(ep, pendingListeners, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n pendingListeners.clear();\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, pendingListeners, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, pendingListeners, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, pendingListeners, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === \"bind\") {\n return createProxy(ep, pendingListeners, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, pendingListeners, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nconst transferCache = new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = globalThis, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context),\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, pendingListeners, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n pendingListeners.set(id, resolve);\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n}\n\nexport { createEndpoint, expose, finalizer, proxy, proxyMarker, releaseProxy, transfer, transferHandlers, windowEndpoint, wrap };\n//# sourceMappingURL=comlink.mjs.map\n","import { type Remote, wrap } from 'comlink';\n\nimport type { FileStreamingMessageEvent } from '../types';\n\nclass WebWorkerManager {\n private workerRegistry: Record<string, { instance: Remote<Worker>; nativeWorker: Worker }> = {};\n\n public registerWorker(name: string, workerFn: () => Worker): void {\n try {\n const worker: Worker = workerFn();\n if (!worker) {\n throw new Error(`WorkerFn of worker ${name} is not creating a worker`);\n }\n\n this.workerRegistry[name] = {\n instance: wrap(worker),\n nativeWorker: worker\n };\n } catch (error) {\n console.warn(error);\n }\n }\n\n public async executeTask(\n workerName: string,\n taskName: string,\n options: Record<string, unknown> | unknown\n ): Promise<void | ArrayBufferLike> {\n const worker = this.workerRegistry[workerName]?.instance;\n if (!worker) {\n throw new Error(`Worker ${workerName} not registered`);\n }\n\n try {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return await worker[taskName](options);\n } catch (error) {\n console.error(`Error executing task \"${taskName}\" on worker \"${workerName}\":`, error);\n throw new Error(`Task \"${taskName}\" failed: ${(error as Error).message}`);\n }\n }\n\n public addEventListener(\n workerName: string,\n eventType: keyof WorkerEventMap,\n listener: (evt: FileStreamingMessageEvent | ErrorEvent) => unknown\n ): void {\n const worker = this.workerRegistry[workerName];\n if (!worker) {\n console.error(`Worker type '${workerName}' is not registered.`);\n return;\n }\n\n worker.nativeWorker.addEventListener(eventType, listener);\n }\n\n public removeEventListener(\n workerName: string,\n eventType: keyof WorkerEventMap,\n listener: (evt: FileStreamingMessageEvent | ErrorEvent) => unknown\n ): void {\n const worker = this.workerRegistry[workerName];\n if (!worker) {\n console.error(`Worker type '${workerName}' is not registered.`);\n return;\n }\n\n worker.nativeWorker.removeEventListener(eventType, listener);\n }\n}\n\nconst webWorkerManager = new WebWorkerManager();\n\nexport function getWebWorkerManager(): WebWorkerManager {\n return webWorkerManager;\n}\n","import type { FileManagerOptions } from './types';\nimport { getWebWorkerManager } from './webWorker/workerManager';\n\nclass FileManager {\n private files: Record<string, { data: Uint8Array; position: number }> = {};\n private fileStreamingWorkerName: string;\n\n constructor({ fileStreamingWorkerName }: FileManagerOptions) {\n this.fileStreamingWorkerName = fileStreamingWorkerName;\n }\n\n set(url: string, file: { data: Uint8Array; position: number }): void {\n this.files[url] = file;\n }\n\n get(url: string, offsets?: { startByte: number; endByte: number }): Uint8Array | null {\n if (!this.files[url] || (offsets && this.files[url].position <= offsets.endByte)) {\n return null;\n }\n\n return offsets ? this.files[url].data.slice(offsets.startByte, offsets.endByte) : this.files[url].data;\n }\n\n setPosition(url: string, position: number): void {\n if (this.files[url]) {\n this.files[url].position = position;\n }\n }\n\n getPosition(url: string): number {\n return this.files[url]?.position;\n }\n\n append(url: string, chunk: Uint8Array, position: number): void {\n if (this.files[url] && position) {\n this.files[url].data.set(chunk, position - chunk.length);\n this.setPosition(url, position);\n }\n }\n\n getTotalSize(): number {\n return Object.entries(this.files).reduce((total, [url, { position }]) => {\n return url.includes('?bytes=') ? total : total + position;\n }, 0);\n }\n\n remove(url: string): void {\n const removedSize = this.getPosition(url);\n delete this.files[url];\n\n if (url.includes('?bytes=')) {\n return;\n }\n\n const workerManager = getWebWorkerManager();\n workerManager.executeTask(this.fileStreamingWorkerName, 'decreaseFetchedSize', removedSize);\n }\n\n purge(): void {\n const totalSize = this.getTotalSize();\n this.files = {};\n\n const workerManager = getWebWorkerManager();\n workerManager.executeTask(this.fileStreamingWorkerName, 'decreaseFetchedSize', totalSize);\n }\n}\n\nexport default FileManager;\n","export const DOMAIN = 'https://storage.googleapis.com';\n\nexport const FILE_EXTENSIONS = ['.tar', '.zip'];\n\nexport const URL_VALIDATION_STRING = '/dicomweb/';\n","export const FILE_PARTIAL_WORKER_NAME = 'filePartial';\nexport const FILE_STREAMING_WORKER_NAME = 'fileStreaming';\n\nexport const THRESHOLD = 10000;\n","import * as Enums from './enums';\nimport * as url from './url';\nimport * as worker from './worker';\n\nconst constants = { Enums, url, worker };\n\nexport { Enums, url, worker };\nexport default constants;\n","import constants, { Enums } from '../constants';\nimport type { JsonMetadata, MetadataUrlCreationParams, ParsedWadoRsUrlDetails } from '../types';\n\nexport function parseWadorsURL(url: string, domain: string): ParsedWadoRsUrlDetails | undefined {\n if (!url.includes(constants.url.URL_VALIDATION_STRING)) {\n return;\n }\n\n const filePath = url.split(domain + '/')[1];\n\n const prefix = filePath.split('/studies')[0];\n const prefixParts = prefix.split('/');\n\n const bucketName = prefixParts[0];\n const bucketPrefix = prefixParts.slice(1).join('/');\n\n const imagePath = filePath.split(prefix + '/')[1];\n const imageParts = imagePath.split('/');\n\n const studyInstanceUID = imageParts[1];\n const seriesInstanceUID = imageParts[3];\n let sopInstanceUID = '',\n frameNumber = 1,\n type: Enums.RequestType;\n\n switch (true) {\n case imageParts.includes('thumbnail'):\n type = Enums.RequestType.THUMBNAIL;\n break;\n case imageParts.includes('metadata'):\n if (imageParts.includes('instances')) {\n sopInstanceUID = imageParts[5];\n type = Enums.RequestType.INSTANCE_METADATA;\n } else {\n type = Enums.RequestType.SERIES_METADATA;\n }\n break;\n case imageParts.includes('frames'):\n sopInstanceUID = imageParts[5];\n frameNumber = +imageParts[7];\n type = Enums.RequestType.FRAME;\n break;\n default:\n throw new Error('Invalid type of request');\n }\n\n return {\n type,\n bucketName,\n bucketPrefix,\n studyInstanceUID,\n seriesInstanceUID,\n sopInstanceUID,\n frameNumber\n };\n}\n\nexport function getFrameDetailsFromMetadata(\n seriesMetadata: JsonMetadata,\n sopInstanceUID: string,\n frameIndex: number,\n bucketDetails: { domain: string; bucketName: string; bucketPrefix: string }\n): {\n url?: string;\n startByte?: number;\n endByte?: number;\n thumbnailUrl: string | undefined;\n isMultiframe?: boolean;\n} {\n if (!seriesMetadata || !seriesMetadata.cod?.instances) {\n throw new Error('Invalid seriesMetadata provided.');\n }\n\n if (frameIndex === null || frameIndex === undefined) {\n throw new Error('Frame index is required.');\n }\n\n const { domain, bucketName, bucketPrefix } = bucketDetails;\n let thumbnailUrl;\n\n if (seriesMetadata.thumbnail) {\n const thumbnailGsUtilUri = seriesMetadata.thumbnail.uri;\n thumbnailUrl = `${domain}/${thumbnailGsUtilUri.split('gs://')[1]}`;\n }\n\n const instanceFound = Object.values(seriesMetadata.cod.instances).find(\n (instance) => instance.metadata['00080018']?.Value?.[0] === sopInstanceUID\n );\n\n if (!instanceFound) {\n return { thumbnailUrl };\n }\n\n const { url, uri, headers: offsetHeaders, offset_tables } = instanceFound;\n const modifiedUrl = handleUrl(url || uri, domain, bucketName, bucketPrefix);\n\n const { CustomOffsetTable, CustomOffsetTableLengths } = offset_tables;\n\n let sliceStart: number | undefined,\n sliceEnd: number | undefined,\n isMultiframe = false;\n if (CustomOffsetTable?.length && CustomOffsetTableLengths?.length) {\n sliceStart = CustomOffsetTable[frameIndex];\n sliceEnd = sliceStart + CustomOffsetTableLengths[frameIndex];\n isMultiframe = true;\n }\n\n const { start_byte: fileStartByte, end_byte: fileEndByte } = offsetHeaders;\n\n const startByte = sliceStart !== undefined ? fileStartByte + sliceStart : fileStartByte;\n const endByte = sliceEnd !== undefined ? fileStartByte + sliceEnd : fileEndByte;\n\n return {\n url: modifiedUrl,\n startByte,\n endByte,\n thumbnailUrl,\n isMultiframe\n };\n}\n\nexport function handleUrl(url: string, domain: string, bucketName: string, bucketPrefix: string): string {\n let modifiedUrl = url;\n\n const matchingExtension = constants.url.FILE_EXTENSIONS.find((extension) => url.includes(extension));\n\n if (matchingExtension) {\n const fileParts = url.split(matchingExtension);\n modifiedUrl = fileParts[0] + matchingExtension;\n }\n\n const filePath = modifiedUrl.split('studies/')[1];\n modifiedUrl = `${domain}/${bucketName}/${bucketPrefix ? bucketPrefix + '/' : ''}studies/${filePath}`;\n\n return modifiedUrl;\n}\n\nexport function createMetadataJsonUrl(params: MetadataUrlCreationParams): string | undefined {\n const { domain = constants.url.DOMAIN, bucketName, bucketPrefix, studyInstanceUID, seriesInstanceUID } = params;\n\n if (!bucketName || !bucketPrefix || !studyInstanceUID || !seriesInstanceUID) {\n return;\n }\n\n return `${domain}/${bucketName}/${bucketPrefix}/studies/${studyInstanceUID}/series/${seriesInstanceUID}/metadata.json`;\n}\n","import { createMetadataJsonUrl } from './classes/utils';\nimport type { JsonMetadata, MetadataUrlCreationParams } from './types';\n\nclass MetadataManager {\n private metadata: Record<string, JsonMetadata> = {};\n\n constructor() {}\n\n public getMetadataFromCache(url: string) {\n return this.metadata[url];\n }\n\n public async getMetadata(params: MetadataUrlCreationParams, headers: Record<string, string>): Promise<JsonMetadata | null> {\n const url = createMetadataJsonUrl(params);\n\n if (!url) {\n throw new Error('Error creating metadata json url');\n }\n\n const cachedMetadata = this.getMetadataFromCache(url);\n if (cachedMetadata) {\n return cachedMetadata;\n }\n\n try {\n const response = await fetch(url, { headers });\n if (!response.ok) {\n throw new Error(`Failed to fetch metadata: ${response.statusText}`);\n }\n const data = await response.json();\n this.metadata[url] = data;\n return data;\n } catch (error) {\n console.error(error);\n throw error;\n }\n }\n}\n\nexport default MetadataManager;\n","import { parseDicom } from 'dicom-parser';\n\nimport FileManager from '../fileManager';\nimport MetadataManager from '../metadataManager';\nimport { getFrameDetailsFromMetadata, parseWadorsURL } from './utils';\nimport { getWebWorkerManager } from '../webWorker/workerManager';\nimport { registerWorkers } from '../webWorker/registerWorkers';\nimport constants, { Enums } from '../constants';\nimport type {\n CodDicomWebServerOptions,\n InstanceMetadata,\n JsonMetadata,\n SeriesMetadata,\n CODRequestOptions,\n FileRequestOptions,\n FileStreamingMessageEvent\n} from '../types';\n\nclass CodDicomWebServer {\n private filePromises: Record<string, Promise<void>> = {};\n private options: CodDicomWebServerOptions = {\n maxWorkerFetchSize: Infinity,\n domain: constants.url.DOMAIN\n };\n private fileManager;\n private metadataManager;\n private seriesUidFileUrls: Record<string, string[]> = {};\n\n constructor(args: { maxWorkerFetchSize?: number; domain?: string } = {}) {\n const { maxWorkerFetchSize, domain } = args;\n\n this.options.maxWorkerFetchSize = maxWorkerFetchSize || this.options.maxWorkerFetchSize;\n this.options.domain = domain || this.options.domain;\n const fileStreamingWorkerName = constants.worker.FILE_STREAMING_WORKER_NAME;\n const filePartialWorkerName = constants.worker.FILE_PARTIAL_WORKER_NAME;\n this.fileManager = new FileManager({ fileStreamingWorkerName });\n this.metadataManager = new MetadataManager();\n\n registerWorkers({ fileStreamingWorkerName, filePartialWorkerName }, this.options.maxWorkerFetchSize);\n }\n\n public setOptions = (newOptions: Partial<CodDicomWebServerOptions>): void => {\n Object.keys(newOptions).forEach((key) => {\n if (newOptions[key] !== undefined) {\n this.options[key] = newOptions[key];\n }\n });\n };\n\n public getOptions = (): CodDicomWebServerOptions => {\n return this.options;\n };\n\n public addFileUrl(seriesInstanceUID: string, url: string): void {\n if (this.seriesUidFileUrls[seriesInstanceUID]) {\n this.seriesUidFileUrls[seriesInstanceUID].push(url);\n } else {\n this.seriesUidFileUrls[seriesInstanceUID] = [url];\n }\n }\n\n public async fetchCod(\n wadorsUrl: string,\n imageId: string,\n headers: Record<string, string> | undefined = {},\n { useSharedArrayBuffer = false, fetchType = constants.Enums.FetchType.API_OPTIMIZED }: CODRequestOptions = {}\n ): Promise<ArrayBufferLike | InstanceMetadata | SeriesMetadata | undefined> {\n try {\n if (!wadorsUrl) {\n throw new Error('Url not provided');\n }\n\n const parsedDetails = parseWadorsURL(wadorsUrl, this.options.domain);\n\n if (parsedDetails) {\n const { type, bucketName, bucketPrefix, studyInstanceUID, seriesInstanceUID, sopInstanceUID, frameNumber } =\n parsedDetails;\n\n const metadataJson = await this.metadataManager.getMetadata(\n {\n domain: this.options.domain,\n bucketName,\n bucketPrefix,\n studyInstanceUID,\n seriesInstanceUID\n },\n headers\n );\n\n if (!metadataJson) {\n throw new Error(`Metadata not found for ${wadorsUrl}`);\n }\n\n const {\n url: fileUrl,\n startByte,\n endByte,\n thumbnailUrl,\n isMultiframe\n } = getFrameDetailsFromMetadata(metadataJson, sopInstanceUID, frameNumber - 1, {\n domain: this.options.domain,\n bucketName,\n bucketPrefix\n });\n\n switch (type) {\n case Enums.RequestType.THUMBNAIL:\n if (!thumbnailUrl) {\n throw new Error(`Thumbnail not found for ${wadorsUrl}`);\n }\n\n this.addFileUrl(seriesInstanceUID, thumbnailUrl);\n\n return this.fetchFile(thumbnailUrl, headers, {\n useSharedArrayBuffer\n });\n\n case Enums.RequestType.FRAME: {\n if (!fileUrl) {\n throw new Error('Url not found for frame');\n }\n\n let urlWithBytes: string = fileUrl;\n if (fetchType === Enums.FetchType.BYTES_OPTIMIZED) {\n urlWithBytes = `${fileUrl}?bytes=${startByte}-${endByte}`;\n }\n\n this.addFileUrl(seriesInstanceUID, fileUrl);\n\n return this.fetchFile(urlWithBytes, headers, {\n offsets: { startByte, endByte },\n useSharedArrayBuffer,\n fetchType\n }).then((arraybuffer) => {\n if (!arraybuffer?.byteLength) {\n throw new Error('File Arraybuffer is not found');\n }\n\n if (isMultiframe) {\n return arraybuffer;\n } else {\n const dataSet = parseDicom(new Uint8Array(arraybuffer));\n\n const pixelDataElement = dataSet.elements.x7fe00010;\n let { dataOffset, length } = pixelDataElement;\n if (pixelDataElement.hadUndefinedLength && pixelDataElement.fragments) {\n ({ position: dataOffset, length } = pixelDataElement.fragments[0]);\n } else {\n // Adding 8 bytes for 4 bytes tag + 4 bytes length for uncomppressed pixelData\n dataOffset += 8;\n }\n\n return arraybuffer.slice(dataOffset, dataOffset + length);\n }\n });\n }\n case Enums.RequestType.SERIES_METADATA:\n case Enums.RequestType.INSTANCE_METADATA:\n return this.parseMetadata(metadataJson, type, sopInstanceUID);\n\n default:\n throw new Error(`Unsupported request type: ${type}`);\n }\n } else {\n return new Promise((resolve, reject) => {\n return this.fetchFile(wadorsUrl, headers, { useSharedArrayBuffer })\n .then((result) => {\n if (result instanceof ArrayBuffer) {\n try {\n const dataSet = parseDicom(new Uint8Array(result));\n const seriesInstanceUID = dataSet.string('0020000e');\n\n if (seriesInstanceUID) {\n this.addFileUrl(seriesInstanceUID, wadorsUrl);\n }\n } catch (error) {\n console.warn('CodDicomWebServer.ts: There is some issue parsing the file.', error);\n }\n }\n resolve(result);\n })\n .catch((error) => reject(error));\n });\n }\n } catch (error) {\n const newError = new Error(`CodDicomWebServer.ts: ${error.message || 'An error occured when fetching the COD'}`);\n console.error(newError);\n throw newError;\n }\n }\n\n public async fetchFile(\n fileUrl: string,\n headers: Record<string, string>,\n { offsets, useSharedArrayBuffer = false, fetchType = constants.Enums.FetchType.API_OPTIMIZED }: FileRequestOptions = {}\n ): Promise<ArrayBufferLike | undefined> {\n const isBytesOptimized = fetchType === Enums.FetchType.BYTES_OPTIMIZED;\n const extractedFile = this.fileManager.get(fileUrl, isBytesOptimized ? undefined : offsets);\n\n if (extractedFile) {\n return new Promise<ArrayBufferLike>((resolveRequest, rejectRequest) => {\n try {\n resolveRequest(extractedFile.buffer);\n } catch (error) {\n rejectRequest(error);\n }\n });\n }\n\n const { maxWorkerFetchSize } = this.getOptions();\n const webWorkerManager = getWebWorkerManager();\n const { FILE_STREAMING_WORKER_NAME, FILE_PARTIAL_WORKER_NAME, THRESHOLD } = constants.worker;\n let tarPromise: Promise<void>;\n\n if (!this.filePromises[fileUrl]) {\n tarPromise = new Promise<void>((resolveFile, rejectFile) => {\n if (this.fileManager.getTotalSize() + THRESHOLD > maxWorkerFetchSize) {\n throw new Error(`CodDicomWebServer.ts: Maximum size(${maxWorkerFetchSize}) for fetching files reached`);\n }\n\n const FetchTypeEnum = constants.Enums.FetchType;\n\n if (fetchType === FetchTypeEnum.API_OPTIMIZED) {\n const handleFirstChunk = (evt: FileStreamingMessageEvent | ErrorEvent): void => {\n if (evt instanceof ErrorEvent) {\n rejectFile(evt.error);\n throw evt.error;\n }\n\n const { url, position, fileArraybuffer } = evt.data;\n\n if (url === fileUrl && fileArraybuffer) {\n this.fileManager.set(url, { data: fileArraybuffer, position });\n\n webWorkerManager.removeEventListener(FILE_STREAMING_WORKER_NAME, 'message', handleFirstChunk);\n }\n };\n\n webWorkerManager.addEventListener(FILE_STREAMING_WORKER_NAME, 'message', handleFirstChunk);\n webWorkerManager\n .executeTask(FILE_STREAMING_WORKER_NAME, 'stream', {\n url: fileUrl,\n headers: headers,\n useSharedArrayBuffer\n })\n .then(() => {\n resolveFile();\n })\n .catch((error) => {\n webWorkerManager.removeEventListener(FILE_STREAMING_WORKER_NAME, 'message', handleFirstChunk);\n rejectFile(error);\n })\n .then(() => delete this.filePromises[fileUrl]);\n } else if (fetchType === FetchTypeEnum.BYTES_OPTIMIZED && offsets) {\n const { startByte, endByte } = offsets;\n headers['Range'] = `bytes=${startByte}-${endByte - 1}`;\n const url = fileUrl.split('?bytes=')[0];\n\n webWorkerManager\n .executeTask(FILE_PARTIAL_WORKER_NAME, 'partial', {\n url: url,\n headers: headers,\n useSharedArrayBuffer\n })\n .then((data) => {\n if (data) {\n this.fileManager.set(fileUrl, {\n data: new Uint8Array(data),\n position: data.byteLength\n });\n resolveFile();\n } else {\n rejectFile(new Error(`File - ${url} not found`));\n }\n })\n .catch((error) => {\n rejectFile(error);\n })\n .then(() => delete this.filePromises[fileUrl]);\n } else {\n rejectFile(new Error('CodDicomWebServer.ts: Offsets is needed in bytes optimized fetching'));\n }\n });\n\n this.filePromises[fileUrl] = tarPromise;\n } else {\n tarPromise = this.filePromises[fileUrl];\n }\n\n return new Promise<ArrayBufferLike | undefined>((resolveRequest, rejectRequest) => {\n let requestResolved = false;\n\n const handleChunkAppend = (evt: FileStreamingMessageEvent | ErrorEvent): void => {\n if (evt instanceof ErrorEvent) {\n rejectRequest(evt.message);\n throw evt.error;\n }\n\n const { url, position, chunk, isAppending } = evt.data;\n\n if (isAppending) {\n if (chunk) {\n this.fileManager.append(url, chunk, position);\n } else {\n this.fileManager.setPosition(url, position);\n }\n }\n\n if (!requestResolved && url === fileUrl && offsets && position > offsets.endByte) {\n try {\n const file = this.fileManager.get(url, offsets);\n requestResolved = true;\n resolveRequest(file?.buffer);\n } catch (error) {\n rejectRequest(error);\n }\n }\n };\n\n if (offsets && !isBytesOptimized) {\n webWorkerManager.addEventListener(FILE_STREAMING_WORKER_NAME, 'message', handleChunkAppend);\n }\n\n tarPromise\n .then(() => {\n if (!requestResolved) {\n const file = this.fileManager.get(fileUrl, isBytesOptimized ? undefined : offsets);\n requestResolved = true;\n resolveRequest(file?.buffer);\n }\n })\n .catch((error) => {\n rejectRequest(error);\n })\n .then(() => {\n webWorkerManager.removeEventListener(FILE_STREAMING_WORKER_NAME, 'message', handleChunkAppend);\n });\n });\n }\n\n public delete(seriesInstanceUID: string): void {\n const fileUrls = this.seriesUidFileUrls[seriesInstanceUID];\n if (fileUrls) {\n fileUrls.forEach((fileUrl) => {\n this.fileManager.remove(fileUrl);\n });\n }\n delete this.seriesUidFileUrls[seriesInstanceUID];\n }\n\n public deleteAll(): void {\n Object.values(this.seriesUidFileUrls).forEach((fileUrls) => {\n fileUrls.forEach((fileUrl) => {\n this.fileManager.remove(fileUrl);\n });\n });\n this.seriesUidFileUrls = {};\n }\n\n public parseMetadata(\n metadata: JsonMetadata,\n type: Enums.RequestType,\n sopInstanceUID: string\n ): InstanceMetadata | SeriesMetadata {\n if (type === Enums.RequestType.INSTANCE_METADATA) {\n return Object.values(metadata.cod.instances).find(\n (instance) => instance.metadata['00080018']?.Value?.[0] === sopInstanceUID\n )?.metadata;\n } else {\n return Object.values(metadata.cod.instances).map((instance) => instance.metadata);\n }\n }\n}\n\nexport default CodDicomWebServer;\n","import { getWebWorkerManager } from './workerManager';\n\nexport function registerWorkers(\n workerNames: {\n fileStreamingWorkerName: string;\n filePartialWorkerName: string;\n },\n maxFetchSize: number\n): void {\n const { fileStreamingWorkerName, filePartialWorkerName } = workerNames;\n const workerManager = getWebWorkerManager();\n\n // fileStreaming worker\n const streamingWorkerFn = (): Worker =>\n new Worker(new URL('./workers/fileStreamingWorker.ts', import.meta.url), {\n name: fileStreamingWorkerName\n });\n\n workerManager.registerWorker(fileStreamingWorkerName, streamingWorkerFn);\n workerManager.executeTask(fileStreamingWorkerName, 'setMaxFetchSize', maxFetchSize);\n\n // filePartial worker\n const partialWorkerFn = (): Worker =>\n new Worker(new URL('./workers/filePartialWorker.ts', import.meta.url), {\n name: filePartialWorkerName\n });\n\n workerManager.registerWorker(filePartialWorkerName, partialWorkerFn);\n}\n","import { FetchType } from './constants/enums';\nimport CodDicomWebServer from './classes/CodDicomWebServer';\n\nexport { FetchType, CodDicomWebServer };\nexport default { FetchType, CodDicomWebServer };\n"],"names":["root","factory","exports","module","define","amd","a","i","self","r","e","t","s","d","f","n","o","l","u","p","q","T","b","k","L","N","J","j","w","y","g","x","M","V","B","A","W","K","_","G","I","F","S","h","AE","AS","AT","CS","DA","DS","DT","FL","FD","IS","LO","LT","OB","OD","OF","OW","PN","SH","SL","SQ","SS","ST","TM","UI","UL","UN","UR","US","UT","parseInt","isNaN","familyName","split","givenName","middleName","prefix","suffix","length","substring","Math","pow","concat","hours","minutes","seconds","fractionalSeconds","year","month","day","vr","tag","call","toString","string","uint32","toUpperCase","uint16","int16","int32","double","float","omitPrivateAttibutes","maxElementLength","elements","items","push","dataSet","dataOffset","c","byteArray","m","fragments","position","encapsulatedPixelData","hadUndefinedLength","basicOffsetTable","offset","readUint16","substr","readUint32","seek","warnings","String","fromCharCode","v","enumerable","configurable","writable","Object","defineProperty","key","P","parser","TypeError","this","byteArrayParser","value","readInt16","readInt32","readFloat","readDouble","match","Value","trim","replace","parseFloat","prototype","E","D","vrCallback","O","U","readFixedString","arguments","untilTag","Buffer","alloc","Uint8Array","Float32Array","buffer","Float64Array","slice","byteOffset","C","TransferSyntaxUID","getSize","x00020010","z","Error","process","inflater","inflateRawSync","copy","pako","inflateRaw","set","exception","hasOwnProperty","R","H","Q","$","console","log","default","isStringVr","isPrivateTag","parsePN","parseTM","parseDA","explicitElementToString","explicitDataSetToJS","createJPEGBasicOffsetTable","parseDicomDataSetExplicit","parseDicomDataSetImplicit","version","bigEndianByteArrayParser","ByteStream","sharedCopy","DataSet","findAndSetUNElementLength","findEndOfEncapsulatedElement","findItemDelimitationItemAndSetElementLength","littleEndianByteArrayParser","parseDicom","readDicomElementExplicit","readDicomElementImplicit","readEncapsulatedImageFrame","readEncapsulatedPixelData","readEncapsulatedPixelDataFromFragments","readPart10Header","readSequenceItemsExplicit","readSequenceItemsImplicit","readSequenceItem","readTag","LEI","LEE","get","Symbol","toStringTag","__esModule","create","bind","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","definition","chunkId","globalThis","Function","window","obj","prop","scriptUrl","importScripts","location","document","currentScript","tagName","src","scripts","getElementsByTagName","test","baseURI","href","FetchType","RequestType","proxyMarker","createEndpoint","releaseProxy","finalizer","throwMarker","isObject","val","transferHandlers","Map","canHandle","serialize","port1","port2","MessageChannel","expose","deserialize","port","start","wrap","serialized","isError","message","name","stack","assign","ep","allowedOrigins","addEventListener","callback","ev","data","origin","allowedOrigin","RegExp","isAllowedOrigin","warn","id","type","path","argumentList","map","fromWireValue","returnValue","parent","reduce","rawValue","apply","proxy","transfers","transferCache","transfer","Promise","resolve","catch","then","wireValue","transferables","toWireValue","postMessage","removeEventListener","closeEndPoint","error","endpoint","constructor","isMessagePort","close","target","pendingListeners","resolver","delete","createProxy","throwIfProxyReleased","isReleased","releaseEndpoint","requestResponseMessage","proxyCounter","WeakMap","proxyFinalizers","FinalizationRegistry","newCount","isProxyReleased","Proxy","_target","unregister","unregisterProxy","clear","_thisArg","rawArgumentList","last","processArguments","construct","register","registerProxy","processed","arr","Array","handler","serializedValue","msg","fill","floor","random","Number","MAX_SAFE_INTEGER","join","_regeneratorRuntime","iterator","asyncIterator","Generator","Context","makeInvokeMethod","tryCatch","arg","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","values","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","__await","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","keys","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","delegateYield","asyncGeneratorStep","_defineProperties","_toPropertyKey","toPrimitive","_toPrimitive","webWorkerManager","WebWorkerManager","_classCallCheck","workerFn","worker","workerRegistry","instance","nativeWorker","_callee","workerName","taskName","options","_this$workerRegistry$","_context","t0","_executeTask","_next","_throw","_x","_x2","_x3","eventType","listener","getWebWorkerManager","FileManager","_ref","fileStreamingWorkerName","_defineProperty","url","file","files","offsets","endByte","startByte","_this$files$url","chunk","setPosition","entries","total","_ref2","_ref3","_slicedToArray","includes","removedSize","getPosition","executeTask","totalSize","getTotalSize","DOMAIN","FILE_EXTENSIONS","URL_VALIDATION_STRING","FILE_PARTIAL_WORKER_NAME","FILE_STREAMING_WORKER_NAME","THRESHOLD","Enums","parseWadorsURL","domain","constants","filePath","prefixParts","bucketName","bucketPrefix","imageParts","studyInstanceUID","seriesInstanceUID","sopInstanceUID","frameNumber","THUMBNAIL","INSTANCE_METADATA","SERIES_METADATA","FRAME","getFrameDetailsFromMetadata","seriesMetadata","frameIndex","bucketDetails","_seriesMetadata$cod","cod","instances","thumbnailUrl","thumbnail","thumbnailGsUtilUri","uri","instanceFound","find","_instance$metadata$","metadata","sliceStart","sliceEnd","offsetHeaders","headers","offset_tables","modifiedUrl","matchingExtension","extension","handleUrl","CustomOffsetTable","CustomOffsetTableLengths","isMultiframe","fileStartByte","start_byte","fileEndByte","end_byte","createMetadataJsonUrl","params","_params$domain","MetadataManager","cachedMetadata","response","getMetadataFromCache","fetch","ok","statusText","json","_getMetadata","_asyncToGenerator","CodDicomWebServer","_this","args","maxWorkerFetchSize","Infinity","newOptions","filePartialWorkerName","fileManager","metadataManager","workerNames","maxFetchSize","workerManager","registerWorker","Worker","URL","registerWorkers","seriesUidFileUrls","_fetchCod","wadorsUrl","imageId","_ref$useSharedArrayBu","useSharedArrayBuffer","_ref$fetchType","fetchType","parsedDetails","metadataJson","_getFrameDetailsFromM","fileUrl","urlWithBytes","newError","_this2","_args","API_OPTIMIZED","getMetadata","addFileUrl","fetchFile","BYTES_OPTIMIZED","arraybuffer","byteLength","pixelDataElement","x7fe00010","_pixelDataElement$fra","parseMetadata","reject","result","ArrayBuffer","t1","_fetchFile","_callee2","_ref2$useSharedArrayB","_ref2$fetchType","isBytesOptimized","extractedFile","_this$getOptions","_constants$worker","tarPromise","_this3","_args2","_context2","resolveRequest","rejectRequest","getOptions","filePromises","resolveFile","rejectFile","FetchTypeEnum","handleFirstChunk","evt","ErrorEvent","_evt$data","fileArraybuffer","requestResolved","handleChunkAppend","_evt$data2","isAppending","append","_x4","_this4","fileUrls","remove","_this5","_Object$values$find"],"sourceRoot":""}
@@ -0,0 +1,22 @@
1
+ import { Enums } from '../constants';
2
+ import type { CodDicomWebServerOptions, InstanceMetadata, JsonMetadata, SeriesMetadata, CODRequestOptions, FileRequestOptions } from '../types';
3
+ declare class CodDicomWebServer {
4
+ private filePromises;
5
+ private options;
6
+ private fileManager;
7
+ private metadataManager;
8
+ private seriesUidFileUrls;
9
+ constructor(args?: {
10
+ maxWorkerFetchSize?: number;
11
+ domain?: string;
12
+ });
13
+ setOptions: (newOptions: Partial<CodDicomWebServerOptions>) => void;
14
+ getOptions: () => CodDicomWebServerOptions;
15
+ addFileUrl(seriesInstanceUID: string, url: string): void;
16
+ fetchCod(wadorsUrl: string, imageId: string, headers?: Record<string, string> | undefined, { useSharedArrayBuffer, fetchType }?: CODRequestOptions): Promise<ArrayBufferLike | InstanceMetadata | SeriesMetadata | undefined>;
17
+ fetchFile(fileUrl: string, headers: Record<string, string>, { offsets, useSharedArrayBuffer, fetchType }?: FileRequestOptions): Promise<ArrayBufferLike | undefined>;
18
+ delete(seriesInstanceUID: string): void;
19
+ deleteAll(): void;
20
+ parseMetadata(metadata: JsonMetadata, type: Enums.RequestType, sopInstanceUID: string): InstanceMetadata | SeriesMetadata;
21
+ }
22
+ export default CodDicomWebServer;
@@ -0,0 +1,15 @@
1
+ import type { JsonMetadata, MetadataUrlCreationParams, ParsedWadoRsUrlDetails } from '../types';
2
+ export declare function parseWadorsURL(url: string, domain: string): ParsedWadoRsUrlDetails | undefined;
3
+ export declare function getFrameDetailsFromMetadata(seriesMetadata: JsonMetadata, sopInstanceUID: string, frameIndex: number, bucketDetails: {
4
+ domain: string;
5
+ bucketName: string;
6
+ bucketPrefix: string;
7
+ }): {
8
+ url?: string;
9
+ startByte?: number;
10
+ endByte?: number;
11
+ thumbnailUrl: string | undefined;
12
+ isMultiframe?: boolean;
13
+ };
14
+ export declare function handleUrl(url: string, domain: string, bucketName: string, bucketPrefix: string): string;
15
+ export declare function createMetadataJsonUrl(params: MetadataUrlCreationParams): string | undefined;
@@ -0,0 +1,17 @@
1
+ export declare enum FetchType {
2
+ /**
3
+ * Fetch only the part of the file according to the offsets provided.
4
+ */
5
+ BYTES_OPTIMIZED = 0,
6
+ /**
7
+ * Stream the file and returns the part of the file if offsets are provided.
8
+ * Or returns the whole file.
9
+ */
10
+ API_OPTIMIZED = 1
11
+ }
12
+ export declare enum RequestType {
13
+ FRAME = 0,
14
+ THUMBNAIL = 1,
15
+ SERIES_METADATA = 2,
16
+ INSTANCE_METADATA = 3
17
+ }
@@ -0,0 +1,10 @@
1
+ import * as Enums from './enums';
2
+ import * as url from './url';
3
+ import * as worker from './worker';
4
+ declare const constants: {
5
+ Enums: typeof Enums;
6
+ url: typeof url;
7
+ worker: typeof worker;
8
+ };
9
+ export { Enums, url, worker };
10
+ export default constants;
@@ -0,0 +1,3 @@
1
+ export declare const DOMAIN = "https://storage.googleapis.com";
2
+ export declare const FILE_EXTENSIONS: string[];
3
+ export declare const URL_VALIDATION_STRING = "/dicomweb/";
@@ -0,0 +1,3 @@
1
+ export declare const FILE_PARTIAL_WORKER_NAME = "filePartial";
2
+ export declare const FILE_STREAMING_WORKER_NAME = "fileStreaming";
3
+ export declare const THRESHOLD = 10000;
@@ -0,0 +1,21 @@
1
+ import type { FileManagerOptions } from './types';
2
+ declare class FileManager {
3
+ private files;
4
+ private fileStreamingWorkerName;
5
+ constructor({ fileStreamingWorkerName }: FileManagerOptions);
6
+ set(url: string, file: {
7
+ data: Uint8Array;
8
+ position: number;
9
+ }): void;
10
+ get(url: string, offsets?: {
11
+ startByte: number;
12
+ endByte: number;
13
+ }): Uint8Array | null;
14
+ setPosition(url: string, position: number): void;
15
+ getPosition(url: string): number;
16
+ append(url: string, chunk: Uint8Array, position: number): void;
17
+ getTotalSize(): number;
18
+ remove(url: string): void;
19
+ purge(): void;
20
+ }
21
+ export default FileManager;
@@ -0,0 +1,8 @@
1
+ import { FetchType } from './constants/enums';
2
+ import CodDicomWebServer from './classes/CodDicomWebServer';
3
+ export { FetchType, CodDicomWebServer };
4
+ declare const _default: {
5
+ FetchType: typeof FetchType;
6
+ CodDicomWebServer: typeof CodDicomWebServer;
7
+ };
8
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import type { JsonMetadata, MetadataUrlCreationParams } from './types';
2
+ declare class MetadataManager {
3
+ private metadata;
4
+ constructor();
5
+ getMetadataFromCache(url: string): JsonMetadata;
6
+ getMetadata(params: MetadataUrlCreationParams, headers: Record<string, string>): Promise<JsonMetadata | null>;
7
+ }
8
+ export default MetadataManager;
@@ -0,0 +1,6 @@
1
+ type CodDicomWebServerOptions = {
2
+ [key: string]: number | string;
3
+ maxWorkerFetchSize: number;
4
+ domain: string;
5
+ };
6
+ export type { CodDicomWebServerOptions };
@@ -0,0 +1,4 @@
1
+ type FileManagerOptions = {
2
+ fileStreamingWorkerName: string;
3
+ };
4
+ export type { FileManagerOptions };
@@ -0,0 +1,7 @@
1
+ export * from './codDicomWebServerOptions';
2
+ export * from './fileManagerOptions';
3
+ export * from './metadata';
4
+ export * from './metadataUrlCreationParams';
5
+ export * from './parsedWadoRsUrlDetails';
6
+ export * from './requestOptions';
7
+ export * from './workerCustomMessageEvents';
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Metadata format stored in the metadata.json
3
+ */
4
+ type JsonMetadata = {
5
+ deid_study_uid: string;
6
+ deid_series_uid: string;
7
+ cod: {
8
+ instances: Record<string, {
9
+ metadata: InstanceMetadata;
10
+ uri: string;
11
+ url: string;
12
+ headers: {
13
+ start_byte: number;
14
+ end_byte: number;
15
+ };
16
+ offset_tables: {
17
+ CustomOffsetTable?: number[];
18
+ CustomOffsetTableLengths?: number[];
19
+ };
20
+ crc32c: string;
21
+ size: number;
22
+ original_path: string;
23
+ dependencies: string[];
24
+ diff_hash_dupe_paths: [string];
25
+ version: string;
26
+ modified_datetime: string;
27
+ }>;
28
+ };
29
+ thumbnail: {
30
+ version: string;
31
+ uri: string;
32
+ thumbnail_index_to_instance_frame: [string, number][];
33
+ instances: Record<string, {
34
+ frames: {
35
+ thumbnail_index: number;
36
+ anchors: {
37
+ original_size: {
38
+ width: number;
39
+ height: number;
40
+ };
41
+ thumbnail_upper_left: {
42
+ row: number;
43
+ col: number;
44
+ };
45
+ thumbnail_bottom_right: {
46
+ row: number;
47
+ col: number;
48
+ };
49
+ };
50
+ }[];
51
+ }>;
52
+ };
53
+ };
54
+ type InstanceMetadata = Record<string, {
55
+ vr: string;
56
+ Value?: unknown[];
57
+ BulkDataURI?: string;
58
+ InlineBinary?: string;
59
+ }>;
60
+ type SeriesMetadata = InstanceMetadata[];
61
+ export type { InstanceMetadata, SeriesMetadata, JsonMetadata };