Thanks for answer. Another problem found. It can’t load studies with encapsulated PDF into the viewer window. I build plugin with OHIF 3.8.0-beta.14 inside. The following warning appears in the console:
Unable to retrieve EncapsulatedDocument from Proxy
Screenshot
In settings “UserConfiguration” is on. My ohif.js:
* SPDX-FileCopyrightText: 2023 Sebastien Jodogne, UCLouvain, Belgium,
* and 2018-2023 Open Health Imaging Foundation
* SPDX-License-Identifier: MIT
*/
window.config = {
routerBasename: "/",
extensions: [],
modes: [],
showStudyList: !0,
omitQuotationForMultipartRequest: !0,
showWarningMessageForCrossOrigin: !0,
showCPUFallbackMessage: !0,
showLoadingIndicator: !0,
strictZSpacingForVolumeViewport: !0,
httpErrorHandler: error => {
// This is 429 when rejected from the public idc sandbox too often.
console.warn(error.status);
},
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'],
},
],
};
/**
* SPDX-FileCopyrightText: 2023 Sebastien Jodogne, UCLouvain, Belgium,
* and 2018-2023 Open Health Imaging Foundation
* SPDX-License-Identifier: MIT
*/
window.config.routerBasename = '/ohif/';
if (true) {
window.config.dataSources = [
{
friendlyName: 'Orthanc DICOMweb',
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
sourceName: 'dicomweb',
configuration: {
name: 'orthanc',
wadoUriRoot: '../dicom-web',
qidoRoot: '../dicom-web',
wadoRoot: '../dicom-web',
qidoSupportsIncludeField: !1,
supportsReject: !1,
imageRendering: "wadors",
thumbnailRendering: "wadors",
enableStudyLazyLoad: !0,
supportsFuzzyMatching: !1,
supportsWildcard: !0,
staticWado: !0,
singlepart: "bulkdata,video",
bulkDataURI: {
enabled: !0,
relativeResolution: "studies"
},
}
}
];
window.config.defaultDataSourceName = 'dicomweb';
} else {
window.config.showStudyList = false;
window.config.dataSources = [
{
friendlyName: 'Orthanc DICOM JSON',
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
sourceName: 'dicomjson',
configuration: {
name: 'json',
},
}
];
window.config.defaultDataSourceName = 'dicomjson';
}
Warning appears after executing function “getDirectURL” lines:
if (!singlepart || singlepart !== true && singlepart.indexOf(fetchPart) === -1) {
if (value.retrieveBulkData) {
return value.retrieveBulkData().then(arr => {
value.DirectRetrieveURL = URL.createObjectURL(new Blob([arr], {
type: defaultType
}));
return value.DirectRetrieveURL;
});
}
console.warn('Unable to retrieve', tag, 'from', instance);
return undefined;
The problem is that value does not have a retrieveBulkData property.
I am attaching a file for testing.
test.dcm (147.4 KB)