Project-MONAI/monai-deploy-informatics-gateway

Enable custom URLs for DICOMWeb STOW-RS API

mocsharp opened this issue · 1 comments

Is your feature request related to a problem? Please describe.

This change request relates to the new feature that enables offloading processing to third-party services.

When the Workflow Manager needs to offload some datasets to external services via the Informatics Gateway, it requires IG to modify relevant DICOM tags and store the original values. When the external services return the results later, IG needs to restore the original values.

Describe the solution you'd like

Allow dynamic segments for the DICOMWeb STOW-RS API.

Currently, the API accepts the following:

  • A: POST /dicomweb/studies/[{study-instance-uid}]
  • B: POST /dicomweb/{workflow-id}/studies/[{study-instance-uid}]

This request is to add:

  • C: POST /dicomweb/user/{custom-name}/studies/[{study-instance-uid}]

Requirements

  • A new API to register new custom URLs as describe above {custom-name}
    • 'GET', 'POST', 'PUT', 'DELETE' /config/dicomweb/stow-rs/user
  • Update DICOMWeb STOW-RS service to support new API (C)
  • A list of plug-ins can be configured with each custom APIs (C), and each plug-in is executed in the order stored, enabling piping of the incoming data before each file is uploaded to the storage service.
  • A list of plug-ins can be configured for the default APIs (A,B), and each plug-in is executed in the order stored, enabling piping of the incoming data before each file is uploaded to the storage service.
  • Incoming data is processed one file at a time and SHALL not wait for the entire study to arrive.
  • Plugins MUST be lightweight and not hinder the upload process
  • Plugins SHALL not accumulate files in memory or storage for bulk processing

🎉 This issue has been resolved in version 0.4.0 🎉

The release is available on: