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
Studiesimplementation, 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
allFieldsmethod 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
OHIFglobal 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. -
Studiesobject 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 OrderByandallFieldsas 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