UNPKG

openapi-directory

Version:

Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS

1 lines 98.3 kB
{"openapi":"3.0.0","info":{"contact":{"url":"http://github.org/slicebox/slicebox"},"description":"Slicebox - safe sharing of medical images","license":{"name":"Apache 2.0 License","url":"http://opensource.org/licenses/Apache-2.0"},"title":"Slicebox API","version":"2.0","x-apisguru-categories":["collaboration"],"x-logo":{"backgroundColor":"#FFFFFF","url":"https://avatars0.githubusercontent.com/u/12760279?s=200&v=4"},"x-origin":[{"format":"swagger","url":"https://slicebox.github.io/slicebox-api/swagger.yaml","version":"2.0"}],"x-providerName":"slicebox.local"},"tags":[{"description":"General routes applicable to multiple aspects of the slicebox API and to the slicebox system","name":"General"},{"description":"Methods for handling structured importing of DICOM files into slicebox","name":"Import"},{"description":"Methods for handling DICOM meta data (attributes)","name":"Meta Data"},{"description":"Methods concerning images and datasets","name":"Images"},{"description":"Methods concerning anonymization and de-anonymization of images and the associated anonymization data","name":"Anonymization"},{"description":"Methods for handling box-to-box connections and issuing box commands","name":"Boxes"},{"description":"Methods for handling box-to-box transactions of images (primarily for internal slicebox use)","name":"Transactions"},{"description":"Methods for handling DICOM storage class providers for receiving images from PACS","name":"SCPs"},{"description":"Methods for handling DICOM storage class users for sending images to PACS","name":"SCUs"},{"description":"Methods for handling watch directories for importing images stored as files","name":"Directories"},{"description":"Methods for handling forwarding rules for automatically forwarding image data from sources to destinations.","name":"Forwarding"},{"description":"Methods for handling filtering of DICOM attributes on incoming objects.","name":"Filtering"},{"description":"Methods for defining and handling series types","name":"Series Types"},{"description":"Methods for handling slicebox system log messages","name":"Logs"},{"description":"Methods for handling users","name":"Users"}],"paths":{"/anonymization/anonymize":{"post":{"description":"anonymize the images corresponding to the supplied list of image IDs (each paired with a list of DICOM tag translation). This route corresponds to repeated use of the route /images/{id}/anonymize.","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/imageTagValues"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/imageTagValues"},"type":"array"}},"multipart/form-data":{"schema":{"items":{"$ref":"#/components/schemas/imageTagValues"},"type":"array"}}},"description":"parameters of anonymization key query","required":true},"responses":{"200":{"description":"the list of newly created anonymous images","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}}}}},"tags":["Anonymization"]}},"/anonymization/keys":{"get":{"description":"get a list of anonymization keys, each specifying how vital DICOM attributes have been anonymized for a particular image","parameters":[{"description":"start index of returned slice of anonymization keys","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of anonymization keys","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}},{"description":"property to order results by","in":"query","name":"orderby","required":false,"schema":{"type":"string"}},{"description":"order result ascendingly if true, descendingly otherwise","in":"query","name":"orderascending","required":false,"schema":{"type":"boolean","default":true}},{"description":"filter the results by matching substrings of properties against this value","in":"query","name":"filter","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"anonymization keys, one per DICOM image","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/anonymizationKey"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/anonymizationKey"},"type":"array"}}}}},"tags":["Anonymization"]}},"/anonymization/keys/export/csv":{"get":{"description":"export all anonymization keys as a csv file","responses":{"200":{"description":"all anonymization keys as a csv file","content":{"application/json":{"schema":{"type":"string"}},"application/octet-stream":{"schema":{"type":"string"}}}}},"tags":["Anonymization"]}},"/anonymization/keys/query":{"post":{"description":"submit a query for anonymization keys","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/anonymizationKeyQuery"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/anonymizationKeyQuery"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/anonymizationKeyQuery"}}},"description":"parameters of anonymization key query","required":true},"responses":{"200":{"description":"anonymization keys","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/anonymizationKey"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/anonymizationKey"},"type":"array"}}}}},"tags":["Anonymization"]}},"/anonymization/keys/{id}":{"delete":{"description":"delete an anonymization key that is no longer of interest","parameters":[{"description":"ID of anonymization key","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"anonymization key deleted"}},"tags":["Anonymization"]},"get":{"description":"get the anonymization key with the supplied ID","parameters":[{"description":"ID of anonymization key","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"anonymization key for the supplied ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/anonymizationKey"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/anonymizationKey"}}}},"404":{"description":"if no anonymization key could be found for the supplied ID"}},"tags":["Anonymization"]}},"/anonymization/keys/{id}/keyvalues":{"get":{"description":"get pointers to the images corresponding to the anonymization key with the supplied ID","parameters":[{"description":"ID of anonymization key","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"an array of anonymization key-value pairs corresponding to the anonymization key for the supplied ID","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/anonymizationKeyValue"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/anonymizationKeyValue"},"type":"array"}}}},"404":{"description":"if no anonymization key could be found for the supplied ID"}},"tags":["Anonymization"]}},"/anonymization/options":{"get":{"description":"list all supported anonymization options defining an anonymization profile","responses":{"200":{"description":"supported anonymization options","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/confidentialityOption"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/confidentialityOption"},"type":"array"}}}}},"tags":["Anonymization"]}},"/boxes":{"get":{"description":"get a list of box connections","parameters":[{"description":"start index of returned slice of boxes","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of boxes","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}}],"responses":{"200":{"description":"box connections","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/box"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/box"},"type":"array"}}}}},"tags":["Boxes"]}},"/boxes/connect":{"post":{"description":"connect to another box using a received URL. Used to connect to a public box.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/remoteBox"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/remoteBox"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/remoteBox"}}},"description":"remote box to connect with","required":true},"responses":{"201":{"description":"connected box","content":{"application/json":{"schema":{"$ref":"#/components/schemas/box"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/box"}}}}},"tags":["Boxes"]}},"/boxes/createconnection":{"post":{"description":"create a new box connection where the supplied entity holds the remote box name. Used by publicly available boxes.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/remoteBoxConnectionData"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/remoteBoxConnectionData"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/remoteBoxConnectionData"}}},"description":"name of box to connect (and send URL) to","required":true},"responses":{"201":{"description":"remote box of the connection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/box"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/box"}}}}},"tags":["Boxes"]}},"/boxes/incoming":{"get":{"description":"get incoming transactions (finished, currently receiving, waiting or failed)","parameters":[{"description":"start index of returned slice of transactions","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of transactions","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}}],"responses":{"200":{"description":"incoming transactions, sorted from most to least recently updated","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/incomingTransaction"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/incomingTransaction"},"type":"array"}}}}},"tags":["Boxes"]}},"/boxes/incoming/{id}":{"delete":{"description":"delete an incoming transaction. If a currently active transaction is deleted, a new transaction with the remainder of the images is created when receiving the next incoming image.","parameters":[{"description":"ID of incoming transaction","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"incoming transaction deleted"}},"tags":["Boxes"]}},"/boxes/incoming/{id}/images":{"get":{"description":"get the received images corresponding to the incoming transaction with the supplied ID","parameters":[{"description":"ID of incoming transaction","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"images received corresponding to the specified incoming transaction","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}}}},"404":{"description":"incoming transaction not found (invalid ID)"}},"tags":["Boxes"]}},"/boxes/outgoing":{"get":{"description":"get outgoing transactions (finished, currently sending, waiting or failed)","parameters":[{"description":"start index of returned slice of transactions","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of transactions","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}}],"responses":{"200":{"description":"outgoing transactions, finished, sending, waiting or failed","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/outgoingTransaction"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/outgoingTransaction"},"type":"array"}}}}},"tags":["Boxes"]}},"/boxes/outgoing/{id}":{"delete":{"description":"delete an outgoing transaction. This will stop ongoing transactions.","parameters":[{"description":"ID of outgoing transaction","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"outgoing transaction deleted"}},"tags":["Boxes"]}},"/boxes/outgoing/{id}/images":{"get":{"description":"get the sent images corresponding to the outgoing transaction with the supplied ID","parameters":[{"description":"ID of outgoing transaction","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"images sent corresponding to the specified outgoing transaction","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}}}},"404":{"description":"outgoing transaction not found (invalid ID)"}},"tags":["Boxes"]}},"/boxes/{id}":{"delete":{"description":"Delete the remote box with the supplied ID","parameters":[{"description":"ID of box to remove","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"box deleted"}},"tags":["Boxes"]}},"/boxes/{id}/send":{"post":{"description":"send images corresponding to the supplied image ids to the remote box with the supplied ID","parameters":[{"description":"ID of box to send images to","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/bulkAnonymizationData"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/bulkAnonymizationData"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/bulkAnonymizationData"}}},"description":"specification of which images to send and list of DICOM attribute values to use in anonymized datasets","required":true},"responses":{"201":{"description":"images sent"},"404":{"description":"box not found (invalid ID)"}},"tags":["Boxes"]}},"/destinations":{"get":{"description":"Returns a list of currently available destinations. Possible destinations are box - sending data to a remote box, and scu - sending data a receiving SCP.","responses":{"200":{"description":"currently available destinations","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/destination"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/destination"},"type":"array"}}}}},"tags":["General"]}},"/directorywatches":{"get":{"description":"get a list of watch directories. Each watch directory and its sub-directories are watched for incoming DICOM files, which are read and imported into slicebox.","parameters":[{"description":"start index of returned slice of watched directories","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of watched directories","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}}],"responses":{"200":{"description":"the list of watched directories","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/watchedDirectory"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/watchedDirectory"},"type":"array"}}}}},"tags":["Directories"]},"post":{"description":"add a new directory to watch for incoming DICOM files","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/watchedDirectory"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/watchedDirectory"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/watchedDirectory"}}},"description":"directory to setup a watch for. The ID property is irrelevant, the ID of the inserted record is present in the returned data."},"responses":{"201":{"description":"the directory now being watched","content":{"application/json":{"schema":{"$ref":"#/components/schemas/watchedDirectory"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/watchedDirectory"}}}}},"tags":["Directories"]}},"/directorywatches/{id}":{"delete":{"description":"stop watching and remove the directory corresponding to the supplied ID","parameters":[{"description":"id of directory to stop watching","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"directory watch removed"}},"tags":["Directories"]}},"/filtering/associations":{"get":{"description":"Get a list of source to filter associations.","parameters":[{"description":"start index of returned slice of source <-> filter associations","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of source <-> filter associations","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}}],"responses":{"200":{"description":"the list of source <-> filter associations","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/sourceTagFilter"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/sourceTagFilter"},"type":"array"}}}}},"tags":["Filtering"]},"post":{"description":"Inserts or updates a source <-> filter associations. If the specified Source already has an association this is updated, otherwise a new is inserted.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/sourceTagFilter"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/sourceTagFilter"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/sourceTagFilter"}}},"description":"Source to Filter association","required":true},"responses":{"201":{"description":"Upserted source <-> filter association"}},"tags":["Filtering"]}},"/filtering/associations/{id}":{"delete":{"description":"remove the source <-> filter association corresponding to the supplied ID","parameters":[{"description":"id of source <-> filter association to remove","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"source <-> filter association removed"}},"tags":["Filtering"]}},"/filtering/filters":{"get":{"description":"List defined filters","parameters":[{"description":"start index of returned slice of filters","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of filters","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}}],"responses":{"200":{"description":"the list of filters","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/filter"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/filter"},"type":"array"}}}}},"tags":["Filtering"]},"post":{"description":"Inserts or updates a filter. If a filter with same name as supplied filter exists this filter is updated, otherwise a new filter is inserted.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/filter"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/filter"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/filter"}}},"description":"Filter","required":true},"responses":{"201":{"description":"Filter upserted"}},"tags":["Filtering"]}},"/filtering/filters/{id}":{"delete":{"description":"remove the filter corresponding to the supplied ID","parameters":[{"description":"id of filter to remove","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Filter removed"}},"tags":["Filtering"]}},"/filtering/filters/{id}/tagpaths":{"get":{"description":"List tagpaths for the selected filter","parameters":[{"description":"id of filter","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"the list of tagpaths","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/tagPathTag"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/tagPathTag"},"type":"array"}}}}},"tags":["Filtering"]},"post":{"description":"add a tagpath to a filter","parameters":[{"description":"id of filter to remove","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tagPathTag"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/tagPathTag"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/tagPathTag"}}},"description":"id of filter to remove","required":true},"responses":{"201":{"description":"TagPath added"}},"tags":["Filtering"]}},"/filtering/filters/{id}/tagpaths/{tagpathid}":{"delete":{"description":"remove the tagpath corresponding to the supplied ID","parameters":[{"description":"id of filter","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}},{"description":"id of TagPath to remove","in":"path","name":"tagpathid","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"TagPath removed"}},"tags":["Filtering"]}},"/forwarding/rule/{id}":{"delete":{"description":"remove the forwarding rule corresponding to the supplied ID","parameters":[{"description":"id of forwarding rule to remove","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"forwarding rule removed"}},"tags":["Forwarding"]}},"/forwarding/rules":{"get":{"description":"get a list of all forwarding rules. A forwarding rule specifies the automatic forwarding of images from a source (SCP, BOX, etc.) to a destimation (BOX, SCU, etc.)","parameters":[{"description":"start index of returned slice of rules","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of rules","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}}],"responses":{"200":{"description":"the list of forwarding rules","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/forwardingrule"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/forwardingrule"},"type":"array"}}}}},"tags":["Forwarding"]},"post":{"description":"add a new forwarding rule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/forwardingrule"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/forwardingrule"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/forwardingrule"}}},"description":"The forwarding rule to add. The ID property is irrelevant, the ID of the inserted record is present in the returned data."},"responses":{"201":{"description":"the created forwarding rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/forwardingrule"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/forwardingrule"}}}}},"tags":["Forwarding"]}},"/images":{"post":{"description":"add a DICOM dataset to slicebox","requestBody":{"$ref":"#/components/requestBodies/postImages"},"responses":{"200":{"description":"meta data for added dataset on the image level of the DICOM hierarchy. Status code 200 signifies that this image was already present in the slicebox database.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/image"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/image"}}}},"201":{"description":"meta data for added dataset on the image level of the DICOM hierarchy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/image"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/image"}}}}},"tags":["Images"]}},"/images/delete":{"post":{"description":"bulk delete a sequence of images according to the supplied image IDs. This is the same as a sequence of DELETE requests to /images/{id}","requestBody":{"content":{"application/json":{"schema":{"items":{"format":"int64","type":"integer"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"format":"int64","type":"integer"},"type":"array"}},"multipart/form-data":{"schema":{"items":{"format":"int64","type":"integer"},"type":"array"}}},"description":"IDs of images to delete","required":true},"responses":{"204":{"description":"Images deleted"}},"tags":["Images"]}},"/images/export":{"get":{"description":"download the export set with the supplied export set ID as a zip archive","parameters":[{"description":"ID of export set to download","in":"query","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"zip archive of images"}},"tags":["Images"]},"post":{"description":"create an export set, a group of image IDs of images to export. The export set will contain the selected images. The export set is available for download 12 hours before it is automatically deleted.","requestBody":{"content":{"application/json":{"schema":{"items":{"format":"int64","type":"integer"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"format":"int64","type":"integer"},"type":"array"}},"multipart/form-data":{"schema":{"items":{"format":"int64","type":"integer"},"type":"array"}}},"description":"ids of images to export","required":true},"responses":{"200":{"description":"ID of created export set. To be used with the associated GET method for downloading.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/exportSetId"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/exportSetId"}}}},"201":{"description":"if the supplied list of image ids is empty or no if images could be found"}},"tags":["Images"]}},"/images/jpeg":{"post":{"description":"add a JPEG image to slicebox. The image data will be wrapped in a DICOM file and added as a new series belonging to the study with the supplied ID","parameters":[{"description":"ID of study to add new series to","in":"query","name":"studyid","required":true,"schema":{"type":"integer","format":"int64"}},{"description":"DICOM series description of the resulting secondary capture series","in":"query","name":"description","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{}},"multipart/form-data":{"schema":{}}},"description":"The jpeg image data","required":true},"responses":{"201":{"description":"meta data for added dataset on the image level of the DICOM hierarchy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/image"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/image"}}}}},"tags":["Images"]}},"/images/{id}":{"delete":{"description":"Delete the image with the supplied ID","parameters":[{"description":"ID of image","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"image deleted"}},"tags":["Images"]},"get":{"description":"fetch dataset corresponding to the supplied image ID","parameters":[{"description":"ID of image","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"binary data of dataset"},"404":{"description":"if no image was found for the supplied image ID"}},"tags":["Images"]}},"/images/{id}/anonymize":{"put":{"description":"delete the selected image and replace it with an anonymized version","parameters":[{"description":"ID of image to anonymize","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"$ref":"#/components/requestBodies/anonymizationData"},"responses":{"200":{"description":"the newly created anonymous image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/image"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/image"}}}},"404":{"description":"image or corresponding dataset not found"}},"tags":["Anonymization","Images"]}},"/images/{id}/anonymized":{"post":{"description":"get an anonymized version of the image with the supplied ID","parameters":[{"description":"ID of image for which to get anonymized dataset","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"$ref":"#/components/requestBodies/anonymizationData"},"responses":{"200":{"description":"binary data of anonymized dataset"},"404":{"description":"if no image was found for the supplied image ID"}},"tags":["Anonymization","Images"]}},"/images/{id}/attributes":{"get":{"description":"list all DICOM attributes of the dataset corresponding to the supplied image ID","parameters":[{"description":"ID of image","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"list of DICOM attributes","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/imageAttribute"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/imageAttribute"},"type":"array"}}}},"404":{"description":"if no image was found for the supplied image ID"}},"tags":["Images"]}},"/images/{id}/imageinformation":{"get":{"description":"get basic information about the pixel data of an image","parameters":[{"description":"ID of image","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"basic information about the pixeldata of an image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/imageInformation"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/imageInformation"}}}},"404":{"description":"if no image was found for the supplied image ID"}},"tags":["Images"]}},"/images/{id}/modify":{"put":{"description":"modify and/or insert image attributes according to the input tagpath-value mappings","parameters":[{"description":"ID of image to modify","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/tagMapping"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/tagMapping"},"type":"array"}},"multipart/form-data":{"schema":{"items":{"$ref":"#/components/schemas/tagMapping"},"type":"array"}}},"description":"specification of tag paths and corresponding values to insert or modify","required":true},"responses":{"201":{"description":"image attributes successfully modified"}},"tags":["Images"]}},"/images/{id}/png":{"get":{"description":"get a PNG image representation of the image corresponding to the supplied ID","parameters":[{"description":"ID of image","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}},{"description":"frame/slice to show","in":"query","name":"framenumber","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"description":"intensity window minimum value. If not specified or set to zero, windowing will be selected from relevant DICOM attributes","in":"query","name":"windowmin","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"description":"intensity window maximum value. If not specified or set to zero, windowing will be selected from relevant DICOM attributes","in":"query","name":"windowmax","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"description":"height of PNG image. If not specified or set to zero, the image height will equal that of the data","in":"query","name":"imageheight","required":false,"schema":{"type":"integer","format":"int32","default":0}}],"responses":{"200":{"description":"image data"},"404":{"description":"if no image was found for the supplied image ID"},"501":{"description":"if the system is not capable of creating an image representation of the data"}},"tags":["Images"]}},"/import/sessions":{"get":{"description":"Returns a list of available import sessions.","parameters":[{"description":"start index of returned slice of import sessions","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of import sessions","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}}],"responses":{"200":{"description":"available import sessions","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/importSession"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/importSession"},"type":"array"}}}}},"tags":["Import"]},"post":{"description":"create a new import sessions","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/importSession"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/importSession"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/importSession"}}},"description":"The import session to create containing the user defined name of the session","required":true},"responses":{"201":{"description":"the created import session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/importSession"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/importSession"}}}}},"tags":["Import"]}},"/import/sessions/{id}":{"delete":{"description":"deletes the import session with the supplied ID","parameters":[{"description":"ID of import session to delete","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"import session deleted"}},"tags":["Import"]},"get":{"description":"Returns the import sessions with the supplied ID","parameters":[{"description":"ID of session","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"the import session with the supplied ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/importSession"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/importSession"}}}},"404":{"description":"import session not found (invalid ID)"}},"tags":["Import"]}},"/import/sessions/{id}/images":{"get":{"description":"get the imported images corresponding to the import session with the supplied ID","parameters":[{"description":"ID of import session","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"images corresponding to the specified import session","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}}}},"404":{"description":"import session not found (invalid ID)"}},"tags":["Import"]},"post":{"description":"add a DICOM dataset to the import session with the supplied ID","parameters":[{"description":"ID of session","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"$ref":"#/components/requestBodies/postImages"},"responses":{"200":{"description":"meta data for the imported dataset on the image level of the DICOM hierarchy. Status code 200 signifies that this image was already present in the slicebox database.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/image"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/image"}}}},"201":{"description":"meta data for the imported dataset on the image level of the DICOM hierarchy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/image"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/image"}}}},"404":{"description":"import session not found (invalid ID)"}},"tags":["Import"]}},"/log":{"delete":{"description":"delete all log messages","responses":{"204":{"description":"log messages successfully"}},"tags":["Logs"]},"get":{"description":"get a list of slicebox log messages","parameters":[{"description":"start index of returned slice of log messages","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of log messages","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}},{"description":"log subject to filter results by","in":"query","name":"subject","required":false,"schema":{"type":"string"}},{"description":"log type (DEFAULT, INFO, WARN, ERROR) to filter results by","in":"query","name":"type","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"log messages","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/logEntry"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/logEntry"},"type":"array"}}}}},"tags":["Logs"]}},"/log/{id}":{"delete":{"description":"Delete the log entry with the supplied ID","parameters":[{"description":"ID of log entry","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"log entry deleted"}},"tags":["Logs"]}},"/metadata/flatseries":{"get":{"description":"Returns a list of flattened metadata on the patient, study and series levels","parameters":[{"description":"start index of returned slice of flat series","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of flat series","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}},{"description":"flat series property to order results by","in":"query","name":"orderby","required":false,"schema":{"type":"string"}},{"description":"order result ascendingly if true, descendingly otherwise","in":"query","name":"orderascending","required":false,"schema":{"type":"boolean","default":true}},{"description":"filter the results by matching substrings of flat series properties against this value","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"filter the results by matching on one or more series sources. Examples of sources are user, box, directory or scp. The list of sources to filter results by must have the form TYPE1:ID1,TYPE2:ID2,...,TYPEN:IDN. For instance, the argument sources=box:1,user:5 shows results either sent from (slice)box with id 1 or uploaded by user with id 5.","in":"query","name":"sources","required":false,"schema":{"type":"string"}},{"description":"filter the results by matching on one or more series types. The supplied list of series types must be a comma separated list of series type ids. For instance, the argument seriestypes=3,7,22 shows series assigned to either of the series types with ids 3, 7 and 22.","in":"query","name":"seriestypes","required":false,"schema":{"type":"string"}},{"description":"filter the results by matching on one or more series tags. The supplied list of series tags must be a comma separated list of series tag ids. For instance, the argument seriestags=6,2,11 shows series with either of the series tags with ids 6, 2 and 11.","in":"query","name":"seriestags","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"flat series","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/flatSeries"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/flatSeries"},"type":"array"}}}}},"tags":["Meta Data"]}},"/metadata/flatseries/query":{"post":{"description":"submit a query for flat series","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/query"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/query"}}},"description":"parameters of flat series query","required":true},"responses":{"200":{"description":"flat series","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/flatSeries"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/flatSeries"},"type":"array"}}}}},"tags":["Meta Data"]}},"/metadata/flatseries/{id}":{"get":{"description":"Return the flat series with the supplied ID","parameters":[{"description":"ID of flat series","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"flat series response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/flatSeries"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/flatSeries"}}}},"404":{"description":"flat series not found (invalid ID)"}},"tags":["Meta Data"]}},"/metadata/images":{"get":{"description":"Returns a list of metadata on the image level of the DICOM hierarchy","parameters":[{"description":"start index of returned slice of images","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of images","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}},{"description":"reference to series to list images for","in":"query","name":"seriesid","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"images","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}}}}},"tags":["Meta Data"]}},"/metadata/images/query":{"post":{"description":"submit a query for images","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/query"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/query"}}},"description":"parameters of images query","required":true},"responses":{"200":{"description":"images","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}}}}},"tags":["Meta Data"]}},"/metadata/images/{id}":{"get":{"description":"Return the image with the supplied ID","parameters":[{"description":"ID of image","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"image response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/image"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/image"}}}},"404":{"description":"image not found (invalid ID)"}},"tags":["Meta Data"]}},"/metadata/patients":{"get":{"description":"Returns a list of metadata on the patient level of the DICOM hierarchy","parameters":[{"description":"start index of returned slice of patients","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of patients","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}},{"description":"patient property to order results by","in":"query","name":"orderby","required":false,"schema":{"type":"string"}},{"description":"order result ascendingly if true, descendingly otherwise","in":"query","name":"orderascending","required":false,"schema":{"type":"boolean","default":true}},{"description":"filter the results by matching substrings of patient properties against this value","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"filter the results by matching on one or more underlying series sources. Examples of sources are user, box, directory or scp. The list of sources to filter results by must have the form TYPE1:ID1,TYPE2:ID2,...,TYPEN:IDN. For instance, the argument sources=box:1,user:5 shows results either sent from (slice)box with id 1 or uploaded by user with id 5.","in":"query","name":"sources","required":false,"schema":{"type":"string"}},{"description":"filter the results by matching on one or more underlying series types. The supplied list of series types must be a comma separated list of series type ids. For instance, the argument seriestypes=3,7,22 shows results including series assigned to either of the series types with ids 3, 7 and 22.","in":"query","name":"seriestypes","required":false,"schema":{"type":"string"}},{"description":"filter the results by matching on one or more underlying series tags. The supplied list of series tags must be a comma separated list of series tag ids. For instance, the argument seriestags=6,2,11 shows results including series with either of the series tags with ids 6, 2 and 11.","in":"query","name":"seriestags","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"patients","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/patient"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/patient"},"type":"array"}}}}},"tags":["Meta Data"]}},"/metadata/patients/query":{"post":{"description":"submit a query for patients","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/query"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/query"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/query"}}},"description":"parameters of patient query","required":true},"responses":{"200":{"description":"patients","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/patient"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/patient"},"type":"array"}}}}},"tags":["Meta Data"]}},"/metadata/patients/{id}":{"get":{"description":"Return the patient with the supplied ID","parameters":[{"description":"ID of patient","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"patient response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/patient"}},"application/octet-stream":{"schema":{"$ref":"#/components/schemas/patient"}}}},"404":{"description":"patient not found (invalid ID)"}},"tags":["Meta Data"]}},"/metadata/patients/{id}/images":{"get":{"description":"Returns all images for the patient with the supplied patient ID","parameters":[{"description":"ID of patient","in":"path","name":"id","required":true,"schema":{"type":"integer","format":"int64"}},{"description":"filter the results by matching on one or more series sources. Examples of sources are user, box, directory or scp. The list of sources to filter results by must have the form TYPE1:ID1,TYPE2:ID2,...,TYPEN:IDN. For instance, the argument sources=box:1,user:5 shows results either sent from (slice)box with id 1 or uploaded by user with id 5.","in":"query","name":"sources","required":false,"schema":{"type":"string"}},{"description":"filter the results by matching on one or more series types. The supplied list of series types must be a comma separated list of series type ids. For instance, the argument seriestypes=3,7,22 shows series assigned to either of the series types with ids 3, 7 and 22.","in":"query","name":"seriestypes","required":false,"schema":{"type":"string"}},{"description":"filter the results by matching on one or more series tags. The supplied list of series tags must be a comma separated list of series tag ids. For instance, the argument seriestags=6,2,11 shows series with either of the series tags with ids 6, 2 and 11.","in":"query","name":"seriestags","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"list of images","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}},"application/octet-stream":{"schema":{"items":{"$ref":"#/components/schemas/image"},"type":"array"}}}}},"tags":["Meta Data"]}},"/metadata/series":{"get":{"description":"Returns a list of metadata on the series level of the DICOM hierarchy","parameters":[{"description":"start index of returned slice of series","in":"query","name":"startindex","required":false,"schema":{"type":"integer","format":"int64","default":0}},{"description":"size of returned slice of series","in":"query","name":"count","required":false,"schema":{"type":"integer","format":"int64","default":20}},{"description":"reference to study to list series for","in":"query","name":"studyid","required":true,"schema":{"type":"integer","format":"int64"}},{"description":"filter the results by matching on one or more series sources. Examples of sources are user, box, directory or scp. The list of sources to filter results by mu