Inspect and refactor OHIF DICOMweb client
OHIF contains an implementation of the DICOMweb standard.
- DICOMweb API reference (standards documentation): https://www.dicomstandard.org/using/dicomweb
- DICOMweb exposes two API implementations: Qido and Wado. There is a degree of overlap between the two. It would be good to create a map/documentation page which breaks down which API endpoints are used within the OHIF connection client. The examples below focus on the
Studies
implementation, which uses Qido.
- DICOMweb exposes two API implementations: Qido and Wado. There is a degree of overlap between the two. It would be good to create a map/documentation page which breaks down which API endpoints are used within the OHIF connection client. The examples below focus on the
- DICOMweb in Orthanc (implementation specific notes): https://book.orthanc-server.com/plugins/dicomweb.html
- Sonador provides an
allFields
method that can be used to search all indexed fields within Orthanc. This is passed to the client search in the same way as any other field.
- Sonador provides an
- OHIF DICOMweb Client JavaScript methods: https://code.oak-tree.tech/oak-tree/medical-imaging/ohif-viewers/-/tree/master/platform/core/src/DICOMWeb
- Use within Sonador/OHIF
StudyList
: https://code.oak-tree.tech/oak-tree/medical-imaging/ohif-viewers/-/blob/master/platform/viewer/src/studylist/StudyListRoute.js- The client is accessed through the
OHIF
global namepace (refer to line 707:OHIF.studies.searchStudies
). - Implementation of
searchStudies
: https://code.oak-tree.tech/oak-tree/medical-imaging/ohif-viewers/-/blob/master/platform/core/src/studies/searchStudies.js. Search studies uses the QIDO set of endpoints of the DICOMweb APIs. -
Studies
object class and implementation notes for mapping frontend properties to backend attributes for API request: https://code.oak-tree.tech/oak-tree/medical-imaging/ohif-viewers/-/blob/master/platform/core/src/studies/services/qido/studies.js
- The client is accessed through the
Development task list:
-
Modify the connection client so that only a single query is executed and the results are rendered directly. Current behavior: the client executes multiple queries to Orthanc, aggregates the results, and orders the study list on the client side. -
Add OrderBy
andallFields
as query options. -
Inspect client caching behavior, continue to cache a copy of study metadata so subsequent requests continue to be fast. Ensure that all tags needed for advanced functionality (multi-planar reconstruction and 3D rendering) are cached. There is currently a bug which prevents the showing of MPR and 3D render buttons because not all state is cached.
Edited by Rob Oakes