OHIF / Viewers

OHIF zero-footprint DICOM viewer and oncology specific Lesion Tracker, plus shared extension packages
https://docs.ohif.org/
MIT License
3.35k stars 3.36k forks source link

Why does DIMSE still use DicomWeb? #145

Closed EmilOJ closed 6 years ago

EmilOJ commented 6 years ago

Hi all, First I want to say thank you for this amazing open source software. It's helped me tremendously in my work.

I have a quick question. I want to use the OHIF Viewer in my hospital. We have a PACS server by GE which only supports DIMSE (no DicomWeb). For testing I tried disabling the DicomWeb plugin in Orthanc to simulate our PACS server and running the OHIF Viewer with the orthancDIMSE.json config file. In the studylist it fires a C_FIND request to Orthanc and successfully receives and displays the studies. But when I double click it and the viewer loads I get the error: An error has occurred while loading image: dicomweb:/__wado_proxy?url=http....

I traced it to here: https://github.com/OHIF/Viewers/blob/00e4949ab592c99cb36b7fecdb89ab73027502a4/Packages/ohif-studies/imports/server/services/dimse/retrieveMetadata.js#L136 where the comment says Retrieve the actual data over WADO-URI So although the metadata is retrieved via DIMSE, the pixel data is still retrieved via DicomWeb it seems. Am I right in concluding that OHIF Viewer does not support a pure DIMSE PACS server? I see that the package Ohif-dicom-services does support C_GET but it's not used anywhere.

Kind regards, Emil

radicalrob commented 6 years ago

Hi Emil,

You are correct, currently the viewer can only get pixel data using WADO, so if the GE PACS doesn't support that, then you'd need to first move the images into something (like Orthanc) that does. We're working on improving support for this use case, but don't have anything working yet.

Rob

EmilOJ commented 6 years ago

Good to know. Thanks for the swift reply.

Emil

EmilOJ commented 6 years ago

Hi, Just a quick update. I manged to implement Rob's idea. The OHIF Viewer actually already implements C-MOVE and so the pipeline is this:

  1. When searching in the studylist, the OHIF viewer sends a C-Find to the actual PACS server and displays the results.
  2. When double clicking a study, the OHIF VIewer sends a C-Move request to the PACS server with the destination set to an Orthanc server. Once the entire study is moved to Orthanc, the OHIF Viewer continues and performs its usual magic of loading the instances via WADO from the Orthanc server.

Setting a maximum storage size on the Orthanc (which makes sure to delete the oldest instances once its full) makes it act as the perfect temporary storage and thus for all practical purposes as a DicomWeb proxy. From the user side the OHIF Viewer appears to seamlessly integrated with the PACS server. It works brilliantly. Happy to share code and guidelines if others need integration with a DIMSE-only PACS server.

swederik commented 6 years ago

@EmilOJ that is awesome! We would definitely be interested in putting this code back into the repository!

radicalrob commented 6 years ago

@EmilOJ that sounds like a great solution. I think a lot of people (including me) would be happy to have it. Yes, please go ahead an submit a PR if you want; would love to have it. Thank you so much!!

EmilOJ commented 6 years ago

Great to know others would find this feature useful. I'll work on implementing it in a nice way on a fresh fork.

radicalrob commented 6 years ago

Hi @EmilOJ - any news on this? I just had someone else ask me for this. It would be great if you have something, even if it's not complete.

EmilOJ commented 6 years ago

Finally got around to creating a merge request for this. I'm sorry it took so long. If it's still of any use, please have a look. I'm using this setup at a Danish hospital and it works like a charm.

knopkem commented 4 years ago

Just for reference if anybody is still interested in using ohif viewer with a non-dicomweb pacs: https://github.com/knopkem/dicomweb-proxy