question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

OHIF study listing hanging: For some reason we could not list the studies

See original GitHub issue

I 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: image 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: image

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:closed
  • Created 4 years ago
  • Comments:29 (14 by maintainers)

github_iconTop GitHub Comments

2reactions
swederikcommented, Oct 7, 2019

@swederik : Is there a docker label I should be using to get the #953 functionality?

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

1reaction
HowardLandercommented, Oct 4, 2019

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

Read more comments on GitHub >

github_iconTop Results From Across the Web

Hanging Protocol Service - OHIF v3
The 'default' name is used as the hanging protocol id when no other protocol applies, and can be set as the last module...
Read more >
Integrating the OHIF Viewer into XNAT: Achievements ... - MDPI
A given patient or DICOM study can be imported into more than one project and this means that a given DICOM SOPInstance may...
Read more >
(PDF) Integrating the OHIF Viewer into XNAT - ResearchGate
PDF | Purpose: XNAT is an informatics software platform to support imaging research, particularly in the context of large, ...
Read more >
@ohif/core - npm
This library offers pre-packaged solutions for features common to Web-based medical imaging viewers. For example: Hotkeys; DICOM Web; Hanging ...
Read more >
Informatics in Radiology: Development of a Research PACS for ...
No single monolithic application can fulfill the diverse and rapidly changing needs of the clinical imaging research community. Instead, the focus should be...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found