/** @type {AppTypes.Config} */ window.config = { routerBasename: '/', // whiteLabeling: {}, extensions: [], modes: [], customizationService: {}, showStudyList: true, // some windows systems have issues with more than 3 web workers maxNumberOfWebWorkers: 3, // below flag is for performance reasons, but it might not work for all servers showWarningMessageForCrossOrigin: true, showCPUFallbackMessage: true, showLoadingIndicator: true, experimentalStudyBrowserSort: false, strictZSpacingForVolumeViewport: true, groupEnabledModesFirst: true, maxNumRequests: { interaction: 100, thumbnail: 75, // Prefetch number is dependent on the http protocol. For http 2 or // above, the number of requests can be go a lot higher. prefetch: 25, }, // filterQueryParam: false, // Uses the dicomweb proxy as the default URL defaultDataSourceName: 'dicomwebproxy', /* Dynamic config allows user to pass "configUrl" query string this allows to load config without recompiling application. The regex will ensure valid configuration source */ // dangerouslyUseDynamicConfig: { // enabled: true, // // regex will ensure valid configuration source and default is /.*/ which matches any character. To use this, setup your own regex to choose a specific source of configuration only. // // Example 1, to allow numbers and letters in an absolute or sub-path only. // // regex: /(0-9A-Za-z.]+)(\/[0-9A-Za-z.]+)*/ // // Example 2, to restricts to either hosptial.com or othersite.com. // // regex: /(https:\/\/hospital.com(\/[0-9A-Za-z.]+)*)|(https:\/\/othersite.com(\/[0-9A-Za-z.]+)*)/ // regex: /.*/, // }, dataSources: [ { namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', sourceName: 'dicomweb', configuration: { friendlyName: 'AWS S3 Static wado server', name: 'aws', wadoUriRoot: 'https://d14fa38qiwhyfd.cloudfront.net/dicomweb', qidoRoot: 'https://d14fa38qiwhyfd.cloudfront.net/dicomweb', wadoRoot: 'https://d14fa38qiwhyfd.cloudfront.net/dicomweb', qidoSupportsIncludeField: false, imageRendering: 'wadors', thumbnailRendering: 'wadors', enableStudyLazyLoad: true, supportsFuzzyMatching: false, supportsWildcard: true, staticWado: true, singlepart: 'bulkdata,video', // whether the data source should use retrieveBulkData to grab metadata, // and in case of relative path, what would it be relative to, options // are in the series level or study level (some servers like series some study) bulkDataURI: { enabled: true, relativeResolution: 'studies', transform: url => url.replace('/pixeldata.mp4', '/rendered'), }, omitQuotationForMultipartRequest: true, }, }, { namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', sourceName: 'ohif2', configuration: { friendlyName: 'AWS S3 Static wado secondary server', name: 'aws', wadoUriRoot: 'https://dd14fa38qiwhyfd.cloudfront.net/dicomweb', qidoRoot: 'https://dd14fa38qiwhyfd.cloudfront.net/dicomweb', wadoRoot: 'https://dd14fa38qiwhyfd.cloudfront.net/dicomweb', qidoSupportsIncludeField: false, supportsReject: false, imageRendering: 'wadors', thumbnailRendering: 'wadors', enableStudyLazyLoad: true, supportsFuzzyMatching: false, supportsWildcard: true, staticWado: true, singlepart: 'bulkdata,video', // whether the data source should use retrieveBulkData to grab metadata, // and in case of relative path, what would it be relative to, options // are in the series level or study level (some servers like series some study) bulkDataURI: { enabled: true, relativeResolution: 'studies', }, omitQuotationForMultipartRequest: true, }, }, { namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', sourceName: 'ohif3', configuration: { friendlyName: 'AWS S3 Static wado secondary server', name: 'aws', wadoUriRoot: 'https://d3t6nz73ql33tx.cloudfront.net/dicomweb', qidoRoot: 'https://d3t6nz73ql33tx.cloudfront.net/dicomweb', wadoRoot: 'https://d3t6nz73ql33tx.cloudfront.net/dicomweb', qidoSupportsIncludeField: false, supportsReject: false, imageRendering: 'wadors', thumbnailRendering: 'wadors', enableStudyLazyLoad: true, supportsFuzzyMatching: false, supportsWildcard: true, staticWado: true, singlepart: 'bulkdata,video', // whether the data source should use retrieveBulkData to grab metadata, // and in case of relative path, what would it be relative to, options // are in the series level or study level (some servers like series some study) bulkDataURI: { enabled: true, relativeResolution: 'studies', }, omitQuotationForMultipartRequest: true, }, }, { namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', sourceName: 'local5000', configuration: { friendlyName: 'Static WADO Local Data', name: 'DCM4CHEE', qidoRoot: 'http://localhost:5000/dicomweb', wadoRoot: 'http://localhost:5000/dicomweb', qidoSupportsIncludeField: false, supportsReject: true, supportsStow: true, imageRendering: 'wadors', thumbnailRendering: 'wadors', enableStudyLazyLoad: true, supportsFuzzyMatching: false, supportsWildcard: true, staticWado: true, singlepart: 'video', bulkDataURI: { enabled: true, relativeResolution: 'studies', }, }, }, { namespace: '@ohif/extension-default.dataSourcesModule.dicomwebproxy', sourceName: 'dicomwebproxy', configuration: { friendlyName: 'dicomweb delegating proxy', name: 'dicomwebproxy', }, }, { namespace: '@ohif/extension-default.dataSourcesModule.dicomjson', sourceName: 'dicomjson', configuration: { friendlyName: 'dicom json', name: 'json', }, }, { namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal', sourceName: 'dicomlocal', configuration: { friendlyName: 'dicom local', }, }, ], httpErrorHandler: error => { // This is 429 when rejected from the public idc sandbox too often. console.warn(error.status); // Could use services manager here to bring up a dialog/modal if needed. console.warn('test, navigate to https://ohif.org/'); }, // whiteLabeling: { // /* Optional: Should return a React component to be rendered in the "Logo" section of the application's Top Navigation bar */ // createLogoComponentFn: function (React) { // return React.createElement( // 'a', // { // target: '_self', // rel: 'noopener noreferrer', // className: 'text-purple-600 line-through', // href: '/', // }, // React.createElement('img', // { // src: './assets/customLogo.svg', // className: 'w-8 h-8', // } // )) // }, // }, hotkeys: [ { commandName: 'incrementActiveViewport', label: 'Next Viewport', keys: ['right'], }, { commandName: 'decrementActiveViewport', label: 'Previous Viewport', keys: ['left'], }, { commandName: 'rotateViewportCW', label: 'Rotate Right', keys: ['r'] }, { commandName: 'rotateViewportCCW', label: 'Rotate Left', keys: ['l'] }, { commandName: 'invertViewport', label: 'Invert', keys: ['i'] }, { commandName: 'flipViewportHorizontal', label: 'Flip Horizontally', keys: ['h'], }, { commandName: 'flipViewportVertical', label: 'Flip Vertically', keys: ['v'], }, { commandName: 'scaleUpViewport', label: 'Zoom In', keys: ['+'] }, { commandName: 'scaleDownViewport', label: 'Zoom Out', keys: ['-'] }, { commandName: 'fitViewportToWindow', label: 'Zoom to Fit', keys: ['='] }, { commandName: 'resetViewport', label: 'Reset', keys: ['space'] }, { commandName: 'nextImage', label: 'Next Image', keys: ['down'] }, { commandName: 'previousImage', label: 'Previous Image', keys: ['up'] }, // { // commandName: 'previousViewportDisplaySet', // label: 'Previous Series', // keys: ['pagedown'], // }, // { // commandName: 'nextViewportDisplaySet', // label: 'Next Series', // keys: ['pageup'], // }, { commandName: 'setToolActive', commandOptions: { toolName: 'Zoom' }, label: 'Zoom', keys: ['z'], }, // ~ Window level presets { commandName: 'windowLevelPreset1', label: 'W/L Preset 1', keys: ['1'], }, { commandName: 'windowLevelPreset2', label: 'W/L Preset 2', keys: ['2'], }, { commandName: 'windowLevelPreset3', label: 'W/L Preset 3', keys: ['3'], }, { commandName: 'windowLevelPreset4', label: 'W/L Preset 4', keys: ['4'], }, { commandName: 'windowLevelPreset5', label: 'W/L Preset 5', keys: ['5'], }, { commandName: 'windowLevelPreset6', label: 'W/L Preset 6', keys: ['6'], }, { commandName: 'windowLevelPreset7', label: 'W/L Preset 7', keys: ['7'], }, { commandName: 'windowLevelPreset8', label: 'W/L Preset 8', keys: ['8'], }, { commandName: 'windowLevelPreset9', label: 'W/L Preset 9', keys: ['9'], }, ], };