knopkem / dicomweb-proxy

A proxy to translate between dicomweb and traditional dicom dimse services (PACS communication)
Other
69 stars 20 forks source link

Dicomweb proxy returns corrupted data when i login in the ohif standalone viewer web page #5

Closed truitaman closed 4 years ago

truitaman commented 4 years ago

Hi,

I was trying to connect to a dcm4chee arc light PACS with your application but it returns an error in the dimse output message.

i added your node to the AET configuration of dcm4chee arch light.

mainly it displays that dicom fields are corrupted

here is the output:

dicomweb-proxy Application seems to run fine.

dicomweb-proxy error

pd: i noticed u use pdu max size to 16384 and dcm4chee 16378 so i changed it, still it displays same error.

tested with c-get and c-move.

Any idea how to fix this issue ?

Br,

knopkem commented 4 years ago

Hi, for now I don't know what could be the reason for the incompatibility. I used the dcmtk framework which is used for the dimse before with arc light without any issues, but haven't tested the proxy. If I find the time I will try to reproduce it and get back to you. thanks for reporting. cheers

knopkem commented 4 years ago

looking at the logs again it seems to be an issue on the proxy side and not with the communication between the pacs. The message about Bad override key is before C-find is performed. Will check tomorrow.

knopkem commented 4 years ago

Unfortunately without a debugger running, this is hard to trace as the error message is too generic. All I can say is that it's very likely not related to your PACS but rather an issue with your system (node ->dicom framework). What os and what node version do you use?

truitaman commented 4 years ago

Good morning,

ubuntu server v20.x, node v14.6.0

knopkem commented 4 years ago

