Automate Slicebox
HumDay reads Slicebox’s own published API description and derives 118 operations from it. Describe the outcome you want in plain words — you get a program that is written, proven on real data, and run for you.
What Slicebox is
Slicebox - safe sharing of medical images
API host: slicebox.local
What HumDay can do in Slicebox
64 documented operations change something in Slicebox. The 58 most useful are listed here.
- POSTCreates a new user. Dupicates are accepted but not added.
/users - POSTadd a new directory to watch for incoming DICOM files
/directorywatches - POSTadd a new SCP for receiving DICOM images
/scps - POSTadd a new SCU for sending DICOM images
/scus - POSTadd a new series type
/seriestypes - POSTObtain a session cookie that can be used to authenticate future API calls from the present IP address and with the present user agent.
/users/login - POSTLogout the current user by responding with a delete cookie header removing the session cookie for this user.
/users/logout - POSTcreate a new import sessions
/import/sessions - POSTadd a new forwarding rule
/forwarding/rules - POSTadd a new series type rule
/seriestypes/rules - POSTcreate a new box connection where the supplied entity holds the remote box name.
/boxes/createconnection - DELETEdeletes a single user based on the ID supplied
/users/{id} - DELETEdelete all log messages
/log - POSTsubmit a query for seriestypes for a list of series
/seriestypes/series/query - POSTadd a DICOM dataset to slicebox
/images - POSTadd a JPEG image to slicebox.
/images/jpeg - POSTcreate an export set, a group of image IDs of images to export.
/images/export - POSTanonymize the images corresponding to the supplied list of image IDs (each paired with a list of DICOM tag translation).
/anonymization/anonymize - POSTadd a new series type rule attribute
/seriestypes/rules/{id}/attributes - POSTsubmit a query for images
/metadata/images/query - POSTsubmit a query for series
/metadata/series/query - POSTsubmit a query for studies
/metadata/studies/query - POSTsubmit a query for patients
/metadata/patients/query - POSTsubmit a query for anonymization keys
/anonymization/keys/query - POSTsubmit a query for flat series
/metadata/flatseries/query - POSTsend the images with the supplied image IDs to a DICOM SCP using the the SCU with the supplied scu ID
/scus/{id}/send - POSTsend images corresponding to the supplied image ids to the remote box with the supplied ID
/boxes/{id}/send - POSTadd an image (dataset) as part of a transaction.
/transactions/{token}/image - POSTstop and shut down slicebox
/system/stop - POSTconnect to another box using a received URL.
/boxes/connect - POSTbulk delete a sequence of images according to the supplied image IDs.
/images/delete - POSTInserts or updates a filter.
/filtering/filters - POSTInserts or updates a source filter associations.
/filtering/associations - POSTadd a DICOM dataset to the import session with the supplied ID
/import/sessions/{id}/images - DELETEDelete the log entry with the supplied ID
/log/{id} - DELETEshut down and remove the SCP corresponding to the supplied ID
/scps/{id} - DELETEremove the SCU corresponding to the supplied ID
/scus/{id} - DELETEDelete the remote box with the supplied ID
/boxes/{id} - POSTadd a tagpath to a filter
/filtering/filters/{id}/tagpaths - DELETEDelete the image with the supplied ID
/images/{id} - POSTadd a series tag to the series with the supplied ID
/metadata/series/{id}/seriestags - DELETEremove the series type corresponding to the supplied ID
/seriestypes/{id} - PUTrequest an asynchronous update of all series, labelling appropriate series with the series type corresponding to the supplied ID.
/seriestypes/{id} - DELETEstop watching and remove the directory corresponding to the supplied ID
/directorywatches/{id} - PUTmodify and/or insert image attributes according to the input tagpath-value mappings
/images/{id}/modify - DELETEdelete an incoming transaction.
/boxes/incoming/{id} - DELETEdelete an outgoing transaction.
/boxes/outgoing/{id} - DELETEremove the forwarding rule corresponding to the supplied ID
/forwarding/rule/{id} - DELETEdeletes the import session with the supplied ID
/import/sessions/{id} - PUTdelete the selected image and replace it with an anonymized version
/images/{id}/anonymize - DELETEremove the filter corresponding to the supplied ID
/filtering/filters/{id} - POSTget an anonymized version of the image with the supplied ID
/images/{id}/anonymized - DELETEremove the series type rule corresponding to the supplied ID
/seriestypes/rules/{id} - DELETEdelete an anonymization key that is no longer of interest
/anonymization/keys/{id} - DELETEremove the source filter association corresponding to the supplied ID
/filtering/associations/{id} - PUTupdate the status of the transaction with the supplied ID
/transactions/{token}/status - PUTAdd the series type with the supplied series type ID to the series with the supplied series ID
/metadata/series/{seriesId}/seriestypes/{seriesTypeId} - DELETEDelete all series types for the series with the supplied ID
/metadata/series/{id}/seriestypes
What HumDay can read from Slicebox
These are the operations a schedule or a trigger can watch.
- GETget a list of slicebox log messages
/log - GETobtain information on the currently logged in user as specified by the supplied session cookie, IP address and user agent.
/users/current - GETget a list of DICOM SCPs.
/scps - GETget a list of DICOM SCUs.
/scus - GETget a list of box connections
/boxes - GETReturns all users of slicebox
/users - GETReturns a list of currently available data sources.
/sources - GETget a list of all added series types.
/seriestypes - GETReturns a list of currently available destinations.
/destinations - GETget a list of watch directories.
/directorywatches - GETReturns a list of available import sessions.
/import/sessions - GETReturns a list of metadata on the image level of the DICOM hierarchy
/metadata/images - GETReturns a list of metadata on the series level of the DICOM hierarchy
/metadata/series - GETget a list of all forwarding rules.
/forwarding/rules - GETReturns a list of metadata on the study level of the DICOM hierarchy
/metadata/studies - GETList defined filters
/filtering/filters - GETReturns a list of metadata on the patient level of the DICOM hierarchy
/metadata/patients - GETget a list of rules for assigning series types to series.
/seriestypes/rules - GETget a list of anonymization keys, each specifying how vital DICOM attributes have been anonymized for a particular image
/anonymization/keys - GETReturns a list of flattened metadata on the patient, study and series levels
/metadata/flatseries - GETReturns a list of series tags currently currently in use.
/metadata/seriestags - GETlist all supported anonymization options defining an anonymization profile
/anonymization/options - GETGet a list of source to filter associations.
/filtering/associations - GETlist all DICOM attributes of the dataset corresponding to the supplied image ID
/images/{id}/attributes - GETexport all anonymization keys as a csv file
/anonymization/keys/export/csv - GETdownload the export set with the supplied export set ID as a zip archive
/images/export - GETNo-op route for checking whether the service is alive or not
/system/health - GETget incoming transactions (finished, currently receiving, waiting or failed)
/boxes/incoming - GETget outgoing transactions (finished, currently sending, waiting or failed)
/boxes/outgoing - GETList tagpaths for the selected filter
/filtering/filters/{id}/tagpaths - GETfetch dataset corresponding to the supplied image ID
/images/{id} - GETget the list of series tags for the series with the supplied ID.
/metadata/series/{id}/seriestags - GETget the list of series types for the series with the supplied ID.
/metadata/series/{id}/seriestypes - GETget the list of attributes for the series type rule with the supplied ID.
/seriestypes/rules/{id}/attributes - GETget next outgoing transaction and image (information on the next image that the connected box wishes to send to you), if any.
/transactions/{token}/outgoing/poll - GETget a PNG image representation of the image corresponding to the supplied ID
/images/{id}/png - GETReturns the import sessions with the supplied ID
/import/sessions/{id} - GETReturn the image with the supplied ID
/metadata/images/{id} - GETReturn the series with the supplied ID
/metadata/series/{id} - GETReturn the study with the supplied ID
/metadata/studies/{id} - GETReturn the patient with the supplied ID
/metadata/patients/{id} - GETget the anonymization key with the supplied ID
/anonymization/keys/{id}
How automating Slicebox works
- Describe the outcome. Say what you want to happen, in your own words. No node graphs, no field mapping.
- Approve the contract. HumDay writes down exactly what it will do, what it will touch, and what it will never do. You approve it before anything is built.
- See it proven. The program runs and shows you the result before it is allowed near your live Slicebox account.
- Grant access, then go live. You approve the specific Slicebox operations it may use — and only those.
Automate Slicebox with these
Categories
Questions about Slicebox automation
- Can HumDay connect to Slicebox?
- Yes. HumDay reads Slicebox's own published API description and derives the operations from it, so there is no hand-built connector to wait for. 118 operations are documented.
- Do I need to write code to automate Slicebox?
- No. You describe the outcome you want in plain words. HumDay agrees a contract with you, writes the program, and shows you a test run before anything touches your Slicebox account.
- What can HumDay do in Slicebox?
- 64 of the 118 documented operations change something in Slicebox, and 54 read from it. HumDay only ever uses the specific operations your approved contract needs.
- Is my Slicebox account safe?
- Your credentials are stored encrypted and are never shown in chat, code, or logs. Every run is limited to the operations you explicitly approved, and anything that writes to Slicebox is held behind that approval.
Where this came from
The operations above are read from a published API description for Slicebox at slicebox.github.io/slicebox-api/swagger.yaml. Descriptions are the provider’s own words, not ours. Last published 2021-06-21.