Implement support for filtering `/tools/secure-find` and `/dicom-web/studies` based on what resources the user has access to

Requirements:

  • Users with access to the server should always be able to reach the /tools/secure-find and /dicom-web/studies interfaces.
    • A new endpoint is added (/tools/secure-find) rather than overriding the built-in endpoint at /tools/find due to the essential dependence that /tools/find has for the built-in API, and the behavior of the endpoint needs to be stable. Creating an override further caused problems with the advanced authorization plugin._
  • Wrapping views should exist which executes scoped queries (unless the user has access to a global query permission) for the server.
  • The wrapping view instance will need to be able to map the user making the request (identified via the token) to a profile with user ID and group IDs. Needed for the query which will scope the request.
  • If the user has a global query permission, then the request will not be scoped.
  • On the /tools/find view (for users with a global query permission), there will need to be the ability to by-pass the wrapping view and exercise the Orthanc "native" view. This is currently used in some instances to detect ghost entries in the cache and remove them.

Project Tracking

OP#71 OP#49

Edited by Rob Oakes