fix(orthanc): Correct bulkdata URL handling and add configuration example PDF (#4262)
This commit is contained in:
parent
bea56d4f66
commit
fdf883ada8
@ -20,26 +20,36 @@ function fixBulkDataURI(value, instance, dicomWebConfig) {
|
||||
// in case of the relative path, make it absolute. The current DICOM standard says
|
||||
// the bulkdataURI is relative to the series. However, there are situations where
|
||||
// it can be relative to the study too
|
||||
const { BulkDataURI } = value;
|
||||
let { BulkDataURI } = value;
|
||||
const { bulkDataURI: uriConfig = {} } = dicomWebConfig;
|
||||
|
||||
// Handle incorrectly prefixed origins
|
||||
const { startsWith, prefixWith = '' } = uriConfig;
|
||||
if (startsWith && BulkDataURI.startsWith(startsWith)) {
|
||||
BulkDataURI = prefixWith + BulkDataURI.substring(startsWith.length);
|
||||
value.BulkDataURI = BulkDataURI;
|
||||
}
|
||||
|
||||
if (!BulkDataURI.startsWith('http') && !value.BulkDataURI.startsWith('/')) {
|
||||
const { StudyInstanceUID, SeriesInstanceUID } = instance;
|
||||
const isInstanceStart = BulkDataURI.startsWith('instances/') || BulkDataURI.startsWith('../');
|
||||
if (
|
||||
BulkDataURI.startsWith('series/') ||
|
||||
BulkDataURI.startsWith('bulkdata/') ||
|
||||
(dicomWebConfig.bulkDataURI?.relativeResolution === 'studies' && isInstanceStart)
|
||||
(uriConfig.relativeResolution === 'studies' && isInstanceStart)
|
||||
) {
|
||||
value.BulkDataURI = `${dicomWebConfig.wadoRoot}/studies/${StudyInstanceUID}/${BulkDataURI}`;
|
||||
} else if (
|
||||
isInstanceStart ||
|
||||
dicomWebConfig.bulkDataURI?.relativeResolution === 'series' ||
|
||||
!dicomWebConfig.bulkDataURI?.relativeResolution
|
||||
uriConfig.relativeResolution === 'series' ||
|
||||
!uriConfig.relativeResolution
|
||||
) {
|
||||
value.BulkDataURI = `${dicomWebConfig.wadoRoot}/studies/${StudyInstanceUID}/series/${SeriesInstanceUID}/${BulkDataURI}`;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// in case it is relative path but starts at the server (e.g., /bulk/1e, note the missing http
|
||||
// in the beginning and the first character is /) There are two scenarios, whether the wado root
|
||||
// is absolute or relative. In case of absolute, we need to prepend the wado root to the bulkdata
|
||||
|
||||
@ -14,11 +14,11 @@ window.config = {
|
||||
showCPUFallbackMessage: true,
|
||||
strictZSpacingForVolumeViewport: true,
|
||||
// filterQueryParam: false,
|
||||
defaultDataSourceName: 'dicomweb',
|
||||
defaultDataSourceName: 'orthanc',
|
||||
dataSources: [
|
||||
{
|
||||
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
|
||||
sourceName: 'dicomweb',
|
||||
sourceName: 'orthanc',
|
||||
configuration: {
|
||||
friendlyName: 'local Orthanc DICOMWeb Server',
|
||||
name: 'DCM4CHEE',
|
||||
@ -37,6 +37,17 @@ window.config = {
|
||||
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/',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Loading…
Reference in New Issue
Block a user