/** @type {AppTypes.Config} */ window.config = { routerBasename: null, extensions: [], modes: ['@ohif/mode-test'], showStudyList: true, // below flag is for performance reasons, but it might not work for all servers maxNumberOfWebWorkers: 3, showWarningMessageForCrossOrigin: false, showCPUFallbackMessage: false, strictZSpacingForVolumeViewport: true, // filterQueryParam: false, // Allowlist for the `?customization=` URL parameter and for // `customizationService.requires` below. The `default` prefix (no slashes) // resolves a value to `/customizations/.jsonc`. Files are // fetched as DATA (JSON with comments) and never executed. customizationUrlPrefixes: { default: './customizations/', }, // Phase-tagged startup customizations. Each block is applied at a fixed point // in the lifecycle so ordering is deterministic regardless of when extensions // and modes load: // - requires: URL customization data files to resolve up front. // - bootstrap: applied (Global) BEFORE extensions register. // - global: applied (Global) AFTER extensions register. // - mode: applied (Mode) on each mode enter — `*` (general) first, // then a block keyed by the mode id / routeName. customizationService: { // Pulls in platform/app/public/customizations/patientBirthDate.jsonc, which // adds a "Birth Date" column to the WorkList study list (global phase). requires: ['patientBirthDate'], // The previous (legacy-array) customizations, now in the explicit `global` // phase. A `global` block accepts the same input as setCustomizations: an // array mixing string references and inline object maps. global: [ '@ohif/extension-default.customizationModule.datasources', '@ohif/extension-default.customizationModule.helloPage', ], // Example of mode-scoped customizations (cleared/reapplied per mode): // the `*` block applies to every mode first; a mode-named block (matched // against the mode id or routeName, e.g. 'viewer') applies after it. // // mode: { // '*': { 'someCustomizationId': { $set: 'applies to all modes' } }, // viewer: { 'someCustomizationId': { $set: 'overrides for the viewer mode' } }, // }, }, defaultDataSourceName: 'e2e', investigationalUseDialog: { option: 'never', }, dataSources: [ { namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', sourceName: 'e2e', configuration: { friendlyName: 'StaticWado test data', // The most important field to set for static WADO staticWado: true, name: 'StaticWADO', wadoUriRoot: '/viewer-testdata', qidoRoot: '/viewer-testdata', wadoRoot: '/viewer-testdata', qidoSupportsIncludeField: false, imageRendering: 'wadors', thumbnailRendering: 'wadors', enableStudyLazyLoad: true, supportsFuzzyMatching: false, supportsWildcard: true, singlepart: 'video,thumbnail,pdf', omitQuotationForMultipartRequest: true, bulkDataURI: { enabled: true, relativeResolution: 'studies', }, }, }, { 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.dicomweb', sourceName: 'docker', configuration: { friendlyName: 'Static WADO Docker Data', name: 'DCM4CHEE', qidoRoot: 'http://localhost:25080/dicomweb', wadoRoot: 'http://localhost:25080/dicomweb', qidoSupportsIncludeField: false, supportsReject: true, supportsStow: true, imageRendering: 'wadors', thumbnailRendering: 'wadors', enableStudyLazyLoad: true, supportsFuzzyMatching: false, supportsWildcard: true, staticWado: true, singlepart: 'bulkdata,video,pdf', bulkDataURI: { enabled: true, relativeResolution: 'studies', }, }, }, { namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', sourceName: 'ohif', 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: 'video,pdf', bulkDataURI: { enabled: true, relativeResolution: 'studies', }, }, }, { 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, }, }, { friendlyName: 'StaticWado default data', namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', sourceName: 'dicomweb', configuration: { name: 'DCM4CHEE', wadoUriRoot: '/dicomweb', qidoRoot: '/dicomweb', wadoRoot: '/dicomweb', qidoSupportsIncludeField: false, supportsReject: false, imageRendering: 'wadors', thumbnailRendering: 'wadors', enableStudyLazyLoad: true, supportsFuzzyMatching: false, supportsWildcard: true, staticWado: true, bulkDataURI: { enabled: true, relativeResolution: 'studies', }, }, }, { 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/'); }, hotkeys: [], };