Last active
July 2, 2026 17:57
-
-
Save fedorov/61299b43f4cc2c4908cc7c7ffb53ddf7 to your computer and use it in GitHub Desktop.
project 031
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** @type {AppTypes.Config} */ | |
| window.config = { | |
| name: 'config/default.js', | |
| routerBasename: null, | |
| // whiteLabeling: {}, | |
| extensions: [], | |
| modes: [], | |
| customizationService: [ | |
| { | |
| 'panelSegmentation.disableEditing': { $set: true }, | |
| 'panelMeasurement.disableEditing': { $set: true }, | |
| }, | |
| ], | |
| 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, | |
| allowMultiSelectExport: false, | |
| 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, | |
| }, | |
| showErrorDetails: 'always', // 'always', 'dev', 'production' | |
| // filterQueryParam: false, | |
| // Defines multi-monitor layouts | |
| multimonitor: [ | |
| { | |
| id: 'split', | |
| test: ({ multimonitor }) => multimonitor === 'split', | |
| screens: [ | |
| { | |
| id: 'ohif0', | |
| screen: null, | |
| location: { | |
| screen: 0, | |
| width: 0.5, | |
| height: 1, | |
| left: 0, | |
| top: 0, | |
| }, | |
| options: 'location=no,menubar=no,scrollbars=no,status=no,titlebar=no', | |
| }, | |
| { | |
| id: 'ohif1', | |
| screen: null, | |
| location: { | |
| width: 0.5, | |
| height: 1, | |
| left: 0.5, | |
| top: 0, | |
| }, | |
| options: 'location=no,menubar=no,scrollbars=no,status=no,titlebar=no', | |
| }, | |
| ], | |
| }, | |
| { | |
| id: '2', | |
| test: ({ multimonitor }) => multimonitor === '2', | |
| screens: [ | |
| { | |
| id: 'ohif0', | |
| screen: 0, | |
| location: { | |
| width: 1, | |
| height: 1, | |
| left: 0, | |
| top: 0, | |
| }, | |
| options: 'fullscreen=yes,location=no,menubar=no,scrollbars=no,status=no,titlebar=no', | |
| }, | |
| { | |
| id: 'ohif1', | |
| screen: 1, | |
| location: { | |
| width: 1, | |
| height: 1, | |
| left: 0, | |
| top: 0, | |
| }, | |
| options: 'fullscreen=yes,location=no,menubar=no,scrollbars=no,status=no,titlebar=no', | |
| }, | |
| ], | |
| }, | |
| ], | |
| defaultDataSourceName: 'ohif', | |
| /* 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: '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: true, | |
| supportsWildcard: false, | |
| 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.dicomweb', | |
| sourceName: 'orthanc', | |
| configuration: { | |
| friendlyName: 'local Orthanc DICOMWeb Server', | |
| name: 'DCM4CHEE', | |
| wadoUriRoot: 'http://localhost/pacs/dicom-web', | |
| qidoRoot: 'http://localhost/pacs/dicom-web', | |
| wadoRoot: 'http://localhost/pacs/dicom-web', | |
| qidoSupportsIncludeField: true, | |
| supportsReject: true, | |
| dicomUploadEnabled: true, | |
| imageRendering: 'wadors', | |
| thumbnailRendering: 'wadors', | |
| enableStudyLazyLoad: true, | |
| supportsFuzzyMatching: true, | |
| supportsWildcard: true, | |
| omitQuotationForMultipartRequest: true, | |
| bulkDataURI: { | |
| enabled: true, | |
| // This is an example config that can be used to fix the retrieve URL | |
| // where it has the wrong prefix (eg a canned prefix). It is better to | |
| // just use the correct prefix out of the box, but that is sometimes hard | |
| // when URLs go through several systems. | |
| // Example URLS are: | |
| // "BulkDataURI" : "http://localhost/dicom-web/studies/1.2.276.0.7230010.3.1.2.2344313775.14992.1458058363.6979/series/1.2.276.0.7230010.3.1.3.1901948703.36080.1484835349.617/instances/1.2.276.0.7230010.3.1.4.1901948703.36080.1484835349.618/bulk/00420011", | |
| // when running on http://localhost:3003 with no server running on localhost. This can be corrected to: | |
| // /orthanc/dicom-web/studies/1.2.276.0.7230010.3.1.2.2344313775.14992.1458058363.6979/series/1.2.276.0.7230010.3.1.3.1901948703.36080.1484835349.617/instances/1.2.276.0.7230010.3.1.4.1901948703.36080.1484835349.618/bulk/00420011 | |
| // which is a valid relative URL, and will result in using the http://localhost:3003/orthanc/.... path | |
| // startsWith: 'http://localhost/', | |
| // prefixWith: '/orthanc/', | |
| }, | |
| }, | |
| }, | |
| { | |
| namespace: '@ohif/extension-default.dataSourcesModule.dicomwebproxy', | |
| sourceName: 'dicomwebproxy', | |
| configuration: { | |
| friendlyName: 'dicomweb delegating proxy', | |
| name: 'dicomwebproxy', | |
| // Security controls for runtime ?url=... datasource loading: | |
| // In authenticated environments, runtime ?url origins must be allowlisted: | |
| // dangerouslyAllowedOriginsForAuthenticatedEnvironments: [ | |
| // 'https://config.example.com', | |
| // 'http://localhost:5000', | |
| // ], | |
| }, | |
| }, | |
| { | |
| namespace: '@ohif/extension-default.dataSourcesModule.dicomjson', | |
| sourceName: 'dicomjson', | |
| configuration: { | |
| friendlyName: 'dicom json', | |
| name: 'json', | |
| // Security controls for runtime ?url=... datasource loading: | |
| // In authenticated environments, runtime ?url origins must be allowlisted: | |
| // dangerouslyAllowedOriginsForAuthenticatedEnvironments: [ | |
| // 'https://config.example.com', | |
| // 'http://localhost:5000', | |
| // ], | |
| }, | |
| }, | |
| { | |
| 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/'); | |
| }, | |
| // segmentation: { | |
| // segmentLabel: { | |
| // enabledByDefault: true, | |
| // labelColor: [255, 255, 0, 1], // must be an array | |
| // hoverTimeout: 1, | |
| // background: 'rgba(100, 100, 100, 0.5)', // can be any valid css color | |
| // }, | |
| // }, | |
| }; | |
| /** IDC Specific */ | |
| window.config = { | |
| ...window.config, | |
| whiteLabeling: { | |
| createLogoComponentFn: function (React) { | |
| return React.createElement( | |
| 'a', | |
| { | |
| target: '_self', | |
| rel: 'noopener noreferrer', | |
| className: 'text-purple-600 line-through', | |
| href: '/', | |
| }, | |
| React.createElement('img', { | |
| src: '/assets/idc.svg', | |
| className: 'w-15 h-14 p-1', | |
| }) | |
| ); | |
| }, | |
| }, | |
| defaultDataSourceName: 'idc-dicomweb', | |
| instanceAnnotations: { | |
| enabled: true, // master switch | |
| maxLabels: 10, // collapse extra labels into a "+N more" indicator | |
| showColor: true, // render a colored dot before each label | |
| // colors: ['#5acce6', '#fcfa6b', '#7ee37e', '#f7a35c', '#e67ee6', '#ff7f7f'], | |
| }, | |
| idcDownloadCommandsDialog: { | |
| description: 'Follow the instructions below to download the study or series:', | |
| instructions: [ | |
| { | |
| command: 'pip install idc-index --upgrade', | |
| label: 'First, install the idc-index python package:', | |
| }, | |
| { | |
| command: `idc download {{StudyInstanceUID}}`, | |
| label: 'Then, to download the whole study, run:', | |
| }, | |
| { | |
| command: `idc download {{SeriesInstanceUID}}`, | |
| label: "Or, to download just the active viewport's series, run:", | |
| }, | |
| ], | |
| }, | |
| disableConfirmationPrompts: true, | |
| dataSources: [ | |
| { | |
| friendlyName: 'dcmjs DICOMWeb Server', | |
| namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', | |
| sourceName: 'idc-dicomweb', | |
| configuration: { | |
| name: 'idc-dicomweb', | |
| wadoUriRoot: | |
| 'https://testing-proxy.canceridc.dev/current/viewer-only-no-downloads-see-tinyurl-dot-com-slash-3j3d9jyp/dicomWeb', | |
| qidoRoot: | |
| 'https://testing-proxy.canceridc.dev/current/viewer-only-no-downloads-see-tinyurl-dot-com-slash-3j3d9jyp/dicomWeb', | |
| wadoRoot: | |
| 'https://testing-proxy.canceridc.dev/current/viewer-only-no-downloads-see-tinyurl-dot-com-slash-3j3d9jyp/dicomWeb', | |
| qidoSupportsIncludeField: false, | |
| supportsReject: false, | |
| imageRendering: 'wadors', | |
| thumbnailRendering: 'wadors', | |
| enableStudyLazyLoad: true, | |
| supportsFuzzyMatching: false, | |
| supportsWildcard: false, | |
| staticWado: true, | |
| singlepart: 'bulkdata,video', | |
| bulkDataURI: { | |
| enabled: false, | |
| relativeResolution: 'studies', | |
| }, | |
| omitQuotationForMultipartRequest: true, | |
| }, | |
| }, | |
| { | |
| namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', | |
| sourceName: 'ohif', | |
| configuration: { | |
| friendlyName: 'AWS S3 Static wado secondary server', | |
| name: 'aws', | |
| wadoUriRoot: 'https://d14fa38qiwhyfd.cloudfront.net/dicomweb', | |
| qidoRoot: 'https://d14fa38qiwhyfd.cloudfront.net/dicomweb', | |
| wadoRoot: 'https://d14fa38qiwhyfd.cloudfront.net/dicomweb', | |
| qidoSupportsIncludeField: false, | |
| supportsReject: false, | |
| imageRendering: 'wadors', | |
| thumbnailRendering: 'wadors', | |
| enableStudyLazyLoad: true, | |
| supportsFuzzyMatching: false, | |
| supportsWildcard: true, | |
| staticWado: true, | |
| singlepart: 'bulkdata,video', | |
| bulkDataURI: { | |
| enabled: true, | |
| relativeResolution: 'studies', | |
| }, | |
| omitQuotationForMultipartRequest: true, | |
| }, | |
| }, | |
| ], | |
| modesConfiguration: { | |
| '@ohif/mode-segmentation': { | |
| hide: true, | |
| }, | |
| '@idc/gcp-mode': { | |
| hide: true, | |
| } | |
| }, | |
| // oidc: [ | |
| // { | |
| // authority: 'https://accounts.google.com', | |
| // client_id: '370953977065-o32uf5cn5f4bovtogdu862mlnhbcv9hk.apps.googleusercontent.com', | |
| // redirect_uri: '/callback', | |
| // response_type: 'id_token token', | |
| // scope: | |
| // 'email profile openid https://www.googleapis.com/auth/cloudplatformprojects.readonly https://www.googleapis.com/auth/cloud-healthcare', | |
| // post_logout_redirect_uri: '/logout-redirect.html', | |
| // revoke_uri: 'https://accounts.google.com/o/oauth2/revoke?token=', | |
| // automaticSilentRenew: true, | |
| // revokeAccessTokenOnSignout: true, | |
| // }, | |
| // ], | |
| }; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment