fix: Add kheops integration into OHIF v3 again (#4345)
This commit is contained in:
parent
3b47e6971c
commit
e1feffa425
@ -27,7 +27,7 @@ function createDicomWebProxyApi(dicomWebProxyConfig, servicesManager: AppTypes.S
|
|||||||
}
|
}
|
||||||
|
|
||||||
dicomWebDelegate = createDicomWebApi(
|
dicomWebDelegate = createDicomWebApi(
|
||||||
data.servers.dicomWeb[0].configuration,
|
data.servers.dicomWeb[0].configuration || data.servers.dicomWeb[0],
|
||||||
servicesManager
|
servicesManager
|
||||||
);
|
);
|
||||||
dicomWebDelegate.initialize({ params, query });
|
dicomWebDelegate.initialize({ params, query });
|
||||||
|
|||||||
294
platform/app/public/config/kheops.js
Normal file
294
platform/app/public/config/kheops.js
Normal file
@ -0,0 +1,294 @@
|
|||||||
|
/** @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://d33do7qe4w26qo.cloudfront.net/dicomweb',
|
||||||
|
qidoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb',
|
||||||
|
wadoRoot: 'https://d33do7qe4w26qo.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://d28o5kq0jsoob5.cloudfront.net/dicomweb',
|
||||||
|
qidoRoot: 'https://d28o5kq0jsoob5.cloudfront.net/dicomweb',
|
||||||
|
wadoRoot: 'https://d28o5kq0jsoob5.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'],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
@ -127,6 +127,14 @@ window.config = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
namespace: '@ohif/extension-default.dataSourcesModule.dicomwebproxy',
|
||||||
|
sourceName: 'dicomwebproxy',
|
||||||
|
configuration: {
|
||||||
|
friendlyName: 'dicomweb delegating proxy',
|
||||||
|
name: 'dicomwebproxy',
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
|
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
|
||||||
sourceName: 'dicomjson',
|
sourceName: 'dicomjson',
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user