{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 66b39b563d81ccebb618","webpack:///external {\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\",\"amd\":\"jquery\",\"root\":\"$\"}","webpack:///external {\"commonjs\":\"cornerstone-core\",\"commonjs2\":\"cornerstone-core\",\"amd\":\"cornerstone-core\",\"root\":\"cornerstone\"}","webpack:///./imageLoader/internal/index.js","webpack:///./version.js","webpack:///./imageLoader/wadors/metaData/getValue.js","webpack:///./imageLoader/wadouri/parseImageId.js","webpack:///external {\"commonjs\":\"dicom-parser\",\"commonjs2\":\"dicom-parser\",\"amd\":\"dicom-parser\",\"root\":\"dicomParser\"}","webpack:///./imageLoader/createImage.js","webpack:///./imageLoader/wadors/metaDataManager.js","webpack:///./imageLoader/wadouri/dataSetCacheManager.js","webpack:///./imageLoader/colorSpaceConverters/index.js","webpack:///./imageLoader/convertColorSpace.js","webpack:///./imageLoader/decodeImageFrame.js","webpack:///./imageLoader/decodeJPEGBaseline8BitColor.js","webpack:///./imageLoader/getImageFrame.js","webpack:///./imageLoader/getMinMax.js","webpack:///./imageLoader/isColorImage.js","webpack:///./imageLoader/isJPEGBaseline8BitColor.js","webpack:///./imageLoader/webWorkerManager.js","webpack:///./imageLoader/internal/options.js","webpack:///./imageLoader/wadors/findIndexOfString.js","webpack:///./imageLoader/wadors/getPixelData.js","webpack:///./imageLoader/wadors/metaData/getNumberValue.js","webpack:///./imageLoader/wadors/metaData/getNumberValues.js","webpack:///./imageLoader/wadouri/fileManager.js","webpack:///./imageLoader/wadouri/getEncapsulatedImageFrame.js","webpack:///./imageLoader/wadouri/getUncompressedImageFrame.js","webpack:///./imageLoader/wadouri/loadFileRequest.js","webpack:///./imageLoader/wadouri/metaData/getImagePixelModule.js","webpack:///./imageLoader/wadouri/metaData/getLUTs.js","webpack:///./imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.js","webpack:///./imageLoader/wadouri/metaData/getNumberValues.js","webpack:///./imageLoader/wadouri/unpackBinaryFrame.js","webpack:///./imageLoader/configure.js","webpack:///./imageLoader/wadors/index.js","webpack:///./imageLoader/wadouri/index.js","webpack:///./imageLoader/colorSpaceConverters/convertPALETTECOLOR.js","webpack:///./imageLoader/colorSpaceConverters/convertRGBColorByPixel.js","webpack:///./imageLoader/colorSpaceConverters/convertRGBColorByPlane.js","webpack:///./imageLoader/colorSpaceConverters/convertYBRFullByPixel.js","webpack:///./imageLoader/colorSpaceConverters/convertYBRFullByPlane.js","webpack:///./imageLoader/index.js","webpack:///./imageLoader/internal/xhrRequest.js","webpack:///./imageLoader/wadors/loadImage.js","webpack:///./imageLoader/wadors/metaData/getNumberString.js","webpack:///./imageLoader/wadors/metaData/index.js","webpack:///./imageLoader/wadors/metaData/metaDataProvider.js","webpack:///./imageLoader/wadouri/loadImage.js","webpack:///./imageLoader/wadouri/metaData/index.js","webpack:///./imageLoader/wadouri/metaData/metaDataProvider.js"],"names":["internal","xhrRequest","setOptions","getOptions","getValue","element","index","defaultValue","Value","length","parseImageId","imageId","firstColonIndex","indexOf","url","substring","frameIndex","frame","frameStr","substr","parseInt","scheme","cornerstone","lastImageIdDrawn","isModalityLUTForDisplay","sopClassUid","setPixelDataType","imageFrame","bitsAllocated","pixelRepresentation","pixelData","Uint16Array","Int16Array","Uint8Array","createImage","transferSyntax","options","canvas","document","createElement","deferred","Deferred","decodePromise","then","imagePlaneModule","metaData","get","voiLutModule","modalityLutModule","sopCommonModule","isColorImage","photometricInterpretation","height","rows","width","columns","context","getContext","imageData","createImageData","data","image","color","columnPixelSpacing","pixelSpacing","undefined","intercept","rescaleIntercept","invert","minPixelValue","smallestPixelValue","maxPixelValue","largestPixelValue","render","rowPixelSpacing","sizeInBytes","slope","rescaleSlope","windowCenter","windowWidth","decodeTimeInMS","getPixelData","renderColorImage","getCanvas","putImageData","renderGrayscaleImage","minMax","min","max","modalityLUTSequence","sopClassUID","modalityLUT","voiLUTSequence","voiLUT","maxVoi","minVoi","resolve","promise","imageIds","add","metadata","remove","purge","dicomParser","loadedDataSets","promises","isLoaded","uri","dataSet","load","loadRequest","alreadyLoadedpromise","cacheCount","loadDeferred","dicomPart10AsArrayBuffer","byteArray","parseDicom","error","reject","always","unload","default","convertRGB","rgbaBuffer","planarConfiguration","convertYBRFull","convertColorSpace","addDecodeTask","priority","transferList","transferPixelData","buffer","addTask","decodeImageFrame","samplesPerPixel","console","log","arrayBufferToString","binaryToString","String","fromCharCode","apply","Array","prototype","slice","binary","decodeURIComponent","escape","_error","URIError","decodeJPEGBaseline8BitColor","start","Date","getTime","imgBlob","Blob","type","r","FileReader","readAsBinaryString","readAsArrayBuffer","onload","img","Image","drawImage","getImageData","end","onerror","src","window","btoa","result","getImageFrame","imagePixelModule","redPaletteColorLookupTableDescriptor","greenPaletteColorLookupTableDescriptor","bluePaletteColorLookupTableDescriptor","redPaletteColorLookupTableData","greenPaletteColorLookupTableData","bluePaletteColorLookupTableData","getMinMax","storedPixelData","storedPixel","numPixels","Math","photoMetricInterpretation","isJPEGBaseline8BitColor","nextTaskId","tasks","webWorkers","defaultConfig","maxWebWorkers","navigator","hardwareConcurrency","startWebWorkersOnDemand","webWorkerPath","webWorkerTaskPaths","taskConfiguration","decodeTask","loadCodecsOnStartup","initializeCodecsOnStartup","codecsPath","usePDFJS","config","statistics","numWebWorkers","numTasksQueued","numTasksExecuting","numTasksCompleted","totalTaskTimeInMS","totalTimeDelayedInMS","startTaskOnWebWorker","i","status","task","shift","added","worker","postMessage","taskType","workerIndex","spawnWebWorker","handleMessageFromWorker","msg","Worker","push","addEventListener","initialize","configObject","Error","loadWebWorkerTask","sourcePath","taskConfig","Object","assign","taskId","splice","setTaskPriority","cancelTask","reason","getStatistics","beforeSend","imageCreated","newOptions","checkToken","token","dataOffset","endIndex","stringToUint8Array","str","uint","j","charCodeAt","findIndexOfString","offset","findBoundary","header","findContentType","trim","uint8ArrayToString","mediaType","headers","accept","loadPromise","imageFrameAsArrayBuffer","response","tokenIndex","split","boundary","contentType","getNumberValue","value","parseFloat","getNumberValues","minimumLength","values","files","file","fileIndex","framesAreFragmented","numberOfFrames","intString","pixelDataElement","elements","x7fe00010","fragments","getEncodedImageFrame","basicOffsetTable","createJPEGBasicOffsetTable","readEncapsulatedImageFrame","readEncapsulatedPixelDataFromFragments","getEncapsulatedImageFrame","getUncompressedImageFrame","uint16","pixelDataOffset","pixelsPerFrame","frameOffset","loadFileRequest","parsedImageId","fileReader","e","target","getLutDescriptor","tag","getLutData","lutDataSet","lutDescriptor","lut","lutData","numLutEntries","populatePaletteColorLut","x00281101","populateSmallestLargestPixelValues","int16","getImagePixelModule","string","bitsStored","highBit","pixelAspectRatio","getLUT","numLUTEntries","firstValueMapped","numBitsPerEntry","id","getLUTs","lutSequence","items","luts","getMinStoredPixelValue","getModalityLUTOutputPixelRepresentation","floatString","minStoredPixelValue","minModalityLutValue","x00283000","valueAsString","isBitSet","byte","bitPos","unpackBinaryFrame","bytePos","floor","configure","getNumberString","metaDataProvider","loadImage","metaDataManager","dataSetCacheManager","fileManager","convertPALETTECOLOR","palIndex","rgbaIndex","rData","gData","bData","len","convertRGBColorByPixel","rgbIndex","convertRGBColorByPlane","rIndex","gIndex","bIndex","convertYBRFullByPixel","ybrIndex","y","cb","cr","convertYBRFullByPlane","yIndex","cbIndex","crIndex","xhr","XMLHttpRequest","open","responseType","keys","forEach","key","setRequestHeader","onreadystatechange","readyState","onprogress","oProgress","lengthComputable","loaded","total","percentComplete","round","trigger","send","getTransferSyntaxForContentType","imagePromise","loadTimeInMS","fail","registerImageLoader","modality","seriesInstanceUID","seriesNumber","studyInstanceUID","seriesDate","parseDA","seriesTime","parseTM","patientAge","patientSize","patientWeight","imageOrientationPatient","imagePositionPatient","sliceThickness","sliceLocation","rescaleType","sopInstanceUID","radiopharmaceuticalInfo","radiopharmaceuticalStartTime","radionuclideTotalDose","radionuclideHalfLife","addProvider","addDecache","decache","encapsulatedPixelData","loadImageFromPromise","dataSetPromise","sharedCacheKey","loadEnd","totalTimeInMS","getLoaderForScheme","loader","frameOfReferenceUID","modalityLUTOutputPixelRepresentation","x00283010","x00540016","firstRadiopharmaceuticalInfoDataSet"],"mappings":"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","file":"cornerstoneWADOImageLoader.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"), require(\"cornerstone-core\"), require(\"dicom-parser\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"cornerstoneWADOImageLoader\", [\"jquery\", \"cornerstone-core\", \"dicom-parser\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cornerstoneWADOImageLoader\"] = factory(require(\"jquery\"), require(\"cornerstone-core\"), require(\"dicom-parser\"));\n\telse\n\t\troot[\"cornerstoneWADOImageLoader\"] = factory(root[\"$\"], root[\"cornerstone\"], root[\"dicomParser\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_6__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 45);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 66b39b563d81ccebb618","module.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\",\"amd\":\"jquery\",\"root\":\"$\"}\n// module id = 0\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"cornerstone-core\",\"commonjs2\":\"cornerstone-core\",\"amd\":\"cornerstone-core\",\"root\":\"cornerstone\"}\n// module id = 1\n// module chunks = 0","import { default as xhrRequest } from './xhrRequest';\nimport { setOptions, getOptions } from './options';\n\nconst internal = {\n xhrRequest,\n setOptions,\n getOptions\n};\n\nexport { setOptions, getOptions, xhrRequest, internal };\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/internal/index.js","export default '0.14.5';\n\n\n\n// WEBPACK FOOTER //\n// ./version.js","\n\n/**\n * Returns the raw value\n *\n * @param element - The javascript object for the specified element in the metadata\n * @param [index] - the index of the value in a multi-valued element, default is 0\n * @param [defaultValue] - The default value to return if the element does not exist\n * @returns {*}\n */\nfunction getValue (element, index, defaultValue) {\n index = index || 0;\n if (!element) {\n return defaultValue;\n }\n // Value is not present if the attribute has a zero length value\n if (!element.Value) {\n return defaultValue;\n }\n // make sure we have the specified index\n if (element.Value.length <= index) {\n return defaultValue;\n }\n\n return element.Value[index];\n}\n\nexport default getValue;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadors/metaData/getValue.js","\n\nfunction parseImageId (imageId) {\n // build a url by parsing out the url scheme and frame index from the imageId\n const firstColonIndex = imageId.indexOf(':');\n let url = imageId.substring(firstColonIndex + 1);\n const frameIndex = url.indexOf('frame=');\n let frame;\n\n if (frameIndex !== -1) {\n const frameStr = url.substr(frameIndex + 6);\n\n frame = parseInt(frameStr, 10);\n url = url.substr(0, frameIndex - 1);\n }\n\n return {\n scheme: imageId.substr(0, firstColonIndex),\n url,\n frame\n };\n}\n\nexport default parseImageId;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/parseImageId.js","module.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"commonjs\":\"dicom-parser\",\"commonjs2\":\"dicom-parser\",\"amd\":\"dicom-parser\",\"root\":\"dicomParser\"}\n// module id = 6\n// module chunks = 0","import $ from 'jquery';\nimport getImageFrame from './getImageFrame';\nimport decodeImageFrame from './decodeImageFrame';\nimport { default as isColorImageFn } from './isColorImage';\nimport convertColorSpace from './convertColorSpace';\nimport getMinMax from './getMinMax';\nimport isJPEGBaseline8BitColor from './isJPEGBaseline8BitColor';\nimport * as cornerstone from 'cornerstone-core';\n\nlet lastImageIdDrawn = '';\n\nfunction isModalityLUTForDisplay (sopClassUid) {\n // special case for XA and XRF\n // https://groups.google.com/forum/#!searchin/comp.protocols.dicom/Modality$20LUT$20XA/comp.protocols.dicom/UBxhOZ2anJ0/D0R_QP8V2wIJ\n return sopClassUid !== '1.2.840.10008.5.1.4.1.1.12.1' && // XA\n sopClassUid !== '1.2.840.10008.5.1.4.1.1.12.2.1'; // XRF\n}\n\n/**\n * Helper function to set pixel data to the right typed array. This is needed because web workers\n * can transfer array buffers but not typed arrays\n * @param imageFrame\n */\nfunction setPixelDataType (imageFrame) {\n if (imageFrame.bitsAllocated === 16) {\n if (imageFrame.pixelRepresentation === 0) {\n imageFrame.pixelData = new Uint16Array(imageFrame.pixelData);\n } else {\n imageFrame.pixelData = new Int16Array(imageFrame.pixelData);\n }\n } else {\n imageFrame.pixelData = new Uint8Array(imageFrame.pixelData);\n }\n}\n\nfunction createImage (imageId, pixelData, transferSyntax, options) {\n const canvas = document.createElement('canvas');\n const deferred = $.Deferred();\n const imageFrame = getImageFrame(imageId);\n const decodePromise = decodeImageFrame(imageFrame, transferSyntax, pixelData, canvas, options);\n\n decodePromise.then(function (imageFrame) {\n // var imagePixelModule = metaDataProvider('imagePixelModule', imageId);\n const imagePlaneModule = cornerstone.metaData.get('imagePlaneModule', imageId);\n const voiLutModule = cornerstone.metaData.get('voiLutModule', imageId);\n const modalityLutModule = cornerstone.metaData.get('modalityLutModule', imageId);\n const sopCommonModule = cornerstone.metaData.get('sopCommonModule', imageId);\n const isColorImage = isColorImageFn(imageFrame.photometricInterpretation);\n\n // JPEGBaseline (8 bits) is already returning the pixel data in the right format (rgba)\n // because it's using a canvas to load and decode images.\n if (!isJPEGBaseline8BitColor(imageFrame, transferSyntax)) {\n setPixelDataType(imageFrame);\n\n // convert color space\n if (isColorImage) {\n // setup the canvas context\n canvas.height = imageFrame.rows;\n canvas.width = imageFrame.columns;\n\n const context = canvas.getContext('2d');\n const imageData = context.createImageData(imageFrame.columns, imageFrame.rows);\n\n convertColorSpace(imageFrame, imageData);\n imageFrame.imageData = imageData;\n imageFrame.pixelData = imageData.data;\n }\n }\n\n const image = {\n imageId,\n color: isColorImage,\n columnPixelSpacing: imagePlaneModule.pixelSpacing ? imagePlaneModule.pixelSpacing[1] : undefined,\n columns: imageFrame.columns,\n height: imageFrame.rows,\n intercept: modalityLutModule.rescaleIntercept ? modalityLutModule.rescaleIntercept : 0,\n invert: imageFrame.photometricInterpretation === 'MONOCHROME1',\n minPixelValue: imageFrame.smallestPixelValue,\n maxPixelValue: imageFrame.largestPixelValue,\n render: undefined, // set below\n rowPixelSpacing: imagePlaneModule.pixelSpacing ? imagePlaneModule.pixelSpacing[0] : undefined,\n rows: imageFrame.rows,\n sizeInBytes: imageFrame.pixelData.length,\n slope: modalityLutModule.rescaleSlope ? modalityLutModule.rescaleSlope : 1,\n width: imageFrame.columns,\n windowCenter: voiLutModule.windowCenter ? voiLutModule.windowCenter[0] : undefined,\n windowWidth: voiLutModule.windowWidth ? voiLutModule.windowWidth[0] : undefined,\n decodeTimeInMS: imageFrame.decodeTimeInMS\n };\n\n // add function to return pixel data\n image.getPixelData = function () {\n return imageFrame.pixelData;\n };\n\n // Setup the renderer\n if (image.color) {\n image.render = cornerstone.renderColorImage;\n image.getCanvas = function () {\n if (lastImageIdDrawn === imageId) {\n return canvas;\n }\n\n canvas.height = image.rows;\n canvas.width = image.columns;\n const context = canvas.getContext('2d');\n\n context.putImageData(imageFrame.imageData, 0, 0);\n lastImageIdDrawn = imageId;\n\n return canvas;\n };\n\n } else {\n image.render = cornerstone.renderGrayscaleImage;\n }\n\n // calculate min/max if not supplied\n if (image.minPixelValue === undefined || image.maxPixelValue === undefined) {\n const minMax = getMinMax(imageFrame.pixelData);\n\n image.minPixelValue = minMax.min;\n image.maxPixelValue = minMax.max;\n }\n\n // Modality LUT\n if (modalityLutModule.modalityLUTSequence &&\n modalityLutModule.modalityLUTSequence.length > 0 &&\n isModalityLUTForDisplay(sopCommonModule.sopClassUID)) {\n image.modalityLUT = modalityLutModule.modalityLUTSequence[0];\n }\n\n // VOI LUT\n if (voiLutModule.voiLUTSequence &&\n voiLutModule.voiLUTSequence.length > 0) {\n image.voiLUT = voiLutModule.voiLUTSequence[0];\n }\n\n // set the ww/wc to cover the dynamic range of the image if no values are supplied\n if (image.windowCenter === undefined || image.windowWidth === undefined) {\n if (image.color) {\n image.windowWidth = 255;\n image.windowCenter = 128;\n } else {\n const maxVoi = image.maxPixelValue * image.slope + image.intercept;\n const minVoi = image.minPixelValue * image.slope + image.intercept;\n\n image.windowWidth = maxVoi - minVoi;\n image.windowCenter = (maxVoi + minVoi) / 2;\n }\n }\n deferred.resolve(image);\n });\n\n return deferred.promise();\n}\n\nexport default createImage;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/createImage.js","\n\nlet imageIds = [];\n\nfunction add (imageId, metadata) {\n imageIds[imageId] = metadata;\n}\n\nfunction get (imageId) {\n return imageIds[imageId];\n}\n\nfunction remove (imageId) {\n imageIds[imageId] = undefined;\n}\n\nfunction purge () {\n imageIds = [];\n}\n\nexport default {\n add,\n get,\n remove,\n purge\n};\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadors/metaDataManager.js","import $ from 'jquery';\nimport * as dicomParser from 'dicom-parser';\nimport { xhrRequest } from '../internal';\n\n/**\n * This object supports loading of DICOM P10 dataset from a uri and caching it so it can be accessed\n * by the caller. This allows a caller to access the datasets without having to go through cornerstone's\n * image loader mechanism. One reason a caller may need to do this is to determine the number of frames\n * in a multiframe sop instance so it can create the imageId's correctly.\n */\nlet loadedDataSets = {};\nlet promises = {};\n\n// returns true if the wadouri for the specified index has been loaded\nfunction isLoaded (uri) {\n return loadedDataSets[uri] !== undefined;\n}\n\nfunction get (uri) {\n\n // if already loaded return it right away\n if (!loadedDataSets[uri]) {\n return;\n }\n\n return loadedDataSets[uri].dataSet;\n}\n\n\n // loads the dicom dataset from the wadouri sp\nfunction load (uri, loadRequest, imageId) {\n\n loadRequest = loadRequest || xhrRequest;\n\n // if already loaded return it right away\n if (loadedDataSets[uri]) {\n // console.log('using loaded dataset ' + uri);\n const alreadyLoadedpromise = $.Deferred();\n\n loadedDataSets[uri].cacheCount++;\n alreadyLoadedpromise.resolve(loadedDataSets[uri].dataSet);\n\n return alreadyLoadedpromise;\n }\n\n // if we are currently loading this uri, return its promise\n if (promises[uri]) {\n // console.log('returning existing load promise for ' + uri);\n return promises[uri];\n }\n\n // console.log('loading ' + uri);\n\n // This uri is not loaded or being loaded, load it via an xhrRequest\n const promise = loadRequest(uri, imageId);\n\n // handle success and failure of the XHR request load\n const loadDeferred = $.Deferred();\n\n promise.then(function (dicomPart10AsArrayBuffer/* , xhr*/) {\n const byteArray = new Uint8Array(dicomPart10AsArrayBuffer);\n\n // Reject the promise if parsing the dicom file fails\n let dataSet;\n\n try {\n dataSet = dicomParser.parseDicom(byteArray);\n } catch (error) {\n loadDeferred.reject(error);\n\n return;\n }\n\n loadedDataSets[uri] = {\n dataSet,\n cacheCount: 1\n };\n loadDeferred.resolve(dataSet);\n // done loading, remove the promise\n delete promises[uri];\n }, function () {\n }).always(function () {\n // error thrown, remove the promise\n delete promises[uri];\n });\n\n promises[uri] = loadDeferred;\n\n return loadDeferred;\n}\n\n// remove the cached/loaded dicom dataset for the specified wadouri to free up memory\nfunction unload (uri) {\n // console.log('unload for ' + uri);\n if (loadedDataSets[uri]) {\n loadedDataSets[uri].cacheCount--;\n if (loadedDataSets[uri].cacheCount === 0) {\n // console.log('removing loaded dataset for ' + uri);\n delete loadedDataSets[uri];\n }\n }\n}\n\n// removes all cached datasets from memory\nfunction purge () {\n loadedDataSets = {};\n promises = {};\n}\n\nexport default {\n isLoaded,\n load,\n unload,\n purge,\n get\n};\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/dataSetCacheManager.js","export { default as convertRGBColorByPixel } from './convertRGBColorByPixel';\nexport { default as convertRGBColorByPlane } from './convertRGBColorByPlane';\nexport { default as convertYBRFullByPixel } from './convertYBRFullByPixel';\nexport { default as convertYBRFullByPlane } from './convertYBRFullByPlane';\nexport { default as convertPALETTECOLOR } from './convertPALETTECOLOR';\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/colorSpaceConverters/index.js","import { convertRGBColorByPixel, convertRGBColorByPlane,\n convertYBRFullByPixel, convertYBRFullByPlane,\n convertPALETTECOLOR } from './colorSpaceConverters';\n\nfunction convertRGB (imageFrame, rgbaBuffer) {\n if (imageFrame.planarConfiguration === 0) {\n convertRGBColorByPixel(imageFrame.pixelData, rgbaBuffer);\n } else {\n convertRGBColorByPlane(imageFrame.pixelData, rgbaBuffer);\n }\n}\n\nfunction convertYBRFull (imageFrame, rgbaBuffer) {\n if (imageFrame.planarConfiguration === 0) {\n convertYBRFullByPixel(imageFrame.pixelData, rgbaBuffer);\n } else {\n convertYBRFullByPlane(imageFrame.pixelData, rgbaBuffer);\n }\n}\n\nfunction convertColorSpace (imageFrame, imageData) {\n const rgbaBuffer = imageData.data;\n // convert based on the photometric interpretation\n\n if (imageFrame.photometricInterpretation === 'RGB') {\n convertRGB(imageFrame, rgbaBuffer);\n } else if (imageFrame.photometricInterpretation === 'YBR_RCT') {\n convertRGB(imageFrame, rgbaBuffer);\n } else if (imageFrame.photometricInterpretation === 'YBR_ICT') {\n convertRGB(imageFrame, rgbaBuffer);\n } else if (imageFrame.photometricInterpretation === 'PALETTE COLOR') {\n convertPALETTECOLOR(imageFrame, rgbaBuffer);\n } else if (imageFrame.photometricInterpretation === 'YBR_FULL_422') {\n convertRGB(imageFrame, rgbaBuffer);\n } else if (imageFrame.photometricInterpretation === 'YBR_FULL') {\n convertYBRFull(imageFrame, rgbaBuffer);\n } else {\n throw `no color space conversion for photometric interpretation ${imageFrame.photometricInterpretation}`;\n }\n}\n\nexport default convertColorSpace;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/convertColorSpace.js","import webWorkerManager from './webWorkerManager';\nimport decodeJPEGBaseline8BitColor from './decodeJPEGBaseline8BitColor';\n\nfunction addDecodeTask (imageFrame, transferSyntax, pixelData, options) {\n const priority = options.priority || undefined;\n const transferList = options.transferPixelData ? [pixelData.buffer] : undefined;\n\n return webWorkerManager.addTask(\n 'decodeTask',\n {\n imageFrame,\n transferSyntax,\n pixelData,\n options\n }, priority, transferList).promise;\n}\n\nfunction decodeImageFrame (imageFrame, transferSyntax, pixelData, canvas, options) {\n options = options || {};\n\n // TODO: Turn this into a switch statement instead\n if (transferSyntax === '1.2.840.10008.1.2') {\n // Implicit VR Little Endian\n return addDecodeTask(imageFrame, transferSyntax, pixelData, options);\n } else if (transferSyntax === '1.2.840.10008.1.2.1') {\n // Explicit VR Little Endian\n return addDecodeTask(imageFrame, transferSyntax, pixelData, options);\n } else if (transferSyntax === '1.2.840.10008.1.2.2') {\n // Explicit VR Big Endian (retired)\n return addDecodeTask(imageFrame, transferSyntax, pixelData, options);\n } else if (transferSyntax === '1.2.840.10008.1.2.1.99') {\n // Deflate transfer syntax (deflated by dicomParser)\n return addDecodeTask(imageFrame, transferSyntax, pixelData, options);\n } else if (transferSyntax === '1.2.840.10008.1.2.5') {\n // RLE Lossless\n return addDecodeTask(imageFrame, transferSyntax, pixelData, options);\n } else if (transferSyntax === '1.2.840.10008.1.2.4.50') {\n // JPEG Baseline lossy process 1 (8 bit)\n\n // Handle 8-bit JPEG Baseline color images using the browser's built-in\n // JPEG decoding\n if (imageFrame.bitsAllocated === 8 &&\n (imageFrame.samplesPerPixel === 3 || imageFrame.samplesPerPixel === 4)) {\n return decodeJPEGBaseline8BitColor(imageFrame, pixelData, canvas);\n }\n\n return addDecodeTask(imageFrame, transferSyntax, pixelData, options);\n } else if (transferSyntax === '1.2.840.10008.1.2.4.51') {\n // JPEG Baseline lossy process 2 & 4 (12 bit)\n return addDecodeTask(imageFrame, transferSyntax, pixelData, options);\n } else if (transferSyntax === '1.2.840.10008.1.2.4.57') {\n // JPEG Lossless, Nonhierarchical (Processes 14)\n return addDecodeTask(imageFrame, transferSyntax, pixelData, options);\n } else if (transferSyntax === '1.2.840.10008.1.2.4.70') {\n // JPEG Lossless, Nonhierarchical (Processes 14 [Selection 1])\n return addDecodeTask(imageFrame, transferSyntax, pixelData, options);\n } else if (transferSyntax === '1.2.840.10008.1.2.4.80') {\n // JPEG-LS Lossless Image Compression\n return addDecodeTask(imageFrame, transferSyntax, pixelData, options);\n } else if (transferSyntax === '1.2.840.10008.1.2.4.81') {\n // JPEG-LS Lossy (Near-Lossless) Image Compression\n return addDecodeTask(imageFrame, transferSyntax, pixelData, options);\n } else if (transferSyntax === '1.2.840.10008.1.2.4.90') {\n // JPEG 2000 Lossless\n return addDecodeTask(imageFrame, transferSyntax, pixelData, options);\n } else if (transferSyntax === '1.2.840.10008.1.2.4.91') {\n // JPEG 2000 Lossy\n return addDecodeTask(imageFrame, transferSyntax, pixelData, options);\n }\n\n /* Don't know if these work...\n // JPEG 2000 Part 2 Multicomponent Image Compression (Lossless Only)\n else if(transferSyntax === \"1.2.840.10008.1.2.4.92\")\n {\n return cornerstoneWADOImageLoader.decodeJPEG2000(dataSet, frame);\n }\n // JPEG 2000 Part 2 Multicomponent Image Compression\n else if(transferSyntax === \"1.2.840.10008.1.2.4.93\")\n {\n return cornerstoneWADOImageLoader.decodeJPEG2000(dataSet, frame);\n }\n */\n\n if (console && console.log) {\n console.log(`Image cannot be decoded due to Unsupported transfer syntax ${transferSyntax}`);\n }\n throw `no decoder for transfer syntax ${transferSyntax}`;\n\n}\n\nexport default decodeImageFrame;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/decodeImageFrame.js","import $ from 'jquery';\n\n/**\n * Special decoder for 8 bit jpeg that leverages the browser's built in JPEG decoder for increased performance\n */\n\nfunction arrayBufferToString (buffer) {\n return binaryToString(String.fromCharCode.apply(null, Array.prototype.slice.apply(new Uint8Array(buffer))));\n}\n\nfunction binaryToString (binary) {\n let error;\n\n try {\n return decodeURIComponent(escape(binary));\n } catch (_error) {\n error = _error;\n if (error instanceof URIError) {\n return binary;\n }\n throw error;\n\n }\n}\n\nfunction decodeJPEGBaseline8BitColor (imageFrame, pixelData, canvas) {\n const start = new Date().getTime();\n const deferred = $.Deferred();\n\n const imgBlob = new Blob([pixelData], { type: 'image/jpeg' });\n\n const r = new FileReader();\n\n if (r.readAsBinaryString === undefined) {\n r.readAsArrayBuffer(imgBlob);\n } else {\n r.readAsBinaryString(imgBlob); // doesn't work on IE11\n }\n\n r.onload = function () {\n const img = new Image();\n\n img.onload = function () {\n canvas.height = img.height;\n canvas.width = img.width;\n imageFrame.rows = img.height;\n imageFrame.columns = img.width;\n const context = canvas.getContext('2d');\n\n context.drawImage(this, 0, 0);\n const imageData = context.getImageData(0, 0, img.width, img.height);\n const end = new Date().getTime();\n\n imageFrame.pixelData = imageData.data;\n imageFrame.imageData = imageData;\n imageFrame.decodeTimeInMS = end - start;\n deferred.resolve(imageFrame);\n };\n img.onerror = function (error) {\n deferred.reject(error);\n };\n if (r.readAsBinaryString === undefined) {\n img.src = `data:image/jpeg;base64,${window.btoa(arrayBufferToString(r.result))}`;\n } else {\n img.src = `data:image/jpeg;base64,${window.btoa(r.result)}`; // doesn't work on IE11\n }\n\n };\n\n return deferred.promise();\n}\n\nexport default decodeJPEGBaseline8BitColor;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/decodeJPEGBaseline8BitColor.js","import * as cornerstone from 'cornerstone-core';\n\nfunction getImageFrame (imageId) {\n const imagePixelModule = cornerstone.metaData.get('imagePixelModule', imageId);\n\n return {\n samplesPerPixel: imagePixelModule.samplesPerPixel,\n photometricInterpretation: imagePixelModule.photometricInterpretation,\n planarConfiguration: imagePixelModule.planarConfiguration,\n rows: imagePixelModule.rows,\n columns: imagePixelModule.columns,\n bitsAllocated: imagePixelModule.bitsAllocated,\n pixelRepresentation: imagePixelModule.pixelRepresentation, // 0 = unsigned,\n smallestPixelValue: imagePixelModule.smallestPixelValue,\n largestPixelValue: imagePixelModule.largestPixelValue,\n redPaletteColorLookupTableDescriptor: imagePixelModule.redPaletteColorLookupTableDescriptor,\n greenPaletteColorLookupTableDescriptor: imagePixelModule.greenPaletteColorLookupTableDescriptor,\n bluePaletteColorLookupTableDescriptor: imagePixelModule.bluePaletteColorLookupTableDescriptor,\n redPaletteColorLookupTableData: imagePixelModule.redPaletteColorLookupTableData,\n greenPaletteColorLookupTableData: imagePixelModule.greenPaletteColorLookupTableData,\n bluePaletteColorLookupTableData: imagePixelModule.bluePaletteColorLookupTableData,\n pixelData: undefined // populated later after decoding\n };\n}\n\nexport default getImageFrame;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/getImageFrame.js","\n\nfunction getMinMax (storedPixelData) {\n // we always calculate the min max values since they are not always\n // present in DICOM and we don't want to trust them anyway as cornerstone\n // depends on us providing reliable values for these\n let min = storedPixelData[0];\n let max = storedPixelData[0];\n let storedPixel;\n const numPixels = storedPixelData.length;\n\n for (let index = 0; index < numPixels; index++) {\n storedPixel = storedPixelData[index];\n min = Math.min(min, storedPixel);\n max = Math.max(max, storedPixel);\n }\n\n return {\n min,\n max\n };\n}\n\nexport default getMinMax;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/getMinMax.js","\n\nfunction isColorImage (photoMetricInterpretation) {\n if (photoMetricInterpretation === 'RGB' ||\n photoMetricInterpretation === 'PALETTE COLOR' ||\n photoMetricInterpretation === 'YBR_FULL' ||\n photoMetricInterpretation === 'YBR_FULL_422' ||\n photoMetricInterpretation === 'YBR_PARTIAL_422' ||\n photoMetricInterpretation === 'YBR_PARTIAL_420' ||\n photoMetricInterpretation === 'YBR_RCT' ||\n photoMetricInterpretation === 'YBR_ICT') {\n return true;\n }\n\n return false;\n\n}\n\nexport default isColorImage;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/isColorImage.js","function isJPEGBaseline8BitColor (imageFrame, transferSyntax) {\n transferSyntax = transferSyntax || imageFrame.transferSyntax;\n\n if (imageFrame.bitsAllocated === 8 &&\n transferSyntax === '1.2.840.10008.1.2.4.50' &&\n (imageFrame.samplesPerPixel === 3 || imageFrame.samplesPerPixel === 4)) {\n return true;\n }\n}\n\nexport default isJPEGBaseline8BitColor;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/isJPEGBaseline8BitColor.js","import $ from 'jquery';\n\n// the taskId to assign to the next task added via addTask()\nlet nextTaskId = 0;\n\n// array of queued tasks sorted with highest priority task first\nconst tasks = [];\n\n// array of web workers to dispatch decode tasks to\nconst webWorkers = [];\n\nconst defaultConfig = {\n maxWebWorkers: navigator.hardwareConcurrency || 1,\n startWebWorkersOnDemand: true,\n webWorkerPath: '../../dist/cornerstoneWADOImageLoaderWebWorker.js',\n webWorkerTaskPaths: [],\n taskConfiguration: {\n decodeTask: {\n loadCodecsOnStartup: true,\n initializeCodecsOnStartup: false,\n codecsPath: '../dist/cornerstoneWADOImageLoaderCodecs.js',\n usePDFJS: false\n }\n }\n};\n\nlet config;\n\nconst statistics = {\n maxWebWorkers: 0,\n numWebWorkers: 0,\n numTasksQueued: 0,\n numTasksExecuting: 0,\n numTasksCompleted: 0,\n totalTaskTimeInMS: 0,\n totalTimeDelayedInMS: 0\n};\n\n/**\n * Function to start a task on a web worker\n */\nfunction startTaskOnWebWorker () {\n // return immediately if no decode tasks to do\n if (!tasks.length) {\n return;\n }\n\n // look for a web worker that is ready\n for (let i = 0; i < webWorkers.length; i++) {\n if (webWorkers[i].status === 'ready') {\n // mark it as busy so tasks are not assigned to it\n webWorkers[i].status = 'busy';\n\n // get the highest priority task\n const task = tasks.shift();\n\n task.start = new Date().getTime();\n\n // update stats with how long this task was delayed (waiting in queue)\n const end = new Date().getTime();\n\n statistics.totalTimeDelayedInMS += end - task.added;\n\n // assign this task to this web worker and send the web worker\n // a message to execute it\n webWorkers[i].task = task;\n webWorkers[i].worker.postMessage({\n taskType: task.taskType,\n workerIndex: i,\n data: task.data\n }, task.transferList);\n statistics.numTasksExecuting++;\n\n return;\n }\n }\n\n // if no available web workers and we haven't started max web workers, start a new one\n if (webWorkers.length < config.maxWebWorkers) {\n spawnWebWorker();\n }\n}\n\n/**\n * Function to handle a message from a web worker\n * @param msg\n */\nfunction handleMessageFromWorker (msg) {\n // console.log('handleMessageFromWorker', msg.data);\n if (msg.data.taskType === 'initialize') {\n webWorkers[msg.data.workerIndex].status = 'ready';\n startTaskOnWebWorker();\n } else {\n const start = webWorkers[msg.data.workerIndex].task.start;\n\n webWorkers[msg.data.workerIndex].task.deferred.resolve(msg.data.result);\n webWorkers[msg.data.workerIndex].task = undefined;\n\n statistics.numTasksExecuting--;\n webWorkers[msg.data.workerIndex].status = 'ready';\n statistics.numTasksCompleted++;\n\n const end = new Date().getTime();\n\n statistics.totalTaskTimeInMS += end - start;\n\n startTaskOnWebWorker();\n }\n}\n\n/**\n * Spawns a new web worker\n */\nfunction spawnWebWorker () {\n // prevent exceeding maxWebWorkers\n if (webWorkers.length >= config.maxWebWorkers) {\n return;\n }\n\n // spawn the webworker\n const worker = new Worker(config.webWorkerPath);\n\n webWorkers.push({\n worker,\n status: 'initializing'\n });\n worker.addEventListener('message', handleMessageFromWorker);\n worker.postMessage({\n taskType: 'initialize',\n workerIndex: webWorkers.length - 1,\n config\n });\n}\n\n/**\n * Initialization function for the web worker manager - spawns web workers\n * @param configObject\n */\nfunction initialize (configObject) {\n configObject = configObject || defaultConfig;\n\n // prevent being initialized more than once\n if (config) {\n throw new Error('WebWorkerManager already initialized');\n }\n\n config = configObject;\n\n config.maxWebWorkers = config.maxWebWorkers || (navigator.hardwareConcurrency || 1);\n\n // Spawn new web workers\n if (!config.startWebWorkersOnDemand) {\n for (let i = 0; i < config.maxWebWorkers; i++) {\n spawnWebWorker();\n }\n }\n}\n\n/**\n * dynamically loads a web worker task\n * @param sourcePath\n * @param taskConfig\n */\nfunction loadWebWorkerTask (sourcePath, taskConfig) {\n // add it to the list of web worker tasks paths so on demand web workers\n // load this properly\n config.webWorkerTaskPaths.push(sourcePath);\n\n // if a task specific configuration is provided, merge it into the config\n if (taskConfig) {\n config.taskConfiguration = Object.assign(config.taskConfiguration, taskConfig);\n }\n\n // tell each spawned web worker to load this task\n for (let i = 0; i < webWorkers.length; i++) {\n webWorkers[i].worker.postMessage({\n taskType: 'loadWebWorkerTask',\n workerIndex: webWorkers.length - 1,\n sourcePath,\n config\n });\n }\n}\n\n/**\n * Function to add a decode task to be performed\n *\n * @param taskType - the taskType for this task\n * @param data - data specific to the task\n * @param priority - optional priority of the task (defaults to 0), > 0 is higher, < 0 is lower\n * @param transferList - optional array of data to transfer to web worker\n * @returns {*}\n */\nfunction addTask (taskType, data, priority, transferList) {\n if (!config) {\n initialize();\n }\n\n priority = priority || 0;\n const deferred = $.Deferred();\n\n // find the right spot to insert this decode task (based on priority)\n let i;\n\n for (i = 0; i < tasks.length; i++) {\n if (tasks[i].priority <= priority) {\n break;\n }\n }\n\n const taskId = nextTaskId++;\n\n // insert the decode task at position i\n tasks.splice(i, 0, {\n taskId,\n taskType,\n status: 'ready',\n added: new Date().getTime(),\n data,\n deferred,\n priority,\n transferList\n });\n\n // try to start a task on the web worker since we just added a new task and a web worker may be available\n startTaskOnWebWorker();\n\n return {\n taskId,\n promise: deferred.promise()\n };\n}\n\n/**\n * Changes the priority of a queued task\n * @param taskId - the taskId to change the priority of\n * @param priority - priority of the task (defaults to 0), > 0 is higher, < 0 is lower\n * @returns boolean - true on success, false if taskId not found\n */\nfunction setTaskPriority (taskId, priority) {\n // search for this taskId\n for (let i = 0; i < tasks.length; i++) {\n if (tasks[i].taskId === taskId) {\n // taskId found, remove it\n const task = tasks.splice(i, 1)[0];\n\n // set its prioirty\n task.priority = priority;\n\n // find the right spot to insert this decode task (based on priority)\n for (i = 0; i < tasks.length; i++) {\n if (tasks[i].priority <= priority) {\n break;\n }\n }\n\n // insert the decode task at position i\n tasks.splice(i, 0, task);\n\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Cancels a queued task and rejects\n * @param taskId - the taskId to cancel\n * @param reason - optional reason the task was rejected\n * @returns boolean - true on success, false if taskId not found\n */\nfunction cancelTask (taskId, reason) {\n // search for this taskId\n for (let i = 0; i < tasks.length; i++) {\n if (tasks[i].taskId === taskId) {\n // taskId found, remove it\n const task = tasks.splice(i, 1);\n\n task.promise.reject(reason);\n\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Function to return the statistics on running web workers\n * @returns object containing statistics\n */\nfunction getStatistics () {\n statistics.maxWebWorkers = config.maxWebWorkers;\n statistics.numWebWorkers = webWorkers.length;\n statistics.numTasksQueued = tasks.length;\n\n return statistics;\n}\n\nexport default {\n initialize,\n loadWebWorkerTask,\n addTask,\n getStatistics,\n setTaskPriority,\n cancelTask\n};\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/webWorkerManager.js","let options = {\n // callback allowing customization of the xhr (e.g. adding custom auth headers, cors, etc)\n beforeSend (/* xhr */) {\n },\n // callback allowing modification of newly created image objects\n imageCreated (/* image */) {\n }\n};\n\nexport function setOptions (newOptions) {\n options = newOptions;\n}\n\nexport function getOptions () {\n return options;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/internal/options.js","function checkToken (token, data, dataOffset) {\n\n if (dataOffset + token.length > data.length) {\n return false;\n }\n\n let endIndex = dataOffset;\n\n for (let i = 0; i < token.length; i++) {\n if (token[i] !== data[endIndex++]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction stringToUint8Array (str) {\n const uint = new Uint8Array(str.length);\n\n for (let i = 0, j = str.length; i < j; i++) {\n uint[i] = str.charCodeAt(i);\n }\n\n return uint;\n}\n\nfunction findIndexOfString (data, str, offset) {\n\n offset = offset || 0;\n\n const token = stringToUint8Array(str);\n\n for (let i = offset; i < data.length; i++) {\n if (token[0] === data[i]) {\n // console.log('match @', i);\n if (checkToken(token, data, i)) {\n return i;\n }\n }\n }\n\n return -1;\n}\nexport default findIndexOfString;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadors/findIndexOfString.js","import $ from 'jquery';\nimport { xhrRequest } from '../internal';\nimport findIndexOfString from './findIndexOfString';\n\nfunction findBoundary (header) {\n for (let i = 0; i < header.length; i++) {\n if (header[i].substr(0, 2) === '--') {\n return header[i];\n }\n }\n\n return undefined;\n}\n\nfunction findContentType (header) {\n for (let i = 0; i < header.length; i++) {\n if (header[i].substr(0, 13) === 'Content-Type:') {\n return header[i].substr(13).trim();\n }\n }\n\n return undefined;\n}\n\nfunction uint8ArrayToString (data, offset, length) {\n offset = offset || 0;\n length = length || data.length - offset;\n let str = '';\n\n for (let i = offset; i < offset + length; i++) {\n str += String.fromCharCode(data[i]);\n }\n\n return str;\n}\n\nfunction getPixelData (uri, imageId, mediaType) {\n mediaType = mediaType || 'application/octet-stream';\n const headers = {\n accept: mediaType\n };\n\n const deferred = $.Deferred();\n\n const loadPromise = xhrRequest(uri, imageId, headers);\n\n loadPromise.then(function (imageFrameAsArrayBuffer/* , xhr*/) {\n\n // request succeeded, Parse the multi-part mime response\n const response = new Uint8Array(imageFrameAsArrayBuffer);\n\n // First look for the multipart mime header\n const tokenIndex = findIndexOfString(response, '\\r\\n\\r\\n');\n\n if (tokenIndex === -1) {\n deferred.reject('invalid response - no multipart mime header');\n }\n const header = uint8ArrayToString(response, 0, tokenIndex);\n // Now find the boundary marker\n const split = header.split('\\r\\n');\n const boundary = findBoundary(split);\n\n if (!boundary) {\n deferred.reject('invalid response - no boundary marker');\n }\n const offset = tokenIndex + 4; // skip over the \\r\\n\\r\\n\n\n // find the terminal boundary marker\n const endIndex = findIndexOfString(response, boundary, offset);\n\n if (endIndex === -1) {\n deferred.reject('invalid response - terminating boundary not found');\n }\n\n // Remove \\r\\n from the length\n const length = endIndex - offset - 2;\n\n // return the info for this pixel data\n deferred.resolve({\n contentType: findContentType(split),\n imageFrame: {\n pixelData: new Uint8Array(imageFrameAsArrayBuffer, offset, length)\n }\n });\n });\n\n return deferred.promise();\n}\n\nexport default getPixelData;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadors/getPixelData.js","import getValue from './getValue';\n\nfunction getNumberValue (element, index) {\n const value = getValue(element, index);\n\n if (value === undefined) {\n return;\n }\n\n return parseFloat(value);\n}\n\nexport default getNumberValue;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadors/metaData/getNumberValue.js","\n\n/**\n * Returns the values as an array of javascript numbers\n *\n * @param element - The javascript object for the specified element in the metadata\n * @param [minimumLength] - the minimum number of values\n * @returns {*}\n */\nfunction getNumberValues (element, minimumLength) {\n if (!element) {\n return;\n }\n // Value is not present if the attribute has a zero length value\n if (!element.Value) {\n return;\n }\n // make sure we have the expected length\n if (minimumLength && element.Value.length < minimumLength) {\n return;\n }\n\n const values = [];\n\n for (let i = 0; i < element.Value.length; i++) {\n values.push(parseFloat(element.Value[i]));\n }\n\n return values;\n}\n\nexport default getNumberValues;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadors/metaData/getNumberValues.js","\n\nlet files = [];\n\nfunction add (file) {\n const fileIndex = files.push(file);\n\n\n return `dicomfile:${fileIndex - 1}`;\n}\n\nfunction get (index) {\n return files[index];\n}\n\nfunction remove (index) {\n files[index] = undefined;\n}\n\nfunction purge () {\n files = [];\n}\n\nexport default {\n add,\n get,\n remove,\n purge\n};\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/fileManager.js","import * as dicomParser from 'dicom-parser';\n\n/**\n * Function to deal with extracting an image frame from an encapsulated data set.\n */\n\n\nfunction framesAreFragmented (dataSet) {\n const numberOfFrames = dataSet.intString('x00280008');\n const pixelDataElement = dataSet.elements.x7fe00010;\n\n if (numberOfFrames !== pixelDataElement.fragments.length) {\n return true;\n }\n}\n\nfunction getEncodedImageFrame (dataSet, frame) {\n // Empty basic offset table\n if (!dataSet.elements.x7fe00010.basicOffsetTable.length) {\n if (framesAreFragmented(dataSet)) {\n const basicOffsetTable = dicomParser.createJPEGBasicOffsetTable(dataSet, dataSet.elements.x7fe00010);\n\n\n return dicomParser.readEncapsulatedImageFrame(dataSet, dataSet.elements.x7fe00010, frame, basicOffsetTable);\n }\n\n return dicomParser.readEncapsulatedPixelDataFromFragments(dataSet, dataSet.elements.x7fe00010, frame);\n\n }\n\n // Basic Offset Table is not empty\n return dicomParser.readEncapsulatedImageFrame(dataSet, dataSet.elements.x7fe00010, frame);\n}\n\nfunction getEncapsulatedImageFrame (dataSet, frameIndex) {\n return getEncodedImageFrame(dataSet, frameIndex);\n}\n\nexport default getEncapsulatedImageFrame;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/getEncapsulatedImageFrame.js","import unpackBinaryFrame from './unpackBinaryFrame';\n\n/**\n * Function to deal with extracting an image frame from an encapsulated data set.\n */\n\nfunction getUncompressedImageFrame (dataSet, frameIndex) {\n const pixelDataElement = dataSet.elements.x7fe00010;\n const bitsAllocated = dataSet.uint16('x00280100');\n const rows = dataSet.uint16('x00280010');\n const columns = dataSet.uint16('x00280011');\n const samplesPerPixel = dataSet.uint16('x00280002');\n\n const pixelDataOffset = pixelDataElement.dataOffset;\n const pixelsPerFrame = rows * columns * samplesPerPixel;\n\n let frameOffset;\n\n if (bitsAllocated === 8) {\n frameOffset = pixelDataOffset + frameIndex * pixelsPerFrame;\n if (frameOffset >= dataSet.byteArray.length) {\n throw 'frame exceeds size of pixelData';\n }\n\n return new Uint8Array(dataSet.byteArray.buffer, frameOffset, pixelsPerFrame);\n } else if (bitsAllocated === 16) {\n frameOffset = pixelDataOffset + frameIndex * pixelsPerFrame * 2;\n if (frameOffset >= dataSet.byteArray.length) {\n throw 'frame exceeds size of pixelData';\n }\n\n return new Uint8Array(dataSet.byteArray.buffer, frameOffset, pixelsPerFrame * 2);\n } else if (bitsAllocated === 1) {\n frameOffset = pixelDataOffset + frameIndex * pixelsPerFrame * 0.125;\n if (frameOffset >= dataSet.byteArray.length) {\n throw 'frame exceeds size of pixelData';\n }\n\n return unpackBinaryFrame(dataSet.byteArray, frameOffset, pixelsPerFrame);\n }\n\n throw 'unsupported pixel format';\n}\n\nexport default getUncompressedImageFrame;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/getUncompressedImageFrame.js","import $ from 'jquery';\nimport parseImageId from './parseImageId';\nimport fileManager from './fileManager';\n\nfunction loadFileRequest (uri) {\n const parsedImageId = parseImageId(uri);\n const fileIndex = parseInt(parsedImageId.url, 10);\n const file = fileManager.get(fileIndex);\n\n // create a deferred object\n const deferred = $.Deferred();\n\n const fileReader = new FileReader();\n\n fileReader.onload = function (e) {\n const dicomPart10AsArrayBuffer = e.target.result;\n\n deferred.resolve(dicomPart10AsArrayBuffer);\n };\n fileReader.readAsArrayBuffer(file);\n\n return deferred.promise();\n}\n\nexport default loadFileRequest;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/loadFileRequest.js","\n\nfunction getLutDescriptor (dataSet, tag) {\n if (!dataSet.elements[tag] || dataSet.elements[tag].length !== 6) {\n return;\n }\n\n return [dataSet.uint16(tag, 0), dataSet.uint16(tag, 1), dataSet.uint16(tag, 2)];\n}\n\nfunction getLutData (lutDataSet, tag, lutDescriptor) {\n const lut = [];\n const lutData = lutDataSet.elements[tag];\n const numLutEntries = lutDescriptor[0];\n\n for (let i = 0; i < numLutEntries; i++) {\n // Output range is always unsigned\n if (lutDescriptor[2] === 16) {\n lut[i] = lutDataSet.uint16(tag, i);\n } else {\n lut[i] = lutDataSet.byteArray[i + lutData.dataOffset];\n }\n }\n\n return lut;\n}\n\nfunction populatePaletteColorLut (dataSet, imagePixelModule) {\n // return immediately if no palette lut elements\n if (!dataSet.elements.x00281101) {\n return;\n }\n imagePixelModule.redPaletteColorLookupTableDescriptor = getLutDescriptor(dataSet, 'x00281101');\n imagePixelModule.greenPaletteColorLookupTableDescriptor = getLutDescriptor(dataSet, 'x00281102');\n imagePixelModule.bluePaletteColorLookupTableDescriptor = getLutDescriptor(dataSet, 'x00281103');\n\n imagePixelModule.redPaletteColorLookupTableData = getLutData(dataSet, 'x00281201', imagePixelModule.redPaletteColorLookupTableDescriptor);\n imagePixelModule.greenPaletteColorLookupTableData = getLutData(dataSet, 'x00281202', imagePixelModule.greenPaletteColorLookupTableDescriptor);\n imagePixelModule.bluePaletteColorLookupTableData = getLutData(dataSet, 'x00281203', imagePixelModule.bluePaletteColorLookupTableDescriptor);\n}\n\nfunction populateSmallestLargestPixelValues (dataSet, imagePixelModule) {\n const pixelRepresentation = dataSet.uint16('x00280103');\n\n if (pixelRepresentation === 0) {\n imagePixelModule.smallestPixelValue = dataSet.uint16('x00280106');\n imagePixelModule.largestPixelValue = dataSet.uint16('x00280107');\n } else {\n imagePixelModule.smallestPixelValue = dataSet.int16('x00280106');\n imagePixelModule.largestPixelValue = dataSet.int16('x00280107');\n }\n}\n\nfunction getImagePixelModule (dataSet) {\n\n const imagePixelModule = {\n samplesPerPixel: dataSet.uint16('x00280002'),\n photometricInterpretation: dataSet.string('x00280004'),\n rows: dataSet.uint16('x00280010'),\n columns: dataSet.uint16('x00280011'),\n bitsAllocated: dataSet.uint16('x00280100'),\n bitsStored: dataSet.uint16('x00280101'),\n highBit: dataSet.uint16('x00280102'),\n pixelRepresentation: dataSet.uint16('x00280103'),\n planarConfiguration: dataSet.uint16('x00280006'),\n pixelAspectRatio: dataSet.string('x00280034')\n };\n\n populateSmallestLargestPixelValues(dataSet, imagePixelModule);\n populatePaletteColorLut(dataSet, imagePixelModule);\n\n return imagePixelModule;\n\n}\n\nexport default getImagePixelModule;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/metaData/getImagePixelModule.js","\n\nfunction getLUT (pixelRepresentation, lutDataSet) {\n let numLUTEntries = lutDataSet.uint16('x00283002', 0);\n\n if (numLUTEntries === 0) {\n numLUTEntries = 65535;\n }\n let firstValueMapped = 0;\n\n if (pixelRepresentation === 0) {\n firstValueMapped = lutDataSet.uint16('x00283002', 1);\n } else {\n firstValueMapped = lutDataSet.int16('x00283002', 1);\n }\n const numBitsPerEntry = lutDataSet.uint16('x00283002', 2);\n // console.log('LUT(', numLUTEntries, ',', firstValueMapped, ',', numBitsPerEntry, ')');\n const lut = {\n id: '1',\n firstValueMapped,\n numBitsPerEntry,\n lut: []\n };\n\n // console.log(\"minValue=\", minValue, \"; maxValue=\", maxValue);\n for (let i = 0; i < numLUTEntries; i++) {\n if (pixelRepresentation === 0) {\n lut.lut[i] = lutDataSet.uint16('x00283006', i);\n } else {\n lut.lut[i] = lutDataSet.int16('x00283006', i);\n }\n }\n\n return lut;\n}\n\n\nfunction getLUTs (pixelRepresentation, lutSequence) {\n if (!lutSequence || !lutSequence.items.length) {\n return;\n }\n const luts = [];\n\n for (let i = 0; i < lutSequence.items.length; i++) {\n const lutDataSet = lutSequence.items[i].dataSet;\n const lut = getLUT(pixelRepresentation, lutDataSet);\n\n if (lut) {\n luts.push(lut);\n }\n }\n\n return luts;\n}\n\nexport default getLUTs;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/metaData/getLUTs.js","/* eslint no-bitwise: 0 */\n\nfunction getMinStoredPixelValue (dataSet) {\n const pixelRepresentation = dataSet.uint16('x00280103');\n const bitsStored = dataSet.uint16('x00280101');\n\n if (pixelRepresentation === 0) {\n return 0;\n }\n\n return -1 << (bitsStored - 1);\n}\n\n// 0 = unsigned / US, 1 = signed / SS\nfunction getModalityLUTOutputPixelRepresentation (dataSet) {\n\n // CT SOP Classes are always signed\n const sopClassUID = dataSet.string('x00080016');\n\n if (sopClassUID === '1.2.840.10008.5.1.4.1.1.2' ||\n sopClassUID === '1.2.840.10008.5.1.4.1.1.2.1') {\n return 1;\n }\n\n // if rescale intercept and rescale slope are present, pass the minimum stored\n // pixel value through them to see if we get a signed output range\n const rescaleIntercept = dataSet.floatString('x00281052');\n const rescaleSlope = dataSet.floatString('x00281053');\n\n if (rescaleIntercept !== undefined && rescaleSlope !== undefined) {\n const minStoredPixelValue = getMinStoredPixelValue(dataSet); //\n const minModalityLutValue = minStoredPixelValue * rescaleSlope + rescaleIntercept;\n\n if (minModalityLutValue < 0) {\n return 1;\n }\n\n return 0;\n\n }\n\n // Output of non linear modality lut is always unsigned\n if (dataSet.elements.x00283000 && dataSet.elements.x00283000.length > 0) {\n return 0;\n }\n\n // If no modality lut transform, output is same as pixel representation\n return dataSet.uint16('x00280103');\n}\n\nexport default getModalityLUTOutputPixelRepresentation;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.js","function getNumberValues (dataSet, tag, minimumLength) {\n const values = [];\n const valueAsString = dataSet.string(tag);\n\n if (!valueAsString) {\n return;\n }\n const split = valueAsString.split('\\\\');\n\n if (minimumLength && split.length < minimumLength) {\n return;\n }\n for (let i = 0; i < split.length; i++) {\n values.push(parseFloat(split[i]));\n }\n\n return values;\n}\n\nexport default getNumberValues;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/metaData/getNumberValues.js","/* eslint no-bitwise: 0 */\n\nfunction isBitSet (byte, bitPos) {\n return byte & (1 << bitPos);\n}\n\n/**\n * Function to deal with unpacking a binary frame\n */\nfunction unpackBinaryFrame (byteArray, frameOffset, pixelsPerFrame) {\n // Create a new pixel array given the image size\n const pixelData = new Uint8Array(pixelsPerFrame);\n\n for (let i = 0; i < pixelsPerFrame; i++) {\n // Compute byte position\n const bytePos = Math.floor(i / 8);\n\n // Get the current byte\n const byte = byteArray[bytePos + frameOffset];\n\n // Bit position (0-7) within byte\n const bitPos = (i % 8);\n\n // Check whether bit at bitpos is set\n pixelData[i] = isBitSet(byte, bitPos) ? 1 : 0;\n }\n\n return pixelData;\n}\n\nexport default unpackBinaryFrame;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/unpackBinaryFrame.js","import { setOptions } from './internal';\n\nfunction configure (options) {\n setOptions(options);\n}\n\nexport default configure;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/configure.js","import { getNumberString,\n getNumberValue,\n getNumberValues,\n getValue,\n metaDataProvider } from './metaData';\n\nimport findIndexOfString from './findIndexOfString';\nimport getPixelData from './getPixelData';\nimport metaDataManager from './metaDataManager';\nimport loadImage from './loadImage';\n\nconst metaData = {\n getNumberString,\n getNumberValue,\n getNumberValues,\n getValue,\n metaDataProvider\n};\n\nexport default {\n metaData,\n findIndexOfString,\n getPixelData,\n loadImage,\n metaDataManager\n};\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadors/index.js","import { getImagePixelModule,\n getLUTs,\n getModalityLUTOutputPixelRepresentation,\n getNumberValues,\n metaDataProvider } from './metaData';\n\nimport dataSetCacheManager from './dataSetCacheManager';\nimport fileManager from './fileManager';\nimport getEncapsulatedImageFrame from './getEncapsulatedImageFrame';\nimport getUncompressedImageFrame from './getUncompressedImageFrame';\nimport loadFileRequest from './loadFileRequest';\nimport loadImage from './loadImage';\nimport parseImageId from './parseImageId';\nimport unpackBinaryFrame from './unpackBinaryFrame';\n\nconst metaData = {\n getImagePixelModule,\n getLUTs,\n getModalityLUTOutputPixelRepresentation,\n getNumberValues,\n metaDataProvider\n};\n\nexport default {\n metaData,\n dataSetCacheManager,\n fileManager,\n getEncapsulatedImageFrame,\n getUncompressedImageFrame,\n loadFileRequest,\n loadImage,\n parseImageId,\n unpackBinaryFrame\n};\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/index.js","/* eslint no-bitwise: 0 */\n\nfunction convertPALETTECOLOR (imageFrame, rgbaBuffer) {\n const numPixels = imageFrame.columns * imageFrame.rows;\n let palIndex = 0;\n let rgbaIndex = 0;\n const pixelData = imageFrame.pixelData;\n const start = imageFrame.redPaletteColorLookupTableDescriptor[1];\n const rData = imageFrame.redPaletteColorLookupTableData;\n const gData = imageFrame.greenPaletteColorLookupTableData;\n const bData = imageFrame.bluePaletteColorLookupTableData;\n const shift = imageFrame.redPaletteColorLookupTableDescriptor[2] === 8 ? 0 : 8;\n let len = imageFrame.redPaletteColorLookupTableData.length;\n\n if (len === 0) {\n len = 65535;\n }\n\n for (let i = 0; i < numPixels; ++i) {\n let value = pixelData[palIndex++];\n\n if (value < start) {\n value = 0;\n } else if (value > start + len - 1) {\n value = len - 1;\n } else {\n value -= start;\n }\n\n rgbaBuffer[rgbaIndex++] = rData[value] >> shift;\n rgbaBuffer[rgbaIndex++] = gData[value] >> shift;\n rgbaBuffer[rgbaIndex++] = bData[value] >> shift;\n rgbaBuffer[rgbaIndex++] = 255;\n }\n}\n\nexport default convertPALETTECOLOR;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/colorSpaceConverters/convertPALETTECOLOR.js","\n\nfunction convertRGBColorByPixel (imageFrame, rgbaBuffer) {\n if (imageFrame === undefined) {\n throw 'decodeRGB: rgbBuffer must not be undefined';\n }\n if (imageFrame.length % 3 !== 0) {\n throw 'decodeRGB: rgbBuffer length must be divisible by 3';\n }\n\n const numPixels = imageFrame.length / 3;\n let rgbIndex = 0;\n let rgbaIndex = 0;\n\n for (let i = 0; i < numPixels; i++) {\n rgbaBuffer[rgbaIndex++] = imageFrame[rgbIndex++]; // red\n rgbaBuffer[rgbaIndex++] = imageFrame[rgbIndex++]; // green\n rgbaBuffer[rgbaIndex++] = imageFrame[rgbIndex++]; // blue\n rgbaBuffer[rgbaIndex++] = 255; // alpha\n }\n}\n\nexport default convertRGBColorByPixel;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/colorSpaceConverters/convertRGBColorByPixel.js","\n\nfunction convertRGBColorByPlane (imageFrame, rgbaBuffer) {\n if (imageFrame === undefined) {\n throw 'decodeRGB: rgbBuffer must not be undefined';\n }\n if (imageFrame.length % 3 !== 0) {\n throw 'decodeRGB: rgbBuffer length must be divisible by 3';\n }\n\n const numPixels = imageFrame.length / 3;\n let rgbaIndex = 0;\n let rIndex = 0;\n let gIndex = numPixels;\n let bIndex = numPixels * 2;\n\n for (let i = 0; i < numPixels; i++) {\n rgbaBuffer[rgbaIndex++] = imageFrame[rIndex++]; // red\n rgbaBuffer[rgbaIndex++] = imageFrame[gIndex++]; // green\n rgbaBuffer[rgbaIndex++] = imageFrame[bIndex++]; // blue\n rgbaBuffer[rgbaIndex++] = 255; // alpha\n }\n}\n\nexport default convertRGBColorByPlane;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/colorSpaceConverters/convertRGBColorByPlane.js","\n\nfunction convertYBRFullByPixel (imageFrame, rgbaBuffer) {\n if (imageFrame === undefined) {\n throw 'decodeRGB: ybrBuffer must not be undefined';\n }\n if (imageFrame.length % 3 !== 0) {\n throw 'decodeRGB: ybrBuffer length must be divisble by 3';\n }\n\n const numPixels = imageFrame.length / 3;\n let ybrIndex = 0;\n let rgbaIndex = 0;\n\n for (let i = 0; i < numPixels; i++) {\n const y = imageFrame[ybrIndex++];\n const cb = imageFrame[ybrIndex++];\n const cr = imageFrame[ybrIndex++];\n\n rgbaBuffer[rgbaIndex++] = y + 1.40200 * (cr - 128);// red\n rgbaBuffer[rgbaIndex++] = y - 0.34414 * (cb - 128) - 0.71414 * (cr - 128); // green\n rgbaBuffer[rgbaIndex++] = y + 1.77200 * (cb - 128); // blue\n rgbaBuffer[rgbaIndex++] = 255; // alpha\n }\n}\n\nexport default convertYBRFullByPixel;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/colorSpaceConverters/convertYBRFullByPixel.js","\n\nfunction convertYBRFullByPlane (imageFrame, rgbaBuffer) {\n if (imageFrame === undefined) {\n throw 'decodeRGB: ybrBuffer must not be undefined';\n }\n if (imageFrame.length % 3 !== 0) {\n throw 'decodeRGB: ybrBuffer length must be divisble by 3';\n }\n\n\n const numPixels = imageFrame.length / 3;\n let rgbaIndex = 0;\n let yIndex = 0;\n let cbIndex = numPixels;\n let crIndex = numPixels * 2;\n\n for (let i = 0; i < numPixels; i++) {\n const y = imageFrame[yIndex++];\n const cb = imageFrame[cbIndex++];\n const cr = imageFrame[crIndex++];\n\n rgbaBuffer[rgbaIndex++] = y + 1.40200 * (cr - 128);// red\n rgbaBuffer[rgbaIndex++] = y - 0.34414 * (cb - 128) - 0.71414 * (cr - 128); // green\n rgbaBuffer[rgbaIndex++] = y + 1.77200 * (cb - 128); // blue\n rgbaBuffer[rgbaIndex++] = 255; // alpha\n }\n}\nexport default convertYBRFullByPlane;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/colorSpaceConverters/convertYBRFullByPlane.js","export * from './colorSpaceConverters';\n\nexport { default as wadouri } from './wadouri';\nexport { default as wadors } from './wadors';\nexport { default as configure } from './configure';\nexport { default as convertColorSpace } from './convertColorSpace';\nexport { default as createImage } from './createImage';\nexport { default as decodeImageFrame } from './decodeImageFrame';\nexport { default as decodeJPEGBaseline8BitColor } from './decodeJPEGBaseline8BitColor';\nexport { default as getImageFrame } from './getImageFrame';\nexport { default as getMinMax } from './getMinMax';\nexport { default as isColorImage } from './isColorImage';\nexport { default as isJPEGBaseline8BitColor } from './isJPEGBaseline8BitColor';\nexport { default as webWorkerManager } from './webWorkerManager';\nexport { default as version } from '../version';\nexport { internal } from './internal/';\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/index.js","import $ from 'jquery';\nimport { getOptions } from './options';\nimport * as cornerstone from 'cornerstone-core';\n\nfunction xhrRequest (url, imageId, headers) {\n headers = headers || {};\n\n const deferred = $.Deferred();\n const options = getOptions();\n\n // Make the request for the DICOM P10 SOP Instance\n const xhr = new XMLHttpRequest();\n\n xhr.open('get', url, true);\n xhr.responseType = 'arraybuffer';\n options.beforeSend(xhr);\n Object.keys(headers).forEach(function (key) {\n xhr.setRequestHeader(key, headers[key]);\n });\n\n // handle response data\n xhr.onreadystatechange = function () {\n // TODO: consider sending out progress messages here as we receive the pixel data\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n deferred.resolve(xhr.response, xhr);\n } else {\n // request failed, reject the deferred\n deferred.reject(xhr);\n }\n }\n };\n xhr.onprogress = function (oProgress) {\n // console.log('progress:',oProgress)\n\n if (oProgress.lengthComputable) { // evt.loaded the bytes browser receive\n // evt.total the total bytes seted by the header\n //\n const loaded = oProgress.loaded;\n const total = oProgress.total;\n const percentComplete = Math.round((loaded / total) * 100);\n\n $(cornerstone).trigger('CornerstoneImageLoadProgress', {\n imageId,\n loaded,\n total,\n percentComplete\n });\n }\n };\n\n xhr.send();\n\n return deferred.promise();\n}\n\nexport default xhrRequest;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/internal/xhrRequest.js","import $ from 'jquery';\nimport * as cornerstone from 'cornerstone-core';\nimport metaDataManager from './metaDataManager';\nimport getPixelData from './getPixelData';\nimport createImage from '../createImage';\n\nfunction getTransferSyntaxForContentType (/* contentType */) {\n return '1.2.840.10008.1.2'; // hard code to ILE for now\n}\n\nfunction loadImage (imageId, options) {\n const start = new Date().getTime();\n\n const deferred = $.Deferred();\n\n const uri = imageId.substring(7);\n\n // check to make sure we have metadata for this imageId\n const metaData = metaDataManager.get(imageId);\n\n if (metaData === undefined) {\n deferred.reject(`no metadata for imageId ${imageId}`);\n\n return deferred.promise();\n }\n\n // TODO: load bulk data items that we might need\n\n const mediaType = 'multipart/related; type=\"application/octet-stream\"'; // 'image/dicom+jp2';\n\n // get the pixel data from the server\n getPixelData(uri, imageId, mediaType).then(function (result) {\n\n const transferSyntax = getTransferSyntaxForContentType(result.contentType);\n const pixelData = result.imageFrame.pixelData;\n const imagePromise = createImage(imageId, pixelData, transferSyntax, options);\n\n imagePromise.then(function (image) {\n // add the loadTimeInMS property\n const end = new Date().getTime();\n\n image.loadTimeInMS = end - start;\n deferred.resolve(image);\n });\n }).fail(function (reason) {\n deferred.reject(reason);\n });\n\n return deferred;\n}\n\n// register wadors scheme\ncornerstone.registerImageLoader('wadors', loadImage);\n\nexport default loadImage;\n\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadors/loadImage.js","import getValue from './getValue';\n\n/**\n * Returns the first string value as a Javascript number\n *\n * @param element - The javascript object for the specified element in the metadata\n * @param [index] - the index of the value in a multi-valued element, default is 0\n * @param [defaultValue] - The default value to return if the element does not exist\n * @returns {*}\n */\nfunction getNumberString (element, index, defaultValue) {\n const value = getValue(element, index, defaultValue);\n\n if (value === undefined) {\n return;\n }\n\n return parseFloat(value);\n}\n\nexport default getNumberString;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadors/metaData/getNumberString.js","export { default as getNumberString } from './getNumberString';\nexport { default as getNumberValue } from './getNumberValue';\nexport { default as getNumberValues } from './getNumberValues';\nexport { default as getValue } from './getValue';\nexport { default as metaDataProvider } from './metaDataProvider';\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadors/metaData/index.js","import getNumberValues from './getNumberValues';\nimport getValue from './getValue';\nimport getNumberValue from './getNumberValue';\nimport metaDataManager from '../metaDataManager';\nimport * as dicomParser from 'dicom-parser';\nimport * as cornerstone from 'cornerstone-core';\n\nfunction metaDataProvider (type, imageId) {\n const metaData = metaDataManager.get(imageId);\n\n if (!metaData) {\n return;\n }\n\n if (type === 'generalSeriesModule') {\n return {\n modality: getValue(metaData['00080060']),\n seriesInstanceUID: getValue(metaData['0020000e']),\n seriesNumber: getNumberValue(metaData['00200011']),\n studyInstanceUID: getValue(metaData['0020000d']),\n seriesDate: dicomParser.parseDA(getValue(metaData['00080021'])),\n seriesTime: dicomParser.parseTM(getValue(metaData['00080031'], 0, ''))\n };\n }\n\n if (type === 'patientStudyModule') {\n return {\n patientAge: getNumberValue(metaData['00101010']),\n patientSize: getNumberValue(metaData['00101020']),\n patientWeight: getNumberValue(metaData['00101030'])\n };\n }\n\n if (type === 'imagePlaneModule') {\n return {\n pixelSpacing: getNumberValues(metaData['00280030'], 2),\n imageOrientationPatient: getNumberValues(metaData['00200037'], 6),\n imagePositionPatient: getNumberValues(metaData['00200032'], 3),\n sliceThickness: getNumberValue(metaData['00180050']),\n sliceLocation: getNumberValue(metaData['00201041'])\n };\n }\n\n if (type === 'imagePixelModule') {\n return {\n samplesPerPixel: getNumberValue(metaData['00280002']),\n photometricInterpretation: getValue(metaData['00280004']),\n rows: getNumberValue(metaData['00280010']),\n columns: getNumberValue(metaData['00280011']),\n bitsAllocated: getNumberValue(metaData['00280100']),\n bitsStored: getNumberValue(metaData['00280101']),\n highBit: getValue(metaData['00280102']),\n pixelRepresentation: getNumberValue(metaData['00280103']),\n planarConfiguration: getNumberValue(metaData['00280006']),\n pixelAspectRatio: getValue(metaData['00280034']),\n smallestPixelValue: getNumberValue(metaData['00280106']),\n largestPixelValue: getNumberValue(metaData['00280107']),\n redPaletteColorLookupTableDescriptor: getNumberValues(metaData['00281101']),\n greenPaletteColorLookupTableDescriptor: getNumberValues(metaData['00281102']),\n bluePaletteColorLookupTableDescriptor: getNumberValues(metaData['00281103']),\n redPaletteColorLookupTableData: getNumberValues(metaData['00281201']),\n greenPaletteColorLookupTableData: getNumberValues(metaData['00281202']),\n bluePaletteColorLookupTableData: getNumberValues(metaData['00281203'])\n };\n }\n\n if (type === 'voiLutModule') {\n return {\n // TODO VOT LUT Sequence\n windowCenter: getNumberValues(metaData['00281050'], 1),\n windowWidth: getNumberValues(metaData['00281051'], 1)\n };\n }\n\n if (type === 'modalityLutModule') {\n return {\n // TODO VOT LUT Sequence\n rescaleIntercept: getNumberValue(metaData['00281052']),\n rescaleSlope: getNumberValue(metaData['00281053']),\n rescaleType: getValue(metaData['00281054'])\n };\n }\n\n if (type === 'sopCommonModule') {\n return {\n sopClassUID: getValue(metaData['00080016']),\n sopInstanceUID: getValue(metaData['00080018'])\n };\n }\n\n if (type === 'petIsotopeModule') {\n const radiopharmaceuticalInfo = getValue(metaData['00540016']);\n\n if (radiopharmaceuticalInfo === undefined) {\n return;\n }\n\n return {\n radiopharmaceuticalInfo: {\n radiopharmaceuticalStartTime: dicomParser.parseTM(getValue(radiopharmaceuticalInfo['00181072'], 0, '')),\n radionuclideTotalDose: getNumberValue(radiopharmaceuticalInfo['00181074']),\n radionuclideHalfLife: getNumberValue(radiopharmaceuticalInfo['00181075'])\n }\n };\n }\n\n}\n\ncornerstone.metaData.addProvider(metaDataProvider);\n\nexport default metaDataProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadors/metaData/metaDataProvider.js","import $ from 'jquery';\nimport * as cornerstone from 'cornerstone-core';\nimport createImage from '../createImage';\nimport parseImageId from './parseImageId';\nimport dataSetCacheManager from './dataSetCacheManager';\nimport getEncapsulatedImageFrame from './getEncapsulatedImageFrame';\nimport getUncompressedImageFrame from './getUncompressedImageFrame';\nimport loadFileRequest from './loadFileRequest';\nimport { xhrRequest } from '../internal';\n\n// add a decache callback function to clear out our dataSetCacheManager\nfunction addDecache (image) {\n image.decache = function () {\n // console.log('decache');\n const parsedImageId = parseImageId(image.imageId);\n\n dataSetCacheManager.unload(parsedImageId.url);\n };\n}\n\nfunction getPixelData (dataSet, frameIndex) {\n const pixelDataElement = dataSet.elements.x7fe00010;\n\n if (pixelDataElement.encapsulatedPixelData) {\n return getEncapsulatedImageFrame(dataSet, frameIndex);\n }\n\n return getUncompressedImageFrame(dataSet, frameIndex);\n\n}\n\nfunction loadImageFromPromise (dataSetPromise, imageId, frame, sharedCacheKey, options) {\n\n const start = new Date().getTime();\n\n frame = frame || 0;\n const deferred = $.Deferred();\n\n dataSetPromise.then(function (dataSet/* , xhr*/) {\n const pixelData = getPixelData(dataSet, frame);\n const transferSyntax = dataSet.string('x00020010');\n const loadEnd = new Date().getTime();\n const imagePromise = createImage(imageId, pixelData, transferSyntax, options);\n\n imagePromise.then(function (image) {\n image.data = dataSet;\n const end = new Date().getTime();\n\n image.loadTimeInMS = loadEnd - start;\n image.totalTimeInMS = end - start;\n addDecache(image);\n deferred.resolve(image);\n });\n }, function (error) {\n deferred.reject(error);\n });\n\n return deferred;\n}\n\nfunction getLoaderForScheme (scheme) {\n if (scheme === 'dicomweb' || scheme === 'wadouri') {\n return xhrRequest;\n } else if (scheme === 'dicomfile') {\n return loadFileRequest;\n }\n}\n\nfunction loadImage (imageId, options) {\n const parsedImageId = parseImageId(imageId);\n const loader = getLoaderForScheme(parsedImageId.scheme);\n\n // if the dataset for this url is already loaded, use it\n if (dataSetCacheManager.isLoaded(parsedImageId.url)) {\n return loadImageFromPromise(dataSetCacheManager.load(parsedImageId.url, loader, imageId), imageId, parsedImageId.frame, parsedImageId.url, options);\n }\n\n // load the dataSet via the dataSetCacheManager\n return loadImageFromPromise(dataSetCacheManager.load(parsedImageId.url, loader, imageId), imageId, parsedImageId.frame, parsedImageId.url, options);\n}\n\n// register dicomweb and wadouri image loader prefixes\ncornerstone.registerImageLoader('dicomweb', loadImage);\ncornerstone.registerImageLoader('wadouri', loadImage);\ncornerstone.registerImageLoader('dicomfile', loadImage);\n\nexport default loadImage;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/loadImage.js","export { default as getImagePixelModule } from './getImagePixelModule';\nexport { default as getLUTs } from './getLUTs';\nexport { default as getModalityLUTOutputPixelRepresentation } from './getModalityLUTOutputPixelRepresentation';\nexport { default as getNumberValues } from './getNumberValues';\nexport { default as metaDataProvider } from './metaDataProvider';\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/metaData/index.js","import getNumberValues from './getNumberValues';\nimport parseImageId from '../parseImageId';\nimport dataSetCacheManager from '../dataSetCacheManager';\nimport getImagePixelModule from './getImagePixelModule';\nimport getLUTs from './getLUTs';\nimport getModalityLUTOutputPixelRepresentation from './getModalityLUTOutputPixelRepresentation';\nimport * as dicomParser from 'dicom-parser';\nimport * as cornerstone from 'cornerstone-core';\n\nfunction metaDataProvider (type, imageId) {\n const parsedImageId = parseImageId(imageId);\n\n const dataSet = dataSetCacheManager.get(parsedImageId.url);\n\n if (!dataSet) {\n return;\n }\n\n if (type === 'generalSeriesModule') {\n return {\n modality: dataSet.string('x00080060'),\n seriesInstanceUID: dataSet.string('x0020000e'),\n seriesNumber: dataSet.intString('x00200011'),\n studyInstanceUID: dataSet.string('x0020000d'),\n seriesDate: dicomParser.parseDA(dataSet.string('x00080021')),\n seriesTime: dicomParser.parseTM(dataSet.string('x00080031') || '')\n };\n }\n\n if (type === 'patientStudyModule') {\n return {\n patientAge: dataSet.intString('x00101010'),\n patientSize: dataSet.floatString('x00101020'),\n patientWeight: dataSet.floatString('x00101030')\n };\n }\n\n if (type === 'imagePlaneModule') {\n return {\n pixelSpacing: getNumberValues(dataSet, 'x00280030', 2),\n imageOrientationPatient: getNumberValues(dataSet, 'x00200037', 6),\n imagePositionPatient: getNumberValues(dataSet, 'x00200032', 3),\n sliceThickness: dataSet.floatString('x00180050'),\n sliceLocation: dataSet.floatString('x00201041'),\n frameOfReferenceUID: dataSet.string('x00200052')\n };\n }\n\n if (type === 'imagePixelModule') {\n return getImagePixelModule(dataSet);\n }\n\n if (type === 'modalityLutModule') {\n return {\n rescaleIntercept: dataSet.floatString('x00281052'),\n rescaleSlope: dataSet.floatString('x00281053'),\n rescaleType: dataSet.string('x00281054'),\n modalityLUTSequence: getLUTs(dataSet.uint16('x00280103'), dataSet.elements.x00283000)\n };\n }\n\n if (type === 'voiLutModule') {\n const modalityLUTOutputPixelRepresentation = getModalityLUTOutputPixelRepresentation(dataSet);\n\n\n return {\n windowCenter: getNumberValues(dataSet, 'x00281050', 1),\n windowWidth: getNumberValues(dataSet, 'x00281051', 1),\n voiLUTSequence: getLUTs(modalityLUTOutputPixelRepresentation, dataSet.elements.x00283010)\n };\n }\n\n if (type === 'sopCommonModule') {\n return {\n sopClassUID: dataSet.string('x00080016'),\n sopInstanceUID: dataSet.string('x00080018')\n };\n }\n\n if (type === 'petIsotopeModule') {\n const radiopharmaceuticalInfo = dataSet.elements.x00540016;\n\n if (radiopharmaceuticalInfo === undefined) {\n return;\n }\n\n const firstRadiopharmaceuticalInfoDataSet = radiopharmaceuticalInfo.items[0].dataSet;\n\n\n return {\n radiopharmaceuticalInfo: {\n radiopharmaceuticalStartTime: dicomParser.parseTM(firstRadiopharmaceuticalInfoDataSet.string('x00181072') || ''),\n radionuclideTotalDose: firstRadiopharmaceuticalInfoDataSet.floatString('x00181074'),\n radionuclideHalfLife: firstRadiopharmaceuticalInfoDataSet.floatString('x00181075')\n }\n };\n }\n\n}\n\n// register our metadata provider\ncornerstone.metaData.addProvider(metaDataProvider);\n\nexport default metaDataProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./imageLoader/wadouri/metaData/metaDataProvider.js"],"sourceRoot":""}