API Reference

BLOBs

Manages BLOB objects with a hash.

API Endopoints

GET /blob/:hash

Fetches the blob specified by the hash.

PUT /blob/:hash

Stores a new blob. The hash is a SHA-1 of the binary to be stored.

Cases

Manages CIRCUS DB cases.

API Endopoints

GET /cases

Performs search and retrieves a list of cases.

GET /cases/list/:myListId

Peforms search based on a my list ID.

POST /cases

Creates a new case.

GET /cases/:caseId

Returns information about the specified case.

POST /cases/:caseId/revision

Creates a new revision in the specified case.

POST /cases/export-mhd

Creates a task to export the specified cases as MHD.

PUT /cases/:caseId/tags

Updates the tags of the specified case.

PATCH /cases/tags

Manages the tags of multiple cases.

DELETE /cases/:caseId

Deletes the specified case.

Debug

This is a collection of several debugging routes. These endpoints are turned off if the environment variable NODE_ENV is production. Enabling these endpoints on production can be a security hole.

API Endopoints

GET /status

Shows some server status.

POST /echo

Echoes what's in the input JSON.

GET /dummy-progress

Returns mock progress event stream.

Login Info

Returns information regarding the current user.

API Endopoints

GET /login-info

GET /login-info/full

Logout

Forces the user to log-out by invalidating the access token.

API Endopoints

GET /logout

Forces the user to log-out by invalidating the access token.

My Lists

Manages my lists.

API Endopoints

GET /mylists

Performs search and retrieves a list of the current user's my lists.

GET /mylists/:myListId

Returns information about the specified my list.

POST /mylists

Creates a new my list.

PATCH /mylists/:myListId

Change name, public status, and editors of the specified my list.

DELETE /mylists/:myListId

Deletes the specified my list.

PATCH /mylists/:myListId/items

Adds items to or removes items from the specified my list.

Plugin Jobs

Dynamically provides CIRCUS CS displays.

API Endopoints

GET /plugin-displays/:pluginId/:path+

Returns the display using Webpack Module Federation.

Plugin Job Queue

Returns job queue for the job started by the current user.

API Endopoints

GET /plugin-job-queue

Returns plugin job queue.

Plugin Jobs

Creates and manages CIRCUS CS plug-in jobs.

API Endopoints

POST /plugin-jobs

Creates a new plug-in job.

PATCH /plugin-jobs/:jobId

Cancels or invalidates an existing plug-in job.

GET /plugin-jobs

Performs search for the plug-in job.

GET /plugin-jobs/list/:myListId

Performs search based on a my list ID.

GET /plugin-jobs/:jobId

Returns the detail of the specified plug-in job.

GET /plugin-jobs/:jobId/attachment

Return the list of attachments from the plug-in.

GET /plugin-jobs/:jobId/attachment/:path+

Returns the specified file output from the plug-in.

POST /plugin-jobs/:jobId/feedback/consensual

Creates a new consensual feedback entry for the specified plug-in job.

POST /plugin-jobs/:jobId/feedback/personal

Creates a new personal feedback entry for the specified plug-in job.

GET /plugin-jobs/:jobId/feedback

Lists feedback entries for the specified plug-in job.

DELETE /plugin-jobs/:jobId/feedback/:feedbackId

Removes feedback items.

Plugins

Fetches information about CIRCUS CS Plug-ins.

API Endopoints

GET /plugins/:pluginId

Gets the specified plug-in definition.

GET /plugins

Gets the list of plug-in definitions.

Preferences

Manages preferences of the log-in user. Note that all the fields are optional.

API Endopoints

GET /preferences

Returns the preferences object of the current user.

PATCH /preferences

Patches the preferences of the current user. All fields are shallow-merged to the root preference object.

Projects

Fetches the project data structure.

API Endopoints

GET /projects/:projectId

Returns the project data structure.

Series

Operates DICOM series. This handles series information stored in the database. Actual image data (voxel values, window, etc.) are not contained.

API Endopoints

GET /series

Retrieves the list of DICOM series.

GET /series/list/:myListId

Performs search based on a my list ID.

POST /series/domain/:domain

Uploads one or more DICOM files, creating a task.

POST /series/domain/:domain/single

Uploads one DICOM file without creating a task.

GET /series/:seriesUid

Returns information about the specified series.

GET /series/:seriesUid/orientation

Returns whether series is head-first or foot-first.

DELETE /series/:seriesUid

Deletes the specified series.

POST /series/export-cs-volume

Creates a task to export the specified series for use in CIRCUS CS.

Status

Returns the API server status.

API Endopoints

GET /status

Returns basic API server status. Can be used for "ping"-ing.

Tasks

Retreive information about tasks. A task is a potentially time-consuming operation other than plug-in jobs.

API Endopoints

GET /tasks

Retrieves the list of tasks of the current user.

GET /tasks/report

Reports the current user's task progress using server-sent events.

GET /tasks/:taskId

Returns the information about the specified task.

GET /tasks/:taskId/download

Lets the current user download the created file.

PATCH /tasks/:taskId

Changes the dismissed state.

POST /tasks/debug-task

Runs a dummy task for debugging.

Permanent API Tokens

Retreive information about permanent API tokens.

API Endopoints

GET /tokens

Retrieves the list of permanent access tokens.

POST /tokens

Creates a new permanent access token.

DELETE /tokens/:tokenId

Deletes the specified permanent access token.

Users

Fetches minimum information about users.

API Endopoints

GET /users/:userEmail

Gets the information about the specified user. This endpoint is available to all users, but returns only minimum information about the user.