Skip to content

[Feature Request] Optimize WADO metadata retrieval. #5287

@luissantosHCIT

Description

@luissantosHCIT

What feature or change would you like to see made?

Introduction

I am new to this project and I appreciate the work you have put.

While testing the viewer in my development environment, I noticed that metadata retrieval is large. Based on my current level of familiarity with the code base, I believe the main contribution of the metadata retrieval is for series discovery. In my experience, the more efficient route for series discovery is to break down the process into QIDO queries and only ask for metadata at the lowest level possible. Unfortunately, DICOMWeb's WADO interface does not allow for QIDO like refinement of target search and thus you are left with pulling megabytes of metadata for a few bits of information.

If you think I misconfigured my dev environment or misunderstood the application behavior, feel free to help me understand.

This is the first of several patches I want to contribute to the project. I am just breaking all of these in as small a unit as possible for your review benefit. I will be creating PRs soon after setting up all of the tickets I want to start with.

Example Retrieval

Image

Sample Data Source

{
      namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
      sourceName: 'dicomweb',
      configuration: {
        friendlyName: '[redacted] (Test)',
        name: 'VNA',
        wadoUriRoot: '[redacted]/wado-rs/[redacted]',
        qidoRoot: '[redacted]/qido-rs/[redacted]',
        wadoRoot: [redacted]wado-rs/[redacted]',
        qidoSupportsIncludeField: false,
        imageRendering: 'wadors',
        enableStudyLazyLoad: false,
        supportsFuzzyMatching: true,
        supportsWildcard: true,
        thumbnailRendering: 'wadors',
        acceptHeader: [
          'multipart/related; type=application/octet-stream; transfer-syntax=1.2.840.10008.1.2.1.99',
        ],
        requestOptions: {
          auth: '',
        },
        dicomUploadEnabled: true,
        singlepart: 'video,thumbnail,pdf',
        // whether the data source should use retrieveBulkData to grab metadata,
        // and in case of relative path, what would it be relative to, options
        // are in the series level or study level (some servers like series some study)
        bulkDataURI: {
          enabled: false,
          relativeResolution: 'series',
        },
        omitQuotationForMultipartRequest: true,
      },
    },

Plan

  • [QIDO] Get list of studies for patient ID.
  • [QIDO] Get selected study's series list using the given Study UID.
  • [WADO] Fetch first slice for the thumbnail.

Why should we prioritize this feature?

  • Large data transfers waste bandwidth.
  • Large data transfers make the application appear slower than it is.
  • Large data transfers put more load on the data source host than necessary.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions