OHIF study listing hanging: For some reason we could not list the studies
See original GitHub issueI am having trouble listing the studies that I have in my orthanc db. When I start the viewer, I get the UI, but no studies, just the word Loading and a spinning circle. This issue seems a bit similar to #113, but I don’t think that the problem is with the orthanc dicom plugin. Full disclosure: I am using docker-compose for this effort. The OHIF docker is version travis-829. I’m using jodogne/orthanc-plugins:latest and mongo:latest as well. Lot’s of config/results below: Thanks in advance for any assistance, I’m a little stumped.
Howard
Here’s a bit of what I get from the orthanc server when I try it directly:
which looks OK to me.
I’ve also got an nginx reverse proxy server configured: it looks like this
location /orthanc/ {
proxy_pass http://orthanc:8042;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
rewrite /orthanc(.*) $1 break;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Origin' '*';
}
Here’s what I have in the web console:
Here’s my config script (minus the hotkeys for brevity)
window.config = {
// default: '/'
routerBasename: '/',
extensions: [],
showStudyList: true,
// default: ''
relativeWebWorkerScriptsPath: '',
servers: {
dicomWeb: [
{
name: 'Orthanc',
wadoUriRoot: '/orthanc/wado',
qidoRoot: '/orthanc/dicom-web',
wadoRoot: '/orthanc/dicom-web',
qidoSupportsIncludeField: false,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
requestOptions: {
requestFromBrowser: true,
},
},
],
},
Here’s the error from the terminal where I start the docker:
viewer | { Error: request failed
viewer | at XMLHttpRequest.request.onreadystatechange (/app/bundle/programs/server/npm/node_modules/meteor/ohif_studies/node_modules/dicomweb-client/build/dicomweb-client.js:391:29)
viewer | at XMLHttpRequestEventTarget.dispatchEvent (/app/bundle/programs/server/npm/node_modules/meteor/ohif_studies/node_modules/xhr2/lib/xhr2.js:64:18)
viewer | at XMLHttpRequest._setReadyState (/app/bundle/programs/server/npm/node_modules/meteor/ohif_studies/node_modules/xhr2/lib/xhr2.js:354:12)
viewer | at XMLHttpRequest._onHttpRequestError (/app/bundle/programs/server/npm/node_modules/meteor/ohif_studies/node_modules/xhr2/lib/xhr2.js:544:12)
viewer | at ClientRequest.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/ohif_studies/node_modules/xhr2/lib/xhr2.js:414:24)
viewer | at emitOne (events.js:116:13)
viewer | at ClientRequest.emit (events.js:211:7)
viewer | at Socket.socketErrorListener (_http_client.js:387:9)
viewer | at emitOne (events.js:116:13)
viewer | at Socket.emit (events.js:211:7)
viewer | at emitErrorNT (internal/streams/destroy.js:64:8)
viewer | at _combinedTickCallback (internal/process/next_tick.js:138:11)
viewer | at process._tickDomainCallback (internal/process/next_tick.js:218:9)
viewer | request:
viewer | XMLHttpRequest {
viewer | onloadstart: [Function],
viewer | onprogress: null,
viewer | onabort: null,
viewer | onerror: null,
viewer | onload: null,
viewer | ontimeout: null,
viewer | onloadend: [Function],
viewer | _listeners: {},
viewer | onreadystatechange: [Function],
viewer | _anonymous: undefined,
viewer | readyState: 4,
viewer | response: null,
viewer | responseText: '',
viewer | responseType: 'json',
viewer | responseURL: '',
viewer | status: 0,
viewer | statusText: '',
viewer | timeout: 0,
viewer | upload:
viewer | XMLHttpRequestUpload {
viewer | onloadstart: null,
viewer | onprogress: null,
viewer | onabort: null,
viewer | onerror: null,
viewer | onload: null,
viewer | ontimeout: null,
viewer | onloadend: null,
viewer | _listeners: {},
viewer | _request: [Circular],
viewer | _contentType: null,
viewer | _body: <Buffer > },
viewer | _method: 'GET',
viewer | _url:
viewer | Url {
viewer | protocol: 'http:',
viewer | slashes: true,
viewer | auth: null,
viewer | host: 'pacsip:8042',
viewer | port: '8042',
viewer | hostname: 'pacsip',
viewer | hash: null,
viewer | search: '?limit=25&offset=0&includefield=all',
viewer | query: 'limit=25&offset=0&includefield=all',
viewer | pathname: '/dicom-web/studies',
viewer | path: '/dicom-web/studies?limit=25&offset=0&includefield=all',
viewer | href: 'http://pacsip:8042/dicom-web/studies?limit=25&offset=0&includefield=all' },
viewer | _sync: false,
viewer | _headers:
viewer | { Accept: 'application/dicom+json',
viewer | Authorization: 'Basic b3J0aGFuYzpvcnRoYW5j',
viewer | Connection: 'keep-alive',
viewer | Host: 'pacsip:8042',
viewer | 'User-Agent': 'Mozilla/5.0 (Linux x64) node.js/8.10.0 v8/6.2.414.50',
viewer | 'Content-Length': '0' },
viewer | _loweredHeaders: { accept: 'Accept', authorization: 'Authorization' },
viewer | _mimeOverride: null,
viewer | _request: null,
viewer | _response: null,
viewer | _responseParts: null,
viewer | _responseHeaders: null,
viewer | _aborting: null,
viewer | _error: null,
viewer | _loadedBytes: 0,
viewer | _totalBytes: 0,
viewer | _lengthComputable: false },
viewer | response: null,
viewer | status: 0 }
Issue Analytics
- State:
- Created 4 years ago
- Comments:29 (14 by maintainers)
Top GitHub Comments
It’s in ohif/viewer:latest now that it has been merged to master. The CI publishes an updated docker image on each merge, assuming all the end-to-end tests pass.
For anyone else arriving at this issue, here is the relevant discussion on the Orthanc / DICOMweb endpoint performance questions: https://groups.google.com/forum/#!topic/orthanc-users/y1N5zOFVk0M
Since I promised to update this issue:
So as of now, it looks like the speed issue with the metadata call is the following: it turns out when you load files into the Orthanc database, you are only loading metadata. That makes sense. But apparently the dicom-web call to get the metadata needs more metadata than is loaded into the database. So the code has to open every file in the study to get additional metadata, so depending on how many files comprise the study and on what technology they are stored, the query can slow down. In our case the data is stored on an Amazon EFS drive, which has many virtues, but speed isn’t one of them…
Howard