Add an "Instance" resource model to the resource cache, implement support for "bulk" endpoint to enable bulk loading of resources in Sonador client from cache
The "bulk" tools of Sonador provide a powerful interface for working with large batches of data, and it's possible to get dramatic speedup (from one to two orders of magnitude) by retrieving resources in bulk from the client. For large servers, such as an OAI deployment, however, that is still not fast enough to prevent 502 and 504 timeouts.
It may be possible to get another order of magnitude speedup (up to 1000x improvement from standard client calls) by implementing an "Instances" model and "bulk" endpoint using the resource cache.
Development task:
- Add a
CacheInstance
resource model which mirrorsCachePatient
,CacheStudy
,CacheSeries
that allows for resource tags to be aggregated and stored in the database. (Instance structure should be constructed from the instance response, as is done for the other resource models.) - Create an endpoint which implements the
/tools/bulk-content
interface under a/cache/...
endpoint which retrieves the data of interest.