The issue might come from NAN (the dependency https://github.com/knopkem/dicom-dimse-native was build with nodejs 12). If possible you could test with this version (e,g, using nvm). Will try to reproduce the issue with ubuntu and node 14, let's see.

truitaman commented 4 years ago

Hi,

i created another vps and under node js 12, same error.

ubuntu12

updated:

I did installed with

npm i -s dicom-native-addon

and same issue.

Any ideas? how i can run debug mode so u can analyze the issue?

How i can launch the script (c-find test script ) in the dicom-dimse-native repository?

i mean the cfind script to retrieve the dataset of a study_instance_uid and create the json file.

Thx for all your help,

ghost commented 4 years ago

Try exporting DCMDICTPATH then npm start

In my case, i did it in linux and node 12: export DCMDICTPATH=./node_modules/dicom-dimse-native/dcmdata/data/dicom.dic

This issue is related to dcmtk. and J Riesmeier said that "You should enable support for the builtin data dictionary...see datadict.txt"

knopkem commented 4 years ago

Thanks @alexandremg85, I've patched the dicom-dimse-native dependency using the buildin dictionary, so the above should not be necessary anymore.

truitaman commented 4 years ago

If i do the export then type: sudo node_modules/dicomweb-proxy/bin/dicomweb-proxy

i get that error:

starting dicomweb-proxy... stderr: /home/oriols/node_modules/bindings/bindings.js:135 throw err; ^

Error: Could not locate the bindings file. Tried: → /home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/build/dcmtk.node → /home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/build/Debug/dcmtk.node → /home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/build/Release/dcmtk.node → /home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/out/Debug/dcmtk.node → /home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/Debug/dcmtk.node → /home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/out/Release/dcmtk.node → /home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/Release/dcmtk.node → /home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/build/default/dcmtk.node → /home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/compiled/12.18.3/linux/x64/dcmtk.node → /home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/addon-build/release/install-root/dcmtk.node → /home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/addon-build/debug/install-root/dcmtk.node → /home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/addon-build/default/install-root/dcmtk.node → /home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/lib/binding/node-v72-linux-x64/dcmtk.node at bindings (/home/oriols/node_modules/bindings/bindings.js:126:9) at Object. (/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/index.js:1:37) at Module._compile (internal/modules/cjs/loader.js:1137:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10) at Module.load (internal/modules/cjs/loader.js:985:32) at Function.Module._load (internal/modules/cjs/loader.js:878:14) at Module.require (internal/modules/cjs/loader.js:1025:19) at require (internal/modules/cjs/helpers.js:72:18) at Object. (/home/oriols/dicomweb-proxy/utils.js:3:15) at Module._compile (internal/modules/cjs/loader.js:1137:30) { tries: [ '/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/build/dcmtk.node', '/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/build/Debug/dcmtk.node', '/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/build/Release/dcmtk.node', '/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/out/Debug/dcmtk.node', '/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/Debug/dcmtk.node', '/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/out/Release/dcmtk.node', '/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/Release/dcmtk.node', '/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/build/default/dcmtk.node', '/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/compiled/12.18.3/linux/x64/dcmtk.node', '/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/addon-build/release/install-root/dcmtk.node', '/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/addon-build/debug/install-root/dcmtk.node', '/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/addon-build/default/install-root/dcmtk.node', '/home/oriols/dicomweb-proxy/node_modules/dicom-dimse-native/lib/binding/node-v72-linux-x64/dcmtk.node' ] }

child process exited with code 1

So i need to reinstall the dicomweb-proxy?

Thx for all your help.

knopkem commented 4 years ago

Can you try with the repo and not the npm plugin?

This should use the latest version (1.0.6) of the dicom-dimse-native plugin. You don't need to export the DCMDICTPATH anymore as the plugin comes with the dictionary included now. Don't use sudo to run the commands. Let me know if this helps.

truitaman commented 4 years ago

when i run npm run build returns error:

sudo npm run build npm ERR! missing script: build

npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2020-07-27T07_44_31_803Z-debug.log

Any idea?

knopkem commented 4 years ago

Ah sorry, there is no build step needed, just skip it.

On Mon, Jul 27, 2020, 09:45 truitaman notifications@github.com wrote:

when i run npm run build returns error:

sudo npm run build npm ERR! missing script: build

npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2020-07-27T07_44_31_803Z-debug.log

Any idea?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/knopkem/dicomweb-proxy/issues/5#issuecomment-664178274, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHSZXV5XFUDM3NFCOY6GYTR5UWBJANCNFSM4PF6LL7A .

truitaman commented 4 years ago

Same error.

same_error

knopkem commented 4 years ago

Ok, so maybe it's not the missing dictionary in your case. Will try to install arc light (docker) and reproduce. Sorry.

truitaman commented 4 years ago

Wait a bit sir,

i did launch again

npm i -s dicom-native-addon

and now yes it displays study list...

and when i click study -

viewer_not_loaded

and console logs :

consoleoutput

i will dig in my side if it's something from the network or maybe the configuration in the PACS side just in case.

knopkem commented 4 years ago

Ok, this is better try to use C-GET as it should be supported and check the browser console for errors.

On Mon, Jul 27, 2020, 10:39 truitaman notifications@github.com wrote:

Wait a bit sir,

i did launch again

npm i -s dicom-native-addon

and now yes it displays study list...

and when i click study -

[image: viewer_not_loaded] https://user-images.githubusercontent.com/43993518/88521428-2e5ceb00-cff5-11ea-938e-6a3c9ba154ba.png

and console logs :

[image: consoleoutput] https://user-images.githubusercontent.com/43993518/88521517-4f254080-cff5-11ea-8596-1586e7bbbba1.png

i will dig in my side if it's something from the network or maybe the configuration in the PACS side just in case.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/knopkem/dicomweb-proxy/issues/5#issuecomment-664204565, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHSZXTDM5HYSHBSBWRN54TR5U4LPANCNFSM4PF6LL7A .

truitaman commented 4 years ago

yep with c-get looks good.

it's possible to use my own pure dicomweb viewer to interact directly with dicomweb-proxy so avoid using OHIF viewer? .

Thanks for all.

knopkem commented 4 years ago

Great that it works now! Yes it should be possible to use any dicomweb viewer, however it depends on what the viewer expects. For example current master branch only supports fetching images via WADO-URI but not WADO-RS as this requires to also provide meta information (information that usually cannot be acquired via C-FIND but rather by parsing the files) I made a prototype in the branch "deepMeta" which can use Wado-RS too. Just look at the app.js file to see the translation between dicomweb and dimse, it's rather trivial. All you need to do is configure your dicomweb viewer to connect to the webserver (port 5000 by default) and it should work.

On Mon, Jul 27, 2020 at 1:34 PM truitaman notifications@github.com wrote:

yep with c-get looks good.

it's possible to use my own pure dicomweb viewer to interact directly with dicomweb-proxy so avoid using OHIF viewer? .

Thanks for all.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/knopkem/dicomweb-proxy/issues/5#issuecomment-664343250, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHSZXQDJCP2TIWAITJ75O3R5VQ3NANCNFSM4PF6LL7A .

pablosbravo commented 10 months ago

Hello everyone! In theory, from what I saw regarding OHIF, the latest version integrates the dicomweb proxy to support PACS that don't work with WADO. Does anyone have an example of the 'app-config.js' configuration or a docker-compose file? I would greatly appreciate it.