Interesting. Are you using React and Bootstrap ?
Have not looked at it that carefully yet, but the OHIF viewer links are not working for me.
e.g.
`
http://212.47.232.65/viewer/1.3.12.2.1107.5.8.15.130763.30000018071309430887000001215
Successfully compiled asm.js code (total compilation time 87ms) index.umd.js
Cornerstone Tools index.umd.js:49260:11
Some cookies are misusing the recommended “sameSite“ attribute 3
Successfully compiled asm.js code (total compilation time 142ms) index.umd.js
Successfully compiled asm.js code (total compilation time 85ms) index.umd.js
Cornerstone Tools index.umd.js:2:1502288
Successfully compiled asm.js code (total compilation time 148ms) index.umd.js
Successfully compiled asm.js code (total compilation time 85ms) index.umd.js
Cornerstone Tools index.umd.js:2:4368009
Successfully compiled asm.js code (total compilation time 151ms) index.umd.js
Successfully compiled asm.js code (total compilation time 95ms) index.umd.js
Cornerstone Tools index.umd.js:2:599500
Successfully compiled asm.js code (total compilation time 147ms) index.umd.js
Successfully compiled asm.js code (total compilation time 83ms) index.umd.js
The provided colorLUT only provides 0 labels, whereas segmentsPerLabelmap is set to 65535. Autogenerating the rest. index.umd.js:26480:12
New ‘CornerstoneTools@4’ source added. index.umd.js:209420:30
New measurement mapping added to source ‘CornerstoneTools@4’. index.umd.js:209476:30
Extension ID cornerstone has already been registered. Exiting before duplicating modules. index.umd.js:208141:65
OHIF Viewer rendered/updated 1.3.12.2.1107.5.8.15.130763.30000018071309430887000001215:40:19
retrieveTimepoints index.umd.js:114776:34
Timepoint data retrieval index.umd.js:117046:34
search series of study 1.3.12.2.1107.5.8.15.130763.30000018071309430887000001215 index.umd.js:76893:17
XHRGEThttp://212.47.232.65/api/dicom-web/studies/1.3.12.2.1107.5.8.15.130763.30000018071309430887000001215/series[HTTP/1.1 401 Unauthorized 212ms]
Source map error: Error: request failed with status 404
Resource URL: https://unpkg.com/@ohif/viewer/dist/index.umd.js
Source Map URL: index.js.map
request failed: XMLHttpRequest { onreadystatechange: onreadystatechange()
, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: “http://212.47.232.65/api/dicom-web/studies/1.3.12.2.1107.5.8.15.130763.30000018071309430887000001215/series”, status: 401, statusText: “Unauthorized”, responseType: “json”, response: null } index.umd.js:76439:23
Error: request failed
com ohif/viewer/dist/index.umd.js:76440
index.umd.js:76444:23
null index.umd.js:76445:23
Error: request failed
com ohif/viewer/dist/index.umd.js:76440
index.umd.js:120650:35
Error: request failed
com ohif/viewer/dist/index.umd.js:76440
index.umd.js:108297:44
`
Not sure why that is, but some of the .js files are really large. I get the OHIF initial black window, but nothing after that.
-
Kind of curious about how you query for resources. I have a similar tool written in PHP. It seems that there are some limitations on doing queries using tools/find with Orthanc as opposed to using something like a MySQL database since I dont think you can “ORDER BY” or use something like LIMIT x,y. I did something similar to what it looks like you did by allowing the user to select the maximum number of results to return for a query (which the REST API allows), and you can process the returned results to sort them or filter them further somehow. Seems like you can’t use an “OR” with tools/find, but issue multiple queries in that case.
-
Regarding modification and anonymization. I’ve looked at that a little, and it looks like when you anonymize (and maybe modify) and existing study using the REST API that it creates a copy of the original study and leaves the original there. That might actually be desired since it is often unwise to delete something in the medical environment. Just wondering how you handle that ? I do have an uploader that can anonymize on-the-fly using dcmtk before the study is sent to Orthanc. That using a web interface similar to yours where you can drag and drop a folder to upload. I found a client side script that can actually detect DCM files using the header from the file and not just the file extension, which is a little useful to filter out .exe files and others on the client side if you don’t want those.
-
Regarding the viewer, do you have that running behind a proxy or otherwise have some sort of authentication / access controls set up for that ? For example, could I just go directly to a viewer line and bypass even logging into the app, or do you use SESSION’s for authentication with OHIF and the Tools app running on the same server. That is still problematic because there are really 3 apps, the Orthanc Tools, the OHIF viewer and Orthanc, although I guess that is mostly DICOM web issue.
Kind of like it though.
Thanks.
/sds