Orthanc metadata config for OHIF viewing

Hello,

as always thanks for Orthanc - amazing and getting better with every update

for certain US studies viewed by OHIF, if Orthanc SeriesMetadata and StudiesMetadata are set to Full, instances never load because metadata fails with HTTP 400

I0115 23:15:05.591963 HTTP-12 StorageCache.cpp:127] Read attachment “12a032f8-b8d9-40db-84df-fa7ac3551aa2” with content type 4301 from cache
I0115 23:15:05.592010 HTTP-12 OrthancPlugins.cpp:3221] (plugins) Plugin making REST GET call on URI /series/9eeec564-c05690fc-3f6f7a05-85fa0670-1649400e (built-in API)
E0115 23:15:05.594209 HTTP-12 PluginsManager.cpp:153] Bad file format: The series metadata json does not contain an array.
E0115 23:15:05.594261 HTTP-12 PluginsErrorDictionary.cpp:100] Exception inside the plugin engine: Bad file format

but when SeriesMetadata and StudiesMetadata are set to MainDicomTags, the same studies load without any errors and are viewable in OHIF

any thoughts?

thanks in advance

Hi,

This should not happen and might be a bug. Could you share one of the series that generates such an error ?

Best regards,

Alain.

Thanks Alain.

Link to the study here:

Hi,

It seems that the file US0000006.dcm is corrupted in the zip.

When uploading other files and viewing them in OHIF, I do not get any error in “Full” mode. I’m testing with the latest Orthanc and DicomWEB plugins.

Could you provide a more complete test setup e.g. based on a docker-compose ?

Best regards,

Alain

thanks again

from docker-compose

orthanc:
container_name: orthanc
image: osimis/orthanc:latest
depends_on:
- postgres
restart: always
ports:
- “4242:4242”
networks:
- frontend
- backend
environment:
- DICOM_WEB_PLUGIN_ENABLED=true
- POSTGRESQL_PLUGIN_ENABLED=true
- VERBOSE_ENABLED=true
- TRANSFERS_PLUGIN_ENABLED=true
- PYTHON_PLUGIN_ENABLED=true
- HOUSEKEEPER_PLUGIN_ENABLED=true
- CONNECTIVITY_CHECKS_PLUGIN_ENABLED=true
- GDCM_PLUGIN_ENABLED=true
- AWS_S3_STORAGE_PLUGIN_ENABLED=true
- ORTHANC__NAME=${ORTHANC_NAME}
- ORTHANC__DICOM_AET=${ORTHANC_DICOM_AET}
- ORTHANC__REGISTERED_USERS=${ORTHANC_REGISTERED_USERS}
- ORTHANC__ORTHANC_PEERS=${ORTHANC_PEERS}
- ORTHANC__AWS_S3_STORAGE__BUCKET_NAME=${S3_BUCKET}
- ORTHANC__AWS_S3_STORAGE__REGION=${S3_REGION}
- ORTHANC__AWS_S3_STORAGE__ACCESS_KEY=${S3_ACCESSKEY}
- ORTHANC__AWS_S3_STORAGE__SECRET_KEY=${S3_SECRETKEY}
- ORTHANC__AWS_S3_STORAGE__ROOT_PATH=${S3_ROOTPATH}
- ORTHANC__AWS_S3_STORAGE__ENABLE_LEGACY_UNKNOWN_FILES=true
- ORTHANC__DICOM_WEB__SERIES_METADATA=Full
- ORTHANC__DICOM_WEB__STUDIES_METADATA=Full
- ORTHANC__INGEST_TRANSCODING=1.2.840.10008.1.2.4.70
- ORTHANC__HTTP_COMPRESSION_ENABLED=true
- ORTHANC__MAXIMUM_STORAGE_CACHE_SIZE=8000

from viewer.js config:

window.config = {
routerBasename: ‘/’,
extensions: ,
modes: ,
customizationService: {
dicomUploadComponent:
@ohif/extension-cornerstone.customizationModule.cornerstoneDicomUploadComponent’,
},
},
studyListFunctionsEnabled: true,
showStudyList: true,
maxNumberOfWebWorkers: 4,
omitQuotationForMultipartRequest: true,
showWarningMessageForCrossOrigin: true,
showCPUFallbackMessage: true,
showLoadingIndicator: false,
strictZSpacingForVolumeViewport: true,
maxNumRequests: {
interaction: 100,
thumbnail: 75,
prefetch: 1000,
},
useNorm16Texture: true,
useSharedArrayBuffer: ‘AUTO’,
autoPlayCine: true,
defaultDataSourceName: ‘dicomweb’,
dataSources: [
{
namespace: ‘@ohif/extension-default.dataSourcesModule.dicomweb’,
sourceName: ‘dicomweb’,
configuration: {
friendlyName: ‘orthanc Server’,
name: ‘dicomweb’,
wadoUriRoot: ‘/orthanc/dicom-web’,
qidoRoot: ‘/orthanc/dicom-web’,
wadoRoot: ‘/orthanc/dicom-web’,
qidoSupportsIncludeField: false,
supportsReject: false,
imageRendering: ‘wadors’,
thumbnailRendering: ‘wadors’,
enableStudyLazyLoad: true,
supportsFuzzyMatching: false,
supportsWildcard: true,
staticWado: true,
singlepart: ‘bulkdata,thumbnail’,
bulkDataURI: {
enabled: true,
relativeResolution: ‘studies’,
},
acceptHeader: [ ‘multipart/related; type=application/octet-stream; transfer-syntax=*’],
dicomUploadEnabled: true,
omitQuotationForMultipartRequest: true,
allowMultiSelectExport: true,
},
},
{
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’,
},
},
{
namespace: ‘@ohif/extension-default.dataSourcesModule.dicomlocal’,
sourceName: ‘dicomlocal’,
configuration: {
friendlyName: ‘dicom local’,
},
},
],
};

Hello - did anything look wrong in docker-compose.yml or viewer.js config?

thanks

Hi,

Sorry, I still can not reproduce the issue. Could you provide a standalone complete docker-compose that I can run on my machine and a test scenario ?

Best regards,

Alain